来自具有日期时间索引的pandas系列的不正确的图

时间:2013-04-16 07:34:07

标签: matplotlib pandas

当我使用matplotlib绘制包含三个浮点值的pandas系列时,索引是日期时间,我得到一个错误的图,中间有一条垂直线。它看起来像这样:

strange vertical line

我几个小时都在苦苦挣扎。我终于能够在以下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)。

1 个答案:

答案 0 :(得分:0)

您使用的是哪个版本的matplotlib和pandas?

使用pandas v0.10.1.dev-f73128e和matplotlib v1.2.1无论是在交互模式下还是从python脚本中进行Ipython中的绘图,我都能得到正确的数字。 (顺便说一句,我使用python 2.7)

figure