如何从 matlab 中的 gcf 空白空间裁剪 gca 和颜色条


引入

颜色条后如何删除颜色条右侧的灰色区域?

在将颜色条添加到 gcf 空间之前,我使用 gca 来保存图像和徽标,因为我需要它们的尺寸和比例宽高在将颜色条添加到图形后不会更改。当我添加颜色条时,它位于 gca 的右侧。添加颜色条时出现额外空白空间的原因是因为我将窗口屏幕大小 (gcf( 设置为 [16 9],这意味着 gca 和颜色条的宽度都将小于图形的屏幕尺寸 (gcf(。我已经尝试了很多不同的方法来裁剪 gcg 中的 gca 和颜色条,但每次我尝试 gca 图像都会扭曲。

我正在使用:

backMap=imread(...);
mapSize=size(backMap);
image(backMap);
screenSize=[16 9]
screen ='verti';
set(gcf,'units','normalized','Position',[0 0 1 1]);
switch screen
    case 'verti'
        set(gca,'Position',[0 0 (mapSize(2)/mapSize(1))*(screenSize(2)/screenSize(1)) 1]);
    case 'horiz'
        set(gca,'Position',[0 0 1 (mapSize(1)/mapSize(2))*(screenSize(1)/screenSize(2))]);
    otherwise
        error ('not well defined screen');
end
h1=colormap;
h2=colorbar;
set(gca, 'XTick', [], 'YTick', []);
h4=get(h_bar,'position');

pos=get(gca,'position');
figm=get(gcf,'position');
set(gcf, 'position', [pos(1) pos(2), 1-(pos(3)+h4(3)) pos(4)])
fig1 =getframe(gcf);
imwrite(fig1.cdata, [outputFileName2 'x3.tiff']);

如果您将大小写"verti"更改为:

case 'verti'
    set(gca,'Position',[0.05 0 (mapSize(2)/mapSize(1))*(screenSize(2)/screenSize(1)) 1]);

和评论

set(gca, 'XTick', [], 'YTick', []);
%h4=get(h_bar,'position');

%pos=get(gca,'position');
%figm=get(gcf,'position');
%set(gcf, 'position', [pos(1) pos(2), 1-(pos(3)+h4(3)) pos(4)])
fig1 =getframe(gcf);
imwrite(fig1.cdata, [outputFileName2 'x3.tiff']);

你的形象看起来更好,但我不知道你最后需要什么。

最新更新