如何根据X轴上的时间绘制两个变量的折线图,以便在不重叠日期的情况下获得开始日期和结束日期以及两者之间尽可能多的日期(季度)。
这是我在Python中的第一次绘图,我对Python还是个新手。我在stackoverlow上尝试了所有可能的建议,但没有得到我想要的。
我有一个有4列的数据框。我想为某个特定的州选择行,并根据日期绘制Var 1和Var 2的曲线图。日期是10年来的季度数据。
Date State Var1 Var2 Var3
0 01-Dec-05 New South Wales 6718023 81.8 5.293757
1 01-Mar-06 New South Wales 6735528 80.8 4.978780
2 01-Jun-06 New South Wales 6742690 82.3 5.288439
3 01-Sep-06 New South Wales 6766133 82.0 5.200780
4 01-Dec-06 New South Wales 6786160 82.7 4.811675
5 01-Mar-07 New South Wales 6815359 81.9 4.957025
6 01-Jun-07 New South Wales 6834156 85.2 4.574077
7 01-Sep-07 New South Wales 6859736 87.3 4.655129
8 01-Dec-07 New South Wales 6883852 89.2 4.647184
9 01-Mar-08 New South Wales 6919907 88.5 4.337943
我在密谋
plt.plot(mydf[mydf['State'] == 'New South Wales']['Date'], mydf[mydf['State'] == 'New South Wales']['variable1'], '--bD', mydf[mdf['State'] == 'New South Wales']['variable2'], '--bD')
我尝试使用np.arrange,plot.xticks(日期的长度,标签,旋转),ticker.MultipleLocator和其他一些东西。我不能让任何东西工作。
此外,我还试图得到一个更大的图来显示所有的日期。也不成功。我希望在开始和结束日期内尽可能多的日期。事实上,月份和年份就足够了,因为我有季度数据。
这张图现在看起来像这样,
simple plot with cluttered dates
如果我添加
plt.xticks(np.arange(0, 39, step=2))
我得到了一个很好的图表,但结束日期不正确。
将非常感谢任何帮助我这一点的建议。
编辑:我根据建议对我的数据框架进行了索引。日期和州列一起形成了数据帧的索引,因为每个州的日期都是重复的。
我使用以下命令再次绘制
plt.plot(df4[df4['State'] == 'New South Wales']['Var1'], '--bD', df4[df4['State'] == 'New South Wales']['Var2'], '--rD')
但是现在x轴是一个索引而不是日期。
请帮帮我!
发布于 2018-04-11 13:52:02
对于简单的2D绘图,请尝试以下命令
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('/home/mrki/np.xls')
df.set_index('Date', inplace=True)
plt.plot(df['var1'],'r--')
plt.show()
将日期设置为索引是很重要的,您可以添加更多变量。
https://stackoverflow.com/questions/49767116
复制相似问题