【问题标题】:Superimpose plots Matlab叠加图 Matlab
【发布时间】:2013-11-19 02:56:37
【问题描述】:

我有两个信号,每个轴一个信号,分别以标准方式单独获取,它们看起来像这样:

但是,它们代表不同的测量值,我需要通过在标准 X-Y 轴(左下)上表示一个和在一组不同的坐标轴(X = 左,Y = 上)上表示一个来叠加它们。

我想到了下面的代码:

    figure(1); 
    line(1:128,imagesXMatrix(i,:));
    ax1 = gca;
    set(ax1,'XColor','r','YColor','r')
    ax2 = axes('Position',get(ax1,'Position'), ...
          'XAxisLocation','left','YAxisLocation','top', ...
          'Color', 'none','XColor','k','YColor','k');
    line(1:128,imagesYMatrix(i,:),'Parent',ax2);

但出现以下错误:

使用坐标轴时出错

发现错误的属性值。

对象名称:轴属性

名称:'XAxisLocation'。

我猜这意味着left 的值不适用于XAxisLocation 变量。

我真正想要的只是以下两个图的叠加,知道如何实现它吗?

非常感谢!

【问题讨论】:

  • 根据定义,您的 X 轴位于顶部或底部,而您的 Y 轴位于左侧或右侧。你必须交换 X 和 Y。
  • @DanielR - 我明白了,你能帮我理解怎么做吗?再次感谢!

标签: matlab matlab-figure


【解决方案1】:

plotyy 可以解决问题:

figure(1) 
AX = plotyy(x1,y1,x2,y2,'plot'); 

set(get(AX(1),'Ylabel'),'String','y1') 
set(get(AX(2),'Ylabel'),'String','y2') 

以及其他属性,例如:

set(AX(1),'ylim',[...],...) 
set(AX(2),'ylim',[...],...) 

更多信息请关注documentation

【讨论】:

  • 感谢您的快速回复,但我仍然对如何将其应用于我的问题感到有些困惑。 plotyy 不是只允许我使用相同的x 绘制 2 个信号吗?如果不是,我如何才能真正获得叠加?
  • 两个信号出现在同一个图中,或者你说的叠加是什么意思?你想要2个x轴吗?那你需要看看subplot
  • 你也可以使用两个不同的xplotyy
  • 成功了!我只需要对两个轴的限制进行一些调整。
  • 是的,使用不同的 x 是解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-17
  • 2013-05-07
  • 2011-11-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多