web-dev-qa-db-ja.com

matplotlibプロットのx軸の値としてPandasデータフレームインデックスを使用

私はPandas dateframeにプロットしたい列の数の時系列があります。常にインデックスを使用するようにx軸を設定する方法はありますかdateframe?からPandas=から.plot()メソッドを使用すると、x軸は正しくフォーマットされますが、日付と列を渡すと( s)matplotlibに直接プロットしたいのですが、グラフが正しくプロットされません。

plt.plot(site2.index.values, site2['Cl'])
plt.show()

output

ご参考までに: site2.index.valuesはこれを生成します(簡潔にするために中央部分を切り取りました)。

array([
    '1987-07-25T12:30:00.000000000+0200',
    '1987-07-25T16:30:00.000000000+0200',
    '2010-08-13T02:00:00.000000000+0200',
    '2010-08-31T02:00:00.000000000+0200',
    '2010-09-15T02:00:00.000000000+0200'
], 
dtype='datetime64[ns]')
13
Jason

問題は、私が.values。それなし(つまりsite2.index)グラフに 正しく と表示されます

3
Jason

plt.xticksを使用してx軸を設定できます

試してください:

plt.xticks( site2['Cl'], site2.index.values ) # location, labels
plt.plot( site2['Cl'] )
plt.show()

詳細については、ドキュメントを参照してください: http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.xticks

7
ycy