【问题标题】:MatLab handle graphics - zooming with two y-axisMatLab 处理图形 - 使用两个 y 轴进行缩放
【发布时间】:2015-10-06 21:11:43
【问题描述】:

我试图在一个数字(或相同的轴空间,如果我们想要技术的话)上绘制两个不同的量,电压和电流。我尝试使用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 在后台做什么,都没有这个问题。有什么解决办法吗?

【问题讨论】:

    标签: matlab matlab-figure


    【解决方案1】:

    试试linking the axis,这样它们在平移/缩放方面有相同的限制。

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

    【讨论】:

    • 对不起,我以为他的工作一开始,但这实际上使两个轴(左和右)的限制相同。我希望在每个轴上保持不同的限制。还有其他想法吗?
    • 别担心。只需从上面的代码中删除y。在这种情况下,您只想链接它们共同的轴,即 x 轴(时间)。如果可行,我会相应地更新答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-17
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多