如何使邮编的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%'});
最小的为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');即可
本回答被提问者采纳