Matplotlib: `pcolormesh.get_array ()` devuelve una matriz aplanada: ¿cómo recuperar datos 2D?
Estoy tratando de obtener los valores de datos a lo largo de una línea (como enesta pista) Ese ejemplo usaimshow()
, pero actualmente estoy usandopcolormesh()
para trazar.
Estoy descubriendo que elget_array()
función, para tomar datos trazados depcolormesh()
está devolviendo una matriz aplanada 1-D de mis datos, en lugar de los datos 2-D originales (o truncados).
Por ejemplo:
D = np.genfromtxt(DataFilePath, skip_header=4, delimiter=',', unpack=True)
print( D.shape )
: (500, 500)
...more code...
img = ax[0].pcolormesh( np.arange( len(D[0,:]) ), np.arange(len(D[:,0])), D)
>>> D
: array([[ 42.38, 41.93, 41.92, ..., 41.73, 41.74, 41.51],
[ 41.88, 42.24, 42.21, ..., 41.88, 41.67, 41.64],
[ 42.4 , 41.47, 41.49, ..., 41.92, 42.07, 41.49],
...,
[ 44.24, 44.14, 44.17, ..., 40.2 , 40.68, 40.67],
[ 44.59, 44.24, 44.3 , ..., 40.91, 40.92, 40.95],
[ 44.2 , 44.27, 44.27, ..., 40.82, 40.91, 40.94]])
>>> img.get_array()
: array([ 42.38, 41.93, 41.92, ..., 40.85, 40.91, 40.92])
Como estoy tratando de obtener clics de usuario en el gráfico y luego volver a trazar usando los valores de datos clicados (como enesta pista), Me gustaría usar una función / clase queno tendrá acceso global a los datos originales, pero tiene acceso aimg
objeto.
Alguna idea de cómo obtengo los datos 2D depcolormesh()
usando solo elimg
(QuadMesh) objeto? Ni siquiera parece tener los valores de longitud / forma x / y, para que yo pueda reconstruir los datos del 1-Dget_array()
.
¡Gracias!