Tôi muốn so sánh hai bộ dữ liệu khác nhau trên cùng một âm mưu imshow để dễ dàng thấy sự khác biệt. bản năng đầu tiên của tôi là làm cho màu sắc trong bản đồ màu trong suốt (giá trị thấp nhất là) nhưng tôi đã không thể có được điều này để làm việc:Overlay imshow lô trong matplotlib
from matplotlib.colors import colorConverter
import matplotlib.pyplot as plt
import numpy as np
# create dummy data
zvals = np.random.rand(100,100)*10-5
zvals2 = np.random.rand(100,100)*10-5
# generate the transparent colors
color1 = colorConverter.to_rgba('white',alpha=0.0)
color2 = colorConverter.to_rgba('black',alpha=0.8)
# make the colormaps
cmap1 = mpl.colors.LinearSegmentedColormap.from_list('my_cmap',['green','blue'],256)
cmap2 = mpl.colors.LinearSegmentedColormap.from_list('my_cmap2',[color1,color2],256)
img2 = plt.imshow(zvals,interpolation='nearest',cmap=cmap1,origin='lower')
img3 = plt.imshow(zvals2,interpolation='nearest',cmap=cmap2,origin='lower')
plt.show()
Không có lỗi nhưng màu trắng và màu đen của ô thứ hai không hiển thị bất kỳ sự minh bạch nào. Tôi cũng đã thử phương pháp colorConverter để thiết lập màu sắc trong một tình huống plt.plot bình thường và màu sắc cũng không trở nên trong suốt mặc dù màu sắc chính xác được hiển thị.
Bất cứ lời khuyên thêm về cách overlay/so sánh imshow lô sẽ được nhiều đánh giá cao
Tại sao bạn không vẽ các phép trừ của hai tập hợp dữ liệu hình ảnh? Hoặc phép trừ của một phép biến đổi có liên quan, như chuyển đổi chúng thành thang đo decibel. – ely
Cho đến nay tôi chưa nhận được kết quả rất tốt với phương pháp này, nhưng tôi vẫn tiếp tục thử trong khi hy vọng ai đó biết cách làm cho từng màu trong suốt hoạt động – Anake