Matplotlib: `pcolormesh.get_array ()` retorna um array achatado - como recuperar dados 2D?
Estou tentando obter os valores dos dados ao longo de uma linha (como emessa dica) Esse exemplo usaimshow()
, mas atualmente estou usandopcolormesh()
tramar.
Estou descobrindo que oget_array()
para capturar dados plotados depcolormesh()
está retornando uma matriz achatada 1-D dos meus dados, em vez dos dados 2-D originais (ou truncados).
Por exemplo:
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 estou tentando capturar cliques do usuário na plotagem e plotar novamente os valores de dados clicados (como emessa dica), Gostaria de usar uma função / classe quenão terá acesso global aos dados originais, mas tem acesso aoimg
objeto.
Alguma idéia de como obtenho os dados 2D depcolormesh()
usando apenas oimg
Objeto (QuadMesh)? Nem parece ter os valores de comprimento / forma x / y, para eu reconstruir os dados do 1-Dget_array()
.
Obrigado!