2

By defining the $\log_q$ as: $$ \log_q(x)=\frac{x^{1-q}-1}{1-q}, x \geq 0, q \neq 1$$ how would it be possible to have the equivalent of the LogLogPlot command, meaning that the axes are now defined as $\log_q (x)$ and $\log _q f(x)$?

The reason I am asking this, is because I would like to make a plot of the Tsallis q-Gaussian distributions which are built-in Mathematica Tsallis Q Gaussian and then the equivalent of the LogLogPlot in order to show that these distributions about power laws on a $q$-logarithmic scale.

Thank you.

Bazinga
  • 737
  • 4
  • 15
  • Why not use ParametricPlot[]? – J. M.'s missing motivation Jul 11 '16 at 14:47
  • @J.M. Can you please explain in more detailed what do you mean by this suggestion? As far as I am concerned I just know that LogLogPlot defines logarithmic scales on both axes but I am not familiar with the way Mathematica does that, therefore my problem is my lack of ability to manipulate this command. – Bazinga Jul 11 '16 at 14:54
  • 1
    A hint: compare LogLogPlot[Exp[x], {x, 1, 5}] and ParametricPlot[{Log[x], Log[Exp[x]]}, {x, 1, 5}, AspectRatio -> 1/GoldenRatio]. (Worry about the ticks later; concentrate on what these transformations are doing mathematically.) – J. M.'s missing motivation Jul 11 '16 at 14:58
  • @J.M. I will try out Mr Wizard's answer in order to see if that works out for me. Thank you again :) – Bazinga Jul 11 '16 at 15:41
  • 1
    there is nothing special about LogLog plot. You can always make transformation and then produce special ticks/gridlines, something like this – BlacKow Jul 11 '16 at 15:49
  • 1
    Calling that function $\log_q$ is really misleading. That notation is standard for the base-$q$ logarithm. – Szabolcs Jul 11 '16 at 22:09
  • @Szabolcs It is the inverse of the Tsallis q exponential, but my post has more to do with the q-logaritmic scale axes rather than the function itself. This is why I defined it at the beginning. – Bazinga Jul 11 '16 at 22:15

1 Answers1

4

You might be able to make use of ScalingFunctions.

lq[q_ /; q != 1][x_] := (x^(1 - q) - 1)/(1 - q)
invlq[q_][z_] := Abs[(1 + z - q z)^(1/(1 - q))]

spec[q_] := {{lq[q], invlq[q]}, {lq[q], invlq[q]}};

Plot[x^2, {x, 1, 30}, PlotRange -> All, ScalingFunctions -> spec[0.8]]

enter image description here

This works in Mathematica 10.1 but it is not officially supported, as indicated by the Option name being highlighted in red.

Mr.Wizard
  • 271,378
  • 34
  • 587
  • 1,371
  • In this case, the OP seems to want to plot tqpdf[x_, q_] = PDF[TsallisQGaussianDistribution[q], x]; maybe you can use that example instead (making sure you are using the same q for it and lq[]). For reference: here are complete definitions you can use for spec[]. – J. M.'s missing motivation Jul 11 '16 at 15:11
  • @J.M. I really don't know how that should look so I feel uncomfortable with it. – Mr.Wizard Jul 11 '16 at 15:15
  • 1
    @Mr.Wizard Thank you, I will take some time to play around with it, perhaps also use the TsallisQGaussianDistribution to see if I get what is expected by it and then I will get back to you. – Bazinga Jul 11 '16 at 15:40