MATLAB で次のことを行う方法がわかりません。次のような図があります。
図には、多くのサブプロットを含むパネルと、パネルの一部を表示できるスクロールバーがあります。
パネルの内容全体(表示部分だけでなく) を PNG 画像ファイルに保存したい、つまり、縦長の長方形でスクロールを必要としないファイルが必要です。
Figure を生成するコードは次のとおりです。
function draw(obj)
figure;
panel1 = uipanel('Parent',1);
panel2 = uipanel('Parent',panel1);
panelheight = obj.nIterations / 2;
set(panel1,'Position',[0 0 0.97 1]);
set(panel2,'Position',[0 1-panelheight 1 panelheight]); %%
nPlot = 1;
for i=1:obj.nIterations
models = obj.iterations{i};
for nModel=1:length(models)
subplot(obj.nIterations,length(models)*2,nPlot);
nPlot = nPlot + 1;
drawTransitions(models{nModel});
set(gca,'Parent',panel2);
subplot(obj.nIterations,length(models)*2,nPlot);
nPlot = nPlot + 1;
drawRewards(models{nModel});
set(gca,'Parent',panel2);
end
end
s = uicontrol('Style','Slider','Parent',1,...
'Units','normalized','Position',[0.97 0 0.03 1],...
'Value',1,'Callback',{@slider_callback1,panel2,panelheight});
end
次のことを試しましたが、成功しませんでした。
- 関数は
saveas
、パネルだけでなく、図全体を保存します。また、パネルの見えない部分をクリップします。 export_fig(panel2.'file.png')
単色の灰色の画像のみを提供します。