1
私は毎月(M
)の頻度を持つDatetimeIndexを持つPandasデータフレームを持っています。しかし、このDataframeから列をプロットすると、プロット上のラベルには意味がないものの、日付と時刻が表示されます。月はYYYY-MM
形式でしか表示されないようにこれを修正するにはどうすればよいですか?プロット時の日時インデックスの時間フォーマットを設定する
私は毎月(M
)の頻度を持つDatetimeIndexを持つPandasデータフレームを持っています。しかし、このDataframeから列をプロットすると、プロット上のラベルには意味がないものの、日付と時刻が表示されます。月はYYYY-MM
形式でしか表示されないようにこれを修正するにはどうすればよいですか?プロット時の日時インデックスの時間フォーマットを設定する
そうのように、PeriodIndex
に変換し、毎月の周波数を提供することにより、プロットする前に、あなたのDateTimeIndex
に小さな変更を加えます -
a.index = a.index.to_period('M') # Even a.index.astype('period[M]') works
デモ:
idx = pd.date_range('2016/1/1', periods=10, freq='M')
df = pd.DataFrame(dict(count=np.random.randint(10,1000,10)), idx).rename_axis('start_date')
df
旧DateTimeIndex
:10は、図示のように考えてみましょうDF
>>> df.index
DatetimeIndex(['2016-01-31', '2016-02-29', '2016-03-31', '2016-04-30',
'2016-05-31', '2016-06-30', '2016-07-31', '2016-08-31',
'2016-09-30', '2016-10-31'],
dtype='datetime64[ns]', name='start_date', freq='M')
新PeriodIndex
:
>>> df.index = df.index.to_period('M')
>>> df.index
PeriodIndex(['2016-01', '2016-02', '2016-03', '2016-04', '2016-05', '2016-06',
'2016-07', '2016-08', '2016-09', '2016-10'],
dtype='period[M]', name='start_date', freq='M')
は、それらをプロット:
df['count'].plot(kind='bar')
plt.show()