Seaborn中violinplot的四分位数线属性

11

尝试找出如何修改 seaborn violinplot 中四分位数的线性属性(颜色、厚度、样式等)。

他们网站上的示例代码:

import seaborn as sns

sns.set(style="whitegrid")

tips = sns.load_dataset("tips")

ax = sns.violinplot(x="day", y="total_bill", hue="sex",

                    data=tips, palette="Set2", split=True,linestyle=':',

                    scale="count", inner="quartile")

Default violinplot with quartiles

希望达到的效果是能够分别更改小提琴图中两部分的颜色,例如像这样改进可读性:

Desired output

如何实现这个功能?

非常感谢任何见解

更新:根据 @kynnem 的回答,可以使用以下方法分别更改中位数和四分位线:

import seaborn as sns

sns.set(style="whitegrid")

tips = sns.load_dataset("tips")

ax = sns.violinplot(x="day", y="total_bill", hue="sex",

                    data=tips, palette="Set2", split=True,linestyle=':',

                    scale="count", inner="quartile")
for l in ax.lines:
    l.set_linestyle('--')
    l.set_linewidth(0.6)
    l.set_color('red')
    l.set_alpha(0.8)
for l in ax.lines[1::3]:
    l.set_linestyle('-')
    l.set_linewidth(1.2)
    l.set_color('black')
    l.set_alpha(0.8)

结果:

ViolinModifiedLines

1个回答

8
你可以使用以下方法访问ax变量中的线条,以设置线条类型、颜色和饱和度:
 for l in ax.lines:
     l.set_linestyle('-')
     l.set_color('black')
     l.set_alpha(0.8)

这将为所有水平线创建一个实心的黑色线条。如果您可以确定ax中哪些线与您感兴趣的线相对应,则可以按照您希望的不同颜色和样式进行指定。


我并不知道。 - kynnemall
1
嗨@RedSparrow,我很高兴你找到了我的答案有用。你能考虑把它选为你问题的答案吗? - kynnemall

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接