Cómo agregar un título a la gráfica de caja de seaborn

108

Parece bastante Googleable, pero no he podido encontrar algo en línea que funcione.

He probado ambos sns.boxplot('Day', 'Count', data= gg).title('lalala')y sns.boxplot('Day', 'Count', data= gg).suptitle('lalala'). Ninguno funcionó. Creo que podría deberse a que también estoy trabajando con matplotlib.

Esta muy frío
fuente

Respuestas:

188

El diagrama de caja de Seaborn devuelve una instancia de ejes de matplotlib. A diferencia del propio pyplot, que tiene un método plt.title(), el argumento correspondiente para un eje es ax.set_title(). Por lo tanto, debes llamar

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

Un ejemplo completo sería:

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()

Por supuesto, también puede usar la instancia de ejes devueltos para hacerla más legible:

ax = sns.boxplot('Day', 'Count', data= gg)
ax.set_title('lalala')
ax.set_ylabel('lololo')
Importancia de ser ernesto
fuente
4
es una pena set_title()y funciones similares no return self, eso sería genial.
Laurens Koppenol
El credo de @LaurensKoppenol Matplotlib es devolver el objeto que el método crea o manipula. Ésta es una cuestión de flexibilidad; y matplotlib explícitamente quiere darles a los usuarios esta flexibilidad. Las API de más alto nivel que se encuentran encima de matplotlib a menudo deciden permitir el encadenamiento, pero en esos casos, tiene problemas para manipular los objetos subyacentes cuando desea un comportamiento no estándar.
ImportanceOfBeingErnest
al combinar las diversas interfaces matplotlib definitivamente estoy de acuerdo
Laurens Koppenol
AttributeError: el objeto 'FacetGrid' no tiene atributo 'set_title'
Dumb ML
29

Intente agregar esto al final de su código:

import matplotlib.pyplot as plt

plt.title('add title here')
Stefano Potter
fuente
10

La función sns.boxplot () devuelve el objeto Axes (matplotlib.axes.Axes). Consulte la documentación , puede agregar un título usando el método 'set' como se muestra a continuación:

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

también puede agregar otros parámetros como xlabel, ylabel al método set.

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

Hay algunos otros métodos como se menciona en la documentación matplotlib.axes.Axes para agregar mosaicos, leyendas y etiquetas.

akhil penta
fuente
7

Para una sola gráfica de caja:

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

Para más diagramas de caja en el mismo diagrama:

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

p.ej

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

.set_title ('') se puede usar para agregar un título a Seaborn Plot

import seaborn as sb
sb.boxplot().set_title('Title')
Kranthi Kumar Valaboju
fuente