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

Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос