data = {'continent': ['Asia', 'Africa', 'Europe', 'North America', 'South America', 'Australia'],
       'population_density': [150, 44, 72, 22, 25, 3]}
df = pd.DataFrame(data)
plt.boxplot(df['population_density'], labels=df['continent'])
plt.title('Population Densities by Continent')
plt.ylabel('Population Density')    

我的代码在上面.当我运行它时,我得到错误"ValueError:标签和X的尺寸必须兼容",但不知为什么,6个数据点有6个标签.

我的问题的条件是"一个框图区域必须有六个栏目,因为有六个大陆".

推荐答案

人口密度通常用bar graph表示.Here是一个支持这句话的引语:

条形图可能是显示人口的最通用的方式 数据.它们通常被用来显示随着时间的推移人口增长,但它们 还可以显示事物的相对比例等不同 社会中的群体,或者他们可以用来比较 不同的地方.

要制作条形图,您需要在代码中添加need to change行:

plt.boxplot(df['population_density'], labels=df['continent'])

对此:

plt.bar(df['continent'], df['population_density'])

这是运行plt.show()后的结果图:

bar_graph

如果您使用really want来使用box plot,您可以替换以下内容:

plt.boxplot(df['population_density'], labels=df['continent'])

有了这一点:

df.boxplot(by='continent')

这是运行plt.show()后的结果图:

box_plot

正如你所看到的,它does not看起来相当正确.

Python相关问答推荐

从webhook中的短代码(而不是电话号码)接收Twilio消息

Python多处理:当我在一个巨大的pandas数据框架上启动许多进程时,程序就会陷入困境

Python json.转储包含一些UTF-8字符的二元组,要么失败,要么转换它们.我希望编码字符按原样保留

Python库:可选地支持numpy类型,而不依赖于numpy

在极性中创建条件累积和

形状弃用警告与组合多边形和多边形如何解决

转换为浮点,pandas字符串列,混合千和十进制分隔符

如何指定列数据类型

合并帧,但不按合并键排序

在Python中使用if else或使用regex将二进制数据如111转换为001""

如何在BeautifulSoup/CSS Select 器中处理regex?

如何防止Pandas将索引标为周期?

搜索按钮不工作,Python tkinter

根据Pandas中带条件的两个列的值创建新列

将CSS链接到HTML文件的问题

为用户输入的整数查找根/幂整数对的Python练习

如何获得3D点的平移和旋转,给定的点已经旋转?

如何从比较函数生成ngroup?

如何删除剪裁圆的对角线的外部部分

Pandas:新列,从列表中采样,基于列值