MATLAB设置两行xticklabels以及colorbar宽度
MATLAB设置两行xticklabels以及colorbar宽度
最近画的一幅图的X轴是时间,需要标注月份、日期和时分,显然每个xticklabel太长了,于是想要分两行标注,第一行标注时分,第二行标注月日。搜了一圈发现MATLAB并没有实现这个功能的函数,于是只能使用text行数进行实现。实现过程主要是先调整gca的宽度,然后上移为两行text腾出空间。然后设置gca本身的xticklabels为空。根据xticks的位置和y轴的范围设置两行text的范围,最后下移xlabel的范围。
画完之后又发现colorbar太宽了,看起来不美观。结果调整colorbar position之后,gca竟然自动调整了宽度,导致gca和colorbar重叠了,于是又设置了一遍gca的position。下面是示例代码,总体顺序是
(1)画图
(2)画colorbar
(3)调整gca position
(4)标注两行text
(5)调整xlabel的position
(6)调整colorbar的position
(7)重置gca position
clc;clear;
figure;
pcolor(0:10,1:20,rand(20,11));shading interp;
c=colorbar;colormap(cool);
%plot colorbar first and get gca position
ax=gca;
xticks(0:2:10);
xlim([0 10]);
%% add two lin