Beschriften Sie die Achsen auf Seaborn Barplot

125

Ich versuche, meine eigenen Etiketten für ein Seaborn-Barplot mit dem folgenden Code zu verwenden:

import pandas as pd
import seaborn as sns

fake = pd.DataFrame({'cat': ['red', 'green', 'blue'], 'val': [1, 2, 3]})
fig = sns.barplot(x = 'val', y = 'cat', 
                  data = fake, 
                  color = 'black')
fig.set_axis_labels('Colors', 'Values')

Geben Sie hier die Bildbeschreibung ein

Ich erhalte jedoch die folgende Fehlermeldung:

AttributeError: 'AxesSubplot' object has no attribute 'set_axis_labels'

Was gibt?

Erin Shellman
quelle

Antworten:

235

Seaborns Barplot gibt ein Achsenobjekt zurück (keine Figur). Dies bedeutet, dass Sie Folgendes tun können:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

fake = pd.DataFrame({'cat': ['red', 'green', 'blue'], 'val': [1, 2, 3]})
ax = sns.barplot(x = 'val', y = 'cat', 
              data = fake, 
              color = 'black')
ax.set(xlabel='common xlabel', ylabel='common ylabel')
plt.show()
Sascha
quelle
2
seabornhat nicht seine eigene Möglichkeit, diese festzulegen - ohne sie einzubeziehen matplotlib?
Javadba
Die allgemeine Regel lautet also FacetGrid/ irgendetwas, dass Facetten ein Figurenobjekt und alles andere ein Achsenobjekt zurückgeben?
alexpghayes
27

Man kann das AttributeErrordurch die set_axis_labels()Methode hervorgerufene vermeiden , indem man das matplotlib.pyplot.xlabelund verwendet matplotlib.pyplot.ylabel.

matplotlib.pyplot.xlabelLegt die Beschriftung der x-Achse fest, während die Beschriftung matplotlib.pyplot.ylabelder y-Achse der aktuellen Achse festgelegt wird.

Lösungscode:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

fake = pd.DataFrame({'cat': ['red', 'green', 'blue'], 'val': [1, 2, 3]})
fig = sns.barplot(x = 'val', y = 'cat', data = fake, color = 'black')
plt.xlabel("Colors")
plt.ylabel("Values")
plt.title("Colors vs Values") # You can comment this line out if you don't need title
plt.show(fig)

Ausgabezahl:

Geben Sie hier die Bildbeschreibung ein

Steffi Keran Rani J.
quelle
13

Sie können den Titel Ihres Diagramms auch festlegen, indem Sie den Titelparameter wie folgt hinzufügen

ax.set(xlabel='common xlabel', ylabel='common ylabel', title='some title')
John R.
quelle