バージョン (2.71 KB) 作成者: Adam Danz
Create a legend without duplicate entries or create 1 legend for multiple subplots.
ダウンロード: 1.2K
更新 2018/9/13


When using the 'DisplayName' property when plotting (e.g: plot(x, y, 'DisplayName', 'Sofia')), legendUnq() will search for unique 'DisplayName' strings within a vector of figure or axis handles and removes duplicate values. This cleans up the legend when plotting in a loop or when the the same data appear more than once in a figure. This also makes it easy to use one legend across several subplots within a figure. Plot elements with an empty 'DisplayName' will not be included in the legend so you won't have any of those generic 'Data1' items.
unqHandles = legendUnq(h) searches all data in the figure or axis handle 'h' (h can also be a vector of axis handles) that has a 'DisplayName' string used by legend(). Duplicate DisplayName strings are removed. Call legend(unqHandles) to produce the legend showing unique components. If a plotted object does not have a DisplayName, it will not appear in the legend.
Common problems this solves:
1) Removes duplicates in a legend
2) Removes legend elements that weren't intended to be in the legend (i.e., that have empty 'DisplayName')
3) Makes it easy to have 1 legend that covers all subplots in a figure.


Adam Danz (2024). legendUnq (https://www.mathworks.com/matlabcentral/fileexchange/67646-legendunq), MATLAB Central File Exchange. 取得済み .

MATLAB リリースの互換性
作成: R2018a
Windows macOS Linux
Help Center および MATLAB AnswersLegend についてさらに検索

ヒントを与えたファイル: Gantt chart for scheduling problems

Community Treasure Hunt

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

Start Hunting!
バージョン 公開済み リリース ノート

1) fixed error when plot is empty
2) adapted use of undocumented function for matlab 2018b