我需要使用彩虹色图绘制一个填充了 0.0 到 1.0 范围内的地球物理值的图像。
我尝试了 matplotlib 中现有的彩虹色图,但我对它并不完全满意:
from matplotlib import pyplot as plt
import numpy as np
plt.pcolor(np.random.rand(10,10),cmap='rainbow')
plt.colorbar()
plt.show()
如何创建从值为 0.0 的黑色开始,然后逐渐显示以下颜色的颜色图:紫色、蓝色、青色、绿色、黄色,最后为值为 1.0 的红色?
请您参考如下方法:
我按照 cookbook matplotlib 中的建议使用了 matplotlib.colors.LinearSegmentedColormap .
import matplotlib
from matplotlib import pyplot as plt
import numpy as np
cdict = {'red': ((0.0, 0.0, 0.0),
(0.1, 0.5, 0.5),
(0.2, 0.0, 0.0),
(0.4, 0.2, 0.2),
(0.6, 0.0, 0.0),
(0.8, 1.0, 1.0),
(1.0, 1.0, 1.0)),
'green':((0.0, 0.0, 0.0),
(0.1, 0.0, 0.0),
(0.2, 0.0, 0.0),
(0.4, 1.0, 1.0),
(0.6, 1.0, 1.0),
(0.8, 1.0, 1.0),
(1.0, 0.0, 0.0)),
'blue': ((0.0, 0.0, 0.0),
(0.1, 0.5, 0.5),
(0.2, 1.0, 1.0),
(0.4, 1.0, 1.0),
(0.6, 0.0, 0.0),
(0.8, 0.0, 0.0),
(1.0, 0.0, 0.0))}
my_cmap = matplotlib.colors.LinearSegmentedColormap('my_colormap',cdict,256)
plt.pcolor(np.random.rand(10,10),cmap=my_cmap)
plt.colorbar()
plt.show()
