如何自定义图例元素的位置?

时间:2011-04-15 08:54:02

标签: matlab plot legend

我有一个有几个情节和传奇的人物。是否可以手动更改图例中元素的排列?例如,你怎么能创建一个两列的传奇?

5 个答案:

答案 0 :(得分:6)

要制作两列图例,普遍的共识似乎是您需要创建两个单独的图例并手动将它们并排放置。解决方案简化为discussion here

x = 1:10;
y1 = rand(1, 10);
y2 = rand(1, 10);

h1 = plot(x, y1, '-');
hold on
h2 = plot(x, y2, '-.r');

ah1 = gca;
ah2 = axes('position',get(gca,'position'), 'visible','off');

legend(ah1, h1, 'Location', [0.5 0.85 0.15 0.05], 'y1')
legend(ah2, h2, 'Location', [0.7 0.85 0.15 0.05], 'y2')

答案 1 :(得分:6)

当然这是可能的。请在此处查看说明:http://undocumentedmatlab.com/blog/multi-column-grid-legend/

答案 2 :(得分:1)

MathWorks File Exchange上有两个提交内容,可为您创建多列传说:

答案 3 :(得分:0)

除了@gnovice提到的提交外,MathWorks文件交换中还有另一个提交多列传说

答案 4 :(得分:0)

在2018a中,图例具有NumColumns参数;例如,如果h是绘制的线的句柄数组,而leg_names是每行的名称单元格数组:

hleg = legend(h, leg_names, 'FontSize', fontsize);
set(hleg, 'NumColumns', 2);
set(hleg, 'Location', 'south');