Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีเพิ่ม Legend ให้ imshow() ใน Matplotlib


เพื่อเพิ่ม Legend ให้ imshow() ใน Matplotlib ให้ทำตามขั้นตอน:

  • กำหนดขนาดรูปและปรับระยะห่างระหว่างและรอบซับพล็อต
  • สร้างข้อมูลสุ่มด้วย NumPy
  • เริ่มต้น colormap
  • หาจุดข้อมูลที่ไม่ซ้ำจากข้อมูลตัวอย่าง (ขั้นตอน 2)
  • พล็อตแต่ละสีพร้อม label และสีต่างกัน เพื่อวางบน Legend
  • วาง Legend ที่มุมขวาบนในกล่อง
  • ใช้ show() เพื่อแสดงรูป

ตัวอย่าง

import numpy as np
from matplotlib import pyplot as plt, cm

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

data = np.random.rand(3, 3)
cmap = cm.YlOrBr
unique_data = np.unique(data)
i = 0
for entry in unique_data:
    mycolor = cmap(entry * 255 / (max(unique_data) - min(unique_data)))
    plt.plot(0, 0, "-", color=mycolor, label="%d" % i)
    i += 1
plt.imshow(data, cmap=cmap)
plt.legend(loc="upper right", bbox_to_anchor=(1.25, 1.0))
plt.show()

ผลลัพธ์

วิธีเพิ่ม Legend ให้ imshow() ใน Matplotlib