xiaoxin960904的个人博客分享 http://blog.sciencenet.cn/u/xiaoxin960904

博文

Matlab 利用新建坐标轴绘制多列legend

已有 3971 次阅读 2019-12-4 09:51 |个人分类:Matlab学习笔记|系统分类:科研笔记| 新建坐标轴, matlab图例

如果想要绘制多列横排legend怎么办嘛,最终结果如下图所示,灵感来自于网络

image.png

% 第一组数,对应上图左侧

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,要多一点


其实利用新建坐标轴的功能+画图超出画布功能可以实现很多好看的时间序列画图方法,改天再讨论



https://blog.sciencenet.cn/blog-3386114-1208737.html

上一篇:解决matlab saveas printf保存图片时 colorbar中的字体颜色发生改变
下一篇:Matlab m_map一张地图上使用用多个colormap以及patch精细岸线数据去除河流
收藏 IP: 222.195.137.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-23 01:14

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部