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,而不是折线图。我尝试了所有仍然无法获得所需折线图的方法。
答案 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()