matlab中如何使colorbar显示百分数

如何使邮编的colorbar显示成百分数

[X,Y]=meshgrid(hs,log(Ds)/log(10));

surf(X,Y,Z)

shading('flat')

colormap('hot')

colorbar

view([0 0 1])

set(gca,'ytick',[21 22 23 24 25]);

set(gca,'yticklabel',{'1e21','1e22','1e23','1e24','1e25'});

title('Fort Union B')

xlabel('h')

ylabel('D')

set(gca,'xtick',800:300:4000);

以上是原code中对colorbar的设置

在colorbar命令中,设置 ticklabels参数即可

colorbar('Ticks',[0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1],...

    'TickLabels',{'0','10%','20%','30%','40%','50%','60%','70%','80%','90%','100%'});

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-07
figure表示新建一个图窗口,以免后续的绘图语句覆盖原图;hold on表示在原图的基础上绘制新的图像
参考代码
clc
clear all
close all
tic
n = 10; % 数据点数
x = 1:n; % 横坐标
y1 = randi(10, 1, n); % 纵坐标
y2 = randi(10, 1, n); % 纵坐标
figure
plot(x, y1);
figure % 想要看hold on的效果,请将改行注释掉,并取消下一行的注释
% hold on
plot(x, y2, 'r');
toc
第2个回答  2013-08-28
百分数?1600显示成160000%?追问

最小的为0,最大的为100%,假设最大值为1700,那么200处应该显示11.76%

追答


colorbar
改为
p=colorbar;
在最后加上下述语句
clim=get(p,'clim');
set(p,'yticklabel',arrayfun(@(n)sprintf('%8.2f%%',(n-clim(1))/diff(clim)*100),get(p,'ytick'),'uniformoutput',false));

追问

      

 谢谢,但是结果出来并不是我想要的效果

追答

你把clim=get(p,'clim');改为clim=get(p,'ylim');即可

本回答被提问者采纳
相似回答