Seaborn Barplot üzerindeki etiket eksenleri


126

Aşağıdaki kodla bir Seaborn barplot için kendi etiketlerimi kullanmaya çalışıyorum:

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

görüntü açıklamasını buraya girin

Ancak şu hatayı alıyorum:

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

Ne oluyor?

Yanıtlar:


237

Seaborn'un barplotu bir eksen nesnesi (şekil değil) döndürür. Bu, aşağıdakileri yapabileceğiniz anlamına gelir:

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

2
seaborndahil etmeden bunları ayarlamanın kendi yolu yok matplotlibmu?
javadba

Öyleyse genel kural, FacetGridfasetlerin bir şekil nesnesi döndürdüğü ve diğer her şeyin bir eksen nesnesi döndürdüğü herhangi bir şey mi?
alexpghayes

27

Yöntem tarafından AttributeErrorgetirilenlerden ve set_axis_labels()kullanarak önlenebilir .matplotlib.pyplot.xlabelmatplotlib.pyplot.ylabel

matplotlib.pyplot.xlabelmatplotlib.pyplot.ylabelgeçerli eksenin y ekseni etiketini ayarlarken x ekseni etiketini ayarlar.

Çözüm kodu:

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)

Çıktı şekli:

görüntü açıklamasını buraya girin


13

Başlık parametresini aşağıdaki gibi ekleyerek grafiğinizin başlığını da ayarlayabilirsiniz.

ax.set(xlabel='common xlabel', ylabel='common ylabel', title='some title')
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.