MatLab处理图形 - 用两个y轴进行缩放

时间:2015-10-06 21:11:43

标签: matlab matlab-figure

我试图在单个图形上绘制两个不同的量,电压和电流(或者如果我们想要技术的话,在相同的轴空间)。我尝试使用plotyy但是当我手动设置限制/刻度时,它会在右侧留下错误的刻度线,如this post中所述。在过去一年中精通手柄图形之后,我认为必须有一种方法可以将事情掌握在自己手中。这是我尝试过的:

% Voltage axes setup
axHandle(1) = ...
    axes('XLim',[0,24],'XTick',0:24,'YLim',[0, 18],'YTick',0:18, ...
    'Parent', figHandle(1));
xlabel(axHandle(1),'Time [local-military]')
ylabel(axHandle(1),'Voltage [volts]')
hold(axHandle(1),'on')

% Current axes setup
axHandle(2) = ...
    axes('YAxisLocation','right', 'Color','none', ...
    'XLim',[0,24],'XTick',[],'YLim',[0 1.7],'YTick',0:0.1:1.7, ...
    'Parent', figHandle(1));
ylabel(axHandle(2),'Current [amps]')
hold(axHandle(2),'on')

% Plot data
voltPlotHandle = plot(axHandle(1), timeVec, voltVec, 'b.');
currPlotHandle = plot(axHandle(2), timeVec, currVec, 'r.');

虽然结果看起来很乍一看,但当我使用缩放工具时遇到了一个问题:只有第二个轴处于活动状态,因此电压图仍未被放大。

无论plotyy在后​​台做什么,它都没有这个问题。任何解决方案?

1 个答案:

答案 0 :(得分:2)

尝试linking the axis,因此它们在平移/缩放时共享相同的限制。

linkaxes([axHandle(1) axHandle(2)],'xy');