Subscripts and supercripts in heatmap axis labels

6 views (last 30 days)
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:
Screen Shot 2019-03-15 at 09.55.00.png
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

Raquel Nunes Palmeira
Raquel Nunes Palmeira on 21 Mar 2019
I haven't really found the answer for this through using 'heatmap', but a colleague told me that using 'surf' with the command view(0,90) gives an equivalent to heatmap, and this supports the subscripts and superscripts.
z = surf(round(log10(range_par_N),2),round(log10(range_par_C2),2),heatmap_data_div);
view(0,90);
d = colorbar;
z.EdgeColor = 'none';
xlabel('log K^{N}_{N}');
ylabel('log K_{C_2}^N');
d.Label.String = 'Number of protocell divisions per day at equilibrium';
d.Label.FontSize = 16;
set(gca,'FontSize',14);

More Answers (2)

Carly Cocke
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:
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');

Benjamin Kraus
Benjamin Kraus on 20 Sep 2023
Starting in MATLAB R2023b, the HeatmapChart now has an Interpreter property.
h = heatmap(magic(4),'Interpreter','latex','CellLabelColor','none','GridVisible','off');
colormap(parula);
xlabel('$log K^{N}_{N}$');
ylabel('$log K^N_C2$');

Products


Release

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!