gpt4 book ai didi

Matlab:更改图例中条目的顺序

转载 作者:行者123 更新时间:2023-12-04 14:33:17 26 4
gpt4 key购买 nike

我有一个 Figure 文件,我想在其中更改条目的顺序(例如,将第一个条目作为第三个条目)。我很久以前保存了这个 Figure.fig 所以我不确定我是否可以恢复原始代码。

在这里,我向您展示我的情节:

My plot

我希望图例元素按降序排列(如图所示),但由于错误,我的第二个条目指的是错误的图(它说“25 年”,但图实际上是指最低趋势,对应到“9 年”趋势)。

我可以直接从 Matlab 中图形的属性编辑器切换图例中条目的顺序吗?如果是,如何(我没有看到任何“订单”属性或类似属性)?否则有没有其他简单的方法来切换图例中条目的顺序?

最佳答案

如果您的图形是在 R2014b 或更新版本中生成的,您可以使用未记录的 'PlotChildren'无需新的 legend 即可操作图例条目顺序的属性称呼。

例如:

x = 1:10;
y1 = x;
y2 = 2*x;
y3 = 3*x;
y4 = x.^2;

plot(x, y1, x, y2, x, y3, x, y4);
lh = legend('y = x', 'y = 2*x', 'y = 3*x', 'y = x.^2');

产生:

start

然后您可以操作:
neworder = [3, 1, 4, 2];
lh.PlotChildren = lh.PlotChildren(neworder);

生产:

yay

如果您没有 legend 的句柄对象,它是 figure 的 child 包含 axes 的对象绘制数据的对象。您可以找到您的 legend 的句柄对象使用以下之一 findobj 方法:
% Handle to figure object known
lg = findobj(figureobj, 'Type', 'legend');

% Handle to figure object unknown
lh = findobj(gcf, 'Type', 'legend');

请注意 gcf 通常将句柄返回到用户单击的最后一个图形,但这并不一定总是如此。

自我提升编辑:此方法包含在一套 legend manipulation tools maintained on GitHub中由 StackOverflow MATLAB 社区提供。

关于Matlab:更改图例中条目的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39103748/

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