https://zhidao.baidu.com/question/1446748356021954700.html
将数据处理,log10,然后使用
colorbar('YTick',[-6,-5,-4,-3,-2,-1,-0],...
'YTickLabel',{'1E-6','1E-5','1E-4','1E-3',...
'1E-2','1E-1','1E0'});
就是使用logscle的数据,然后改变colorbar的标注,这是我找了好多回答唯一有用的,差点因此放弃matlab去使用python,
https://www.codenong.com/18191867/
这个是python的,但是照猫画虎,python画图还是不太会,回头一搜索,立马就找到了上面的答案
真是
山重水复疑无路,柳暗花明又一村
示例:
%sigma epsilon
clear,clc
e=linspace(-2,2,5);
s=linspace(-2,2,5);
s = 10.^s;
e = 10.^e;
[X,Y]=meshgrid(e,s);
Z =X+Y;
figure
%x,y正常绘制,使用set(gca,'XScale','log')对x,y轴取使用logsale
%z取对数log10(Z),绘制,使用colorbar(YTickLabel)修改
%[-3,-2,-1,0,1,2,3]为
% {'1E-3','1E-2','1E-1','1E0','1E1','1E2','1E3'});
contourf(X,Y,log10(Z),10)
set(gca,'FontName','Times New Roman','FontSize',12)
set(gca,'XScale','log')
set(gca,'YScale','log')
colorbar('YLim',[-3 3],...
'YTick',[-3,-2,-1,0,1,2,3],...
'YTickLabel',{'1E-3','1E-2','1E-1','1E0','1E1','1E2','1E3'});
======================================================================================
还有一种方法是将数据转换为log尺度,直接绘制,坐标轴换为log(x)