اذهب إلى المحتوى

السؤال

نشر

تغيير لون المحاور axis و ال ticks و الملصقات labels للرسم البياني في 
لدي الكود التالي وأحاول وضع أسماء للمحاور بالشكل التالي:

import seaborn as sns
import pandas as pd
df = pd.DataFrame({'color': ['black', 'blue', 'brown'],
'num': [1, 2, 3]})
figObj = sns.barplot(x = 'num', y = 'color', data = df, color = 'red')
figObj.set_axis_labels('Colors', 'Values')

لكنه يعطيني الخطأ التالي:

---------------------------------------------------------------------------

AttributeError                            Traceback (most recent call last)

<ipython-input-9-5708b6ef67e6> in <module>()
      5                   data = df,
      6                   color = 'red')
----> 7 fig.set_axis_labels('Colors', 'Values')

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

 

Recommended Posts

  • 1
نشر

الدالة barplot تُرجع axis-object وليس figure-object لذا لايمكنك استخدام الدالة set_axis_labels مع كائن محور، هنا يجب أن تستخدم الدالة  ax.set كما يلي:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
df = pd.DataFrame({'color': ['black', 'blue', 'brown'], 'num': [1, 2, 3]})
ax = sns.barplot(x = 'num', y = 'color', 
                  data = df, 
                  color = 'red')
ax.set(xlabel='xlabel', ylabel='ylabel')
plt.show()

الخرج:
index.png.35b9245b1d0784f12c597879a76ce0a9.png

  • 1
نشر (معدل)

يمكنك تنجنب الخطأ الناتج عن استخدام set_axis_labels عن طريق استخدام matplotlib.pyplot.xlabel و matplotlib.pyplot.ylabel وذلك لان محاور seaborn لها نفس صيغة matplot لذا يصلح استخدام تلك الطريقة معها.

كمثال لاستخدامها على الكود السابق:

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") # يمكنك الغاء هذا السطر اذا لم تكن تختاج الى عنوان
plt.show(fig)

ويكون الناتج:

BVDjC.png.101040502881e4a2899c7aa442880556.png

تم التعديل في بواسطة Ahmed Sharshar

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...