Python 中按列值对散点图着色
R 中 ggplot2 的多功能性允许根据列将颜色无缝分配给数据点价值观。也可以使用 pandas 数据帧和 Matplotlib 在 Python 中复制此功能。
使用 Pandas 和 Matplotlib
要将颜色映射到 Matplotlib 中的值,请考虑以下步骤:
下面是一个示例实现:
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)
这将生成一个散点图,其中性别列决定每个数据点的颜色。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3