1

假设我在 MATLAB 中有 2 个图形,它们都绘制了大小为 (512x512) 的数据,但是一个图形是由​​一个设置轴参数的外部程序绘制的。另一个是由我绘制的(使用 imagesc)。目前这些数字,或者更确切地说,轴的大小不同,我的问题是,我如何使它们相等?. 我的问题的原因是,我想将它们导出为 pdf 格式以包含在乳胶文档中,并且我希望它们具有相同的大小而无需进一步处理。

提前致谢,N

编辑:链接到数字

图1:(大)

链接到较小的图(即我想复制其属性并应用于图 1 的图)

4

3 回答 3

1

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!
于 2013-09-25T12:03:21.703 回答
1

为此目的使用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)
于 2013-09-25T12:12:14.293 回答
0

好的,根据@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);

这是“之前”的结果: 在此处输入图像描述

这是“之后”的结果: 在此处输入图像描述

几乎是正确的,只是纵横比仍然关闭。有人知道如何平衡与轴相关的所有内容吗?(我意识到在发布答案时我不应该提问,但是将以上内容添加为评论被证明有点笨拙!)

于 2013-09-25T14:28:17.200 回答