【发布时间】: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
【问题讨论】:
-
将坐标区句柄添加到绘图函数
scatter和plot -
尝试将
handles.axes1和handles.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