seaborn中条形图条和误差条的美学

Posted

技术标签:

【中文标题】seaborn中条形图条和误差条的美学【英文标题】:Aesthetics of barplot bars and error bars in seaborn 【发布时间】:2015-03-19 00:17:48 【问题描述】:

我正在使用 seaborn 库来可视化数据,并且我想更改有关输出图表的一些内容以供发布。我希望误差线更窄,带有大写字母,并且我希望所有误差线周围的边框都是黑色的。

我想有一些方法可以使用 pyplot(或者可能是 sns.set_context 中的 rc 字典)来更改绘图,但我不知道该怎么做。

colors = ["black", "grey", "white"]
g = sns.barplot("TYPEMOD", "SCORE", ci=68, data=final_data,  palette=sns.xkcd_palette(colors))

我试过了:

g.errorbar(capthick=2)

但这给出了一个错误,因为需要我忽略 sns.barplot 中的错误栏(通过设置 ci 参数生成,所以我设置 ci=None,然后我会做全新的错误带有 g.errorbar 的条形图)。我觉得必须有某种方法可以在没有所有这些努力的情况下做到这一点,因为这似乎是一个微小的变化,但我在 seaborn 文档中找不到任何东西。

我还想将条形图中所有条形的边框更改为黑色。

【问题讨论】:

【参考方案1】:

barplot 并没有在底层使用errorbar,它只是在 CI 的区间内画线,因此无法添加大写字母。误差条宽度本身只是lines.linewidth rc 参数的比例因子,因此您可以临时设置它来控制它:

with mpl.rc_context("lines.linewidth": 1):
    colors = ["black", "grey", "white"]
    g = sns.barplot("TYPEMOD", "SCORE", ci=68, data=final_data,
                    palette=sns.xkcd_palette(colors))

【讨论】:

哦刚刚注意到您提到您使用的是set_context,您还可以将该信息传递给该函数中的rc 参数,它将适用于所有数字。

以上是关于seaborn中条形图条和误差条的美学的主要内容,如果未能解决你的问题,请参考以下文章

ChartJS中条形图的边框半径

Seaborn catplot(kind ='count')将条形图更改为饼形图

更改 ggplot2 中条形图和图例的默认颜色

R语言绘图——条形图/柱状图

在条形图条上重复填充图像(条形自定义)

用matplotlib绘制带误差的条形图及中英文字体设置