เพื่อเพิ่ม 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()ผลลัพธ์
