DMUG-Archiv 2003

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: Grafik - Achsen

Hallo Martin,

da ich noch mit Mma 4.2 zufrieden bin, weiss ich nicht, ob es jetzt in Mma 5.0
etwa eine PlaneOrientation-> Reverse Option unter den Grafikoptionen gibt. Das
Umprogrammieren für 2D sieht so aus:

Remove[heimannGraphics2D];
heimannGraphics2D[f_, rl_List, ol_List] :=
  Module[{htInv = False, vtInv = False, ffInv = False, g},
      (* get users spec *)
      If[Length[Cases[ol, hInv]] == 1, htInv = True];
      If[Length[Cases[ol, vInv]] == 1, vtInv = True];
      If[Length[Cases[ol, fInv]] == 1, ffInv = True];
      (* get the hard work done *)
      g = Plot[f, rl, PlotRange -> All, DisplayFunction -> Identity];
      hticks = AbsoluteOptions[g, Ticks][[1, 2, 1]];
      vticks = AbsoluteOptions[g, Ticks][[1, 2, 2]];
      vals = FullForm[g][[1, 1, 1, 1, 1]];
      (* rebuild the graphics *)
      If [htInv, (* truly ugly *)
        ll = Transpose[hticks][[2]];
        l1 = Join[Reverse[Select[ll, NumberQ]], Take[ll, Length[Select[ll,
NumberQ]] - Length[ll]]];
        hticks = Transpose[ReplacePart[Transpose[hticks], l1, 2]]
        ];
      If[vtInv,
        ll = Transpose[vticks][[2]];
        l1 = Join[Reverse[Select[ll, NumberQ]], Take[ll, Length[Select[ll,
NumberQ]] - Length[ll]]];
        vticks = Transpose[ReplacePart[Transpose[vticks], l1, 2]]
        ];
      If[ffInv, vals = Transpose[RotateLeft[Transpose[vals]]]];
      (* plot *)
      Show[ Graphics[Line[vals], Ticks -> {hticks, vticks}], Axes -> True,
             DisplayFunction -> $DisplayFunction, PlotRange -> All]
      ] /; VectorQ[rl]

Dann erhaelt man mit
heimannGraphics2D[SinIntegral[x], {x, 0, 10}, {}]
das eine Bild (siehe Anhang) mit sinnvollen Ticks, und mit
heimannGraphics2D[SinIntegral[x], {x, 0, 10}, {hInv, vInv}]
das andere Bild (siehe ebenso Anhang) mit sinnwidrigen Ticks.

Die Frage ist nur, wozu kann man das brauchen? Wenn das ueberhaupt Sinn machen
soll, muesste die Funktion entsprechend abgebildet werden. Das wuerde ich Ihnen
gern ueberlassen.

Mit den besten Grüssen
Udo.

Martin Heimann schrieb:

> Liebe Kollegen,
>
> 2 simple Fragen:
>
> (1) Wie kriege ich MMa dazu, bei Plot oder ListPlot den Wertebereich einer
> Achse umzukehren, d.h. von positiven zu negativen Werten zu laufen? Klar,
> man könnte die Beschriftungen der Achse oder des Frames neu programmieren,
> aber gibt es nicht einen einfacheren Weg?
>
> (2) Wie spiegle ich eine Plot-Grafik? d.h. ich habe ein Funktion y=f(x) die
> ich darstellen möchte, wobei aber die x-Achse vertikal und die y-Achse
> horizontal ausgerichtet sein sollen. Klar, ich könnte f(x) invertieren und
> dann die inverse Funktion zeichnen; aber geht dies nicht einfacher?
>
> Gruss,
> Martin

GIF image

GIF image

Antworten:
Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html