Як додати заголовок до Seaborn Boxplot


108

Здається, це досить зручно для Google, але не вдалося знайти щось в мережі, що працює.

Я пробував обидва sns.boxplot('Day', 'Count', data= gg).title('lalala')і sns.boxplot('Day', 'Count', data= gg).suptitle('lalala'). Жоден не працював. Я думаю, що це може бути тому, що я також працюю з matplotlib.

Відповіді:


188

Діаграма коробки Seaborn повертає екземпляр осей matplotlib. На відміну від самого pyplot, який має метод plt.title(), відповідним аргументом для осей є ax.set_title(). Тому вам потрібно зателефонувати

sns.boxplot('Day', 'Count', data= gg).set_title('lalala')

Повним прикладом може бути:

import seaborn as sns
import matplotlib.pyplot as plt

tips = sns.load_dataset("tips")
sns.boxplot(x=tips["total_bill"]).set_title("LaLaLa")

plt.show()

Звичайно, ви також можете використовувати екземпляр повернутих осей, щоб зробити його більш читабельним:

ax = sns.boxplot('Day', 'Count', data= gg)
ax.set_title('lalala')
ax.set_ylabel('lololo')

4
це ганьба set_title()і подібні функції не роблять return self, це було б акуратно.
Лоренс

Кредо @LaurensKoppenol Matplotlib полягає у поверненні об’єкта, який метод створює або маніпулює ним. Це питання гнучкості; і matplotlib чітко хоче надати користувачам цю гнучкість. Більше API високого рівня, які розташовані поверх matplotlib, часто вирішують дозволити ланцюжок, але в цих випадках у вас виникають проблеми з маніпулюванням базовими об'єктами, коли ви хочете отримати нестандартну поведінку.
ImportanceOfBeingErnest

комбінуючи різні інтерфейси matplotlib, я безумовно погоджуюсь
Лоренс

AttributeError: об'єкт 'FacetGrid' не має атрибута 'set_title'
Тупий ML


10

Функція sns.boxplot () повертає об'єкт Axes (matplotlib.axes.Axes). зверніться до документації, яку ви можете додати заголовок методом 'set', як показано нижче:

sns.boxplot('Day', 'Count', data=gg).set(title='lalala')

Ви також можете додати інші параметри, такі як xlabel, ylabel до встановленого методу.

sns.boxplot('Day', 'Count', data=gg).set(title='lalala', xlabel='its x_label', ylabel='its y_label')

Існують деякі інші методи, про які згадується у документації matplotlib.axes.Axes, щоб додати плитку, легенду та мітки.


7

Для однієї ділянки:

import seaborn as sb
sb.boxplot(data=Array).set_title('Title')

Щоб отримати більше сюжетів з тієї ж ділянки:

import seaborn as sb
sb.boxplot(data=ArrayofArray).set_title('Title')

напр

import seaborn as sb
myarray=[78.195229, 59.104538, 19.884109, 25.941648, 72.234825, 82.313911]
sb.boxplot(data=myarray).set_title('myTitle')

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.