matplotlib 缩小海上点图线宽

u1ehiz5o  于 2023-06-23  发布在  其他
关注(0)|答案(2)|浏览(134)
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,则会减少线宽,但不会减少置信区间线的宽度。有没有方法减少置信区间线的宽度?

gywdnpxw

gywdnpxw1#

如果你想改变图中所有线的宽度(除了轴),你可以简单地通过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)

这导致以下图:

原始图(不含rc={"lines.linewidth":0.7})为:

polhcujo

polhcujo2#

您可以获取第一行的线宽并为因子图的所有其他行设置它:

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后,所有行都变得相同:

相关问题