1
我正在用imshow繪製2D標量字段,我想清楚地將正面的負面值與對比值進行對比。是否有一種方法可以實現由另外兩個顏色圖組成的顏色映射(例如,噴射例如hot
爲正數,而cool
爲負數)?損壞的/合成的色彩地圖
我正在用imshow繪製2D標量字段,我想清楚地將正面的負面值與對比值進行對比。是否有一種方法可以實現由另外兩個顏色圖組成的顏色映射(例如,噴射例如hot
爲正數,而cool
爲負數)?損壞的/合成的色彩地圖
您可以從現有的cmaps中讀取顏色並添加它們,這相當簡單,但具有很少的缺點。如果原始色彩地圖的顏色數量不同,則兩者的「邊緣」不會居中。
如果它們具有相同數量的,所得到的CMAP將是對稱的,但「邊緣」將只在零如果正值等於負的值,例如-2 & 2或-4 & 4等。
import matplotlib.pyplot as plt
import numpy as np
cool = plt.cm.cool
hot = plt.cm.hot
cool_vals = [cool(i) for i in range(cool.N)]
hot_vals = [hot(i) for i in range(hot.N)]
comb_vals = cool_vals + hot_vals
# random hue with constant sat and value
new_cmap = matplotlib.colors.ListedColormap(comb_vals)
plt.imshow(np.arange(20*20).reshape(20,20)-199., interpolation='none', cmap=new_cmap)
plt.colorbar()
林不知道在Matplotlib很看中方法:
這可以像做。有一個全新的Python模塊'TrollImage',它具有使用色彩映射的非常好的實現。其目標是衛星圖像,但色彩映射部分當然適用於任何類型的圖像。