Skip to main content
 首页 » 编程设计

python之如何使用 matplotlib 生成新的彩虹色图

2025年05月04日19落叶

我需要使用彩虹色图绘制一个填充了 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()