一个figure存在多个legend:多行多列图例

问题:如何在Matlab中,将图例绘制成多行多列的?

查找资料过程中发现,

1)有的方法要求多个plot中横坐标具有相同的长度

比如:https://blog.csdn.net/xgf415/article/details/56480011

2)高版本中,部分函数报错(应该可以改正)

比如:https://blog.csdn.net/faaronzheng/article/details/46793523

本文根据需要找到一个可靠的解决方法,现整理如下:

优点:每个plot互相独立;代码量少,易于操作;

参考:https://blog.csdn.net/davyhwang/article/details/37660073

程序示例:第一行一个图例,第二行两个图例且水平放置;

%%功能:绘制多个legend
figure;
x = 1:10;
p1 = plot(x,2.*x,'k-');  %真实RUL
hold on;
p2 = plot(x,4.*x,'b-');  %改进距离度量
p3 = plot(x,8.*x,'r-');  %余弦相似度+距离

% ============= Legend 1 :
hg1 = legend('第一条');
set(hg1,'FontSize',12,'Location', 'SouthOutside','box','off');  
%注:将legend放在图外面时,Legend 1不能通过鼠标移动,只能通过代码调整位置 
% ============= Legend 2 :
ah2 = axes('position',get(gca,'position'),'visible','off');
hg2 = legend(ah2, [p2 p3], '第二条', '第三条');
set(hg2,'FontSize',12,'Location', 'SouthOutside',...
        'Orientation','horizontal','box','off');

说明:

1)第一个图例只需获取legend的句柄,然后对齐进行设置;

2)后面的图例均需要三行即

ah2 = axes('position',get(gca,'position'),'visible','off');      %固定写法,只需更改返回值。必须有!!!

hg2 = legend(ah2, [p2 p3], '第二条', '第三条');                 %绘制图例,[p2 p3]表示绘制哪几个曲线的图例

set(hg2,...)                                                                       %设置各种参数

比如:再添加一个图例

ah3 = axes('position',get(gca,'position'),'visible','off');
hg3 = legend(ah3, [p4 p5 p6], '第四条', '第五条','第六条');
set(hg3,'FontSize',12,'Location', 'SouthOutside',...
        'Orientation','horizontal','box','off');

通过绘制多个legend,达到m行n列的图例效果;

进一步,在figure的“图像属性”状态下,可以进行更多的操作。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值