【问题标题】:Using a Pandas dataframe index as values for x-axis in matplotlib plot在 matplotlib 图中使用 Pandas 数据框索引作为 x 轴的值
【发布时间】:2014-04-16 21:41:41
【问题描述】:

我在 Pandas dateframe 中有时间序列,其中有许多列我想绘制。有没有办法将 x 轴设置为始终使用来自dateframe 的索引? 当我使用 Pandas 中的 .plot() 方法时,x 轴的格式正确,但是当我将日期和列传递给我想直接绘制到 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]')

【问题讨论】:

    标签: python matplotlib plot pandas


    【解决方案1】:

    问题似乎是我有.values。没有它(即site2.index),图表将显示correctly.

    【讨论】:

      【解决方案2】:

      可以使用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

      【讨论】:

      • 感谢您的回复。有什么方法可以使用matplotlib 来选择“合理”的比例吗?例如,使用 Pandas .plot 方法,它将根据需要为 x 轴选择天、月或年。如果我正确理解文档,似乎site2['Cl'] 的每个数据点都会有一个xtick,这对于我的数据集来说太多了。另外我认为我的日期可能有问题,因为我的新图表看起来像 this
      猜你喜欢
      • 2012-07-20
      • 2018-11-15
      • 1970-01-01
      • 2022-12-17
      • 2022-07-11
      • 2023-03-16
      • 1970-01-01
      • 2018-03-19
      • 2016-02-14
      相关资源
      最近更新 更多