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

السؤال

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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...