在具有共享轴的 seaborn 对图中显示 y_ticklabels

ost*_*ach 6 python matplotlib seaborn

我正在使用seabornpairplot来绘制几个自变量与因变量的关系图。

import seaborn as sns
iris = sns.load_dataset("iris")
x_vars = ['sepal_length', 'sepal_width', 'petal_length']
y_vars = ['petal_width']
pp = sns.pairplot(data=iris, x_vars=x_vars, y_vars=y_vars)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

现在我想向第二个和第三个子图添加 y 轴刻度和标签。

添加 y 轴标签很简单:

pp.set(ylabel='petal_width')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但我一生都无法弄清楚如何显示 y_ticklabels。

像:

pp.set(yticklabels=np.arange(-0.5, 3.01, 0.5))
Run Code Online (Sandbox Code Playgroud)

或者:

for i in range(3):
    ax = pp.axes[0,i]
    ax.set_yticks(np.arange(-0.5, 3.01, 0.5))
    ax.set_yticklabels(np.arange(-0.5, 3.01, 0.5))
    ax.set_visible(True)
Run Code Online (Sandbox Code Playgroud)

没有什么区别。

CT *_*Zhu 5

只需将yticklabels背面转为可见,就可以在所需的子图中进行操作:

import seaborn as sns
iris = sns.load_dataset("iris")
x_vars = ['sepal_length', 'sepal_width', 'petal_length']
y_vars = ['petal_width']
pp = sns.pairplot(data=iris, x_vars=x_vars, y_vars=y_vars)
_ = plt.setp(pp.axes[0,1].get_yticklabels(), visible=True) #changing the 2nd plot
Run Code Online (Sandbox Code Playgroud)

_ = ...这是为了抑制交互式环境中不需要的打印输出。 在此输入图像描述