File Exchange

image thumbnail

legendUnq

version 2.0.0.0 (2.71 KB) by Adam Danz

Adam Danz (view profile)

Create a legend without duplicate entries or create 1 legend for multiple subplots.

5 Downloads

Updated 13 Sep 2018

View License

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.

Comments and Ratings (0)

Updates

2.0.0.0

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

MATLAB Release Compatibility
Created with R2018a
Compatible with any release
Platform Compatibility
Windows macOS Linux

MATLAB Online Live Editor Challenge

View the winning live scripts from faculty and students who participated in the recent challenge.

Learn more

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video