필터 지우기
필터 지우기

Subscripts and supercripts in heatmap axis labels

조회 수: 9 (최근 30일)
Raquel Nunes Palmeira
Raquel Nunes Palmeira 2019년 3월 15일
답변: Benjamin Kraus 2023년 9월 20일
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.

채택된 답변

Raquel Nunes Palmeira
Raquel Nunes Palmeira 2019년 3월 21일
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);

추가 답변 (2개)

Carly Cocke
Carly Cocke 2020년 1월 3일
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 2023년 9월 20일
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$');

카테고리

Help CenterFile Exchange에서 Data Distribution Plots에 대해 자세히 알아보기

제품


릴리스

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by