请问matlab的colourbar 怎么设置间隔不均匀的,而且每个颜色不是渐变的,谢谢!

请问matlab的colourbar 怎么设置间隔不均匀的,而且每个颜色不是渐变的,谢谢!,第1张

%创造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

画填色图时往往需要对填色的变量进行说明,一般选择对colorbar加上一条legend

常见方法有两种,第一种是加一个ylabel

第二种是对colorbar设置,添加title,更适用于水平的colorbar


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

原文地址: https://outofmemory.cn/tougao/11773199.html

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

发表评论

登录后才能评论

评论列表(0条)

保存