减小 seaborn pointplot 的线宽度。

8
import seaborn as sns
sns.set(style="ticks")
exercise = sns.load_dataset("exercise")
g = sns.factorplot(x="time", y="pulse", hue="kind", data=exercise)

在上面的图中,如果我将比例指定为0.5,它会减小线条的宽度,但不会减小置信区间线的宽度。有没有办法减小置信区间线的宽度?
2个回答

15
如果您想改变图中所有线条(除了轴)的宽度,可以通过seaborns的set函数简单地更改matplotlib rcparam参数"lines.linewidth"。只需在调用sns.set时将rc={"lines.linewidth":0.7}作为参数添加即可。同样,您也可以更改所有(或至少大部分)默认设计选项。
例如:
import seaborn as sns
sns.set(style="ticks", rc={"lines.linewidth": 0.7})
exercise = sns.load_dataset("exercise")
g = sns.factorplot(x="time", y="pulse", hue="kind", data=exercise)

这将导致以下绘图结果:

enter image description here

原始绘图(不包括 rc={"lines.linewidth":0.7})如下:

enter image description here


6
你可以获取第一行的线宽,并将其设置为所有其他行的因子图的线宽:
import seaborn as sns
import matplotlib.pylab as plt
sns.set(style="ticks")
exercise = sns.load_dataset("exercise")
g = sns.factorplot(x="time", y="pulse", hue="kind", data=exercise, scale=.5)
lw = g.ax.lines[0].get_linewidth() # lw of first line
plt.setp(g.ax.lines,linewidth=lw)  # set lw for all lines of g axes

plt.show()

在此输入图片描述

您可以为循环中的每一行设置线宽:

for l in g.ax.lines:
    print(l.get_linewidth())
    plt.setp(l,linewidth=5)

输出:

1.575
3.15
3.15
3.15
1.575
3.15
3.15
3.15
1.575
3.15
3.15
3.15

粗体线条代表置信区间。
将线宽设置为5后,所有线变得相同。 enter image description here

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