python - Matplotlib:如何根据列值为散点图圆圈赋予颜色

标签 python matplotlib scatter-plot

我的数据由 3 列组成:

zone | pop1 | pop2
----   ----   ----
3      4500   3800
2      2800   3100
1      1350   1600
2      2100   1900
3      3450   3600

我想绘制 pop1pop2 的散点图,其中圆圈的颜色基于 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']])

这给出了输出:

enter image description here

这需要您为区域中的值创建一个颜色字典。此外,您还将花费一些额外的时间来理解列表。

关于python - Matplotlib:如何根据列值为散点图圆圈赋予颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54103221/

相关文章:

python - 在颜色图中插入标记线

python - 使用pyplot在python中的多个子图上绘制水平线

python - 如何使用 numpy 从另一个数组的列(维度为 2*4)有效地形成一个 2D 数组,给出列号索引数组

python - 按 pandas 中的列组合过滤

python - 在多个轴上具有多个刻度的雷达图

charts - 向谷歌散点图添加标签

javascript - 如何根据值打印不同的路径颜色?

python - 你如何在 Linux 中抓取选定的屏幕区域?

python - 两个文件的相交区域并打印组合结果

python-3.x - 根据 CityGML 数据绘制建筑表面