Axis in scientific form - have tried to stop it....

조회 수: 47(최근 30일)
Tom
Tom 2012년 1월 28일
댓글: Walter Roberson 2021년 2월 22일
axis in scientific form - have tried to stop it….
I have a plot with a logarithmic scale on the x-axis and I want it to say the numbers like 1,10,100,1000 etc. and not 10^0, 10^1, 10^2 etc. It'd be great if someone could help me do that.
I've given it about 20 minutes just now and I gave it 20 minutes yesterday too and I still can't get it to work. I've left my attempt on the bottom anyway.
close all
clear all
m = 0.05;
k = 1000;
R = 1;
f = linspace(0,19999,20000);
Xm = m.*(2*pi.*f) - k./(2*pi.*f);
createfigurelog(f,Xm);
%set(gca,'XTick', [0,1,10,100,1000,10000]); %set(gca,'XTickLabel',sprintf('%3.4f|',f))

채택된 답변

Walter Roberson
Walter Roberson 2012년 1월 28일
curtick = get(gca, 'XTick');
set(gca, 'XTickLabel', cellstr(num2str(curtick(:))));
The scientific notation is not used if the tick labels are set.
Also note the "trick" of passing a column vector to num2str.
  댓글 수: 6
Walter Roberson
Walter Roberson 2021년 2월 22일
The Exponent is intended to deal with the situation in which the end of the ruler has an exponent written in, such as
x = linspace(0,5,1000);
y = 100*exp(x).*sin(20*x);
ax = gca;
plot(ax, x, y)
ax.XRuler.TickLabel
ans = 6x1 cell array
{'0'} {'1'} {'2'} {'3'} {'4'} {'5'}
ax.XRuler.TickLabelFormat
ans = '%g'
However, when you use loglog() then those end-of-ruler exponents are not written in.
loglog(ax, x, y)
ax.XRuler.TickLabel
Warning: Negative data ignored
ans = 5x1 cell array
{'10^{-3}'} {'10^{-2}'} {'10^{-1}'} {'10^{0}' } {'10^{1}' }
ax.XRuler.TickLabelFormat
ans = '%g'
The only XRuler properties I look at that appears to control this automatic writing-in of formatted ticks is Scale
loglog(ax, x, y)
ax.XRuler.Scale = 'linear';
ax.XRuler.TickLabel
Warning: Negative data ignored
ans = 6x1 cell array
{'0'} {'1'} {'2'} {'3'} {'4'} {'5'}
My initial guess was that TickLabelFormat would control it, but it does not -- and I realized that there is no % format specifier for raised exponent so TickLabelFormat could not control it.

댓글을 달려면 로그인하십시오.

추가 답변(0개)

태그

제품

Community Treasure Hunt

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

Start Hunting!

Translated by