9

试图弄清楚如何修改 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")

带四分位数的默认小提琴图

期望的结果是能够单独更改小提琴图的两个部分的颜色,例如像这样以提高可读性:

期望的输出

我怎样才能做到这一点?

感谢任何见解

更新:根据@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)

结果:

小提琴修正线

4

1 回答 1

7

您可以使用以下命令从您的 ax 变量中访问线条,以设置线条类型、颜色和饱和度:

 for l in ax.lines:
     l.set_linestyle('-')
     l.set_color('black')
     l.set_alpha(0.8)

这将为所有水平线创建一条黑色实线。如果您可以确定 ax 中的哪些线条与您感兴趣的线条相对应,那么您可以根据需要指定不同的颜色和样式

于 2020-03-31T10:07:22.460 回答