作业帮 > 综合 > 作业

matlab中如何使colorbar显示百分数

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/10/06 07:09:16
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的设置
百分数?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');即可