当我使用matplotlib绘制包含三个浮点值的pandas系列时,索引是日期时间,我得到一个错误的图,中间有一条垂直线。它看起来像这样:
我几个小时都在苦苦挣扎。我终于能够在以下Python代码中使用这三个数据点重现它:
import pandas as pd
import matplotlib.pyplot as plt
data = """\
2013-04-16 08:50:00.080120 / 56.70999
2013-04-16 08:53:34.165183 / 56.59997
2013-04-16 08:59:09.676249 / 55.70001\
"""
fmt = "%Y-%m-%d %H:%M:%S.%f"
val = [float(a.split(' / ')[1]) for a in data.split('\n')]
indx = [pd.datetime.strptime(a.split(' / ')[0], fmt) for a in data.split('\n')]
s = pd.Series(val, index=indx)
s.plot()
plt.show()
如果我放大线,我可以看到它在正确的日期(4月16日)放置,但是恰好在午夜,而不是在数据指定的时间放置(并由print
回显ing s
)。
答案 0 :(得分:0)
您使用的是哪个版本的matplotlib和pandas?
使用pandas v0.10.1.dev-f73128e
和matplotlib v1.2.1
无论是在交互模式下还是从python脚本中进行Ipython中的绘图,我都能得到正确的数字。 (顺便说一句,我使用python 2.7)