簡體   English   中英

python seaborn:自定義線 plot 和散點圖一起(也是圖例)

[英]python seaborn: customize line plot and scatterplot together (also legend)

df = pd.DataFrame({
           'id': {0: -3, 1: 2, 2: -3, 3: 1},
           'val': {0: 0.4, 1: 0.03, 2: 0.88, 3: 1.3},
           'indicator': {0: 'A', 1: 'A', 2: 'B', 3: 'B'},
           'count': {0: 40000, 1: 5779, 2: 3000, 3: 31090}
          })
df

我希望得到一個 plot ,如下所示: 在此處輸入圖像描述

我知道下面的代碼,我可以得到一個接近的 plot 但我想讓線條大小也隨着“count”變量而變化,但是當我嘗試添加 size = 'count' 時,我沒有得到有意義的 plot 並且對於圖例,我只想為“指標”提供一個圖例,而不是兩個:

plt.figure()
sns.lineplot(x = 'id', y = 'val', hue = 'indicator', data = df)
sns.scatterplot(x = 'id', y = 'val', hue = 'indicator', size = 'count', data = df)

在此處輸入圖像描述

要回答問題的第二部分 - 您可以像這樣禁用線圖圖例:

sns.lineplot(x = 'id', y = 'val', hue = 'indicator', data = df, legend=False)

這將為您留下兩個圖例組 - 一個用於顏色,一個用於尺寸。 這是最簡單的方法,但您也可以修改plt.legend()並從頭開始構建自己的方法。

至於使線條從一個點動態變化到另一個點,我認為你不能使用 seaborn 來做到這一點。 對於類似的事情,你需要一個更底層的庫,比如散景或直接使用 matplotlib 來繪制線標記之間的連接線,調整它們的不同大小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM