使用Pandas数据框索引作为matplotlib图中x轴的值

puruo6ea  于 2023-02-02  发布在  其他
关注(0)|答案(4)|浏览(117)

我在Pandas dateframe中有一个时间序列,其中有许多列需要绘制。有没有办法将x轴设置为始终使用dateframe中的索引?当我使用Pandas中的.plot()方法时,x轴的格式正确,但是当我传递日期和列时(s)我想直接在matplotlib中绘图,但图形绘制不正确。

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

仅供参考: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]')
atmip9wb

atmip9wb1#

问题似乎是我有.values。如果没有它(iIndiee.site2.index),图形显示correctly.

ig9co6j1

ig9co6j12#

可以使用plt.xticks设置x轴
尝试:

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

有关详细信息,请参阅文档:www.example.comhttp://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.xticks

eyh26e7m

eyh26e7m3#

直接内置到plot() method
您可以使用yourDataFrame.plot(use_index=True)来使用X轴上的DataFrame索引。
“use_index=True”设置X轴上的数据框索引。
在此阅读更多信息:https://pandas.pydata.org/pandas-docs/version/0.23/generated/pandas.DataFrame.plot.html

juzqafwq

juzqafwq4#

你想使用matplotlib来选择一个'明智的'规模就像我一样,有一种方法可以解决这个问题。使用一个Pandas Dataframe 索引作为matplotlib图中x轴的值。代码:

ax = plt.plot(site2['Cl'])
x_ticks = ax.get_xticks() # use matplotlib default xticks
x_ticks = list(filter(lambda x: x in range(len(site2)), x_ticks))
ax.set_xticklabels([' '] + site2.index.iloc[x_ticks].to_list())

相关问题