• Matlab渐变颜色图(colormap)生成/编辑器—ColorMap


    渐变配色在科研绘图时十分常用

    比如三维柱状图

    特征渲染散点图

    热图

    等等,都需要使用渐变配色

    作为一个Matlab用户,你大概听说过jetparulahsvhot这些耳熟能详的颜色图(colormap)。

    而在去年这个时候,我制作了一个addcolorplus配色强化工具,里面集成了Python Matplotlib和Surfer中的72种渐变色。一经推出,也算是广受好评。

    按理说,这几十种渐变色也差不多够用了。

    实际应用时,似乎又不完全够用

    比如,很多时候,需要我们自己来制作渐变色颜色图

    再比如,addcolorplus中的渐变色是64色的,在一些场景应用时,会出现“波纹“现象,因此需要对其进行致密化处理;另一方面,如果我们就是想要七八种颜色组成的稀疏渐变色,那还需要对其进行稀疏化处理

    还有一个问题是,当我们想要编辑颜色图,调节颜色的显示区间时,会发现Matlab自带的colormapeditor有些难用,这个懂得都懂。

     为了解决上述问题,我用Matlab制作了这个ColorMap渐变色生成/编辑器

    那么,它都能做些什么呢?

    功能1:生成渐变色颜色图

    对于给定的颜色矩阵:

    C = [  2  48  71      18 104 131      39 158 188     144 201 230     255 255 255]/255;

    利用ColorMap工具,将颜色矩阵C与渐变色数量N作为输入参数,即可得到渐变色颜色图map:

    N = 256;map = ColorMap(C,N);

    然后利用colormap(map)命令对已有数据图赋色:

    具体示例程序见demo1

    功能2:致密化与稀疏化

    对于已有的渐变色颜色图,比如addcolorplus配色强化工具中的300号渐变色:

    C = addcolorplus(300);% 绘图figureimage(permute(C,[1,3,2]))

    如果觉得颜色渐变程度还不够,可以通过ColorMap工具,设置一个较大的渐变色数量N1

    % 致密化后渐变色总数N1 = 256;% ColorMap颜色致密化处理map = ColorMap(C,N1);% 绘图figureimage(permute(map,[1,3,2]))

    而如果想要对其进行稀疏化处理,只需设置一个较小的渐变色数量N2

    % 稀疏化后渐变色总数N2 = 7;% ColorMap颜色稀疏化处理map = ColorMap(C,N2);% 绘图figureimage(permute(map,[1,3,2]))

    具体示例程序见demo2

    功能3:显示区间调节

    上述两种功能均采用等间距模式生成渐变色

    而ColorMap工具中还包括另一种模式:非等间距模式

    对于给定的颜色矩阵C:

    C = [068 004 090     065 062 133     048 104 141     031 146 139     053 183 119     145 213 066     248 230 032]/255;

    首先定义比例参数ratio

    ratio = [0.1 0.1 0.1 0.1 0.2 0.4];

    具体来说,对于给定数量的渐变色颜色图,ratio中的0.4表示(145 213 066)和(248 230 032)两种颜色渐变的占比为40%,0.2表示(053 183 119)和(145 213 066)两种颜色渐变的占比为20%……

    特别注意,ratio变量中数字的数量等于颜色矩阵C的行数减1,数字之和等于1,而且所有数字不能完全相等(完全相等就是等间距模式)

    然后,利用ColorMap工具的‘mode2’生成非等间距渐变色:

    map2 = ColorMap(C,N,'mode2',ratio);

    最后使用colormap(map)命令对已有数据图赋色即可:

     具体示例程序见demo3

    以上。

    获取方式:

    Matlab渐变色生成器ColorMap

  • 相关阅读:
    cookie session token以及jwt
    代码随想录算法训练营第23期day10 |232.用栈实现队列、225. 用队列实现栈
    功能测试进阶建议,学习思路讲解
    19、Flink 的Table API 和 SQL 中的自定义函数及示例(2)
    【LeetCode15. 三数之和】——set型哈希表、双指针法
    【数据库内核分析系列】:数据库表的创建过程
    langchain主要模块(三):Chain
    20分钟---Vue2->Vue3
    分享几招教会你怎么给图片加边框
    XSS进阶三
  • 原文地址:https://blog.csdn.net/qq_26447137/article/details/125443463