繁体   English   中英

如何根据 Pandas Dataframe 中的列值对 Plot 上的特定数据点进行着色

[英]How to Color Specific Data Points on a Plot Based on Column Value in Pandas Dataframe

假设我有以下数据集:

d = {'Team': ['Duke', 'LSU'], 'Wins': [20, 18], 'Losses' : [5, 7], 'Conference' : ['ACC', 'SEC']}
df = pd.DataFrame(data=d)
df

    Team    Wins   Losses   Conference
0   Duke     20      5          ACC
1   LSU      18      7          SEC

然后我做了一个散点图

plt.plot(d['Losses'], d['Wins'], 'o')

我想通过会议对我的散布 plot 进行颜色编码。 更具体地说,我只想将 SEC 团队涂成红色,而所有其他数据点都是默认的蓝色。 此外,我将如何 go将杜克红色着色,而其他所有数据点都是蓝色? 我的数据集中有大约 200 个团队。 我怎么会这样做呢? 谢谢!

IIUC你可以试试

import pandas as pd
import numpy as np

d = {'Team': ['Duke', 'LSU'], 
     'Wins': [20, 18], 
     'Losses' : [5, 7], 
     'Conference' : ['ACC', 'SEC']}
df = pd.DataFrame(data=d)

df["color"] = np.where(df["Conference"]=="SEC", "red", "blue")

df.plot(x='Losses', y='Wins', kind="scatter", color=df["color"]);

如果你想对 Duke 使用相同的逻辑,你只需要相应地用np.where更改行。

更新对于这种特殊情况,我认为您应该看看plotly

import plotly.express as px
px.scatter(df,x="Losses", y="Wins", color="Conference", hover_name="Team")

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM