首页  >  文章  >  后端开发  >  如何根据Python中的列值为散点图中的点指定颜色?

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

Susan Sarandon
Susan Sarandon原创
2024-10-19 14:49:02748浏览

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 参数指定颜色列作为颜色参数。

这里是一个示例实现:

<code class="python">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</code>

用法示例

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

<code class="python">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)</code>

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

以上是如何根据Python中的列值为散点图中的点指定颜色?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn