Matlab自定义颜色图

Matlab自定义颜色图介绍Matlab自带颜色图比较单调,很多时候无法达到其它绘图工具,如:NCL、Pythonmatplotlib、GMT等绘图软件颜色图效果。下面就介绍如何将NCL等颜色图为己所用。颜色图下载NCL官网提供了上述绘图工具的颜色图合集,因此只需要将需要的颜色图下载后进行使用即可。选择颜色图WhiteBlueGreenYellowRed下载。Matlab读取下载的颜色表clc;clearall;closeallfiguremesh(peaks)colorbarcolor=n

大家好,又见面了,我是你们的朋友全栈君。

介绍

Matlab自带颜色图比较单调,很多时候无法达到其它绘图工具,如:NCL、Python matplotlib、GMT等绘图软件颜色图效果。下面就介绍如何将上述丰富的颜色图为己所用,以及自定义颜色图。

方法1

颜色图下载

NCL官网提供了上述绘图工具的颜色图合集,因此只需要将需要的颜色图下载后进行使用即可。
在这里插入图片描述
选择颜色图WhiteBlueGreenYellowRed下载。

Matlab读取下载的颜色表

clc; clear all; close all

figure
mesh(peaks)

colorbar
color = ncl_colormap('WhiteBlueGreenYellowRed');
colormap(color)

figure
mesh(peaks)
num = 20;
color2 = color(floor(linspace(1,length(color),num)),:);
colormap(color2)
colorbar
function color = ncl_colormap(colorname)

temp = import_ascii([colorname '.rgb']);
temp(1:2) = [];
temp = split(temp,'#');
temp = temp(:,1);
% color = deblank(color);
temp = strtrim(temp);
temp = regexp(temp, '\s+', 'split');
for i=1:size(temp,1)
    color(i,:) = str2double(temp{ 
   i});    
end
color = color/255;
end
% 成行读取文本数据
% Edited Time:2019-02-22
function ascii = import_ascii(file_name)
i = 1;
fid = fopen(file_name);
while feof(fid) ~= 1
    tline = fgetl(fid);
    ascii{ 
   i,1} = tline; i = i + 1;
end
fclose(fid);
end

效果

在这里插入图片描述
注意:图2为非连续颜色图,刻度和颜色图不对应,需要自己修改。

方法2

改方法需要下载rgbmap函数,以及rgb函数。

h = surf(peaks);
colorbar
rgbmap('white','blue','green','yellow','red')
shading interp
set(h,'edgecolor','k','edgealpha',.2)
caxis([-5 5])
axis tight

在这里插入图片描述

总结

两种方法,第一种方法比较简单,不用花费太多精力在颜色搭配上,就可以获得效果较好的颜色图。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138349.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • echart横坐标字体样式问题 xAxis属性问题

    echart横坐标字体样式问题 xAxis属性问题

    2020年11月9日
  • 安装opencv失败解决

    安装opencv失败解决失败命令pipinstallopencv-python命令改成:pipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simpleopencv-python安装成功!

    2022年6月18日
  • UML时序图知识

    UML时序图知识1.时序图(SequenceDiagrams)时序图描述对象之间消息的发送顺序,强调时间顺序。时序图是一个二维图,横轴表示对象,纵轴表示时间,消息在各对象之间横向传递,依照时间顺序纵向排列。用箭头表示消息、用竖虚线表示对象生命线。2.时序图的作用展示对象之间交互的顺序。将交互行为建模为消息传递,通过描述消息是如何在对象间发送和接收的来动态展示对象之间的交互;相对于其他UML图,时序图更强调交互的时间顺序;可以直观的描述并发进程。3.时序图组成元素角色(Actor)系统

    2022年6月18日
  • 基于DNS的GSLB,基于应用重定向的GSLB,基于主机路由注入的GSLB

    基于DNS的GSLB,基于应用重定向的GSLB,基于主机路由注入的GSLB基于DNS的GSLB,基于应用重定向的GSLB,基于IP地址伪装(三角传输)的GSLB,基于主机路由注入的GSLB(Anycast)引言在过去的几年中,随着互联网的快速发展和企业应用WEB化,服务器负载均衡(SLB)技术已经不再陌生。服务器负载均衡根据用户数据请求中的4-7层信息将其智能转发到后端少则数台多则成…

    2022年5月9日
  • 机器学习中最常见的四种分类模型

    机器学习中最常见的四种分类模型点击蓝字关注我,有干货领取!作者:JasonBrownlee翻译:候博学前言机器学习是一个从训练集中学习出算法的研究领域。分类是一项需要使用机器学习算法的任务,该算法学习如何为数据集…

    2022年10月5日
  • 智能家居急速扩容 企业标准各异

    智能家居急速扩容 企业标准各异

    2022年3月4日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号