[英]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:
在一個更復雜的例子中結合units
和hue
:
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.