subplot图形编辑的问题
本帖最后由 凌绝顶 于 2010-11-2 18:36 编辑x=0:0.1:2*pi
for ii=1:5
subplot(5,1,ii)
plot(x,ii*sin(x+ii*pi/2),'.')
end
作出图如nomoved.jpg
如何用命令的方式将nomoved.jpg变成moved.jpg的样子,nomoved.jpg是我在图形编辑里移动子图得到的,但是假如图形太多了这种方法就很不方便。如何用命令的方式调整子图之间的距离?还望高手们指教。 似乎不可以。另外图间隔大了,有效面积减小了,不好看 回复 VibrationMaster 的帖子
是吗?子图之间不可以合并在一起吗?据说有subplot(5,1,),但我不知道怎么用。 看这样行不行?
%%%%%%%%%%%%%%%%%%%%%%%%%
x=0 : 0.1 : (2*pi) ;
h1 = axes('position', ) ;
plot(x, 1*sin(x+1*pi/2), 'parent',h1) ;
h2 = axes('position', ) ;
plot(x, 2*sin(x+2*pi/2),'parent', h2) ;
h3 = axes('position', ) ;
plot(x, 3*sin(x+3*pi/2),'parent', h3) ;
h4 = axes('position', ) ;
plot(x, 4*sin(x+4*pi/2), 'parent',h4) ;
%%%%%%%%%%%%%%%%%%%
当然,还可以给x轴,y轴加label,或者将上面x轴的labeltick去掉,或者其他一些都是可以的
有什么问题再探讨!
回复 zhouyang664 的帖子
这样似乎不利于循环编程 我来发个联动链接:
用python做数值计算,spyder 上的调试分形算法
http://forum.vibunion.com/forum-viewthread-tid-96990-fromuid-159019.html
二楼有相关讨论。 本来想在simwe发了了事,不过响应chaching老兄的号召,到这里胡言乱语一下。clc;clear;figure
x=0:0.1:2*pi;
t=[];
for ii=1:5
h(ii)=subplot(5,1,ii,'position',[]);
plot(x,ii*sin(x+ii*pi/2),'.')
% t=;
end
% D=diff(t(:,2));代码里的position几个具体数字是有讲究的,可以通过注释掉的两行代码看看子轴位置,然后相应调整subplot代码行中的第一个子轴y坐标“0.8007”和步长“0.18”,我电脑原本是默认0.17多,由最后一行代码确定。
这个数字一旦确定,你可以随便循环。注意我的句柄也是个子序列。
最后顺便说一句:我电脑里运行,竖向别说放5个,改成8个10个子图也没有相互拥挤的现象,也许与版本或机器本身有关,换台机器换个高版本run一下,也许有意外发现。 回复 bainhome 的帖子
本想先扣威望(原因:高手只来转转不愿秀功夫!)再加回, 怎奈上面收回了这些权利, 太不好玩了!;@P 别说了, 这或许因我而起, 真对不住大家
我可没LS般本来就会许多的, 许多都得先花时间试再回, 虽然个人可学更多, 但年纪大了, 学什麽忘什麽! 有点不太想花太多时间试了!:@L
本身学毕後一直在振动这块混一口饭吃, 所以这论坛许多版块值得个人去学习, 当然希望像马老师般的高手能多在这里出手让我学习!:handshake 竟与老友哈拉, 文不对题! 抱歉下:@)
记得回过类似的帖, 怎奈以前的收藏及回覆都没了, 全文搜索功能好像也没复原, 一直没能找到!:@L
反正大体, 与楼上几位高手类似!
或许也可至官网找找现成的, 如MULTIPLOT...
chaching老兄和bainhome也去过simwe啊? 其实应该x轴的坐标只显示最下面的一个,我以前写过类似的东西。但我想不宜太强调这些。这些直接用到论文或报告里面不漂亮,还是要重新修饰的 回复 VibrationMaster 的帖子
想只显示最下面的坐标,只需将上面的坐标轴的 xTickLabel 设置成 [] 即可
set(hAxes,'xTickLabel',[]);
趁这个机会,献上修改版:
%%%%%%%%%%%%%%%%%%%%%%%%%
x=0 : 0.1 : (2*pi) ;
N = 4 ; % 需要设定的axis的数目
LStyle = {':', '--', '.', '-.'}; % 设定线型
h = zeros(1, N) ; % 预分配
fork=1 : N
h(k) = axes('position', ) ;
plot(x, k * sin(x + k*pi/2), 'LineStyle',LStyle{k}, 'Parent', h(k)) ;
end
set( h(2 : end), 'xticklabel', [ ]);
%%%%%%%%%%%%%%%%%%%
由楼上程序运行得到的结果,去掉坐标轴,保存为eps格式的文件,但是eps文件里页边距太大,如何在matlab中以命令的方式调整图形窗口大小,使得保存的eps文件页边距大小适当?由于论坛不支持上传eps文件,故截屏保存为jpg文件,如图,图形距离虚线框距离太远,如何调整?
回复 凌绝顶 的帖子
h(k) = axes('position', ) ;
只需0.1,改成0.05或者别的即可!
必须使用set(gca,,'xlim',)
页:
[1]
2