วิธีแก้ไขใน 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 สร้างเส้นพล็อต แต่เราได้รับคำเตือน No handle with label found to put in legend

เพื่อหลีกเลี่ยงคำเตือนนี้ เราต้องใช้อาร์กิวเมนต์ 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 สร้างเส้นพล็อต แต่เราได้รับคำเตือน No handle with label found to put in legend

เพื่อหลีกเลี่ยงคำเตือนนี้ เราจำเป็นต้องใช้ 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 ()

ตำนานถูกสร้างขึ้นพร้อมป้ายกำกับ และคราวนี้เราไม่ได้รับคำเตือน

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดทั่วไปอื่นๆ ใน Python:

วิธีแก้ไข KeyError ใน Pandas
วิธีแก้ไข: ValueError: ไม่สามารถแปลง float NaN เป็น int
วิธีแก้ไข: ValueError: ตัวถูกดำเนินการไม่สามารถออกอากาศด้วยรูปร่างได้

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *