matplotlib 使用日期小时分钟秒数据设置x轴限值

3htmauhk  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(140)

我有一个框架如下:

  1. o h l c volume complete \
  2. time
  3. 2020-01-16 00:00:00 1.30400 1.30401 1.30394 1.30401 7 True
  4. 2020-01-16 00:01:00 1.30398 1.30398 1.30394 1.30396 6 True
  5. 2020-01-16 00:02:00 1.30394 1.30402 1.30380 1.30402 20 True
  6. 2020-01-16 00:03:00 1.30400 1.30411 1.30397 1.30411 8 True
  7. 2020-01-16 00:04:00 1.30414 1.30414 1.30411 1.30414 7 True

持续了几个月
我使用matplotlib如下:

  1. ax1 = plt.subplot2grid((6,1), (0,0), rowspan=5, colspan=1)
  2. ax2 = plt.subplot2grid((6,1), (5,0), rowspan=1, colspan=1,sharex=ax1)
  3. ax1.plot(data.index, data['c'])
  4. ax2.plot(data.index, data['volume'])
  5. ax1.set_xlim([data.index.date(2020, 1, 16), data.index.date(2020, 1, 17)])
  6. plt.show()

我得到了如下的traceback:

  1. ---------------------------------------------------------------------------
  2. TypeError Traceback (most recent call last)
  3. <ipython-input-67-ad1471a25939> in <module>
  4. 6 #ax1.plot(data.index, data['l'])
  5. 7 ax2.plot(data.index, data['volume'])
  6. ----> 8 ax1.set_xlim([data.index.date(2020, 1, 16), data.index.date(2020, 1, 17)])
  7. 9
  8. 10 plt.show()
  9. TypeError: 'numpy.ndarray' object is not callable

定义xlim的正确方法是什么?理想情况下,使用日期时间值(例如2020-01-16 00:00:00),但日期值也可以(例如2020-01-16)。

pnwntuvh

pnwntuvh1#

Axes.set_xlim希望leftright边界作为单独的参数,而不是列表/数组。
对于时间戳,您可以使用Pandas.timestamp
这应该是你想要的:

  1. ax1.set_xlim(pd.Timestamp('2020-01-16 00:00:00'), pd.Timestamp('2020-01-17 00:00:00'))

相关问题