[英]How to use the `split` argument in a `seaborn.violinplot` in a `seaborn.FacetGrid`
任務是制作一個FacetGrid
,其中包含帶有拆分小提琴的violinplot
。
設置包含沒有拆分的小提琴圖的 FacetGrid:
import numpy as np
import pandas as pd
import seaborn as sns
np.random.seed(42)
df = pd.DataFrame(
{
"value": np.random.rand(20),
"condition": ["true", "false"]*10,
"category": ["right"]*10 + ["wrong"]*10,
}
)
g = sns.FacetGrid(data=df, col="category", hue="condition", col_wrap=5)
g.map(sns.violinplot, "value");
以下是小提琴 plot 將部分數據顯示為帶有“拆分”的小提琴圖:
p = sns.violinplot(
data=df[df["category"]=="right"],
x="value",
y="category",
hue="condition",
split=True
)
在map
中添加 split 參數不會產生所需的分割圖。 就好像 split 被忽略了:
g = sns.FacetGrid(data=df, col="category", hue="condition", col_wrap=5)
g.map(sns.violinplot, "value", split=True);
sns.__version__ # '0.12.1'
對於這些catplot
,似乎 seaborn 不允許y
為空。 您可以通過創建虛擬 y 值來解決此問題:
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np
np.random.seed(42)
df = pd.DataFrame({"value": np.random.rand(20),
"condition": ["true", "false"] * 10,
"category": ["right"] * 10 + ["wrong"] * 10})
df["y"] = "" # create a dummy column to be used as "y="
sns.catplot(data=df, x="value", y="y", col="condition", hue="category", kind="violin", split=True)
plt.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.