繁体   English   中英

添加图例Matlab图

[英]add legend matlab plot

我有一个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 (在本例中为myfunction(c,d) ,在图例中只有一行显示“ c on d”,但我想在两行中使用“ a on” b'和'c on d')

那么如何在不覆盖图例的情况下添加图例呢?

如果要执行很多操作,最好将图例标签导出为函数的输出参数,然后将它们连接起来并在函数外部调用legend

如果这只是hack,那么在函数内部,您可以查看轴手柄并拉出图例条目。 有一个类似的问题在这里是这样做的。

另一种可能性是使用MATLAB的动态图例 (未充分记录)功能。 在您的情况下,您无需将图例标题传递给legend函数,而需要将它们用作plot函数的输入参数:

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

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

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

但是,如果您有大量图形要尽可能快地(例如在循环中)在同一图上呈现,我不会建议这种方法。 在这些情况下,动态图例可能会严重影响性能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM