Matlab绘制坐标轴等比例的子图

1. 问题

有时我们Matlab绘制子图的时候需要子图的刻度等比例,然而子图的刻度范围却不一致。该如何解决?

2. 方法

这是需要使用设置坐标轴句柄gca的位置。

>> gca

ans = 

  Axes - 属性:

             XLim: [0 1]
             YLim: [0 1]
           XScale: 'linear'
           YScale: 'linear'
    GridLineStyle: '-'
         Position: [0.1300 0.1100 0.7750 0.8150]
            Units: 'normalized'

position的四个参数分别代表xy轴的起点坐标(左下角),xy轴的长度分数。图窗满长度为1。

3. 代码

这里看一个例子。上图横坐标范围为[0 10],下图为[0 20]。所以若要横坐标成比例,需要轴的宽度也是1:2。
这里设置下图的起点坐标为[0.1 0.1],宽度为0.8,高度为0.4。
则上图宽度为0.8的一半,即0.4,高度还是0.4。但是需要注意的是现在起始坐标变成了[0.1 0.55]。因为下图的y轴的范围是[0.1 0.1+0.4]=[0.1 0.5]。为了防止二图覆盖,上图的起始y坐标必须大于0.5,这里选择0.55。

x1=0:0.1:10;
y1=sin(x1);
x2=0:0.1:20;
y2=sin(x2);

figure

subplot(211)
plot(x1,y1,'r','linewid',2)
set(gca,'position',[0.1 .55 .4 .4]);

subplot(212)
plot(x2,y2,'r','linewid',2)
set(gca,'position',[0.1 .1 .8 .4]);

在这里插入图片描述

也可以设置下图上边界和上图下边界重合。

x1=0:0.1:10;
y1=sin(x1);
x2=0:0.1:20;
y2=sin(x2);

figure

subplot(211)
plot(x1,y1,'r','linewid',2)
set(gca,'position',[0.1 .5 .4 .4],'xticklabel',[]);

subplot(212)
plot(x2,y2,'r','linewid',2)
set(gca,'position',[0.1 .1 .8 .4]);

在这里插入图片描述

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yangshun_cug

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值