减少 seaborn 时间序列图的线宽
reduce line width of seaborn timeseries plot
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,它会减小线宽但不会减小置信区间线的宽度。有没有办法减少置信区间线的宽度?
如果你想改变图中所有线(轴除外)的宽度,你可以简单地通过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}
)是:
您可以获取第一行的线宽并将其设置为因子图的所有其他行:
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 后,所有线都变得相同:
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,它会减小线宽但不会减小置信区间线的宽度。有没有办法减少置信区间线的宽度?
如果你想改变图中所有线(轴除外)的宽度,你可以简单地通过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}
)是:
您可以获取第一行的线宽并将其设置为因子图的所有其他行:
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 后,所有线都变得相同: