在Matlab图形中绘制图例

HXSP1947

我想在Matlab图中的图例上放置一个箭头,但是当我添加箭头时,图例默认为“在顶部”(参见图片,图例中的黑线)。

有没有办法将子图(例如箭头)推到“顶部”,使其出现在图的所有其他组件上,包括图例?我尝试使用uistack它,但似乎不适用于图例。uistack正如文档所说,“应该重新排列UI组件的可视堆栈”。

编辑:

非常简单的示例:我绘制的线条应出现在图例的顶部。

figure;
b = bar(1:3,rand(3));
hold on;
p = plot([0,3],[0,.5],'Color','k','linewidth',1.5); % my arrow
l = legend(b,'value','Location','SouthWest','AutoUpdate','off');
uistack(l,'bottom');

在此处输入图片说明

马赛

您可以copyobj当前的图形轴gca并将其Color属性设置none此方法将在图例的补丁和相关文本上画线。

说明:Copyobj将复制并显示所有axesbar相关line的图例但不显示图例(传奇有axes自己的名字)。复制的显示内容axes将与原始显示内容完全重叠。并且'Color','none'使复制的白色背景axes透明,从而使legend再次但是可见可见了线。

这是代码

f = figure;
b = bar(1:3,rand(3));
hold on;
p = plot([0,3],[0,.5],'Color','k','linewidth',1.5); % my arrow
l = legend(b, 'Location','SouthWest');

% add some magic
hax = copyobj(gca, f); % copy the current axes to the figure
set(hax, 'Color', 'none') % set the new axes's background transparent

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章