Как я могу нарисовать правую и верхнюю ось и удалить левую и нижнюю ось в парном графике Seaborn?

Вместо стандартного стиля оси "в штучной упаковке" (и галочек, меток...) я хочу иметь только правую и верхнюю ось, т.е.:

Это должно быть легко, но я не могу найти необходимые параметры в документах.

import seaborn as sns

penguins = sns.load_dataset("penguins")
g=sns.pairplot(penguins)
plt.show()
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
0
155
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

На самом деле это непростая задача, так как вам нужно позаботиться о многих вещах, которые жестко запрограммированы Seaborn (шипы, галочки, метки).

sns.set_style('ticks')
penguins = sns.load_dataset("penguins")
g=sns.pairplot(penguins)

for ax in g.axes.flat:
    sns.despine(left=True, right=False, bottom=True, top=False, ax=ax)
    ax.xaxis.set_ticks_position('top')
    ax.yaxis.set_ticks_position('right')
    plt.setp(ax.yaxis.get_ticklabels(), visible=ax.is_last_col())
    plt.setp(ax.xaxis.get_ticklabels(), visible=ax.is_first_row())
    
for ax1,ax2 in g.axes[:,[0,-1]]:
    ax2.yaxis.set_label_position('right')
    ax2.set_ylabel(ax1.get_ylabel(), visible=True)
    ax1.set_ylabel('')
for ax1,ax2 in g.axes[[0,-1],:].T:
    ax1.xaxis.set_label_position('top')
    ax1.set_xlabel(ax2.get_xlabel(), visible=True)
    ax2.set_xlabel('')

plt.show()

Другие вопросы по теме