A customized legend using LaTeX
5 views (last 30 days)
Show older comments
Igor Markiewicz
on 27 Dec 2017
Commented: John K. George
on 14 Sep 2021
Hello! I wanted to make a customized legend for two functions on the same graph and I need both flat text and LaTeX support. At the moment I built something like this:
figure;
N = 1:1:length(train_value);
plot(N, train_value, N, test_value, 'LineWidth', 1.5);
xlabel('numer iteracji', 'fontweight', 'bold');
ylabel('\boldmath$\overline{\kappa}_C$', 'Interpreter', 'latex', 'fontweight', 'bold', 'fontsize', 17);
l = legend('XXX', 'YYY');
set(l, 'Interpreter', 'latex', 'string', 'warto\''s\''c \boldmath${\overline{\kappa}_C}$ dla zbior\''ow treningowych', 'Interpreter', 'latex', 'string', 'warto\''s\''c \boldmath${\overline{\kappa}_C}$ dla zbior\''ow testowych');
It works almost well. The only problem is that the last settings instead of being added overwrite the first settings. As a result, I have a legend for only one graph.
0 Comments
Accepted Answer
Star Strider
on 27 Dec 2017
Edited: Star Strider
on 27 Dec 2017
I would put the LaTeX strings in the legend entries themselves, then define the interpreter in the set call.
Example —
x = 1:10; % Create Data
y1 = randn(1, 10); % Create Data
y2 = rand(1, 10); % Create Data
figure(1)
plot(x, y1, 'pg', x, y2, 'pr')
l = legend('$e^{x}$', '$U(x)$');
set(l, 'interpreter', 'latex')
1 Comment
John K. George
on 14 Sep 2021
This code (below) works for me;...however, I need to display one legend with multiple plots of "string(app.selectedData1)". Currently, only the most recent selectedData1 is displayed in legend. How do I update the code here (below), to display all values of string(app.selectedData1)??
plot(data(:,1), data(:,2),'DisplayName',string(app.selectedData1))
t = legend(string(app.selectedData1),'Interpreter','latex')
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!