Pandas图给出正确的图,而matplotlib给出错误

时间:2017-10-06 06:29:27

标签: python-3.x pandas matplotlib plot python-datetime

我有一个数据集,我正在尝试针对date-time可视化数据。我通过

将日期时间字符串转换为date-time格式
 dataset = pd.read_csv('price.csv')
 dataset2=dataset[['Date','MCP']]
 dataset2['Date']=pd.to_datetime(dataset2['Date'])

现在正在matplotlib

中绘图
dataset2.plot()

correct plot

但同样,matplotlib

plt.plot(dataset2.index,dataset2['MCP'])

wrong plot

有人可以向我解释发生了什么吗?我是否使用错误的方法或其他方式将string转换为date-time

2 个答案:

答案 0 :(得分:0)

我找到了问题的解决方案,但如果有人能解释原因

dataset2['Date']=pd.to_datetime(dataset2['Date']).dt.strftime('%d/%m/%Y %H:%M:%S')
dataset2['Date']=pd.to_datetime(dataset2['Date'])

Pandas默认将其转换为不同的格式,因此我必须将其转换为matplotlib可接受的格式正确的字符串,然后再将字符串转换为日期时间。还有其他办法吗?

plt.plot(dataset2['Date'],dataset2['MCP'])

plot

答案 1 :(得分:0)

我弄清楚matplotlib解释了什么,这里是: 只需使用

简单转换为日期时间即可
dataset2['Date']=pd.to_datetime(dataset2['Date'])

snapshot of data

获取前96个值(之后日期发生变化),它可以正常工作。 但在那之后(第二天采取价值观等等)它会考虑' Day'时间戳的一部分作为月份,并延伸到下个月(直到特定值出现)。

erroneous plot

P.S.-不得不写第二个答案因为不允许嵌入2个以上的图像直到声誉10