Tweak legend entries without creating a new legend

63 次查看(过去 30 天)
I have created a plot with a legend and now I would like to edit legend entries without recreating the whole legend. For example, for five legend entries I would like to reorder them like
newOrder = [2 3 5 4 1];
I can reorder the entries by first getting current legend handles and strings like this:
[~,~,plot_h,text_strings] = legend;
And then I can reorder the entries like this:
legend(plot_h(newOrder),text_strings{newOrder})
However, this doesn't only reorder the legend; it seems to delete the legend I'd already created, with its perfect placement and color scheme, etc, and creates a new legend with entries in the correct new order. How can I edit these entries without screwing up the placement, colors, boxoff, etc that I've already set?

采纳的回答

Chad Greene
Chad Greene 2014-7-14
I did not quite figure out how to edit an existing legend, but I did work up this function that does what I needed it to do.

更多回答(2 个)

Rodrigo Bernal
Rodrigo Bernal 2021-7-13
Edit a specific legend entry of an existing legend:
figu=gca;
figu.Legend.String(6)={'Edit the 6th legend'};

Ben11
Ben11 2014-7-11
编辑:Ben11 2014-7-11
Maybe assign a handle to your legend in the first place, eg
hLegend = legend(...);
and then change the String property with the new order:
set(hLegend,'String',newOrder);
This should only update the current legend without replacing it.
  2 个评论
Chad Greene
Chad Greene 2014-7-11
That's the first solution I tried, but there are a couple of issues:
1. It'd have to be set(h,'string',text_strings(newOrder))
and
2. That changes the order of the strings without changing the order of the markers beside them. I want to keep the associations between strings and their data.
Chad Greene
Chad Greene 2014-7-11
Is there a legend property corresponding to 'String' for 'Data'? Then it would be a simple issue of
set(h,'String',text_strings(newOrder),'Data',plot_h(newOrder))

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Legend 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by