添加图例matlab图

时间:2015-05-04 10:53:24

标签: matlab plot add legend

我有一个matlab函数myfunction(var1,var2),它给了我一个带有图例的情节。我想在一个图中生成更多具有此功能的图。到目前为止,这对于一个图中的2个图有效:

myfunction(a,b)
hold on
myfunction(c,d)
hold off

这里的问题是为每个情节生成的图例:

legend(sprintf('%s%s',var1,' on ',var2))
legend('boxoff')

仅出现在myfunction的最后一个实例中(在这种情况下为myfunction(c,d),在d'上只有一行图例说明了' c,但是我希望在b'和' c上有两行' c

;

那么如何在不覆盖传奇的情况下为传奇添加内容呢?

2 个答案:

答案 0 :(得分:0)

如果您要做很​​多事情,最好将图例标签导出为函数的输出参数,然后连接它们并在函数外部调用legend

如果它只是一个黑客攻击,那么你可以在你的功能中查看轴手柄并拉出图例条目。还有类似的问题here

答案 1 :(得分:0)

另一种可能性是使用MATLAB的dynamic legend(没有很好记录)功能。在您的情况下,您不必将图例标题传递给legend函数,而是需要将它们用作plot函数的输入参数:

plot(x, y, 'DisplayName', 'caption');

然后使用以下语法添加图例:

lh = legend('-DynamicLegend');
set(lh, 'Box', 'off');

但是,如果你要在同一个地块上尽可能快地渲染大量的图形,我不会建议这种方法。在一个循环中。在这些情况下,动态图例可能会导致显着的性能损失。