我有一些时间序列,我为此创建了季度和年度总和。我想把两者结合在一起,但情节只显示了更频繁的情节。 merged.plot()
给出:
这是一些示例数据。
>>> merged.head()
shopping_weightedQ shopping_weightedA
status emp unemp emp unemp
date
2003-01-01 653.964346 696.178441 695.374248 755.180039
2003-04-01 702.233863 647.461856 NaN NaN
2003-07-01 665.619252 774.226719 NaN NaN
2003-10-01 757.189689 932.586052 NaN NaN
2004-01-01 670.114570 751.718014 703.479640 839.858502
答案 0 :(得分:3)
你的问题是NaNs。 Pandas将数据传递给matplotlib进行绘图。当matplotlib看到NaN时,它会停止它正在生成的线,并且在它看到另一个可绘制值之前不会重新开始。由于您正在绘制线条,因此您无法查看年度数据的任何内容,因为从来没有两个值可以通过线条连接。例如,如果您使用merged.plot(style='o')
绘制点数,则可以查看所有数据。
但你可能喜欢线条。我可以想到两种方法。
第一个落入matplotlib
import matplotlib.pylab as plt
plt.figure()
plt.plot( merged.shopping_weightedQ.index, merged.shopping_weightedQ )
plt.plot( merged.shopping_weightedA.dropna().index, merged.shopping_weightedA.dropna() )
第二个使用pandas绘图,共享matplotlib轴:
import matplotlib.pylab as plt
plt.figure()
ax = plt.gca()
merged.shopping_weightedA.dropna().plot(ax=ax)
merged.shopping_weightedQ.plot(ax=ax)
请注意,由于我目前还不完全了解的原因,可能与索引和x轴有关,如果两个绘图命令相反,并且你绘图,熊猫方法不起作用在Q之后,除非您还为每个绘图命令添加x_compat = True参数。
在每种情况下,您都可能不得不使用图例名称。