”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何根据Python中的列值为散点图中的点指定颜色?

如何根据Python中的列值为散点图中的点指定颜色?

发布于2024-11-10
浏览:543

How to Assign Colors to Points in Scatter Plots Based on Column Values in Python?

Python 中按列值对散点图着色

R 中 ggplot2 的多功能性允许根据列将颜色无缝分配给数据点价值观。也可以使用 pandas 数据帧和 Matplotlib 在 Python 中复制此功能。

使用 Pandas 和 Matplotlib

要将颜色映射到 Matplotlib 中的值,请考虑以下步骤:

  1. 创建颜色字典:定义一个字典,将分类列中的唯一值映射到相应的颜色。这可确保跨数据点的颜色分配保持一致。
  2. 添加颜色列:在数据框中创建一个新列,为分类列中的每个值分配相应的颜色。
  3. 绘制散点图:使用matplotlib.pyplot.scatter中的c参数指定颜色列作为颜色参数。

下面是一个示例实现:

def dfScatter(df, xcol='Height', ycol='Weight', catcol='Gender'):
    fig, ax = plt.subplots()
    categories = np.unique(df[catcol])
    colors = np.linspace(0, 1, len(categories))
    colordict = dict(zip(categories, colors))  

    df["Color"] = df[catcol].apply(lambda x: colordict[x])
    ax.scatter(df[xcol], df[ycol], c=df.Color)
    return fig

示例用法

考虑一个包含身高、体重和性别列的数据框。要创建根据性别列分配颜色的散点图:

df = pd.DataFrame({'Height':np.random.normal(size=10),
                       'Weight':np.random.normal(size=10),
                       'Gender': ["Male","Male","Unknown","Male","Male",
                                  "Female","Did not respond","Unknown","Female","Female"]})    
fig = dfScatter(df)

这将生成一个散点图,其中性别列决定每个数据点的颜色。

版本声明 本文转载于:1729320437如有侵犯,请联系[email protected]删除
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3