Matplotlib: `pcolormesh.get_array ()` возвращает уплощенный массив - как вернуть 2D данные?
Я пытаюсь получить значения данных вдоль линии (как вэтот намек). Этот пример используетimshow()
, но я сейчас используюpcolormesh()
построить.
Я считаю, чтоget_array()
функция, чтобы получить построенные данные изpcolormesh()
возвращает одномерный, плоский массив моих данных вместо исходных (или усеченных) двумерных данных.
Например:
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])
Так как я пытаюсь захватить пользовательские клики на графике, а затем заново построить график, используя значения данных, по которым щелкнули (как вэтот намек), Я хотел бы использовать функцию / класс, которыйне будет иметь глобального доступа к исходным данным, но имеет доступ кimg
объект.
Любая идея, как я могу получить 2D-данные изpcolormesh()
используя толькоimg
(QuadMesh) объект? Кажется, он даже не имеет значений длины и формы по оси х / у, для меня, чтобы восстановить данные из 1-Dget_array()
.
Спасибо!