【问题标题】:How to save plot with its colourbar as .fig in Matlab GUI如何在 Matlab GUI 中将带有颜色条的绘图保存为 .fig
【发布时间】:2016-10-26 21:30:27
【问题描述】:

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

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

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 文件不包含任何内容。为什么?

【问题讨论】:

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


    【解决方案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' 才有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-05
      • 2012-07-12
      相关资源
      最近更新 更多