Matlab绘图设置任意位置的图例,多个图例设置

Matlab绘图设置任意位置的图例,多个图例设置

   Matlab绘图的图例,可能最普遍的是这种,只有一个图例,竖直方向排列,或者水平方向排列:
在这里插入图片描述
在这里插入图片描述

clc; clear all; close all;
t = 0:0.001:6;
A = sin(t);
B = cos(t);
figure(1312)
l1 = plot(t,A);
hold on
l2 =plot(t,B);
grid on
legendText = legend([l1,l2],'Sin','Cos','FontSize', 18,'FontName','Times New Roman','location','northeast');  % 设置图例
% set(legendText,'Orientation','horizon');  % 默认垂直排列  改为水平排列

    如果想把图例分为多个,然后放到任意的位置,可能会想到直接再用一次legend,可事实上,在matlab里面,一个gca对象只能 有一个图例。gca就是所说的一个坐标轴对象,也就是我们前面看到的那个绘制的图形+外框+坐标轴。

多图例绘制

    如果要创建多个图例,我们可以另外创建和原图一样的坐标轴对象,然后设置为不可见,这样就不会覆原来绘制的图,再添加图例即可。如下:
在这里插入图片描述

clc; clear all; close all;
t = 0:0.001:6;
A = sin(t);
B = cos(t);
figure(1312)
l1 = plot(t,A);
hold on
l2 =plot(t,B);
grid on
legend1 = legend(l1,'Sin','FontSize', 13,'FontName','Times New Roman','location','northwest');  %  设置第2个图例

ah = axes('position',get(gca,'position'),'visible','off'); %新建一个坐标轴对象,位置和当前的坐标轴一致,并且设置为不可见,这样就不会覆原来绘制的图
legend2 = legend(ah,l2,'Cos','FontSize', 13,'FontName','Times New Roman','location','northeast');   %  设置第2个图例,注意这里需要传入建立的坐标轴对象

set(legend1,'Orientation','horizon');  % 默认垂直排列  改为水平排列
set(legend2,'Orientation','horizon');  % 默认垂直排列  改为水平排列

    如果需要调整图例的位置,一般我的操作是,打开属性面板,调节到合适的位置,然后拷贝位置的值,再使用代码设置(其实,这个看似简单的方法,却很高效。):
在这里插入图片描述
在这里插入图片描述

  • 26
    点赞
  • 119
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cuntou0906

玛莎拉蒂是我的目标!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值