首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Matplotlib Colormap

Python Matplotlib Colormap
EN

Stack Overflow用户
提问于 2012-03-28 00:10:38
回答 3查看 28.9K关注 0票数 4

我使用色彩映射"jet“来绘制我的图形。但是,我想要白色的较低的值,并且这个色彩映射表从蓝色到红色。我也不想使用另一个色彩映射表,因为我需要这个颜色范围…我试图使我的色彩映射获得与"jet“相同的白色值范围,但这太难了。有人能帮帮我吗?谢谢

EN

回答 3

Stack Overflow用户

发布于 2012-03-28 18:48:25

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

(色彩映射表的最低级别是在红色、绿色和蓝色的每个元组的第一行中定义的,所以这是您开始编辑的地方。我添加了一个额外的元组,以便在下半部分有一个明显的白点。...for每种颜色,在元组的第一个元素中指示颜色栏中的位置(从0到1),在第二个和第三个元素中指示颜色本身)。

代码语言:javascript
复制
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()

您将看到以下内容:

票数 9
EN

Stack Overflow用户

发布于 2013-12-12 00:22:01

有另一种方法可以在不定义新的colobar的情况下执行相同的操作。可以使用cmap.set_under方法来定义低于给定阈值的所有值要使用的颜色。阈值是在pcolormesh过程中定义的:

代码语言:javascript
复制
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()
票数 8
EN

Stack Overflow用户

发布于 2012-03-28 00:47:24

colormaps page上有很多这样的例子。深入我的机器上的matplotlib源代码,jet被定义为(在_cm.py中):

代码语言:javascript
复制
_jet_data =   {'red':   ((0., 0, 0), (0.35, 0, 0), (0.66, 1, 1), (0.89,1, 1),
                         (1, 0.5, 0.5)),
               'green': ((0., 0, 0), (0.125,0, 0), (0.375,1, 1), (0.64,1, 1),
                         (0.91,0,0), (1, 0, 0)),
               'blue':  ((0., 0.5, 0.5), (0.11, 1, 1), (0.34, 1, 1), (0.65,0, 0),
                         (1, 0, 0))}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9893440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档