我想用相同的图创建一个带有双X轴(m / s和km / h)的Matlab图形 .
我发现了plotyy和 - 在Matlab的重复性 - plotyyy,但我正在寻找:
-
双X轴 .
-
在情节下面一起 .
我的代码非常简单:
stem(M(:, 1) .* 3.6, M(:, 3));
grid on
xlabel('Speed (km/h)');
ylabel('Samples');
M(:, 1)
是速度(以m / s为单位), M(:, 3)
是数据 .
我想在底部只有第二条线,速度以m / s为单位 .
3 回答
您可以执行以下操作 . 与@ Benoit_11的解决方案相比,我使用普通的Matlab标签,并使用句柄引用两个轴,因此分配是明确的 .
以下代码创建一个空的x轴
b
,单位为m / s,高度可忽略不计 . 在此之后,实际绘图将在第二个轴a
中绘制,该轴位于其他轴上方并且以km / h为单位 . 要在特定轴上绘图,请插入axes-handle作为stem
的第一个参数 . 从m / s到km / h的转换直接写入stem
的调用中 . 最后,需要将两个轴的xlim
-property设置为相同的值 .作为一个非常简单的替代方案,您还可以创建第二个轴(透明)并将其放在第一个轴下方,这样您只能看到x轴 .
例:
输出:
然后,您可以手动为每个单元添加不同颜色的x标签,例如 .
我能想到的最好方法是使用2个图,例如,你可以通过这样的方式将图分割成大小部分:
这是未经测试的,你可能需要摆弄一下,但它应该有希望让你走上正确的轨道 .