Python Matplotlib颜色映射

Python Matplotlib颜色映射,python,matplotlib,Python,Matplotlib,我使用彩色贴图“jet”来绘制图形。但是,我希望在白色中有较低的值,这个颜色映射从蓝色变为红色。我也不想使用其他颜色贴图,因为我需要这个范围的颜色。。。 我试着让我的颜色贴图与“jet”一样,有一系列白色的值,但这太难了。 有人能帮我吗? 谢谢你这本书上有很多这样的例子。通过我的机器上的matplotlib源代码,jet被定义为(在\u cm.py中): 也许应该有一个最简单的解决方案,但我找到的方法是在“jet”的基础上创建自己的matplotlib.colors.LinearSegmente

我使用彩色贴图“jet”来绘制图形。但是,我希望在白色中有较低的值,这个颜色映射从蓝色变为红色。我也不想使用其他颜色贴图,因为我需要这个范围的颜色。。。 我试着让我的颜色贴图与“jet”一样,有一系列白色的值,但这太难了。 有人能帮我吗?
谢谢你

这本书上有很多这样的例子。通过我的机器上的
matplotlib
源代码,jet被定义为(在
\u cm.py
中):


也许应该有一个最简单的解决方案,但我找到的方法是在“jet”的基础上创建自己的matplotlib.colors.LinearSegmentedColormap


(颜色贴图的最低级别在红色、绿色和蓝色的每个元组的第一行中定义,因此这就是开始编辑的地方。我添加了一个额外的元组,以便在下部有一个清晰的白点。 …对于每种颜色,在元组的第一个元素中指示颜色栏中的位置(从0到1),在第二个和第三个元素中指示颜色本身)

您将获得以下信息:

还有另一种方法可以在不定义新colobar的情况下执行相同的操作。 您可以在方法下使用cmap.set_,该方法定义要用于低于给定阈值的所有值的颜色。阈值在pcolormesh期间定义:

from matplotlib.pyplot import *
import numpy as np

mycmap = cm.get_cmap('jet')
mycmap.set_under('w')

pcolor(np.random.rand(10,10), cmap=mycmap, vmin=.1)
colorbar()
show()

谢谢,但我如何才能为最低级别添加白色?我不太懂三重数,我在哪里能找到它们?例如,如果我想将颜色条的值从0改为10,我需要添加其他三元组??颜色映射的最低级别在红色、绿色和蓝色元组的第一行中定义,元组的第一个元素表示伽马值(从0到1)(想想颜色条中的“位置”),您可以在_cm.py中找到生成matplotlib颜色映射的词典。此文件存储在您的Python文件夹中,通常位于以下路径:C:\Python###\Lib\site packages\matplotlib\Thank you's help!这就是我要找的!对于其他人:您也可以使用
\u segmentdata
属性访问段数据。所以,
mpl.cm.jet.\u segmentdata
from matplotlib.pyplot import *
import matplotlib
import numpy as np

cdict = {'red': ((0., 1, 1),
                 (0.05, 1, 1),
                 (0.11, 0, 0),
                 (0.66, 1, 1),
                 (0.89, 1, 1),
                 (1, 0.5, 0.5)),
         'green': ((0., 1, 1),
                   (0.05, 1, 1),
                   (0.11, 0, 0),
                   (0.375, 1, 1),
                   (0.64, 1, 1),
                   (0.91, 0, 0),
                   (1, 0, 0)),
         'blue': ((0., 1, 1),
                  (0.05, 1, 1),
                  (0.11, 1, 1),
                  (0.34, 1, 1),
                  (0.65, 0, 0),
                  (1, 0, 0))}

my_cmap = matplotlib.colors.LinearSegmentedColormap('my_colormap',cdict,256)

pcolor(np.random.rand(10,10),cmap=my_cmap)
colorbar()
show()
from matplotlib.pyplot import *
import numpy as np

mycmap = cm.get_cmap('jet')
mycmap.set_under('w')

pcolor(np.random.rand(10,10), cmap=mycmap, vmin=.1)
colorbar()
show()