Saltar al contenido

Cómo trazar una malla estructurada 2d en matplotlib

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()

ingrese la descripción de la imagen aquí

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'ingrese la descripción de la imagen aquí

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:

ingrese la descripción de la imagen aquí

Puedes añadir valor a nuestra información aportando tu experiencia en las observaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *