2017-08-07 54 views
2
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,它會減小線寬而不是置信區間線的寬度。有減少置信區間線寬度的方法嗎?減小seaborn時間序列的線寬圖

回答

3

優米唉得到第一線的線寬,並設置它的因素情節的所有其他線路:

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() 

enter image description here

,你可以設置線寬爲一個週期的每一行:

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

1

如果要更改圖中所有線條(軸除外)的寬度,只需在matplotlib rcparam中通過seaborns set函數更改參數"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