簡體   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