假设我在 MATLAB 中有 2 个图形,它们都绘制了大小为 (512x512) 的数据,但是一个图形是由一个设置轴参数的外部程序绘制的。另一个是由我绘制的(使用 imagesc)。目前这些数字,或者更确切地说,轴的大小不同,我的问题是,我如何使它们相等?. 我的问题的原因是,我想将它们导出为 pdf 格式以包含在乳胶文档中,并且我希望它们具有相同的大小而无需进一步处理。
提前致谢,N
编辑:链接到数字
假设我在 MATLAB 中有 2 个图形,它们都绘制了大小为 (512x512) 的数据,但是一个图形是由一个设置轴参数的外部程序绘制的。另一个是由我绘制的(使用 imagesc)。目前这些数字,或者更确切地说,轴的大小不同,我的问题是,我如何使它们相等?. 我的问题的原因是,我想将它们导出为 pdf 格式以包含在乳胶文档中,并且我希望它们具有相同的大小而无需进一步处理。
提前致谢,N
编辑:链接到数字
1.获取图形和轴的句柄,如下所示:
%perhaps the easiest way, if you have just this one figure:
myFigHandle=gcf;
myAxHandle=gca;
%if not possible, you have to search for the handles:
myFigHandle=findobj('PropertyName',PropertyValue,...)
%you have to know some property to identify it of course...
%same for the axes!
2.设置属性,如下所示:
%set units to pixels (or whatever you prefer to make it easier to compare to the other plot)
set(myFigHandle, 'Units','pixels')
set(myAxHandle, 'Units','pixels')
%set the size:
set(myFigHandle,'Position',[x_0 y_0 width height]) %coordinates on screen!
%set the size of the axes:
set(myAxHandle,'Position',[x_0 y_0 width height]) %coordinates within the figure!
为此目的使用linkaxes()
:
% Load some data included with MATLAB
load clown
% Plot a histogram in the first subplot
figure
ax(1) = subplot(211);
hist(X(:),100)
% Create second subplot
ax(2) = subplot(212);
现在链接两个子图的轴:
linkaxes(ax)
通过绘制第二个子图,第一个子图将适应
imagesc(X)
首先,您有以下内容:
然后:
仅将示例扩展到图像:
load clown
figure
imagesc(X)
h(1) = gca;
I = imread('eight.tif');
figure
imagesc(I)
h(2) = gca;
注意以第一个手柄的配置为准:
linkaxes(h)
好的,根据@Lucius Domitius Ahenoba 的回答,这是我想出的:
hgload('fig1.fig'); % figure whose axis properties I would like to copy
hgload('fig2.fig');
figHandles = get(0,'Children');
figHandles = sort(figHandles,1);
ax(1) = findobj(figHandles(1),'type','axes','-not','Tag','legend','-not','Tag','Colorbar');
ax(2) = findobj(figHandles(2),'type','axes','-not','Tag','legend','-not','Tag','Colorbar');
screen_pos1 = get(figHandles(1),'Position');
axis_pos1 = get(ax(1),'Position');
set(figHandles(2),'Position',screen_pos1);
set(ax(2),'Position',axis_pos1);
这是“之前”的结果:
这是“之后”的结果:
几乎是正确的,只是纵横比仍然关闭。有人知道如何平衡与轴相关的所有内容吗?(我意识到在发布答案时我不应该提问,但是将以上内容添加为评论被证明有点笨拙!)