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

Is there a simple way to plot multiple series on one pandas scatter plot?

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

这是一个数据示例,其中我有多个具有多个属性的国家:

如果我想绘制人口与萧条 (%) 的关系图,我会写:

ax = df.plot.scatter(x='Population', y='Depression (%)')

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

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

如有任何想法或意见,我们将不胜感激!谢谢!

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

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

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