为了账号安全,请及时绑定邮箱和手机立即绑定

在 matlab/python 中创建特定的颜色图

在 matlab/python 中创建特定的颜色图

三国纷争 2022-06-14 16:38:53
不知道问这个问题的最佳地点在哪里,但这里是:由于我的电脑屏幕出现故障,我得到了一个多年前使用 matlab 制作的图,但在 python 中也可以正常工作,从常规的“热”颜色图变为完全不同的颜色图,如下图所示:顶部是原来的热,底部是“故障”,从深蓝色到亮粉色的白色有谁知道如何故意做到这一点?事实证明,我更喜欢这种配色方案,但不知道如何/如何正确。
查看完整描述

2 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

颜色图只是一个 3 列矩阵,其中每一行定义一种颜色。具体来说,这些列分别定义了 R、G、B 分量。因此,您可以手动创建颜色图。


例如,可以通过将 B 分量设置为 1 并让其他两个范围从 0 到 1 来生成从蓝色到白色的颜色图:


cmap = [linspace(0,1,256).' linspace(0,1,256).' ones(256,1)];

colormap(cmap)

colorbar('horizontal')

//img1.sycdn.imooc.com//62a8493f000153bb04590054.jpg

通过重新排列颜色图的列,可以实现更接近蓝色/粉色/白色示例的内容hot:


cmap = hot(256);

cmap = cmap(:,[2 3 1]);

colormap(cmap),

colorbar('horizontal')

//img1.sycdn.imooc.com//62a8494c0001471204540060.jpg

BrewerMap该函数可以生成许多漂亮的颜色图,可在File ExchangeGitHub 上找到

手动生成的颜色图的一个问题是它们通常在感知上并不统一。相比之下,Matlab 的许多默认颜色图(如parula或 Python 之类magma)在感知上是统一的。这是关于统一和非统一颜色图的讨论,重点parula. 您可以通过 Ander Biguri 的File Exchange 功能在 Matlab 中使用 Python 的颜色图。

parula这是 Matlab和 Python 的两个示例plasma。在它们中的任何一个中,沿水平轴的相等增量大致对应于对“颜色变化”的类似感知。

//img1.sycdn.imooc.com//62a849620001598504680141.jpg

查看完整回答
反对 回复 2022-06-14
?
冉冉说

TA贡献1877条经验 获得超1个赞

看起来您的屏幕只是反转了颜色。如果您想在 MATLAB 中反转颜色图,您可以通过执行以下操作相当简单地做到这一点:

colormap(1-hot);

这会将热点地图中的红色变为蓝色,将黑色变为白色。如果您希望反过来(即红色 -> 白色,黑色 -> 蓝色),您可以这样做:

colormap(1-flipud(hot));

这应该适用于任何颜色图。


查看完整回答
反对 回复 2022-06-14
  • 2 回答
  • 0 关注
  • 240 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信