MATLAB如何自定义颜色图(colormap)

这篇具有很好参考价值的文章主要介绍了MATLAB如何自定义颜色图(colormap)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MATLAB有一套自己的颜色库,常用的都有,但是数量不算太多。我们有时候需要用到一些MATLAB没有的colormap,比如Python的Matplotlib就有很多的colormap,我们也有可能需要自己来定义一些渐变的颜色。本片笔记主要是介绍colormap如何自己定义或者如何从网络上下载自己需要的颜色图并且使用。

colormap的原理

何为colormap?其实就是一个N*3的数值矩阵,数字是0到1的数据,分别对应的是RGB通道的强度,比如红色就是[1,0,0]。而颜色图是一个颜色变化的图,当你把这个数据给MATLAB之后,MATLAB会按照这个colormap在绘制数据的时候自动插值。所以我们可以任意自己定义一个colormap,下面是一个例子,

color_map_mine=[linspace(0,1,100)',linspace(0,1,100)',linspace(0,0.5,100)'];
x=linspace(-3,3,200);
y=linspace(-3,3,200);
[x_grid,y_grid]=meshgrid(x,y);
z=sin(x_grid).*cos(y_grid);

pcolor(x_grid,y_grid,z);colormap(color_map_mine);shading interp;

MATLAB如何自定义颜色图(colormap)

获取Python的颜色图?

Python有非常丰富的颜色图,比如下面的网站

Choosing Colormaps in Matplotlib

就有比价多的颜色图种类,

MATLAB如何自定义颜色图(colormap)

比如我们需要图里面的purples颜色图应该如何操作呢?我们首先需要在python中得到我们需要的颜色图的矩阵数据

# To export colormap

# %%

import numpy as np

import matplotlib.pyplot as plt

from matplotlib import cm

from matplotlib.colors import ListedColormap, LinearSegmentedColormap

Purples = cm.get\_cmap('Purples', 256)
# %%
purple\_map=Purples(np.linspace(0,1,256))

# %%
np.savetxt('./purple\_color\_map.txt',purple\_map)

我们将得到的数据保存为一个$256\times 4$的矩阵,然后将数据保存为txt格式,再在MATLAB中导入并使用

clear data;
data=importdata('./purple_color_map.txt');
% 此处只取前列即可。
purple=data(:,1:3);
figure(2)
pcolor(x_grid,y_grid,z);colormap(purple);shading interp;colorbar;

得到的图如下,可以看见我们确实已经使用的是我们需要的颜色图了。

MATLAB如何自定义颜色图(colormap) 

自定义颜色图

更加高阶的操作就是自定义颜色图了,方法和之前一样。比如我们的目标是希望颜色图是某三个颜色的渐变,即颜色1到颜色2再到颜色3,我们首先的知道这些颜色的RGB值,这个可以通过PS或者CorelDraw的颜色吸管根据获得,然后再自己写一个竖直的渐变的矩阵,我一般直接是线形变化的。下面是具体的实际操作,比如我的要求是我希望颜色由红到蓝再到绿,那么三个颜色为

​```
color_1=[1,0,0];
color_2=[0,0,1];
color_3=[0,1,0];
​```

假设绿色位于颜色图的中间,那么

num12=100;num23=100;
R_mat=[linspace(color_1(1),color_2(1),num12),linspace(color_2(1),color_3(1),num23)];
G_mat=[linspace(color_1(2),color_2(2),num12),linspace(color_2(2),color_3(2),num23)];
B_mat=[linspace(color_1(3),color_2(3),num12),linspace(color_2(3),color_3(3),num23)];
color_map_RGB=[R_mat',G_mat',B_mat'];
figure(2)
pcolor(x_grid,y_grid,z);colormap(color_map_RGB);shading interp;colorbar;

绘制出来的结果如下

MATLAB如何自定义颜色图(colormap)你如果想改变颜色的位置只需要认为设置num12,num23的 比例即可。所以一旦搞懂了MATLAB使用颜色原理,我们就可以有非常大的自由度进行设计优化我们的颜色图了。

总结

本片笔记主要是总结了如何自定义MATLAB的颜色图或者从Python获取其颜色图在MATLAB使用,更加高阶的用法可以后续在尝试,但实际使用中目前的这些手段已经绝对是够了。

参考链接:知乎文章来源地址https://www.toymoban.com/news/detail-423975.html

到了这里,关于MATLAB如何自定义颜色图(colormap)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MATLAB | 如何自然好看的从图片中提取颜色并制作色卡

    在这里研究了一下各种排序算法,写一篇如何由图片一键生成颜色条的方法。 假设有大量颜色怎么对其进行排序呢,首先想到的最简单方法就是将其按照RGB值的大小进行排序,为了方便展示颜色条,这里编写了一个颜色条展示函数: 假设对于RGB颜色,先按照R通道数值进行排

    2023年04月10日
    浏览(35)
  • 电子取证之服务器取证,本人第一次从pc取证到服务器,这里有一套例题分享给大家,所有解析我都尽可能全面具体,希望与各位同仁一起学习。(二次修改)

    话不多说,先上链接,这个包含一个2G的服务器镜像和题目,原题是弘连公司的,致谢,此处纯粹分享解法供大家学习。 第二次做题目,发现宝塔新版已经不支持,所以题目意义减少,还是欢迎手搓与小白来看看 链接: https://pan.baidu.com/s/1p8T7Fez_VlnSqdzvptARRw?pwd=ybww 提取码: ybww

    2024年02月07日
    浏览(51)
  • MATLAB可视化(三)如何设置曲线的形状、颜色、数据点形状、粗细等

    例一 :绘制正弦图像,然后展示不同的曲线、颜色、数据点型 这里的hold on 在上一篇文章介绍过,用来附加图像,运行结果如下:   例二 :绘制正弦图像,对曲线的属性做更细致的调整,如下: 设置粗细、数据点大小、填充色等 注:具体参数调整如下        

    2024年02月16日
    浏览(44)
  • uniapp 官方 ui组件库 uni-ui 的uni-data-checkbox 如何实现自定义选中时的边框颜色

    官方组件并不支持这一项自定义,所以选择修改组件库,非常简单,傻瓜式修改。 首先找到该组件文件,这个就不过多赘述了。贴下图:    在props选项中增加一个borderColor变量:  找到设置背景的方法中添加两行代码  然后是使用:  效果:  完结!!!

    2024年02月08日
    浏览(50)
  • MATLAB | 如何使用MATLAB绘制高度自定义的桑基图(sankey)

    我之前也出过一个超简单的桑基图绘制函数,但是无法应对很多特殊情况,在这里我将其重构了一些写成了类,加了很多内置修饰函数,实现了流入流出数据不相等或者跨层数据流动的特殊情况绘制,首先展示一下使用我编写的函数能够实现怎样的效果吧: 以上的图片全是本

    2024年02月04日
    浏览(97)
  • 有一种新型病毒在 3Ds Max 环境中传播,如何避免?

    3ds Max渲染慢,可以使用渲云渲染农场: 渲云渲染农场解决本地渲染慢、电脑配置不足、紧急项目渲染等问题,可批量渲染,批量出结果,速度快,效率高。 此外3dmax支持的 CG MAGIC插件专业版正式上线, CG MAGIC是一款基于3ds Max深度开发的免费智能化辅助插件,上千项实用功能

    2024年02月12日
    浏览(40)
  • 更改java输出颜色,自定义颜色输出

    平时是不是觉得枯燥的输出颜色,不是白色,就是黑色 通过特定编码进行颜色的更改! 整活 编写枚举类: 测试: 输出:

    2024年02月11日
    浏览(37)
  • MATLAB | 有关数值矩阵、颜色图及颜色列表的技巧整理

    这是一篇有关数值矩阵、颜色矩阵、颜色列表的技巧整合,会以随笔的形式想到哪写到哪,可能思绪会比较飘逸请大家见谅,本文大体分为以下几个部分: 数值矩阵用颜色显示 从颜色矩阵提取颜色 从颜色矩阵中提取数据 颜色列表相关函数 颜色测试图表的识别 heatmap 我们最

    2024年02月03日
    浏览(40)
  • matlab:plot线型和颜色

    线型选项: 实线:使用默认的plot命令绘制的线条就是实线。 虚线:可以使用“–”选项来绘制虚线。例如:plot(x,y,‘–’)。 点线:可以使用“:”选项来绘制点线。例如:plot(x,y,‘:’)。 点划线:可以使用“-.”选项来绘制点划线。例如:plot(x,y,‘-.’)。 颜色选项: Matla

    2024年02月05日
    浏览(36)
  • java poi导出excel单元格设置自定义背景颜色(任意颜色)

    一、思考过程(看代码的移步第二点) 现有方法 现有资料多为使用 IndexedColors 设置颜色, 但是IndexedColors能设置的颜色有限 ,而需求中所要颜色都是花里胡哨的,需要真正的自定义; 而颜色的本质是rgb ,所以只要我们能自己设置rgb的值就能获取任意想要的颜色了; 源码分

    2023年04月10日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包