无法通过datafram.plot()获得所需的折线图

时间:2018-12-06 06:56:12

标签: pandas data-visualization

years = list(map(str,range(1980,2014)))
df_can.loc[['Haiti'],years].plot(kind='line')
plt.title('Immigration from Haiti')
plt.ylabel('Number of immigrants')
plt.xlabel('Years')
plt.show()

这是我从上面的代码中得到的情节  https://i.stack.imgur.com/nqM5F.png,而不是折线图。我尝试了所有仍然无法获得所需折线图的方法。

2 个答案:

答案 0 :(得分:0)

我没有您的数据,因此无法重新创建图形,但是我很确定您只是缺少一个for循环。

years = list(map(str,range(1980,2014)))
for i in years:
    df_can.loc[['Haiti'],i].plot(kind='line')
plt.title('Immigration from Haiti')
plt.ylabel('Number of immigrants')
plt.xlabel('Years')
plt.show()

现在,按照您的代码立场,您正在尝试将所有年份和所有数据绘制在一行上。它不直观地知道将其分解。

答案 1 :(得分:0)

要绘制折线图,​​我们需要两列数据,但以上代码为两行,一列包含移民数据,另一列包含1980-2013年。因此,我们将其转置为两列,由于年份是字符串中的列名,因此将它们转换为整数数据类型。

years = list(map(str,range(1980,2014))
df_canada=df_can.loc[['Haiti'],years].plot(kind='line').transpose()
df_canada.index= df_canada.index.map(int)
plt.title('Immigration from Haiti')
plt.ylabel('Number of immigrants')
plt.xlabel('Years') plt.show()