DMUG-Archiv 2005

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

Re: Achsenbeschriftung Stackplot

Hallo,

natürlich kann man StackGraphics[] nehmen, wenn 
man z. B. ein
besonders inniges Verhältnis zu dieser Funktion 
hat,
sie endlich mal verwenden will oder danach gefragt 
wird.

Das ist aber wesentlich umständlicher und auch 
unlogischer.
Man muß dazu nur herausfinden wie StackGraphics[] 
die y-Koordinate
erzeugt und diese umrechnen. Also
<< Graphics`Graphics3D`

Diff = 2.26*10^(-9);
prop = 1/((4 Pi Diff y)^(1/2))*Exp[-x^2/(4Diff 
y)];
stack = Table[Plot[prop, {x, -.00005, .00005},
DisplayFunction -> Identity], {y, .05, 
0.001, -0.002}];
Show[gr = StackGraphics[stack], PlotRange -> All, 
Axes -> True, Boxed ->
False]


n = Length[Cases[gr, _Line, Infinity]];
dy = 1/n;
mydy = -0.002;
y0 = 0.05;
gr1=Show[gr /. Line[pnts_] :> Line[({0, y0, 0} + 
{1, mydy/dy, 1}*#) & /@ pnts],
PlotRange -> All, Axes -> True
]

was daran unschön ist, ist die Tatsache, das man 
mydy und y0 aus der

stack=Table[__,{y, .05, 0.001, -0.002}}

heraus kopieren muß, änderte man da etwas muß es 
auch unten hin geschrieben werden. Das ist 
fehleranfällig und es wiederstrebt mir, die 
Information über die y-Position jedes Plots durch 
StackGraphics[] verwursten zu lassen und dann 
hinterher mühseelig die y-Koordinaten wieder zu 
rekonstruieren.

Egal was man gemacht hat, man kann aber noch 
probiern, die hintereinander liegenden Linien mit

gr1 /. Line[pnts_] :> {EdgeForm[], 
Hue[Mean[pnts][[2]]/(n*mydy)],
Polygon[Join[#, Reverse[# /. {x_, y_, _} :> {x, y, 
0}]]] & /@
Partition[pnts, 2, 1], {RGBColor[0, 0, 0], 
Line[pnts]}} //
Show[#, Lighting -> False] &

etwas zu verhübschen

Gruß
  Jens

----- Original Message ----- 
From: "cgalle" <kaleb_g@XXXXXXX.ch>
To: "'Jens-Peer Kuska'" 
<kuska@XXXXXXX.de>; 
<demug@XXXXXXX.ch>
Sent: Tuesday, August 02, 2005 11:33 PM
Subject: AW: Achsenbeschriftung Stackplot


| Hallo,
|
| > Diff = 2.26*10^(-9);
| > prop = 1/((4 Pi Diff y)^(1/2))*Exp[-x^2/(4Diff
| > y)];
| > stack = Block[{$DisplayFunction = Identity},
| >   Table[{y, Plot[prop, {x, -.00005, .00005}]}, 
{y,
| > .05, 0.001, -0.002}]];
| >
| > lines3d =
| >   stack /. {y_, gr_Graphics} :> (Cases[gr, 
_Line,
| > Infinity] /.
| >      Line[pnts_] :> Line[Insert[#, y, 2] & /@
| > pnts]);
| >
| > Show[Graphics3D[lines3d], PlotRange -> All,
| > BoxRatios -> {1, 1, 1}, Axes -> True]
|
| Mann, Mann, Mann, wie kommt man denn auf 
sowas???? :-)
|
| Kapier ich zwar nicht, aber klappt!!
|
| Kann ich daraus schließen, dass ich mit 
StackGraphics nicht zum Ziel
| komme?
|
| Besten Dank
| Christian
|
| 



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

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