• 0

حذف ال legend من ال figure في Matplotlib في بايثون

كيفية إزالة ال legend من ال plot؟ 
 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

سأعطيك طريقتين لحذفها، الأولى من خلال استخدام الدالة ()ax.get_legend().remove :

import numpy as np
import matplotlib.pyplot as plt
# تعريف بيانات عشوائية
x = np.linspace(-2, 2, 50)
y1 = x**3
y2 = x**2
# رسم الدوال
fig, ax = plt.subplots()
ax.plot(x, y1, c = 'black',label = 'x^3')
ax.plot(x, y2, c = 'c',label = 'x^2')
# إنشاء صندوق البيانات
leg = plt.legend()
# حذفه
ax.get_legend().remove()
plt.show()

في حالة وجود أكثر من supplot ، يمكننا أن نذكر الكائن axes المطلوب الذي نريد إزالة ال legend الخاص بك:

import numpy as np
import matplotlib.pyplot as plt
# تعريف بيانات عشوائية
x = np.linspace(-2, 2, 50)
y1 = x**3
y2 = x**2
# رسم الدوال
fig, axs = plt.subplots(2, 1)
axs[0].plot(x, y1, c = 'r',label = 'x^3')
axs[1].plot(x, y2, c = 'black',label = 'x^2')
axs[0].legend(loc = 'upper left') # صندوق بيانات للرسم الأول
axs[1].legend(loc = 'upper left') # صندوق للرسم الثاني
# سنحذف صندوق البيانات من الرسمة الثانية
axs[1].get_legend().remove() 
plt.show()

أو عن طريق الدالة ax.get_legend().set_visible(False) كما في المثال التالي:

import numpy as np
import matplotlib.pyplot as plt
# تعريف بيانات عشوائية
x = np.linspace(-2, 2, 50)
y1 = x**3
y2 = x**2
# رسم الدوال
fig, ax = plt.subplots()
ax.plot(x, y1, c = 'black',label = 'x^3')
ax.plot(x, y2, c = 'c',label = 'x^2')
# إنشاء صندوق البيانات
leg = plt.legend()
# حذفه
ax.get_legend().set_visible(False)
plt.show()

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

يمكنك استخدام  matplotlib.axes.Axes.get_legend().set_visible() مع وضع قيمتها ب false لحذفها كالتالي:

#استدعاء المكتبات
import numpy as np
import matplotlib.pyplot as plt

#الدوال التي نريد رسمها
x=np.linspace(-3,3,100)
y1=np.exp(x)
y2=3*x+2

#حجم الرسمة
fig, ax = plt.subplots(figsize=(8,6))

#اسماء الرسومات
ax.plot(x, y1, c='r', label='expoential')
ax.plot(x, y2, c='g', label='Straight line')

leg = plt.legend()

#اخفاء ال legend
ax.get_legend().set_visible(False)

plt.show()

أو استخدام label=_nolegend_ في matplotlib.axes.Axes.plot() كالتالي:

#استدعاء الدوال
import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(-3,3,100)
y1=np.exp(x)
y2=3*x+2

fig, ax = plt.subplots(figsize=(8,6))
leg = plt.legend()

#الرسم
ax.plot(x, y1, c='r', label='_nolegend_')
ax.plot(x, y2, c='g', label='_nolegend_')

plt.show()

أو استخدام legend_ =None كالتالي:

import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(-3,3,100)
y1=np.exp(x)
y2=3*x+2

fig, ax = plt.subplots(figsize=(8,6))
leg = plt.legend()

ax.plot(x, y1, c='r', label='expoential')
ax.plot(x, y2, c='g', label='Straight line')

#حذف ال legend
plt.gca.legend_ =None

plt.show()

وفي كل الأحوال تظهر الصورة بدون legend كالتالي:

134.PNG.3e254748e7b8ce3aa0e8cb4af10cd331.PNG

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن