Logarithmische Achsenmarkierungen für ListLogLinearPlot

  • Wenn Sie ListLogLinearPlot die Abscissa verwenden Beschriftungen alle zwei Jahrzehnte.

    Gibt es eine Möglichkeit, Mathematica jedes Jahrzehnt zu beschriften?

    Ich muss dies in verwenden. && 2&&] wobei die Achsen entsprechend der ausgewählten Variablen skaliert werden.

    Logarithmische Achsenmarkierungen für ListLogLinearPlot

    Hier ist ein Beispiel Code der Art, die ich verwende:

     s[x_] := (10^-9) x^2; t[x_] := (10^-3) x^2; 
    Manipulate[ ListLogLinearPlot[{ Table[{a s[T], T}, {T, 0, 1000}], 
     Table[{a t[T], T}, {T, 0, 1000}] }, 
     GridLines -> None, PlotStyle -> {Thickness[0.005]}, Joined -> True, 
     PlotRange -> Automatic], {a, 10^-8, 10^8}]
     
    31 March 2012
    Verbeia
2 answers
  • Sie können einige benutzerdefinierte Markierungen erstellen, die wie gewünscht funktionieren. Es gibt vielleicht einen besseren Weg als Superscript, aber ich konnte nicht herausfinden, wie man ScientificForm oder NumberForm dazu bringt, nur den Exponenten statt 1 x 10^4 etc

     myTicks = Table[{10^i, Superscript[10, i]}, {i, -20, 15}]
     

    Hinweis: Ich habe die Art und Weise geändert, in der die a -Variable in Manipulate eingeht, da Sie dadurch mehr Möglichkeiten haben, einige davon zu erkunden niedrigere Exponentenwerte.

     Manipulate[
     ListLogLinearPlot[{Table[{10^a s[T], T}, {T, 0, 1000}], 
       Table[{10^a t[T], T}, {T, 0, 1000}]}, GridLines -> None, 
      Ticks -> {myTicks, Automatic}, PlotStyle -> {Thickness[0.005]}, 
      Joined -> True, PlotRange -> Automatic], {a, -8, 8}]
     

    Logarithmische Achsenmarkierungen für ListLogLinearPlot

    31 March 2012
    Verbeia
  • Sie können benutzerdefinierte Markierungen erstellen und ListPlot verwenden:

     myTicks[lower_, upper_, step_] := Flatten[Module[{Local = #, LocalTicks}, 
     LocalTicks = Log[10, Range[10^(# - 1), 10^#, (10^# - 10^(# - 1))/(10 - 1)]]; 
     Join[{#, ""} & /@ Most[LocalTicks], {{Last[LocalTicks], Power[10, 
     ToString[Last[LocalTicks]]] }}]] & /@ Range[lower, upper, step], 1]
    
    Manipulate[ListPlot[{Table[{Log[10, a s[T]], T}, {T, 0, 1000}], Table[{Log[10, 
     a t[T]], T}, {T, 0, 1000}]}, GridLines -> None, PlotStyle -> {Thickness[0.005]}, 
     Joined -> True, PlotRange -> Automatic, Ticks -> {myTicks[lower, upper, step],
      Automatic}, AxesOrigin -> {lower, 0}], {{lower, -20, "lower"}},
      {{upper, 10, "upper"}}, {{step, 1, "step"}}, Delimiter, {a, 10^-8, 10^8}]
     

    Logarithmische Achsenmarkierungen für ListLogLinearPlot

    31 March 2012
    Verbeia