LogLog axes in 3d

ScalingFunctions isn't documented to work with ParametricPlot3D, which is why it shows up in red in the plotting command. But it does seem to work halfway, by transforming the function but doing nothing for the tick marks.

You can supply the tick marks manually, but that means you have to do so every time. The excellent CustomTicks package can be of help, but I haven't kept up with it so I don't know how well it works with newer versions of Mathematica. Here I'm going to use the undocumented Charting`ScaledTicks function, which has been exposed here on the SE before.

f1[x_] := {x, 1, x^2}
a3 = ParametricPlot3D[f1[x], {x, 1, 80},
  AxesLabel -> {"x", "y", "z"},
  ScalingFunctions -> {"Log", Identity, "Log"},
  BoxRatios -> {1, 1, 1},
  Ticks -> {
    Charting`ScaledTicks[{Log, Exp}],
    Automatic, 
    Charting`ScaledTicks[{Log, Exp}]
    }]

enter image description here


I suppose it's always possible to do this yourself using Ticks. I agree this would be a useful function though.

This is a quick way to get what would be, I guess, a LogLinearLogPlot using what you had already:

f1 = {x, 1, x^2};
logXTicks = {1. Log10[#], #} & /@ 
   Join[Range[.1, 1, .1], Range[1, 7, 2], Range[10, 100, 35]];
logZTicks = {1. Log10[#], #} & /@ 
   Join[Range[.1, 1, .1], Range[1, 8, 2], Range[10, 90, 10]];
a3 = ParametricPlot3D[
  ReplacePart[f1, {
    1 -> Log10[f1[[1]]],
    3 -> Log10[f1[[3]]]
    }],
  {x, 1, 80},
  AxesLabel -> {"x", "z", "y"},
  BoxRatios -> {1, 1, 3},
  ViewPoint -> {0, -2, 0},
  PlotRange -> {0.001, 2},
  Ticks -> {logXTicks, Automatic, logZTicks},
  LabelStyle -> Directive[Black, Bold]]