如何在Matlab GUI中使用colourbar as.fig保存绘图

时间:2016-06-24 09:47:13

标签: matlab user-interface callback matlab-figure matlab-guide

我有一个按钮,通过点击它可以产生阴谋及其颜色条。该按钮与某些称为zzpcolor的功能有关。在zzpcolor中,我使用pcolor语法生成摇动图。

在回调函数中,我使用hold on来保存zzpcolor生成的数字。然后我将另一个图添加到同一轴。这是push botton回调中脚本的一部分。

axes(handles.axes1);
axes1.Position=[0.1300 0.1100 0.7750 0.8150];
[X,Y,Z]=plotpcolor(fnamedat);
hold on
zzpcolor(X,Y,Z);
shading flat
LimitPlot
hold on
plot_google_map
hold on
scatter(datageo(:,1),datageo(:,2),'MarkerFaceColor',[1 0 0])
hold off

语法运行得很好。我使用这种语法将图形保存为另一个回调函数中的jpg。

newfig1 = figure('Visible','off'); 
copyobj(handles.axes1, newfig1);
[filename,pathname]= uiputfile('*.jpg','Save as'); 
hold on
wmmicolorbarsetting;
saveas(newfig1,[pathname,filename],'jpg');

它运作得很好。但是当我尝试使用类似的语法将其保存为.fig时,

newfig1 = figure('Visible','off'); 
copyobj(handles.axes1, newfig1);
[filename,pathname]= uiputfile('*.fig','Save as'); 
hold on
wmmicolorbarsetting;
saveas(newfig1,[pathname,filename],'fig');

.fig文件什么都没包含。为什么呢?

1 个答案:

答案 0 :(得分:1)

.fig文件 包含的内容。您将数字Visible属性设置为'off',以便在从文件加载图形时创建图形时实际显示的数字。

您可以使用hgload加载.fig文件并将Visible属性设置为'on'来验证这一点。

fig = hgload([pathname, filename]);
set(fig, 'Visible', 'on')

您还可以查看生成的.fig文件,并确保它是非空的。

您可以在保存之前将Visible设置为'on'来解决此问题。

有关数字可见性的说明:将Visible设置为'off'对于将数字保存为.fig(png,jpeg等)以外的格式非常有用,因为您可以创建一个图像,而无需担心脚本运行时出现的一堆数字。在这些情况下,不需要用户交互。如您所知,如果您确实需要查看/与数字互动,Visible应该'on'有用。