Để vẽ hai colormap riêng biệt cho giá trị dương và âm trên cùng một ảnh, ta dùng masked array để tách dữ liệu.
Các bước
- Thiết lập figure size và autolayout.
- Tạo ma trận 5x5 giá trị ngẫu nhiên âm/dương.
- Tạo masked array data1 (che giá trị >=0) và data2 (che giá trị <0).
- Tạo figure, axes và vẽ 2 lần imshow() với cmap khác nhau.
- Tạo 2 colorbar riêng biệt cho mỗi image.
- Đặt label cho từng colorbar.
- Hiển thị bằng show().
Ví dụ
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()
Kết quả
