yeyucanhe 发表于 2008-4-21 09:56

绘图时如何控制各图之间的间距

请教各位大侠,我用matlab在一个figure里显示四幅图片(2*2排列),如果不做特殊处理的话,左右两列之间的间距较大,我想减小这个间距,不知道该怎么弄?subplot的position属性我试着更改过了,发现没有变化。是否还有其它的方法可以实现这个目的?谢谢!

[ 本帖最后由 eight 于 2008-4-21 19:52 编辑 ]

ch_j1985 发表于 2008-4-21 10:21

回复 楼主 的帖子

如果方便的话,请您把图像和代码帖出来,这样可以让大家调试

laughzha 发表于 2008-4-21 10:36

昨天刚画了一个相关程序 整体贴下来给你:修改红色部分就可以,是按百分比设置的,0.08是8%的意思
figure1=figure('Units', 'Pixels', 'Position', );
axes1 = axes('Position',],'Parent',figure1);
axis(axes1,);
title(axes1,'第一个标题','Position',);
xlabel(axes1,'t/s');
ylabel(axes1,'幅度');
box(axes1,'on');
hold(axes1,'all');
plot(xtime,clean);
axes2 = axes('Position',,'Parent',figure1);
axis(axes2,);
xlabel(axes2,'t/s');
ylabel(axes2,'频率/Hz');
box(axes2,'on');
hold(axes2,'all');
specgram(clean,[],fsamp)

axes3 = axes('Position',,'Parent',figure1);
axis(axes3,);
xlabel(axes3,'t/s');
ylabel(axes3,'幅度');
box(axes3,'on');
hold(axes3,'all');
plot(xtime,x);
axes4 = axes('Position',,'Parent',figure1);
axis(axes4,);

xlabel(axes4,'t/s');
ylabel(axes4,'频率/Hz');
box(axes4,'on');
hold(axes4,'all');
specgram(x,[],fsamp)

axes5 = axes('Position',,'Parent',figure1);
axis(axes5,);
xlabel(axes5,'t/s');
ylabel(axes5,'幅度');
box(axes5,'on');
hold(axes5,'all');
plot(xtime,enhance);
axes6 = axes('Position',,'Parent',figure1);
axis(axes6,);
xlabel(axes6,'t/s');
ylabel(axes6,'频率/Hz');
box(axes6,'on');
hold(axes6,'all');
specgram(enhance,[],fsamp)

ch_j1985 发表于 2008-4-21 12:37

原帖由 laughzha 于 2008-4-21 10:36 发表 http://www.chinavib.com/forum/images/common/back.gif
昨天刚画了一个相关程序 整体贴下来给你:修改红色部分就可以,是按百分比设置的,0.08是8%的意思
figure1=figure('Units', 'Pixels', 'Position', );
axes1 = axes('Position',

您好,运行时出现以下错误:
??? Undefined function or variable 'xtime'.
Error in ==> figure_forum at 3
axis(axes1,);

方便的话把xtime也帖出来,OK?

laughzha 发表于 2008-4-21 17:58

原帖由 ch_j1985 于 2008-4-21 12:37 发表 http://www.chinavib.com/forum/images/common/back.gif


您好,运行时出现以下错误:
??? Undefined function or variable 'xtime'.
Error in ==> figure_forum at 3
axis(axes1,);

方便的话把xtime也帖出来,OK?

axis是设置坐标范围.麻烦你看一下帮助文件.help axis
你应该能看出xtime 是横坐标,你的横坐标是什么它就是什么
matlab也可以自动设置坐标范围,你可以把这行去掉.

[ 本帖最后由 laughzha 于 2008-4-21 17:59 编辑 ]

ch_j1985 发表于 2008-4-21 19:12

原帖由 laughzha 于 2008-4-21 17:58 发表 http://www.chinavib.com/forum/images/common/back.gif


axis是设置坐标范围.麻烦你看一下帮助文件.help axis
你应该能看出xtime 是横坐标,你的横坐标是什么它就是什么
matlab也可以自动设置坐标范围,你可以把这行去掉.

希望以后能够与大家一起分享完整的程序和效果图,这样就可以方便大家判断此帖是不是自己想要的帖子

ChaChing 发表于 2008-5-27 11:12

回复 3楼 的帖子

个人觉得你给的程序真的很不完整
但你热心帮人的态度是值得喝采的
非常同意6楼ch_j1985的意见

ch_j1985 发表于 2008-5-27 17:06

经过修改,3楼的代码实现的功能如下:
figure1=figure('Units', 'Pixels', 'Position', ,'color',);
%axes1 = axes('Position',[0.08 0.73 0.38 0.1],'Parent',figure1);
axes1 = axes('Position',[0.08 0.73 0.2 0.25],'Parent',figure1);
axis(axes1,);
xlabel(axes1,'t/s');
ylabel(axes1,'幅度');
box(axes1,'on');
hold(axes1,'all');
plot(,);
%axes2 = axes('Position',[0.58 0.73 0.38 0.1],'Parent',figure1);
axes2 = axes('Position',[0.58 0.73 0.2 0.25],'Parent',figure1);
axis(axes2,);
xlabel(axes2,'t/s');
ylabel(axes2,'频率/Hz');
box(axes2,'on');
hold(axes2,'all');
plot(,);
%axes3 = axes('Position',[0.08 0.40 0.38 0.1],'Parent',figure1);
axes3 = axes('Position',[0.08 0.40 0.2 0.25],'Parent',figure1);
axis(axes3,);
xlabel(axes3,'t/s');
ylabel(axes3,'幅度');
box(axes3,'on');
hold(axes3,'all');
plot(,);
%axes4 = axes('Position',[0.58 0.40 0.38 0.1],'Parent',figure1);
axes4 = axes('Position',[0.58 0.40 0.2 0.25],'Parent',figure1);
axis(axes4,);
xlabel(axes4,'t/s');
ylabel(axes4,'频率/Hz');
box(axes4,'on');
hold(axes4,'all');
plot(,);
%axes5 = axes('Position',[0.08 0.07 0.38 0.1],'Parent',figure1);
axes5 = axes('Position',[0.08 0.07 0.2 0.25],'Parent',figure1);
axis(axes5,);
xlabel(axes5,'t/s');
ylabel(axes5,'幅度');
box(axes5,'on');
hold(axes5,'all');
plot(,);
%axes6 = axes('Position',[0.58 0.07 0.38 0.1],'Parent',figure1);
axes6 = axes('Position',[0.58 0.07 0.2 0.25],'Parent',figure1);
axis(axes6,);
xlabel(axes6,'t/s');
ylabel(axes6,'频率/Hz');
box(axes6,'on');
hold(axes6,'all');
plot(,);

[ 本帖最后由 ch_j1985 于 2008-5-27 17:07 编辑 ]

程瑞岩 发表于 2012-6-17 10:07

{:{33}:}很不错哦。 {:{44}:}
页: [1]
查看完整版本: 绘图时如何控制各图之间的间距