返回信息流如图所示,途中曲线比较多,每条曲线都显示一个 legend 没有必要, 也影响视线。
实线 和 虚线 是分别不同的两类, 然后实线和虚线分别有三条曲线进一步做比较。
怎样可以做到 按照下图那样 制作legend??
请大牛告诉我。。我google了很久也没有找到方法。
谢谢!
这是一条镜像帖。来源:北邮人论坛 / matlab / #9232同步于 2012/8/21
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖
[问题]图中曲线太多 如何分类设置 legend
Ameng
2012/8/21镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
有个有点作弊的方法,不过可以显示出来你想要的效果,步骤如下
1、随便作2+X条曲线,X数值等于每个大类下面小类的个数(方形,三角,圆圈的话,就是3)。作这些曲线时:一个用虚线,一个用实线;另外X条曲线,将线型设置为空,填充设置为方形、三角等形状。然后在图片编辑框里选显示legend,把legend内容改成对应的你想要显示的大类和小类的标识。
2、在原来的图上继续作新的你想要的N条曲线,注意在作每条曲线的过程中,不要设置显示legend,这样legend就会一直是第一步里面的状态
3、把开始的2+X条无用的曲线删掉,达到了想要的显示效果,不过一旦更新legend的显示,就会变成N条曲线的legend。
示例图如下:
【 在 Ameng 的大作中提到: 】
: 如图所示,途中曲线比较多,每条曲线都显示一个 legend 没有必要, 也影响视线。
: 实线 和 虚线 是分别不同的两类, 然后实线和虚线分别有三条曲线进一步做比较。
: 怎样可以做到 按照下图那样 制作legend??
: ...................
多谢你的解答, 我自己前几天突然解决了这个问题, 其实挺简单的。
就是在plot的时候, 把线和点分开画, 这样整体的效果就跟一起画一模一样。
线和点 分开后, 我就可以分别对线 和 点 制定legend了。
比如, 原本temp=plot(X,Y, '-*b') 变成temp=plot(X,Y, '-b',X,Y, '*b')
temp(1)就代表曲线, temp(2)代表* 构成的曲线点, 挑选需要的legend出来即可。
再次感谢你的解答~
【 在 fff7758258 的大作中提到: 】
: 有个有点作弊的方法,不过可以显示出来你想要的效果,步骤如下
: 1、随便作2+X条曲线,X数值等于每个大类下面小类的个数(方形,三角,圆圈的话,就是3)。作这些曲线时:一个用虚线,一个用实线;另外X条曲线,将线型设置为空,填充设置为方形、三角等形状。然后在图片编辑框里选显示legend,把legend内容改成对应的你想要显示的大类和小类的标识。
: 2、在原来的图上继续作新的你想要的N条曲线,注意在作每条曲线的过程中,不要设置显示legend,这样legend就会一直是第一步里面的状态
: ...................
嗯,问下怎么挑选想要的legend,还有怎么给legend排序啊?
【 在 Ameng 的大作中提到: 】
: 多谢你的解答, 我自己前几天突然解决了这个问题, 其实挺简单的。
: 就是在plot的时候, 把线和点分开画, 这样整体的效果就跟一起画一模一样。
: 线和点 分开后, 我就可以分别对线 和 点 制定legend了。
: ...................
p = plot(SNR,through,'-k',... 共有十几条曲线)
则p(1,1), p(2 ,1), p(n, 1) 分别指代第1,2,n条曲线,可在legend中用这个排序。
legend([p(1, 1), p(2, 1)], 'AA','CC'); % 只给给第一,二个曲线的legend
为了新建一个legend,先把图像复制一遍。
ah=axes('position',get(gca,'position'),'visible','off');
legend(ah,p(9:2:15),'L=1','L=2','L=4', 'L=16', 'location','west');
则把第9 11 13 15曲线放在一个legend中,并排列在西侧。
【 在 fff7758258 的大作中提到: 】
: 嗯,问下怎么挑选想要的legend,还有怎么给legend排序啊?
嗯,这个好,以前用legend都只在图形界面操作的[em17]。
谢啦!
【 在 Ameng 的大作中提到: 】
: p = plot(SNR,through,'-k',... 共有十几条曲线)
: 则p(1,1), p(2 ,1), p(n, 1) 分别指代第1,2,n条曲线,可在legend中用这个排序。
: legend([p(1, 1), p(2, 1)], 'AA','CC'); % 只给给第一,二个曲线的legend
: ...................
有想法的好青年!
【 在 Ameng 的大作中提到: 】
: 多谢你的解答, 我自己前几天突然解决了这个问题, 其实挺简单的。
: 就是在plot的时候, 把线和点分开画, 这样整体的效果就跟一起画一模一样。
: 线和点 分开后, 我就可以分别对线 和 点 制定legend了。
: ...................