1

我有一个数据框如下:

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

这种情况持续了几个月。

我正在使用 matplotlib 如下:

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

我得到以下回溯:

    ---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-67-ad1471a25939> in <module>
      6 #ax1.plot(data.index, data['l'])
      7 ax2.plot(data.index, data['volume'])
----> 8 ax1.set_xlim([data.index.date(2020, 1, 16), data.index.date(2020, 1, 17)])
      9 
     10 plt.show()

TypeError: 'numpy.ndarray' object is not callable

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

4

1 回答 1

0

Axes.set_xlim想要leftright边界作为单独的参数,而不是列表/数组。

对于时间戳,您可以使用Pandas.timestamp.

这应该做你想要的:

ax1.set_xlim(pd.Timestamp('2020-01-16 00:00:00'), pd.Timestamp('2020-01-17 00:00:00'))
于 2021-03-18T02:58:03.207 回答