pandas, matplotlib, используйте индекс кадра данных в качестве меток осей

Я использую функцию imshow()matplotlib, чтобы показать pandas.DataFrame.

Я бы хотел, чтобы метки и отметки для осей x и y рисовались из списков DataFrame.index и DataFrame.columns, но я не могу понять, как это сделать.

Предполагая, что dataявляетсяpandas.DataFrame:

>>> print data
<class 'pandas.core.frame.DataFrame'>
Index: 201 entries,  1901 to  2101
Data columns:
jan    201  non-null values
feb    201  non-null values
mar    201  non-null values
apr    201  non-null values
may    201  non-null values
jun    201  non-null values
jul    201  non-null values
aug    201  non-null values
sep    201  non-null values
oct    201  non-null values
nov    201  non-null values
dec    201  non-null values

Когда я делаю это:

ax1 = fig.add_subplot(131, xticklabels=data.columns, yticklabels=data.index)
ax1.set_title("A")
ax1.tick_params(axis='both', direction='out')
im1 = ax1.imshow(data, 
                 interpolation='nearest', 
                 aspect='auto',
                 cmap=cmap )

В итоге я получаю правильно расположенные метки галочки по оси Y изображения, но метки 1901 -1906 вместо 1901 по 2101. Точно так же метки галочки по оси X — февраль -июль вместо янв -дек.

Если я использую

ax1 = fig.add_subplot(131) # without specifying tick labels

Затем я заканчиваю тем, что метки оси оси просто являются базовыми значениями индекса ndarray (, т.е. 0 -201 и 0 -12 ). Мне не нужно изменять интервал или количество делений и меток,Я просто хочу, чтобы текст метки исходил из индекса DataFrame и списков столбцов. Не уверен, что я пропустил что-то легкое или нет?

Заранее спасибо.

8
задан piRSquared 5 January 2017 в 00:02
поделиться