有没有一种简单的方法可以在一个熊猫散点图上绘制多个系列?

时间:2021-02-08 23:02:11

标签: python pandas matplotlib scatter

我经常遇到这个问题;我目前的解决方案是创建额外的数据框,我觉得必须有一个更简单的解决方案。

这是一个数据示例,其中我有多个国家/地区具有多个属性: enter image description here

如果我想绘制人口与萧条 (%) 我会写:

ax = df.plot.scatter(x='Population', y='Depression (%)') enter image description here

这不是很有帮助,因为有明确的线路链接到特定国家 (df['Country'])。有没有一种简单的方法可以绘制不同国家的不同系列(颜色/形状/等)的散点图?

现在我使用 groupby 来分离单个国家并将它们绘制在相同的轴上(ax = ax)。

任何想法或意见将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:1)

试试 c="Country" 然后如果你想要一些漂亮的颜色你可以去 colormap='viridis' 例如 documentation

ax2 = df.plot.scatter(x='length',
                      y='width',
                      c='species',
                      colormap='viridis')

enter image description here

由于您使用字符串作为变量,我们不能直接使用这种方法,需要将数据转换为数字。这可以通过编写: c=df.country.astype("category").cat.codes