Extract "labelhandles" from Legend
4 次查看(过去 30 天)
显示 更早的评论
Given the definition of Legend in Matlab:
[leg,labelhandles,outH,outM] = legend(varargin)
Would it be possible to get the content of the second output of the legend, i.e. "labelhandles", just by calling the first output of the legend, i.e.
leg = legend(varargin)
?
3 个评论
Adam Danz
2023-6-1
@Sim, before you get too far down that route, know that the additional outputs to legend used to be documented but are no longer documented nor fully supported. Using the undocumented additional legend handles have lead to unexpected behaviors. For example, unexpected fontsize and fontweight, (here too).
Even if you manage to get the legend object handles and adjust their properties, those adjustments may not sustain after saving/loading the figure or when the figure is in Live editor.
I'm not saying you'll definitiely run into these problems, but you might.
采纳的回答
Matt J
2023-6-1
编辑:Matt J
2023-6-1
Would it be possible to get the content of the second output of the legend, i.e. "labelhandles", just by calling the first output of the legend
I was told very recently by Tech Support that it is not possible:
On Wed, Mar 15, 2023 at 9:45AM Laura Li <support@mathworks.com> wrote:
Hello Matt,
Unfortunately there is not. You'd have to use the workaround mentioned previously if you want to have two handles and the properties set correctly. Compatible legend is maintained to prevent old workflows from breaking but new features are not supported for this legend.
On the other hand, could you provide more information on your entire workflow? As in what is your goal with getting the handles to each patch objects? We'd like to support the workflow one day, and we want to make sure your use case is considered in future enhancement plans.
Sincerely,
Laura Li
MathWorks Technical Support
--------------- Original Message ---------------
From:
Sent: 3/14/2023, 4:29 PM
Subject: Re: legend() ignores FaceAlpha [ ref:_00Di0Ha1u._5003q1aAxgK:ref ]
I'm talking about obtaining handles to the patches inside the legend box, such as the handle PatchInLegend handle from your previous code example, ...So my question is really, is there a supported way to obtain PatchInLegend without relying on the two-output syntax of legend() as you did earlier?
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Legend 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!