كيفية الإصلاح في python: لم يتم العثور على مقابض تحتوي على تسميات لوضعها في وسيلة الإيضاح
أحد التحذيرات التي قد تواجهها عند استخدام matplotlib هو:
No handles with labels found to put in legend.
يحدث هذا التحذير عادةً لأحد السببين:
1. لقد فشلت في إنشاء تسميات لبيانات قطعة الأرض.
2. لقد حاولت إنشاء وسيلة إيضاح قبل إنشاء الحبكة.
توضح الأمثلة التالية كيفية تجنب هذا التحذير في كلا السيناريوهين.
المثال 1: لقد فشلت في إنشاء تسميات لبيانات قطعة الأرض.
لنفترض أننا نحاول استخدام الكود التالي لإنشاء مخطط خطي في matplotlib مع وسيلة إيضاح وتسميات:
import matplotlib. pyplot as plt
import pandas as pd
#define data values
df = pd. DataFrame ({' x ': [18, 22, 19, 14, 14, 11, 20, 28],
' y ': [5, 7, 7, 9, 12, 9, 9, 4],
' z ': [11, 8, 10, 6, 6, 5, 9, 12]})
#add multiple lines to matplotlib plot
plt. plot (df[' x '], color=' green ')
plt. plot (df[' y '], color=' blue ')
plt. plot (df[' z '], color=' purple ')
#attempt to add legend to plot
plt. legend ()
No handles with labels found to put in legend.
يقوم Matplotlib بإنشاء مخطط خطي، لكننا نتلقى التحذير لم يتم العثور على مقابض ذات تسميات لوضعها في وسيلة الإيضاح .
لتجنب هذا التحذير، يجب علينا استخدام الوسيطة label لتوفير تسمية لكل سطر في المخطط:
import matplotlib. pyplot as plt
import pandas as pd
#define data values
df = pd. DataFrame ({' x ': [18, 22, 19, 14, 14, 11, 20, 28],
' y ': [5, 7, 7, 9, 12, 9, 9, 4],
' z ': [11, 8, 10, 6, 6, 5, 9, 12]})
#add multiple lines to matplotlib plot
plt. plot (df[' x '], label=' x ', color=' green ')
plt. plot (df[' y '], label=' y ', color=' blue ')
plt. plot (df[' z '], label=' z ', color=' purple ')
#attempt to add legend to plot
plt. legend ()
لاحظ أنه يتم إنشاء وسيلة الإيضاح باستخدام التصنيفات ولا نتلقى أي تحذيرات هذه المرة.
مثال 2: لقد حاولت إنشاء وسيلة إيضاح قبل إنشاء قطعة أرض.
لنفترض أننا نحاول استخدام الكود التالي لإنشاء مخطط خطي في matplotlib مع وسيلة إيضاح وتسميات:
import matplotlib. pyplot as plt
import pandas as pd
#define data values
df = pd. DataFrame ({' x ': [18, 22, 19, 14, 14, 11, 20, 28],
' y ': [5, 7, 7, 9, 12, 9, 9, 4],
' z ': [11, 8, 10, 6, 6, 5, 9, 12]})
#attempt to add legend to plot
plt. legend ()
#add multiple lines to matplotlib plot
plt. plot (df[' x '], label=' x ', color=' green ')
plt. plot (df[' y '], label=' y ', color=' blue ')
plt. plot (df[' z '], label=' z ', color=' purple ')
No handles with labels found to put in legend.
يقوم Matplotlib بإنشاء مخطط خطي، لكننا نتلقى التحذير لم يتم العثور على مقابض ذات تسميات لوضعها في وسيلة الإيضاح .
لتجنب هذا التحذير، نحتاج إلى استخدام plt.legend() بعد إضافة السطور إلى المخطط:
import matplotlib. pyplot as plt
import pandas as pd
#define data values
df = pd. DataFrame ({' x ': [18, 22, 19, 14, 14, 11, 20, 28],
' y ': [5, 7, 7, 9, 12, 9, 9, 4],
' z ': [11, 8, 10, 6, 6, 5, 9, 12]})
#add multiple lines to matplotlib plot
plt. plot (df[' x '], label=' x ', color=' green ')
plt. plot (df[' y '], label=' y ', color=' blue ')
plt. plot (df[' z '], label=' z ', color=' purple ')
#attempt to add legend to plot
plt. legend ()
يتم إنشاء وسيلة إيضاح باستخدام التصنيفات، وهذه المرة لا نتلقى أي تحذير.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية إصلاح الأخطاء الشائعة الأخرى في بايثون:
كيفية إصلاح KeyError في الباندا
كيفية الإصلاح: خطأ القيمة: غير قادر على تحويل float NaN إلى int
كيفية الإصلاح: خطأ في القيمة: لا يمكن بث المعاملات بالأشكال