作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的数据由 3 列组成:
zone | pop1 | pop2
---- ---- ----
3 4500 3800
2 2800 3100
1 1350 1600
2 2100 1900
3 3450 3600
我想绘制 pop1
和 pop2
的散点图,其中圆圈的颜色基于 zone
的值。
到目前为止我有以下代码:
df = pd.read_csv(file_path)
plt.scatter(df['pop1'],df['pop2'], s = 1)
如何给出不同的颜色,比如说红色、绿色和蓝色,分别对应于区域值 1、2 和 3?
最佳答案
在不使用额外的库的情况下,您还可以使用以下内容:
colors = {1:'red', 2:'green', 3:'blue'}
for i in range(len(df)):
plt.scatter(df['pop1'].iloc[i], df['pop2'].iloc[i],
c=colors[df['zone'].iloc[i]])
编辑:您不需要使用循环,您可以使用如下内容:
colors = {1:'red', 2:'green', 3:'blue'}
plt.scatter(df['pop1'], df['pop2'],
c=[colors[i] for i in df['zone']])
这给出了输出:
这需要您为区域
中的值创建一个颜色字典。此外,您还将花费一些额外的时间来理解列表。
关于python - Matplotlib:如何根据列值为散点图圆圈赋予颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54103221/
我是一名优秀的程序员,十分优秀!