在matlab中绘制具有不同轴和限制的两个信号

Posted

技术标签:

【中文标题】在matlab中绘制具有不同轴和限制的两个信号【英文标题】:plot two signals with different axis and limits in matlab 【发布时间】:2015-05-16 13:14:41 【问题描述】:

假设我将两个信号一起绘制在同一个图上,该图具有不同的限制,因此我想要不同的轴

plot(a)
axis ([-2 10 -2 8])
hold 'on'
plot(b)
axis ([-1 4 -4 7])
hold 'off'

其中'a'和'b'是两个信号表达式。这里的问题是信号正在绘制,但只有第二个轴在工作,并且绘图 a 不限于第一个指定的轴。原因是第二个轴显然会覆盖第一个轴,但知道如何绘制两个轴限制的信号吗?

【问题讨论】:

所以基本上你需要2个y轴和2个x轴在同一个轴上? 好的,所以在您致电plot 时,您需要选择这些限制中显示的数据,对吧?就像说“对于一个情节,只有那些介于 -2 和 10 之间的 x 值和介于 -2 和 8 之间的 y 值”?对不起,如果我理解有点慢哈哈 好的。 a/它的大小是多少?例如,您有 x 值和 y 值吗? 【参考方案1】:

您可以使用逻辑运算符选择要绘制的数据。

让我们考虑情节a的情况。

bs的每一列赋值给一个变量:

x1 = bs(:,1)
y1 = bs(:,2)

然后只选择满足指定条件的值:

xPlot = x1(x1 > -2 & x1 < 10)
yPlot = y1(y1 > -2 & y1 < 8)

假设它们都包含相同数量的元素,您可以绘制它们。

如果不是,您需要用Nan 填充较小的数组,例如,以避免出现维度不匹配的错误。

一旦你知道哪个数组更小,你可以按如下方式进行。假设在这种情况下xPlot 小于yPlot

m = max(numel(xPlot),numel(yPlot)) %// Just getting the larger dimension
xPlot(numel(xPlot)+1:m) = NaN

现在你可以打电话了

plot(xPlot,yPlot,'b-','LineWidth',2)

这应该可行。这同样适用于b 图。

希望有帮助!

【讨论】:

这看起来很整洁。让我明天更新你是否有效。 好的,所以问题是当我将限制设置为 xPlot = x1(x1 > -2 & x1 1-2 & y1 好的,所以试试我在回答中提到的技巧,用 NaN 填充较短的技巧 好的,所以我不知道,但这个情节不是我所期望的,但因为你的答案是最好的,而且它也能够限制分数。我会接受它..干杯【参考方案2】:

您可能想查看plotyy 以获得 2 个不同的 y 轴。

如果您的绘图没有共同点,也许您应该将它们绘制在 2 个不同的轴上,例如

figure('Name', 'Example');
subplot(121);plot(rand(3));
subplot(122);plot(rand(3));

更新

如果你绝对需要两个轴,你可以试试这样的

figure('Name', 'plotyy');
h = plotyy([0 1 2 4], 0:4, [4 5], [2 1]);
linkaxes(h, 'off');
axis(h(1), [0 4 0 4]);
axis(h(2), [4 5 1 2]);

【讨论】:

不,我不想要两个情节。那就是问题所在。我想将它们绘制在同一张图上(这就是我使用 hold on 的原因)。我看到了plotyy,但我认为没有plotxx 对吗? 好吧,实际上 ployy 返回了两个轴的句柄,所以你可以用它做一些事情。我会用这一点更新我的答案。【参考方案3】:

如果您要查找的内容类似于 plotyy 但在另一个方向,请查看 matlabcentral 中的 plotxx 函数,该函数在 x 方向上执行类似的操作。

您可能需要对其进行调整以使其满足您的所有需求,但它会为您提供一个良好的起点。

【讨论】:

如果我使用 plotyy 那不会再做一个轴吗?就我而言,我只想要一个 y 和 x 轴【参考方案4】:

您可以使用plotyy 创建具有不同比例和限制的 2 个 y 轴。

【讨论】:

啊,但我不想要两个 y 轴。只有单个 x 和 y 轴 然后您可以在绘制信号之前缩放/修剪信号本身并将两者绘制在相同的轴上

以上是关于在matlab中绘制具有不同轴和限制的两个信号的主要内容,如果未能解决你的问题,请参考以下文章

使用 Matplotlib 将具有不同轴的两个图合二为一

在matlab中提取具有多个频率分量的信号

在matlab中提取具有多个频率分量的信号

心脏 BPM 标准化 - Matlab

如何使用matlab在K-means算法后绘制具有不同颜色簇的PCA散点图?

iPhoneX工艺秘密:采用LCP基材设计天线和代替同轴信号线缆