【发布时间】:2021-09-20 15:36:11
【问题描述】:
我已经开始学习 matplotlib,并且一直在为一项任务苦苦挣扎。我有一个类似于下面的数据框。我想用年份作为 x 轴值和每个城市(即每一行)作为它自己的情节来绘制它。看似简单的任务(实际上是在 Excel 中单击一次),但我仍然没有找到一种可行的方法来完成它。每个具有相似数据框的教程似乎都交换了轴(一列中的年份)。
| City | 1990 | 1991 | ... | 2019 | 2020 |
|---|---|---|---|---|---|
| city1 | 0 | 2 | ... | 5 | 7 |
| city2 | 0 | 1 | ... | -5 | -8 |
| city3 | 0 | -5 | ... | -17 | -30 |
我得到的最接近的方法是使用 2 个 for 循环遍历行和年份并将每个值附加到列表(toPlot 是我的数据框):
years = range(1990,2021)
for rowIndex in range(0,9):
datapoints = []
for year in years:
datapoints.append(toPlot.loc[rowIndex, year])
plt.plot(years,datapoints)
它对 2 行按预期工作,但是当它达到 rowIndex = 2 时,由于某种原因它会引发 KeyError。所以在我的 9 行中,只有两行被绘制。 as seen here
但是,我还需要获取传说中的城市名称,我不知道我的方法是否可行。
我如何最好地解决这个问题并正确绘制值?
【问题讨论】:
标签: python pandas matplotlib jupyter-notebook