0

我正在尝试在具有 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
4

1 回答 1

3

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

  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);

于 2017-07-13T09:11:39.133 回答