簡體   English   中英

在 seaborn 中,如何在不使用“hue”參數的情況下按變量分組?

[英]In seaborn, how can I group by a variable without using the "hue" argument?

在 seaborn 中,是否可以在不使用hue參數的情況下根據列對觀察結果進行分組?

例如,我怎樣才能讓這兩條線以相同的顏色顯示,但作為單獨的線顯示?

在此處輸入圖像描述

生成它的代碼如下。

import pandas as pd
import seaborn as sns

df = pd.DataFrame(
    {
        'group': ["group01", "group01", "group02", "group02"],
        'x': [1, 2, 3, 5],
        'y': [2, 4, 3, 5]
    }
)
sns.lineplot(df, x='x', y='y', hue='group')
plt.show()

這在 R 的 ggplot 中很簡單,只需將 group 變量映射到group ,而不是colour 例如,請參閱

我想這樣做的原因是我想以相同的顏色顯示多個重疊的圖。 這有助於顯示不同數據集之間的可變性。 我用 seaborn 的hue得到的不同顏色是不必要的,而且會分散注意力,尤其是當有幾十種顏色時。 這是我要創建的那種 plot:

在此處輸入圖像描述

seaborn.lineplot有一個units參數,這似乎等同於 ggplot 的group

單位:向量或數據中的鍵

分組變量識別抽樣單位。 使用時,將為具有適當語義的每個單元繪制一條單獨的線,但不會添加圖例條目。 當不需要精確標識時,可用於顯示實驗復制的分布。

sns.lineplot(df, x='x', y='y', units='group')

Output:

在此處輸入圖像描述

在一個更復雜的例子中結合unitshue

df = pd.DataFrame(
    {
        'group': ["group01", "group01", "group02", "group02", "group01", "group01"],
        'group2': ['A', 'A', 'A', 'A', 'B', 'B'],
        'x': [1, 2, 3, 5, 2, 4],
        'y': [2, 4, 3, 5, 3, 2]
    }
)
sns.lineplot(df, x='x', y='y', units='group', hue='group2')

Output:

在此處輸入圖像描述

暫無
暫無

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

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