如果想要绘制多列横排legend怎么办嘛,最终结果如下图所示,灵感来自于网络
% 第一组数,对应上图左侧
lg_barV = bar(*,*);% *为你要画的变量
lg_linethinV = plot(*,*,'linewidth',.8);% 细线
lg_lineboldV = plot(*,*,'linewidth',2);% 粗线
% 第二组数,对应上图右侧
lg_barT = bar(*,*);% *为你要画的变量
lg_linethinT= plot(*,*,'linewidth',.8);% 细线
lg_lineboldT = plot(*,*,'linewidth',2);% 粗线
lg1 = legend([lg_linethinV,lg_lineboldV,lg_barV],{'' '' ''});% 左侧一列不添加标签只显示图例
set(lg1,'box','off','Fontsi',12,'Fontwei','Bold','position',[0.10 0.85 0.20 0.08])% 左侧图例画布位置,[左 下 宽 高]
ah=axes('position',get(gca,'position'),'visible','off');% 精髓在这,新建不可见坐标轴,position灵活指定就可以
lg2 = legend([lg_linethinT,lg_lineboldT,lg_barT],{' 15-day lowpass' ' 120-day lowpass' ' Semi-annual mean'});
% 把右侧图例画上去,并添加标签
set(lg2,'box','off','Fontsi',12,'Fontwei','Bold','Position',[0.21 0.85 0.20 0.08])% 右侧图例的画布位置,[左 下 宽 高]
% 右侧图例左侧距离0.21比左侧图例0.10,要多一点
其实利用新建坐标轴的功能+画图超出画布功能可以实现很多好看的时间序列画图方法,改天再讨论
转载本文请联系原作者获取授权,同时请注明本文来自肖鑫科学网博客。
链接地址:http://blog.sciencenet.cn/blog-3386114-1208737.html
上一篇:解决matlab saveas printf保存图片时 colorbar中的字体颜色发生改变
下一篇:Matlab m_map一张地图上使用用多个colormap以及patch精细岸线数据去除河流