Seaborn.despine()否定了将y轴移动到图的右侧的效果

时间:2018-06-05 17:19:22

标签: python python-3.x matplotlib seaborn

有很多关于创建具有两个或更多y轴的图的示例,但是将单个y轴移动到图的右侧看起来有点棘手。

import numpy as np
from matplotlib import pyplot as plt
import seaborn as sns
%matplotlib inline

values = np.random.randint(1,20,100)

f = plt.figure()
ax = f.add_subplot(111)
# sns.despine(offset=10) <- problem here...

ax.yaxis.tick_right()
ax.yaxis.set_ticks_position('both')
sns.distplot(values)

上面的代码片段创建了一个带有右边刻度的图表,但是如果你想取消图表的取消(取消注释指示的行),它看起来像这样:

enter image description here

附带问题:右侧轴背后的动机是因为我将这个与另一个情节并排绘制在一起,我希望y轴位于子图的两侧,而不是它们之间。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

seaborn's despine has arguments让您选择隐藏哪个脊椎(默认情况下,除了左侧之外的所有内容)。

  

top,right,left,bottom:boolean,optional

     

如果为True,请删除该脊椎。

import numpy as np
from matplotlib import pyplot as plt
import seaborn as sns
%matplotlib inline

values = np.random.randint(1,20,100)

f = plt.figure()
ax = f.add_subplot(111)
sns.despine(offset=10, left=True, right=False)  # <-- only show the right spine
ax.yaxis.tick_right()
ax.yaxis.set_ticks_position('right')  # <--- I also edited this line to have tick marks only on the right
sns.distplot(values)