Refresh legend from the command line

30 visualizaciones (últimos 30 días)
Stephan Heise
Stephan Heise el 19 de En. de 2012
Respondida: Jim Hokanson el 20 de Dic. de 2018
Right-clicking a legend gives the option to "refresh" the legend.
Does anyone know of a way to call "refresh legend" from the command line?

Respuesta aceptada

Stephan Heise
Stephan Heise el 12 de Abr. de 2012
In the meantime I found an answer elsewhere:
It is possible to access any context menu item via the axes' UIContextMenu property. For details see http://undocumentedmatlab.com/blog/legend-semi-documented-feature/#comment-70611.
Stephan.

Más respuestas (3)

Junaid
Junaid el 19 de En. de 2012
Dear,
legend('-DynamicLegend');
it will refresh. And update the contents dynamically, either you delete something from plot or you add something:-)
I hope this is what you are required..:-)

Stephan Heise
Stephan Heise el 19 de En. de 2012
Hi Junaid,
thanks for the fast reply! I recently stumbled upen the "DynamicLegend" option myself and first thought, this was the same as the context-menu's "refresh". However, ‘DynamicLegend’ only seems to react to additions or deletions to the axes: switching the ‘Visibility’ of a line to ‘off’ or switching the legend entry off by
set(get(get(line_handle,'Annotation'),'LegendInformation'),'IconDisplayStyle','off')
is ignored by the ‘DynamicLegend’ feature. :( The “refresh” function correctly removes the corresponding legend entry in these cases.

Jim Hokanson
Jim Hokanson el 20 de Dic. de 2018
I've found hiding and showing the legend works.
ax = gca; %might be different ...
legend(ax,'hide');
legend(ax,'show');

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by