DMUG-Archiv 2001

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

Re: Achsenskalierung bei ListDensityPlot

Hallo Klaus Peter,

eine einfache hässliche Lösung ist:

Remove[kochLDP];
kochLDP[data_, affinx_List:{1, 0}, affiny_List:{1, 0}, tickOff_List:{0, 0}] :=

  Module[ {ax, bx, ay, by, xoff, yoff},
      {ax, bx} = affinx; {ay, by} = affiny; {xoff, yoff} = tickOff;
      xticks1 =  Table[{i + xoff, ToString[ ax i + bx]}, {i, 1,
Last[Dimensions[data]]}];
    (* haesslich, Table nochmal *)
      xticks2 = Table[{i + xoff, ""}, {i, 1, Last[Dimensions[data]]}];
      yticks1 =  Table[{i + yoff, ToString[ay i + by]}, {i, 1,
First[Dimensions[data]]}];
      yticks2 = Table[{i + yoff, ""}, {i, 1, First[Dimensions[data]]}];
      ListDensityPlot[data,
        FrameTicks -> {xticks1, yticks1, xticks2, yticks2},
        ColorFunction -> Hue
        ]
      ] /; TensorRank[data] == 2 && Length[affinx] == 2 && Length[affiny] == 2

dann gibt für
mdata = Table[Random[], {i, 1, 10}, {j, 1, 7}]

kochLDP[mdata]
den default view (wie bei direkter Benutzung vonListDensityPlot)

kochLDP[mdata, {5, 3}, {1, 0}]
ändert die x-Ticks gegenüber dem Default und

kochLDP[mdata, {5, 3}, {1, 0}, {-1/2, -1/2}]
rückt die Ticks in die Mitte der Kästchen usw. usf. ...

Wenn man xticks2 und yticks2 weglässt, wendet Mma die Ticks zyklisch gegen den
Uhrzeigersinn beginnend mit der Abszisse an den 4 Seiten des Bildes an. Die
Nutzung von FilterOptions (siehe R. Mäders Buch) empfiehlt sich, um durch
kochLDP andere Optionen an ListDensityPlot durchgeben zu können.

Gruss
Udo.


Klaus Peter Koch schrieb:

> Hallo,
>
> ich habe ein Problem mit ListDensityPlot:
> Beim Darstellen einer Datenreihe in einer Quadratischen Matrixform mittels
> ListDensityPlot möchte ich die Achsen linear skalieren.
> Beispiel:
> Standart Darstellung: x-Achse -> x-Position des Datenpunktes in der Matrix
> gewünschte Darstellung: x-Achse -> a*(x-Position)+b
> Kann mir da jemand weiterhelfen?
> Gruß und Danke im Voraus
> Klaus
> ........................................................
>
>         Dipl.-Ing. Klaus Peter Koch
>
>         Fraunhofer Institute for Biomedical Engineering
>         Biohybrid Systems Department
>
>         Ensheimer str. 48
>         66386 St.Ingbert
>         Germany
>         Phone: +49 6894-980-404
>         Fax: +49 6894-980-400
>         email: klauspeter.koch@XXXXXXX.de


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

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