如何在 Seaborn PairGrid 中对齐 y 标签

How to align y labels in a Seaborn PairGrid

取自documentation:

>>> import matplotlib.pyplot as plt
>>> import seaborn as sns; sns.set()
>>> iris = sns.load_dataset("iris")
>>> g = sns.PairGrid(iris)
>>> g = g.map(plt.scatter)

如何对齐 y 标签?

我尝试了什么:

for ax in g.axes.flat:
    ax.yaxis.labelpad = 20

但是,这只会将所有标签移动指定的量而不是对齐它们。

是的,这种对齐方式很糟糕。一个自夸 "attractive statistical graphics" 的包怎么敢在标签对齐时如此糟糕地失败?!开个玩笑,我爱我一些 seaborn,至少是关于如何改进我自己的情节的灵感。

您正在寻找:

ax.get_yaxis().set_label_coords(x,y) # conveniently in axis coordinates

此外,我只会遍历显示标签的轴,但那只是我:

for ax in g.axes[:,0]:
    ax.get_yaxis().set_label_coords(-0.2,0.5)

0.5 用于居中垂直对齐,-0.2 用于稍微向左偏移(反复试验)。

如果迭代所有轴 g.axes.flatten() 对我有用。

for ax in g.axes.flatten():
    ax.get_yaxis().set_label_coords(-0.2,0.5)