matlab中axes显示,如何将figure图片显示在matlab GUI的axes中

如图所示,我在GUI中读取一个xlsx文件,点击“绘图”按钮,生成的figure在另外一个界面中出现,而不是在我的GUI的axes中显示,“绘图”按钮的回调程序如下所示,需要如何修改才行呢,求大神帮忙:)

function pushbutton2_Callback(hObject, eventdata, handles)

% hObject    handle to pushbutton2 (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

axes(handles.axes1);

File_Path=get(handles.edit1,'string');

data=xlsread(File_Path);

x=1:length(data);

y=zeros(1,length(data));

for i=1:length(data)

y(i)=InsideSolarRadiation(data(i,1),data(i,2),data(i,3),data(i,4),data(i,5),data(i,6));

end

f=figure(1);

h = plot(0,0,'linewidth',1);

%xMin=-2*pi;  %X轴初始最小值

%xMax=2*pi;   %X轴初始最大值

xMin=0;

xMax=length(data)/2;

xlim([xMin,xMax]);  %X轴初始范围

%ylim([-1.5 1.5]);

ylim([0 max(data(:,6))]);

%title('LP制作');

set(f,'Units','normalized');

xlabel('时间');

ylabel('温室内太阳辐射(W/m^2)');

% % % % % % % % % % % %

m=2;

xa = [x(m-1) x(m)];

ya = [y(m-1) y(m)];

[xaf,yaf] = axescoord2figurecoord(xa,ya);  %axes坐标转为figure坐标

ar=annotation(f,'arrow',xaf,yaf,'Color',[1 0 0],'LineStyle','none','HeadStyle','vback1','HeadLength',12,'HeadWidth',10);

for m = 2:numel(x)

if(x(m)+1>xMax)

xdif=x(m)+1-xMax;

xlim([xMin+xdif,xMax+xdif]);

end

set(h,'xData',x(1:m),'yData',y(1:m));

xa = [x(m-1) x(m)];

ya = [y(m-1) y(m)];

[xaf,yaf] = axescoord2figurecoord(xa,ya);

annotation(f,'arrow',xaf,yaf,'Color',[1 0 0],'LineStyle','none');

set(ar,'X',xaf,'Y',yaf);    %将箭头置于(xaf,yaf)的位置

drawnow;

pause(0.1);

end

捕获.PNG

(79.04 KB, 下载次数: 8)

2017-2-14 15:00 上传

442a53943febe9465fc072b4fbe10813.gif

b2a5a3e0dcc7d508e00275fe42fce1b5.gif

171e7e0ab1ab22283eafd4d0aec4f6ea.png

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值