How to get legend entries from existing figure ?
35 views (last 30 days)
Show older comments
Petr Michalek
on 9 Dec 2025 at 13:28
Commented: Petr Michalek
on 10 Dec 2025 at 8:33
Hello,
I am extracting the data from existing figures, this code works for the x, y data, but the Legend variable does not contain any values.
My code:
clear; close all;
addpath(genpath('D:\Uprofily\Blockage\numerika\figures'));
fig1 = openfig("cl_mean.fig");
Legend = findobj(gcf,'Type','Legend')
% data extract
dataObjs1x = findobj(fig1,'-property','Xdata'); % data X
xdata = dataObjs1x(1).XData;
dataObjs2y = findobj(fig1,'-property','Ydata'); % data Y
y1 = dataObjs2y(1).YData; % line y1
y2 = dataObjs2y(2).YData; % line y2
save("cl_mean.mat");
How do I get the legend entries, i.e. the "rect2 Comsol 2d, v=2.8, greatdomain" and some designation which entry belongs to which line ?
Thank you. Petr

0 Comments
Accepted Answer
Matt J
on 9 Dec 2025 at 13:39
Edited: Matt J
on 9 Dec 2025 at 13:53
The legend's String property will get you the legend labels for the different lines, e.g.,
plot(rand(5,3)); L=legend;
L.String
EDIT: Handles to the original line data can be recovered from,
Hlines = L.PlotChildren
More Answers (0)
See Also
Categories
Find more on Legend in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!