Нет возможности построить график на верхнем треугольнике. Однако вы можете сделать два графика, минимум один из них с corner=False
, а затем добавить нижний треугольник и диагональные оси из углового графика к полному графику. Однако это имеет смысл только в том случае, если параметры парного графика для обоих графиков идентичны, в противном случае (как в вашем примере) метки осей и легенда будут действительны только для одного треугольника (если вы вручную не добавите вторую легенду и правую и верхнюю оси в верхний треугольник suplots, но в этом случае, вероятно, будет легче свернуть свой собственный с самого начала).
Пример (нижний треугольник и диагональ для нечетных строк iris
, верхний треугольник для четных строк) :
import matplotlib.pyplot as plt
import seaborn as sns; sns.set(style="ticks", color_codes=True)
iris = sns.load_dataset("iris")
pg1 = sns.pairplot(iris[1::2], hue="species", corner=True)
pg2 = sns.pairplot(iris[::2], hue="species", corner=False, diag_kind=None))
# remove lower triangle and diagonal from figure 2
for ax in pg2.fig.get_axes():
if ax.get_geometry()[2] in [1,5,6,9,10,11,13,14,15,16]:
ax.remove()
# add all axes from figure 1 (lower triangle and diagonal) to figure 2
for ax in pg1.fig.get_axes():
ax.figure = pg2.fig # in the next step we can only add axes from the same figure
pg2.fig.add_axes(ax)
# close figure 1 which is not needed anymore
plt.close(pg1.fig)
введите описание изображения здесь