【问题标题】:Plotting in GUI of Matlab在 Matlab 的 GUI 中绘图
【发布时间】:2016-12-31 03:19:56
【问题描述】:

到目前为止,我的 GUI 中只有 1 个轴,而我过去只是使用 plot 命令直接绘图。另外,我需要循环绘制这些。

for i = 1:length(sig)
    plot(sig(i).time,sig(i).signal,sig(i).time,updated(i).filter,)
    hold on
end

现在我的 GUI 中有 2 个轴,我怎样才能让某个绘图出现在第一个轴上,另一个出现在我的第二个轴上

例如,现在我需要在第二个轴上绘制以下内容

 for i = 1:length(sig)
        plot(sig(i).time,sig(i).fil,sig(i).time,updated(i).sig,)
        hold on
    end

如有任何帮助,将不胜感激

【问题讨论】:

    标签: matlab user-interface matlab-guide axes


    【解决方案1】:

    您可以为holdplot 函数指定轴。考虑到您的图形中有两个轴,h1h2,您可以执行以下操作:

    hold(h1, 'on')
    hold(h2, 'on')
    for i = 1:length(sig)
        plot(h1, sig(i).time,sig(i).signal,sig(i).time,updated(i).filter)
        plot(h2, sig(i).time,sig(i).fil,sig(i).time,updated(i).sig)
    end
    

    【讨论】:

    • 谢谢@erfan,我不知道我也应该提到握住手柄,你能告诉我如何链接两个轴以便我可以一起缩放
    • hold 不接受多轴。一次使用plot 不可能在两个轴上绘制相同的曲线。但是您可以在进入循环之前将它用于所有轴。然后你应该小心并在代码中包含每个绘图操作的轴句柄。我更新了我的帖子。
    • 不,我猜你没有理解我在评论中的问题,以前的答案很好。我想链接两个轴以保存我的缩放,就像我们在子图中所做的那样。
    • 啊哈!然后你只需要写linkaxes([h1, h2], 'xy'),和你对子图的写法完全一样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2015-06-10
    • 1970-01-01
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多