Mantén la atención porque en esta división hallarás la respuesta que buscas.Este tutorial ha sido aprobado por nuestros especialistas para asegurar la calidad y veracidad de nuestro contenido.
Solución:
Usaría dos colecciones de líneas para esto:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection
x, y = np.meshgrid(np.linspace(0,1, 11), np.linspace(0, 0.6, 7))
plt.scatter(x, y)
segs1 = np.stack((x,y), axis=2)
segs2 = segs1.transpose(1,0,2)
plt.gca().add_collection(LineCollection(segs1))
plt.gca().add_collection(LineCollection(segs2))
plt.show()
Consulte también ¿Cómo trazar usando la cuadrícula deformada de matplotlib (python) colah?
Porque si la cuadrícula no está deformada, sería más eficiente dibujar una sola colección de líneas, como
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection
x, y = np.meshgrid(np.linspace(0,1, 11), np.linspace(0, 0.6, 7))
segs1 = np.stack((x[:,[0,-1]],y[:,[0,-1]]), axis=2)
segs2 = np.stack((x[[0,-1],:].T,y[[0,-1],:].T), axis=2)
plt.gca().add_collection(LineCollection(np.concatenate((segs1, segs2))))
plt.autoscale()
plt.show()
Puedes np.transpose
los puntos que ya tienes, mientras usas una línea plot()
más bien que scatter()
.
import numpy as np
import matplotlib.pyplot as plt
x, y = np.meshgrid(np.linspace(0,1, 11), np.linspace(0, 0.6, 7))
plt.plot(x, y) # use plot, not scatter
plt.plot(np.transpose(x), np.transpose(y)) # add this here
plt.show()
Por supuesto, puedes tenerlo coloreado negro con c='k'
IIUC, vlines
y hlines
haría:
plt.vlines(np.linspace(0,1,11), 0, 0.6)
plt.hlines(np.linspace(0,0.6,7), 0, 1)
Si ya tienes malla x,y
:
plt.vlines(x[0], *y[[0,-1],0])
plt.hlines(y[:,0], *x[0, [0,-1]])
Afuera:
Puedes añadir valor a nuestra información aportando tu experiencia en las observaciones.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)