Subscripts and supercripts in heatmap axis labels
Show older comments
Hi, I am having trouble adding subscripts and supercripts to the axis labels on my heatmap. At the moment my code looks like this:
heatmap(string(round(log10(range_par_N),2)),string(round(log10(range_par_C2),2)),heatmap_data_Nconc,'CellLabelColor','none','GridVisible','off');
colormap(parula);
xlabel('log K^{N}_{N}');
ylabel('log K^N _C2');
But the axis labels look like this:

I have also tried doing:
heatmap(string(round(log10(range_par_N),2)),string(round(log10(range_par_C2),2)),heatmap_data_Nconc,'CellLabelColor','none','GridVisible','off');
colormap(parula);
h = xlabel('log K^{N}_{N}');
set(h,'Interpreter','tex');
But I get the following error:
Error using matlab.graphics.chart.Chart/xlabel
Output arguments are not supported when using xlabel with heatmap.
Error in xlabel (line 32)
hh = xlabel(ax,args{:});
The subscript and supercript work fine in the 'tex' style for all my other plots, but doesn't work for heatmap. Is it just that these are not suported for heatmaps?
I am using version R2018b.
I am new at using Matlab, so apologies if I have missed something obvious.
Accepted Answer
More Answers (2)
Carly Cocke
on 3 Jan 2020
You can edit Adam Danz's fix/get around of manipulating the interpreter property to fix the title text:
Here's the link to his answer: https://www.mathworks.com/matlabcentral/answers/432786-how-can-i-italicize-the-label-of-a-heatmap
and here's the editted version of his code to apply to yours:
h.heatmap(string(round(log10(range_par_N),2)),string(round(log10(range_par_C2),2)),heatmap_data_Nconc,'CellLabelColor','none','GridVisible','off');
colormap(parula);
a2 = axes('Position', h.Position); %new axis on top to add label's
a2.Color = 'none'; %new axis transparent
a2.YTick = []; %Remove ytick
a2.XTick = []; %Remove xtick
a2.YDir = 'Reverse'; %flip your y axis to correspond with heatmap's
xlabel('log K^{N}_{N}'); %you can use any commands under axes properties to edit the axes appearance
ylabel('log K_{C_2}^N');
h = heatmap(magic(4),'Interpreter','latex','CellLabelColor','none','GridVisible','off');
colormap(parula);
xlabel('$log K^{N}_{N}$');
ylabel('$log K^N_C2$');
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!