如何用matlab复刻出文章里一模一样的scalebar?
首先,找到想要的scalebar,例如从文章中截取的scalebar:
然后用识图网站调取每个刻度处的rgb值
得到的rgb输入matlab中,得到一个十一乘3的数组
colorset1=[130 0 0
230 0 0
255 38 77
255 91 180
231 140 255
129 190 255
27 242 255
0 178 255
0 76 255
0 0 228
0 0 121
]/255;
然后分段线性函数:linspace
colorset=flipud(colorset1);
con1=100;
for j1=1:10
for i11=1:3
myBlue3(1+(j1-1)*con1:j1*con1,i11)=linspace(colorset(j1,i11),colorset(j1+1,i11),con1);
end
end
figure(1)
set(gcf,'Position',pictureSize1);
colormap(myBlue3);%DiscoLightClassic turbo
a=100;
caxis([0, a]);
hBar = colorbar('ticks',(0:20:a));
%Position_Bar = get(hBar, 'Position') ; % 获取colorbar位置[x,y,width,height],其中,x表示colorbar的左下角与figure左边界的距离占figure宽度的百分比;
% y表示colorbar的左下角与figure下边界的距离占figure高度的百分比;width表示colorbar的宽度占figure宽度的百分比;
% height表示colorbar的高度占figure高度的百分比。
%Position_Bar = Position_Bar + [0.05 0 0 0.3 ] ; % 设定colorbar向右移动
Position_Bar=[0.82 0.2 0.02 0.615 ];
set(hBar, 'Position',Position_Bar) ;% 重置colorbar的位置
get(hBar, 'Position');
set(gca,'YTickLabels',[]);
set(gca,'XTickLabels',[]);
set (gca,'FontSize',fontsize);%设置坐标轴字体大小
set (gca,'FontWeight','bold');%加粗
set(gca,'tickdir','in')%刻度在里面
box off
得到的myblue3就是需要的scalebar数组