熊猫日期在月初错误绘制

时间:2018-04-13 12:15:12

标签: python pandas matplotlib

我在Pandas有一个时间序列,日期是月末:

import pandas as pd
s = pd.Series({
    '2018-04-30':     0,
    '2018-05-31':     1,
    '2018-06-30':     0,
    '2018-07-31':    1,
    '2018-08-31':    0,
    '2018-09-30':    1,
})
s.index = pd.to_datetime(s.index)

当我用matplotlib绘制这个图时,我得到了我期望的结果,月末的点数和2018年5月之前开始的行:

import matplotlib.pyplot as plt
plt.plot(s)

Matplotlib graph

但是熊猫'原生情节函数绘制了月初的点数:

s.plot()

Pandas graph

我想也许这只是熊猫标签&4月30日'作为' April',但似乎并非如此:

s2 = pd.Series([0.2, 0.7], index=pd.date_range('2018-05-01', '2018-05-02'))
s.plot()
s2.plot()

Pandas plot with first-of-month also plotted

这是Pandas中的错误还是我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

这似乎是熊猫的一个错误。为了与matplotlib相同,您可以始终使用x_compat=True。然后,这也允许使用matplotlib.dates格式化程序和定位器。

s = pandas.Series(...)
s.plot(x_compat=True)