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

วิธีแสดง Colormap สองสีต่างกันใน imshow เดียวกันของ Matplotlib


ขั้นตอนการทำงาน

  • กำหนดขนาดรูปภาพและปรับระยะห่างระหว่างและรอบๆ subplots
  • สร้างเมทริกซ์ 2D ขนาด 5x5
  • สร้างเมทริกซ์ที่ปิดบัง (masked) data1 และ data2 สำหรับค่าบวกและลบ
  • สร้าง figure และชุด subplots
  • แสดงข้อมูลเป็นภาพด้วย data1 และ data2
  • สร้าง colorbar สองอันสำหรับภาพทั้งสอง
  • ตั้งค่า colorbar ให้ทั้งสองภาพ
  • ตั้งค่าป้ายกำกับของ colorbar ทั้งสอง
  • ใช้เมธอด show() เพื่อแสดงรูปภาพ

ตัวอย่างโค้ด

import matplotlib.pyplot as plt
import numpy as np

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

img = np.random.randint(-10, 10, (5, 5))
data1 = np.ma.masked_array(img, img >= 0)
data2 = np.ma.masked_array(img, img < 0)
fig, ax = plt.subplots()
img1 = ax.imshow(data1, cmap="prism_r")
img2 = ax.imshow(data2, cmap="copper")
bar1 = plt.colorbar(img1)
bar2 = plt.colorbar(img2)
bar1.set_label('ColorBar 1')
bar2.set_label('ColorBar 2')
plt.show()

ผลลัพธ์

วิธีแสดง Colormap สองสีต่างกันใน imshow เดียวกันของ Matplotlib