# Changing the axis ticks of a LogLogPlot

According to the Documentation

LogLogPlot effectively generates a curve in which Log[f] is plotted against Log[x], but with tick marks indicating the original values of f and x.

So for, say,

f1[t_] := 1.71*^-10 + 1.08*^-11 t^0.22

f2[t_] := 1.62*^-10 + 1.82*^-11 t^0.18


it will produce

LogLogPlot[{f1[t], f2[t]}, {t, 0.001, 10000},
PlotStyle -> {Blue, Red}, Axes -> False, Frame -> True]


I want the ticks of the axis to have the logarithmic values.

I can achieve this as follows

modf1[x_] = Log[10, f1[t] /. (a_ + b_ t_^o_) -> a + b 10^(o x)];
modf2[x_] = Log[10, f2[t] /. (a_ + b_ t_^o_) -> a + b 10^(o x)];

Plot[{modf1[x], modf2[x]}, {x, -3, 4}, PlotStyle -> {Blue, Red},
Axes -> False, Frame -> True]


But I think there must be an option of LogLogPlot that I am missing.

Thanks.

You could "trick" Plot into doing what you want directly, more or less along the lines of what you showed yourself:

Plot[
Log[10, #[10^x]] & /@ {f1, f2}, {x, -4, 4},
Evaluated -> True,
PlotStyle -> {Blue, Red}, Axes -> False, Frame -> True
]


This approach seems more readable to me, and it doesn't require you to generate your own FrameTicks.

• Thanks a lot. I am surprized that there is not a single option of LogLogPlot for doing this. Oct 1, 2015 at 9:19
• @dimitris In my opinion, your result requires plotting a different function altogether, whereas LogLogPlot and similar functions specialize on producing plots of the given function on logarithmic scales. In other words, you want to plot the logarithm of a function on a linear scale; LogLogPlot plots the function value itself on a logarithmic scale. Oct 1, 2015 at 9:26
• I see your point. You are right. Oct 1, 2015 at 9:35

FrameTicks can be used. Assuming you wish equally spaced ticks and only on bottom and left frame components:

LogLogPlot[{f1[t], f2[t]}, {t, 0.001, 10000},
PlotStyle -> {Blue, Red}, Frame -> True,
FrameTicks -> {{Table[{10^j, NumberForm[j, 3]}, {j, Log10[f1[0.001]],
Log10[f1[10000]], (-Log10[f1[0.001]] + Log10[f1[10000]])/5}],
None}, {{#, Log10@#} & /@ PowerRange[0.001, 10000, 100], None}}]


You could change divisions to suit.