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.