gpt4 book ai didi

matlab - 放置 MATLAB 图例,使其不重叠在图上

转载 作者:太空宇宙 更新时间:2023-11-03 19:47:53 25 4
gpt4 key购买 nike

我正在使用 MATLAB 连续生成不同数据集的多个图。我希望图例位置不会在绘制的线上重叠,如果可以自动完成此放置,那将是理想的选择。

我知道将 'Location' 设置为 'best' 来实现这一点,但是当 'best' 时图例的位置往往很尴尬 被使用(如下)。另外,我希望图例在情节中。我还遇到了一种使图例透明(here)的方法,这样它就不会使绘制的数据不可见,但明确地将图例放在其他地方是我正在寻找的。 The awkwardly placed legend

有没有办法自动将图例放置在图像的极端('NorthWest''SouthWest' 等),这样它就不会重叠在绘制的数据(除了上面建议的方法)?

最佳答案

那么,您是否尝试过使用 Location 而不是 Position?例如:

x =1:100;
y = x.^2;
lgd = legend('y = x.^2');
set(lgd,'Location','best')

你得到的奇怪结果对吗?解决此问题的一种快速方法是仍然使用 Locationbest,并提取坐标:

lgd.Position

你应该得到这样的东西:

ans =

0.7734 0.3037 0.1082 0.0200

映射到:

[left bottom width height]

您需要关注左侧和底部。 left 和 bottom 这两个值指定从图形左下角到图例左下角的距离,它们类似于您正在使用的网格框架。

然后,根据框架的大小(我建议您为此使用 axis([XMIN XMAX YMIN YMAX]),如果可能的话),您可以精确定位网格中的图例。接下来你可以做的是检查绘图中的图形是否以及哪些图形与图例交叉路径(可能根据某个距离阈值定义一个相对距离函数),如果是,则随机重新定位图例(即更改值leftbottom) 并重复直到满足您的条件。

如果这仍然困扰您,我可以写一个简短的片段。最后,要知道您始终可以选择将图例放在外面:

set(lgd,'Location','BestOutside')

关于matlab - 放置 MATLAB 图例,使其不重叠在图上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29058764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com