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


96

Як додати заголовок до цього сюжету, присвяченого морі? Давайте дамо йому назву „Я Є ТИТУЛ”.

tips = sns.load_dataset("tips")
g = sns.FacetGrid(tips, col="sex", row="smoker", margin_titles=True)
g.map(sns.plt.scatter, "total_bill", "tip")

сюжет

Відповіді:


167

Після цих рядків:

plt.subplots_adjust(top=0.9)
g.fig.suptitle('THIS IS A TITLE, YOU BET') # can also get the figure from plt.gcf()

Якщо додати підзаголовок, не регулюючи вісь, заголовки морських народжень перекривають його.

(З різними даними):

введіть тут опис зображення


6
Це спрацювало для мене, але мені довелося використовувати plt.subplots_adjust(top=0.8)замість top=0.9.
Мак

5
suptitleтакож має yпараметр. Це спрацювало для мене:g.fig.suptitle('foo', y=1.05)
trianta2

1
Це не спрацьовує, якщо ви використовуєте, col_wrapоскільки тоді і малюнок, і остання осі осі (внизу праворуч) успадкують однаковий заголовок.
xApple

25

У ноутбуці ipython це мені вдалося!

sns.plt.title('YOUR TITLE HERE')

10
Я спробував це, і це додало заголовок внизу праворуч, а не всю фігуру
crypdick

12
Доступ pltчерез snsпакет застарів у версії 0.8.1. Це слід зробити, використовуючиplt.title('YOUR TITLE HERE')
Mack

2
AttributeError: модуль 'seaborn' не має атрибута 'plt'
xApple

AttributeError: модуль 'seaborn' не має атрибута 'plt'
seralouk


3

У мене спрацювало:

sns.plt.suptitle('YOUR TITLE HERE')


2
AttributeError: модуль 'seaborn' не має атрибута 'plt'
xApple

1
AttributeError: модуль 'seaborn' не має атрибута 'plt'
seralouk

1
plt.suptitle("Title") 

або

plt.title("Title")

Це спрацювало для мене.


Друге рішення не працює, тоді як перше рішення створює потворний проміжок заголовків суптитрів та фасет. Вам потрібно використовувати координати.
MERose

0

Відповіді за допомогою sns.plt.title()таsns.plt.suptitle() більше не працюють.

Натомість вам потрібно використовувати title()функцію matplotlib :

import matplotlib.pyplot as plt
sns.FacetGrid(<whatever>)
plt.title("A title")

1
Це не встановлює правильний заголовок для мене.
Габріель Ромон,

4
Ви пробували plt.suptitle()?
crypdick

Ваша відповідь не працює, оскільки вона впливає на заголовок останньої підсистеми осей (внизу праворуч). Ваша пропозиція plt.suptitle()також змінює останні осі, а також основну фігуру.
xApple

0

Заголовок не буде вирівнюватися по центру до заголовків додаткових сюжетів. Для встановлення позиції заголовка ви можете використовувати plt.suptitle("Title", x=center)

У моєму випадку мої додаткові ділянки знаходились у сітці 2x1, тож я міг використати, bbox = g.axes[0,0].get_position()щоб знайти обмежувальну рамку, а потімcenter=0.5*(bbox.x1+bbox.x2)

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