我有一个df
,我从中索引了europe_n
,并绘制了一个条形图。
europe_n
(r=5,c=45),看起来像这样。;
df['Country']
(string)&df['Population']
(numeric)variable/s。
plt.bar(df['Country'],df['Population'], label='Population')
plt.xlabel('Country')
plt.ylabel('Population')
plt.legend()
plt.show()
这给了我;
目标:我试图将y轴限制更改为从0开始,而不是43,094。
我运行了,plt.ylim(0,500000)
方法,但y轴没有变化,抛出了一个错误。matplotlib库有什么建议吗?
错误;
**结论:**我无法按我想要的方式绘制图形的原因是因为所有列都是object
dtype。我只有在Jupyter抛出一个错误时才意识到这一点,声明“没有整数要绘制”。最终将数字列Population
转换为int
类型,代码工作,我得到了图形!
3条答案
按热度按时间snz8szmq1#
ax.set_ylim([0,max_value])
请确保您已经导入了以下软件包,
你的代码应该像这样:
rekjcdws2#
https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.ylim.html
设置y限制
plt.ylim(开始,结束)
设置x限制
plt.xlim(start,end)
示例
utugiqy63#
问题是在y轴上绘制的值是字符串而不是整数。您需要将这些值转换为整数,它将解决问题。在这种情况下,
population
阵列需要更新:有详细回答:Matplotlib - bar chart starts does not start with 0