LaTex interpreter in Heatmap ax-label
Show older comments
I want to use the LaTex interpreter in the xlabel and ylabel of a Heatmap plot.
I know how to do it for the plot() command, where I just have to write (it is just an example, and it works):
plot(x, f(x))
xlabel('$x$','Interpreter','latex')
ylabel('$f(x)$','Interpreter','latex')
The command heatmap() doesn't seem to work like the plot() command. Here's the code I'm using, where the variable Err is a MxM matrix:
heatmap(M,M,Err)
xlabel('$M_{1}$','Interpreter','latex')
ylabel('$M_{2}$','Interpreter','latex')
from which I receive the following error code:
Error using matlab.graphics.chart.Chart/xlabel
Too many input arguments specified when using xlabel with heatmap.
If I don't write the string 'Interpreter','latex' leaving just
heatmap(M,M,Err)
xlabel('$M_{1}$')
ylabel('$M_{2}$')
the code works but the label looks like in the figure:

3 Comments
Jonas
on 6 May 2021
did you try something like
set(findall(gcf,'-property','Interpreter'),'Interpreter','latex')
?
Andrea Medaglia
on 6 May 2021
Walter Roberson
on 6 May 2021
If I recall correctly, you cannot set the Interpreter for heatmap objects.
Accepted Answer
More Answers (1)
Scott MacKenzie
on 6 May 2021
h = heatmap(M,M,Err);
h.XLabel = 'M{_1}';
h.YLabel = 'M{_2}';
11 Comments
Walter Roberson
on 6 May 2021
That looks like TeX interpreter, not LaTex.
Scott MacKenzie
on 6 May 2021
Yes, I'm using the (default) TeX interpreter. I assuming Andrea's real goal is just to get the appropriate labels in the axes.
Walter Roberson
on 6 May 2021
"I want to use the LaTex interpreter in the xlabel and ylabel of a Heatmap plot."
Seems pretty specific.
Andrea Medaglia
on 6 May 2021
Scott MacKenzie
on 6 May 2021
OK, I'm still not sure what you want. I assume it's one of the following:

Can you clarify please?
Andrea Medaglia
on 6 May 2021
Scott MacKenzie
on 6 May 2021
Hmm, your question didn't mention anything about fonts. Sorry if I misunderstood.
Andrea Medaglia
on 6 May 2021
Walter Roberson
on 6 May 2021
Also the spacing and bold rendering are different for latex compared to tex
Andrea Medaglia
on 6 May 2021
Scott MacKenzie
on 6 May 2021
No really. It seems, as noted in a comment from Walter, that you can't set the Interpreter for heatmap objects.
You might consider re-stating your objective, perhaps in another question, without reference to latex.
Categories
Find more on Data Distribution Plots 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!