Refresh legend from the command line

27 ビュー (過去 30 日間)
Stephan Heise
Stephan Heise 2012 年 1 月 19 日
回答済み: Jim Hokanson 2018 年 12 月 20 日
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?

採用された回答

Stephan Heise
Stephan Heise 2012 年 4 月 12 日
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.

その他の回答 (3 件)

Junaid
Junaid 2012 年 1 月 19 日
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 2012 年 1 月 19 日
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 2018 年 12 月 20 日
I've found hiding and showing the legend works.
ax = gca; %might be different ...
legend(ax,'hide');
legend(ax,'show');

カテゴリ

Help Center および File ExchangeLegend についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by