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

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

Ali Ismael

السؤال

Recommended Posts

  • 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

يمكنك استخدام  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

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...