Format axes Tick Labels in log scale
226 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Maurizio De Pitta'
il 3 Feb 2012
Dear all, an annoying issue when plotting on log scales, is apparently not being able to control the format of axis tick labels.
For example: given XTick = [0.1,1,10,30];
I want to manually set my own labels, e.g. XTickLabels = num2str(10^-1, 10^0, 10^1, 10^-1].
How can I format XTickLabels so that I display tick labels as powers of ten (i.e. base^{exponent} in latex interpreter)?
Right now MATLAB either omits the last label if XTickLabelModel is 'auto' or can display strings of the type '10^X' or can show only numbers as decimals (i.e. '0.1, 1, 10, 0.1').
Is there a way to control directly the format of axis tick labels, or I have to work it around using a text(-) object and switching XTickLabels off?
Thank you in advance for your help. Maurizio
1 Commento
Amir ghorab
il 13 Gen 2022
Spostato: DGM
il 21 Dic 2023
hey, I don't know why I can not make this work :((((((((((((((((((((
Can anyone please post a complete example????
Risposta accettata
Walter Roberson
il 3 Feb 2012
XTickLabels = cellstr(num2str(round(log10(XTick(:))), '10^%d'));
1 Commento
Shih-Kai
il 19 Lug 2015
The solution is awesome. It solves the xticklabels formatted in LaTex interpreter. Thank you so much.
Più risposte (4)
Kristian Beedholm
il 23 Ott 2014
But there isn't a latex interpreter for the xticklabels. You have to do it with text, I guess. Solving the same, I came up with this:
y=ylim;
yp=y(1)-abs(diff(ylim))*0.05;
x=get(gca,'xtick');
set(gca,'xticklabel',[],'xtickmode','manual');
for j=1:length(x)
h=text(x(j),yp,['10^{' num2str(log10(x(j))) '}']);
set(h,'HorizontalAlignment','center','fontsize',get(gca,'fontsize'))
end
0 Commenti
Cecilia Fleeger
il 29 Nov 2018
I come across this post and find a solution. To get read of '^' in 10^3, for example is all about TickLabelInterpreter property.
xtick=10.^(-6:-2);
xticklab = cellstr(num2str(round(-log10(xtick(:))), '10^-^%d'));
set(gca,'XTick',xtick,'XTickLabel',xticklab,'TickLabelInterpreter','tex')
0 Commenti
Mark Cohen
il 1 Mag 2020
Here is a simple solution to formatting labels on MATLAB log plots
yt = get(gca,'ytick');
for j=1:length(yt)
% With log plots, MATLAB defaulted to exponential format, that is difficult for lay
% readerst to understand. In my case, I wanted integer format.
YTL{1,j} = num2str(yt(j),'%d');
end
yticklabels(YTL);
0 Commenti
Vedere anche
Categorie
Scopri di più su Axis Labels in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!