Como adicionar um título ao Seaborn Facet Plot


95

Como adiciono um título a este enredo Seaborne? Vamos dar a ele o título 'EU SOU UM TÍTULO'.

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

enredo

Respostas:


164

Depois dessas linhas:

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

Se você adicionar um subtítulo sem ajustar o eixo, os títulos das facetas do mar se sobrepõem a ele.

(Com dados diferentes):

insira a descrição da imagem aqui


6
Isso funcionou para mim, mas eu tive que usar em plt.subplots_adjust(top=0.8)vez de top=0.9.
Mack de

5
suptitletambém tem um yparâmetro. Isso funcionou para mim:g.fig.suptitle('foo', y=1.05)
trianta2

1
Isso não funciona se você usar col_wrapcomo então a figura e o subplot do último eixo (canto inferior direito) herdarão o mesmo título.
xApple

25

No notebook ipython, isso funcionou para mim!

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

10
Eu tentei isso e adicionou um título à figura inferior direita, não a figura inteira
crypdick

12
O acesso pltpor meio do snspacote tornou-se obsoleto na versão 0.8.1. Isso deve ser feito usandoplt.title('YOUR TITLE HERE')
Mack

2
AttributeError: o módulo 'seaborn' não tem o atributo 'plt'
xApple

AttributeError: módulo 'seaborn' não tem atributo 'plt'
seralouk


3

O que funcionou para mim foi:

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


2
AttributeError: módulo 'seaborn' não tem atributo 'plt'
xApple

1
AttributeError: módulo 'seaborn' não tem atributo 'plt'
seralouk

1
plt.suptitle("Title") 

ou

plt.title("Title")

Isso funcionou para mim.


0

As respostas usando sns.plt.title()e sns.plt.suptitle()não funcionam mais.

Em vez disso, você precisa usar a title()função matplotlib :

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

1
Isso não define o título no local correto para mim.
Gabriel Romon de

4
Você tentou plt.suptitle()?
crypdick de

Sua resposta não funciona, pois afeta o título da última subtrama dos eixos (canto inferior direito). Sua sugestão plt.suptitle()também modifica os últimos eixos, bem como a figura principal.
xApple

0

O título não será alinhado ao centro com os títulos da subtrama. Para definir a posição do título, você pode usar plt.suptitle("Title", x=center)

No meu caso, meus subtramas estavam em uma grade 2x1, então pude usar bbox = g.axes[0,0].get_position()para encontrar a caixa delimitadora ecenter=0.5*(bbox.x1+bbox.x2)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.