问题描述
我经常遇到这个问题;我目前的解决方案是创建额外的数据框,我觉得必须有一个更简单的解决方案。
如果我想绘制人口与萧条 (%) 我会写:
ax = df.plot.scatter(x='Population',y='Depression (%)')
这不是很有帮助,因为有明确的线路链接到特定国家 (df['Country'])。有没有一种简单的方法可以绘制不同国家的不同系列(颜色/形状/等)的散点图?
现在我使用 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