es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Python: dibujar números en un patrón específico en el gráfico x y.

Me pregunto cómo puedo dibujar tantos números como sea posible en un gráfico xy. Tiene que ser un patrón cruzado, algo así como esto: 1 = (x0, y1); 2 = (x1, y0); 3 = (x0, y-1); 4 = (x-1, y0); 5 = (x0, y2); 6 = (x2, y0); y así sucesivamente …

He intentado con matplotlib, pero sin ningún resultado.

Código actual:

import matplotlib.pyplot as plt
x = [0, 1, 0, -1, 0, 2, 0, -2, 0, 3, 0, -3, 0, 4, 0, -4, 0]
y = [1, 0, -1, 0, 2, 0, -2, 0, 3, 0, -3, 0, 4, 0, -4, 0, 5]
plt.plot(x, y, "o", color="black")
plt.xlabel('x')
plt.ylabel('y')
for x, y in zip(x, y):
plt.text(x, y, str(x), color="red", fontsize=12)
plt.title('¡gráfico!')
plt.show()

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para dibujar un patrón en cruz que represente distintos números en el gráfico x-y, se puede usar “scatter” en lugar de “plot” en matplotlib. Aquí hay un ejemplo de código que puedes utilizar:

    import matplotlib.pyplot as plt
    
    n = 10    # número de puntos a dibujar
    
    x = []
    y = []
    
    for i in range(n):
        x.extend([i, -i, 0, 0])
        y.extend([0, 0, i, -i])
    
    fig, ax = plt.subplots()
    ax.scatter(x, y)
    
    for i, txt in enumerate(range(1, n*4+1)):
        ax.annotate(txt, (x[i], y[i]))
    
    ax.set_xlabel('x')
    ax.set_ylabel('y')
    plt.show()
    

    Este código genera un patrón en cruz y etiqueta cada punto con su número correspondiente. Puedes ajustar el valor de n para dibujar más o menos puntos. La salida de este código debería verse algo como esto:

    Patrón en cruz en el gráfico X-Y

Comments are closed.