2016-05-26 147 views
2

如何讓seaborn.despine不會將我的兩個y尺度放在我的情節的左側? 我想出了迄今爲止最好的是:Seaborn despine with two y-scale(twinx)

import matplotlib.pyplot as plt 
import seaborn as sns 
import numpy as np 

sns.set_style("white") 

fig, ax = plt.subplots() 
ax.plot(np.random.rand(10)) 
ax2 =ax.twinx() 
ax2.plot(100*np.random.rand(10)) 
sns.despine(ax=ax, right=True, left=True) 
sns.despine(ax=ax2, left=True, right=False) 

但是任何其他組合將要麼不despine的y軸或將右軸到左邊。上述的

輸出:(期望輸出沒有刺,只是左數右)

enter image description here

+1

不知道如果我理解正確的,因爲如果我跑你的片斷,我得到一個y標尺一方和一個Y規模在另一邊。那不是你想要的嗎? – giosans

+0

也許你可以添加一個數字.. – giosans

+0

公平點 - 我沒有在我的問題中設置seaborn風格,這使得鄙視不必要! –

回答

4

我想這就是你想要的然後。

import matplotlib.pyplot as plt 
import seaborn as sns 
import numpy as np 

sns.set_style("white") 

fig, ax = plt.subplots() 
ax.plot(np.random.rand(10)) 
ax2 =ax.twinx() 
ax2.plot(100*np.random.rand(10)) 
sns.despine(ax=ax, right=True, left=True) 
sns.despine(ax=ax2, left=True, right=False) 
ax2.spines['right'].set_color('white') 

no spines, just numbers on left and right

+1

如果你想在兩側顯示軸線(這是我想要做的),那麼你這樣做: ''' sns.despine(ax = ax,right = True,left = False) sns.despine(ax = ax2,left = True,right = False) ''' –