matlab 如何自定义颜色

matlab 如何自定义颜色,第1张

matlab画平面分布图时colorbar的设置是非常重要的,好的colorbar不仅使图像更美观,而且能够使人更容易捕捉图上传递的信息。用过matlab的同学都知道matlab默认的colormap是jet,也就是你画完图后输入“colorbar”它所显示出来的颜色。此外,matlab还自带了很多colormap,如hsv,autumn,bone,colorcube等等。我们直接在命令窗口输入例如"colormap(hsv)"就可以是平面图的颜色显示相应的colormap。

下面教大家如何自定义自己想要的colormap,方法十分简单。

以中国海的海面温度图为例:

这是一张有m_pcolor画出来的图,之后colormap是matlab默认的jet(即直接输入命令‘colorbar’显示的colormap)。

如果我们这是在命令窗口输入‘colormap(hsv)’,则会变成下面这张图:

如果我们这是想定义一种新的colormap,颜色从赤,橙,白,蓝,紫依次传递的话(如下图),应该怎么做?

这就要用到matlab的colormapEditor了。

如下图:点击figrue窗口的Edit-colormap

出现colormapEditor窗口:

我们可以利用这个窗口直接设置自定义colormap。

colormapEditor中有是一个色标尺,色标尺下方有一些滑块,其中两端的矩形滑块是固定的,不能删除;而中间的矩形+三角形滑块是可以添加,删除,或滑动的。在色标尺低端单击鼠标左键添加,选择某块滑块按Deletei键删除,鼠标按住某个滑块可左右滑动。

为了达到上述所说的“颜色从赤,橙,白,蓝,紫依次传递”的效果,我们先把中间的两个矩形+三角形滑块删除,如下图:

由于上一张图colormap的两端都是红色,所以中间两块滑块删除后整个colormap只剩下红色一种颜色了。

我们先从白色添加起,标尺上一共有64个格,为了左右平衡,我们先挑中间两格添加白色,具体步骤为:

1、点击标尺中间色格的下方,出现滑块(如下图)。

2、双击出现的滑块,出现颜色选择窗口,选择白色(如下图)。

选完后图像就变成下面这样了:

相同的方法选择“赤,橙,蓝,紫”,如下图:

但这时我们发现colormap并不能如我们所愿,因为中间出现了黄色跟绿色。我们注意在colormapEditor中有个Interpolatingcolorspace选项,由于刚刚我们是以colormap(hsv)为根本的,所以这里的颜色插值方式是hsv的,我们这是应该选择RGB。如下图:

MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

Matlab提供的colorbar函数可以自定义颜色条,当颜色条宽度为1时,不渐变,颜色就只有一个。颜色条的渐变可以通过调节colormap函数选择的颜色列表以控制。如果使用连续的颜色来设置colormap,就可以在颜色条上创建渐变效果,从而得到更好的数据可视化效果。

%创造colormap,第一个颜色是蓝色,下面十个颜色是渐变的橙色

aa = othercolor('BuOr_8',20)

aa(1:8,:) = []

aa(2,:) = []

然后就按照thukd35的方法将矩阵的值设置成你想要画的几个间隔

%将原始数据处理成11个色

bcc_dis(find(bcc_dis<0)) = -0.5

bcc_dis(find(bcc_dis>=0&bcc_dis<0.1)) = 0.5

bcc_dis(find(bcc_dis>=0.1&bcc_dis<0.2)) =1.5

bcc_dis(find(bcc_dis>=0.2&bcc_dis<0.3)) = 2.5

bcc_dis(find(bcc_dis>=0.3&bcc_dis<0.4)) = 3.5

bcc_dis(find(bcc_dis>=0.4&bcc_dis<0.5)) = 4.5

bcc_dis(find(bcc_dis>=0.5&bcc_dis<0.6)) = 5.5

bcc_dis(find(bcc_dis>=0.6&bcc_dis<0.7)) = 6.5

bcc_dis(find(bcc_dis>=0.7&bcc_dis<0.8)) = 7.5

bcc_dis(find(bcc_dis>=0.8&bcc_dis<0.9)) = 8.5

bcc_dis(find(bcc_dis>=0.9&bcc_dis<1)) = 9.5

在这里为了方便起见,所有小于0的数设置成-0.5,0-0.1之间的设置成0.5,确定区间画颜色更明了一些

最后就是更改colorbar的tick

%修改colorbar

colormap(aa)

h = colorbar

caxis([-1,10])

h.Ticks = -1:10

h.TickLabels = [-1,0,.1,.2,.3,.4,.5,.6,.7,.8,.9,1]

set(h,'location','southoutside')

这样设置就保证了所有小于0的数都变成了-0.5,且落在区间[-1,0],其标签对应了-1-0;所有0-0.1之间的数变成了0.5,落在区间[0,1],其标签对应了0-0.1


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7818769.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存