を表示するためにmatplotlibのimshow()
関数を使用してい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 ~ 2101 ではなく 1901 ~ 1906 です。同様に、x 軸の目盛りラベルは 1 月~12 月ではなく 2 月~7 月です。
私が使用する場合
ax1 = fig.add_subplot(131) # without specifying tick labels
次に、軸の目盛りラベルが単に基になる ndarray インデックス値 (つまり、0-201 と 0-12) になるだけです。目盛りとラベルの間隔や量を変更する必要はありません。ラベル テキストを DataFrame のインデックスと列のリストから取得したいだけです。簡単なものを見逃しているかどうかわかりませんか?
前もって感謝します。