【问题标题】:Plotting 2 plots in two differrent axes of the same GUI window在同一 GUI 窗口的两个不同轴上绘制 2 个图
【发布时间】:2017-07-13 08:11:38
【问题描述】:

我正在尝试在具有 2 个不同轴的同一个 GUI 图形中制作两个图。我想要一个轴上的一个图,而另一个轴上的下一个图。但是,我的两个图都是从一个函数生成的,我用一个按钮在 GUI 中调用它。

当我在函数内的第二个绘图之前写 axes() 时,我得到了错位的第三个轴。如果我省略 axes() 调用,我会在同一轴上得到两个图。如何在第二个轴上绘制第二个图?

图形界面

function pushbutton1_Callback(hObject, eventdata, handles)
---------
---------
---------
axes(handles.axes1);
     kendrickplot(n,alpha,em,infile,outfile);
---------

功能

function [ynew,xnew]=kendrickplot(n,alpha,em,infile,outfile)
---------
---------
scatter(xnew,ynew,'b.')
xlim([0,max(a(:,4))])
ylim([min(a(:,5)),max(a(:,5))])
hold on
plot(xnew,n*(ones(length(xnew))),'r')
scatter(a(:,4),a(:,5))
end

【问题讨论】:

  • 将坐标区句柄添加到绘图函数scatterplot
  • 尝试将handles.axes1handles.axes2 传递给您的函数并在每个绘图之前调用axes(h1);axes(h2)
  • @VaheTshitoyan 你能举个例子说明你的建议吗?
  • 修改你的函数:function [ynew,xnew]=kendrickplot(n,alpha,em,infile,outfile, h1, h2)。在函数内部,在第一个图之前添加axes(h1),在第二个图之前添加axes(h2)。在您的回调中,像这样调用函数kendrickplot(n,alpha,em,infile,outfile, handles.axes1, handles.axes2);。尚未对此进行测试。
  • @VaheTshitoyan 是的,它有效。非常感谢!

标签: matlab plot matlab-guide multiple-axes


【解决方案1】:

一种方法是将轴的句柄传递给进行绘图的函数。

  1. 修改您的函数以接受绘图句柄:

    function [ynew,xnew]=kendrickplot(n,alpha,em,infile,outfile, h1, h2)

  2. 在函数内部,在第一个图之前添加axes(h1),在第二个图之前添加axes(h2)

  3. 在您的回调中,像这样调用函数kendrickplot(n,alpha,em,infile,outfile, handles.axes1, handles.axes2);

【讨论】:

    猜你喜欢
    • 2015-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 2019-06-12
    相关资源
    最近更新 更多