多列绘图Python

时间:2018-11-09 18:27:50

标签: python python-3.x pandas dataframe graph

我有以下形式的数据:

Year      Month      State    Value
2001       Jan        AK        80
2001       Feb        AK        40
2001       Mar        AK        60
2001       Jan        LA        70
2001       Feb        LA        79
2001       Mar        LA        69
2001       Jan        KS        65
.
.

此数据仅适用于2001年,每个州都重复月份。

我想要一个基于状态的基本数据图,其中以X轴为月,Y轴为值。

当我绘图时:

g = df.groupby('State')

for state, data in g:
    plt.plot(df['Month'], df['Value'], label=state)

plt.show()

我得到一个非常古怪的图形。

enter image description here

我知道根据单独绘制这些图形,它们在行为上并没有很大差异,但是它们甚至几乎没有这么多重叠。

有没有办法建立更多连续图?

1 个答案:

答案 0 :(得分:1)

您的问题是,在您的for循环中,您引用的是df,它仍然具有所有状态的数据。试试:

for state, data in g:
    plt.plot(data['Month'], data['Value'], label = state)
plt.legend()
plt.show()

希望这会有所帮助!