声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 9196|回复: 15

[绘图技巧] 如何对图形的图例进行分栏

[复制链接]
发表于 2009-7-19 13:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我现在绘出了如图11.jpg中的图形,但是图例看起来不好看,而且遮住了一部分图形,我现在想将这个图例拿出来,标注成如图文献.jpg中的图例那样的图形,其实就是如何将我的图中的四个图例分成两行(就像文献那个图形那样),其中每一行有两个图例的问题。
11.JPG
文献.JPG
回复
分享到:

使用道具 举报

 楼主| 发表于 2009-7-19 13:42 | 显示全部楼层
我通过利用get和set命令,用下面的代码修改为如图所示的图例,但是如何修改为我说的两行两列的图例形式呀。现在只是将图例由垂直方向改变为水平方向了。

  1. m=legend([h15 h1 h02(1) h01(1)],'\Pi_1_1(\lambda)','\Pi_2_2(\lambda)', ...
  2. 'The vertical asymptotes of \Pi_1_1(\lambda)','The vertical asymptotes of \Pi_2_2(\lambda)');
  3. set(m,'Orientation','horizontal')
复制代码
xiugai.JPG
发表于 2009-7-19 15:36 | 显示全部楼层
 楼主| 发表于 2009-7-19 15:55 | 显示全部楼层
非常感谢,我好好研究一下。

我好好看了一下,但它是将这四个图例分成左右两个图例来画的,然后进行组合一下,但是图例不能有边框(有了就不好看了),还是不能实现我说的那样。
http://forum.simwe.com/viewthrea ... mp;highlight=legend
http://genial.ycool.com/post.138255.html

[ 本帖最后由 zhoulon 于 2009-7-19 16:25 编辑 ]
 楼主| 发表于 2009-7-19 16:53 | 显示全部楼层
我按照我上面帖子中的两个链接做出了下面这样的图形,但是跟这两个链接中的一样,其中有一个图例是不能往图形外面移动的,这个该如何解决。而且也像上贴中我说的,不能对图例添加边框,否则很是难看。
未命名.JPG
发表于 2009-7-19 19:54 | 显示全部楼层
在Figure中点Edit->Figure Properties,然后选中legend,在属性框里就可以选择legend的位置。
 楼主| 发表于 2009-7-19 20:16 | 显示全部楼层

回复 6楼 friendchj 的帖子

非常感谢,但是你说的应该是通过那个location来调吧,但那个一般就是对图例整体的具体位置进行调整的,例如调整到图形的上面、下面、左面、右面,或者是各个角点位置。如果单独对某一个图例来调整的,图例的说明问题可以调整,但是图例的线型标志还在原处不动。
发表于 2009-7-20 11:55 | 显示全部楼层
如果单独对某一个图例来调整的,图例的说明问题可以调整,但是图例的线型标志还在原处不动。

不太明白这句话,呵呵
 楼主| 发表于 2009-7-20 13:45 | 显示全部楼层

回复 8楼 friendchj 的帖子

你运行一下下面这个链接里面的这段程序就知道了,呵呵
http://genial.ycool.com/post.138255.html

  1. t=0:pi/48:2*pi;
  2. y1=sin(t);
  3. y2=cos(t);
  4. y3=y1.*y2;
  5. y4=0.5*(y1+y2);
  6. hold on
  7. h1=plot(t,y1,'r-')
  8. h11 = plot(t(1:10:end),y1(1:10:end),'*','MarkerFaceColor','r','MarkerEdgeColor
  9. ','r');
  10. h2=plot(t,y2,'b-');
  11. h22 = plot(t(1:10:end),y2(1:10:end),'.','MarkerFaceColor','b','MarkerEdgeColor
  12. ','b');
  13. h3=plot(t,y3,'y');
  14. h4=plot(t,y4,'g');
  15. hold off
  16. [legh,objh,outh,outm]=legend([h1,h2],'y1','y2',1);
  17. legend boxoff

  18. % matlab 6.5.1
  19. set(objh(3),'marker','*');
  20. set(objh(5),'marker','.');

  21. % matlab7
  22. %set(objh(4),'marker','*');
  23. %set(objh(6),'marker','.');

  24. legh2=copyobj(legh,gcf);
  25. [legh2,objh2]=legend([h3,h4],'y3','y4',2);
  26. legend boxoff
复制代码
发表于 2009-7-20 16:25 | 显示全部楼层

回复 9楼 zhoulon 的帖子

我也不清楚为什么,不过把legend boxoff屏蔽掉后,legend就可以自由拖动了,并且可以在其属性栏里把Edgecolor设为白色。
 楼主| 发表于 2009-7-20 23:28 | 显示全部楼层

回复 10楼 friendchj 的帖子

是啊,我也感觉这个很是奇怪,为什么复制了以后就不能移动了,非常感谢。
发表于 2009-7-21 00:44 | 显示全部楼层
 楼主| 发表于 2009-7-21 17:39 | 显示全部楼层
这个问题仿真论坛已经有人利用两个axes解决了,再次感谢各位。
http://forum.simwe.com/thread-889490-1-1.html

[ 本帖最后由 ChaChing 于 2009-7-21 19:25 编辑 ]

评分

1

查看全部评分

发表于 2009-7-21 19:35 | 显示全部楼层

回复 13楼 zhoulon 的帖子

嘿! 大家怎搜的地方都雷同! (振动论坛/仿真论坛/matlab中文论坛)
我还搜过mathworks官网fileexchange, 但没找着合适的!
本想直接看看并修改legend.m档, 但太长了, 最近工作较紧些, 便作罢!
还有希望LZ常来!

[ 本帖最后由 ChaChing 于 2009-7-21 19:38 编辑 ]
 楼主| 发表于 2009-7-21 20:37 | 显示全部楼层

回复 14楼 ChaChing 的帖子

呵呵,谢谢你这么热心,可能是这几个论坛做的比较出色吧,我会常来的。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-25 23:00 , Processed in 0.065905 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表