ในการตั้งค่า matplotlib imshow() 2 plots ให้มี colormap scale เหมือนกัน เราสามารถทำตามขั้นตอนต่อไปนี้:
ขั้นตอน
- ตั้งค่าขนาดรูปและปรับ padding ระหว่างและรอบ subplots
- สร้างเมทริกซ์ d1 และ d2 ด้วย Numpy
- รับเมทริกซ์ผลลัพธ์เพื่อหาค่า max และ min
- ใช้เมธอด amin และ amax สำหรับค่าต่ำสุดและสูงสุด
- สร้าง figure ใหม่หรือเปิดใช้งาน figure ที่มีอยู่
- เพิ่ม '~.axes.Axes' ให้กับ figure เป็นส่วนหนึ่งของ subplot arrangement ด้วย nrows=1, ncols=2 ที่ index 1
- ใช้เมธอด imshow() พร้อม vmin และ vmax กำหนดช่วงข้อมูลที่ colormap ครอบคลุม
- ทำซ้ำขั้นตอน 6 และ 7 กับข้อมูล
- เพื่อแสดงรูป ใช้เมธอด show()
ตัวอย่าง
import numpy as np from matplotlib import pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True data1 = np.random.randn(4, 4) data2 = np.random.randn(4, 4) resultant = np.array([data1, data2]) min_val, max_val = np.amin(resultant), np.amax(resultant) fig = plt.figure() ax = fig.add_subplot(1, 2, 1) ax.imshow(data1, cmap="plasma", vmin=min_val, vmax=max_val) ax2 = fig.add_subplot(1, 2, 2) ax2.imshow(data2, cmap="plasma", vmin=min_val, vmax=max_val) plt.show()
ผลลัพธ์

