我想将这个小提琴图http://seaborn.pydata.org/generated/seaborn.violinplot.html(第四个例子,split=True)与这个图http://seaborn.pydata.org/examples/elaborate_violinplot.html结合起来。
实际上,我有一个数据框架,其中包含一列成功
(是或否)和几个数据列。例如:
df = pd.DataFrame(
{"Success": 50 * ["Yes"] + 50 * ["No"],
"A": np.random.randint(1, 7, 100),
"B": np.random.randint(1, 7, 100)}
)
A B Success
0 6 4 Yes
1 6 2 Yes
2 1 1 Yes
3 1 2 Yes
.. .. .. ...
95 4 4 No
96 2 1 No
97 2 6 No
98 2 3 No
99 2 1 No
我想为每个数据列绘制小提琴图。这可以通过以下方式实现:
import seaborn as sns
sns.violinplot(data=df[["A", "B"]], inner="quartile", bw=.15)
但是现在,我想按照Success
列来拆分小提琴图。但是,使用hue="Success"
会出现错误Cannot use 'hue' without 'x' or 'y'
。那么,我该如何才能根据“Success”列来绘制小提琴图呢?
split
设置为True。从文档中可以看到:“当使用带有两个级别的变量进行嵌套时,将split设置为True将为每个级别绘制一半的小提琴。这可以使直接比较分布更容易。” - Yurii