如何在matlab中从gcf空白空间中裁剪出gca和colorbar?

时间:2013-10-01 17:50:50

标签: matlab crop screen-orientation figure

如何在导入后删除颜色条右侧的灰色空间?

在将colorbar添加到gcf空间之前,我使用gca来保存图像和徽标,因为一旦将颜色条添加到图中,我需要它们的尺寸和比率方面不会改变。当我添加颜色条时,它位于gca的右侧。添加颜色栏时额外空白区域的原因是因为我将窗口屏幕大小(gcf)设置为[16 9],这意味着gca和colorbar的宽度都小于图形的屏幕大小(gcf) )。我已经尝试了很多不同的方法来从gcg中裁剪出gca和colorbar但是每次我尝试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']);

1 个答案:

答案 0 :(得分:0)

如果你改变你的案例'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']);

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