Graphik mit Mathematica

Copyright

Copyright 1994,  Claudia Funke
TU-Berlin, FB 13, Fachgebiet Ökonometrie und Statistik
Dieses Notebook darf ausschließlich als Unterrichtsmaterial und für private Zwecke verwendet und nicht ohne Zustimmung der Autorin verändert werden.

Optionen

Mathematica-Befehle können durch Optionen verändert werden.
Bei den Graphikbefehlen steht meist für einen Befehl eine Vielzahl
von Optionen zur Verfügung.

Um zu sehen, welche Optionen für einen Mathematica-Befehl zur
Verfügung stehen, wird die Funktion  Option[]   verwandt.

Options[ function ]

Für den Graphikbefehl   Plot[]   zur Erzeugung einer zwei-
dimensionalen Graphik stehen z.B. viele Optionen zur Verfügung.

Options[Plot]

Die Funktion   Integrate[]   verfügt dagegen über keine Option.

Options[Integrate]

Um den Defaultwert für eine Funktion zu erfahren, wird Option mit 
dem optionalen Argument     option   aufgerufen.

Options[ function, option ]

Options[Plot, Frame]

Eine Option wird für die Dauer der Ausführung der Funktion geändert,
indem man ihr einen neuen Wert zuweist.

Plot[1/x, {x, 1, 10}, Frame -> True]

Eine dauerhafte Änderung der Option für diese Funktion erfolgt mit
SetOptions[].

SetOptions[ function, option ]

SetOptions[Plot, Frame -> True];

Options[Plot, Frame]

Das Zurücksetzen auf den Defaultwert erfolgt ebenfalls mit 
SetOptions[ ].

SetOptions[Plot, Frame -> False];

Graphikfunktionen

Plotten von Funktionen

Die folgende Funktionen erzeugen einen zwei- oder
dreidimensionalen Plot einer gegebenen Funktion f.

Plot[ f, {x, xmin, xmax} ]

z.B.:

Plot[Sin[x], {x, 0, 2 Pi}]

Plot3D[ f, {x, xmin, xmax}, {y, ymin, ymax} ]

z.B.:

Plot3D[Sin[x] Cos[y], {x, 0, 4 Pi}, {y, 0, 4 Pi}]

Options[Plot3D, PlotPoints]

Plot3D[Sin[x] Cos[y], {x, 0, 4 Pi}, {y, 0, 4 Pi},  
    PlotPoints -> 30
]

Plot3D[Tan[x y], {x, -Pi, Pi}, {y, -Pi, Pi}]

Plot3D[Tan[x y], {x, -Pi, Pi}, {y, -Pi, Pi}, 
   PlotPoints -> 30]

DensityPlot[ f, {x, xmin, xmax}, {y, ymin, ymax} ]

z.B.:

DensityPlot[Tan[x y], {x, -Pi, Pi}, {y, -Pi, Pi}, 
PlotPoints -> 50
]

DensityPlot[Tan[x y], {x, -Pi, Pi}, {y, -Pi, Pi}, 
PlotPoints -> 50, ColorFunction -> Hue
]

ParametricPlot[ fx, fy, {t, tmin, tmax} ]

z.B.:

ParametricPlot[{Sin[x], Cos[x]}, {x, 0, 2 Pi}]

ContourPlot[ f, {x, xmin, xmax}, {y, ymin, ymax} ]

z.B.:

ContourPlot[Tan[x y], {x, -Pi, Pi}, {y, -Pi, Pi},
   ContourSmoothing -> Automatic
]

ContourPlot[Tan[x y], {x, -Pi, Pi}, {y, -Pi, Pi},
  PlotPoints -> 40, ContourSmoothing -> Automatic
]

ParametricPlot3D[ fx, fy, fz, {t, tmin, tmax}, {u, umin, umax} ]

z.B.:

ParametricPlot3D[(3 Cos[t]^2 -1)^2 {Sin[t] Cos[u], 
   Sin[t] Sin[u], Cos[t]},
   {t, 0, Pi}, {u, 0, 2 Pi},
   PlotPoints -> 30, Boxed -> False, Axes -> False
]

Plotten von Daten

Es sei der Datensatz   daten08.asc   als ASCII-File vorhanden. 
Dieser wird mit der Funktion   ReadList[]    eingelesen.

ReadList[ "file", {type1, type2, ... } ]

Vor der graphischen Darstellung sollten zuvor die ersten Zeilen des 
Files mit  !!filename angelistet werden, um den Datentyp der Daten 
festzustellen.

!!daten08.asc

mydat = ReadList["daten08.asc", {Number, Number}]

Je nachdem, ob die Daten als ein- oder zweidimensionale Liste vorliegen können folgende Funktionen zu ihrer Darstellung verwandt werden:

ListPlot[ {x1, y1}, {x2, y2}, ... ]

plottet eine zweidimensionale Liste mit den Wertepaaren
{x1,y1}, {x2, y2}, ... .

plot1 = ListPlot[mydat]

Mit der Option  PlotJoined -> True können die Punkte miteinander 
verbunden werden.

ListPlot[mydat, PlotJoined -> True]

ListPlot[ {y1, y2, ... } ]

plottet eine eindimensionale Liste. Der fehlende Beobachtungswerte-
oder Zeitindex wird von Mathematica selbst gesetzt.

plot2 = ListPlot[ Transpose[mydat] [[2]] ]

Unterdrücken der Ausgabe einer Graphik

Die Ausgabe einer Graphik wird mit der Systemvariablen
$DisplayFunction   kontrolliert. Die Option

DisplayFunction  ->  Identity

unterdrückt die Graphikausgabe auf dem Bildschirm. Mit

DisplayFunction  ->  $DisplayFunction

wird die Variable wieder auf ihren Defaultwert gesetzt.

Wiederholte Ausgabe einer Graphik

Die Ausgabe einer Graphik kann mit der Funktion   Show[ ]
wiederholt werden, wobei die Optionen der Graphik geändert 
werden können.

Show[ graphic, options ]

Show[plot1, PlotLabel -> "Text"]

Mit   Show[ ]   können auch mehrere Graphiken zusammen 
dargestellt werden.

Show[ g1, g2, ... ]

Show[plot1, plot2 ]

Plotten einer Folge von Graphiken in einer Graphik

Um mehrere Graphiken jeweils getrennt in einer Darstellung zu 
erhalten, sind die Graphikobjekte in einer Liste abzulegen. Diese wird 
dann mit der Funktion   GraphicsArray[ ]  dargestellt.

GraphicsArray[ {g1, g2, ... } ]

tablett = Table[ 
           Plot[ Sin[i x + j], {x, 0, 2 Pi}, 
           DisplayFunction -> Identity],
           {i, 4}, {j, 0, Pi, Pi/2}
          ]

Show[ GraphicsArray[tablett] ]

Note: Über die Struktur der durch Table[ ] erzeugten zwei-
dimensionalen Liste wird auch die Anordnung der einzelnen 
Graphikobjekte bestimmt.

Graphikobjekte

Jede in Mathematica erzeugte Graphik wird als Graphikobjekt
dargestellt.

Die verschiedenen Graphikobjekte werden durch das Aufrufen
der unterschiedlichen Graphikfunktionen erzeugt:

Graphikobjekt	Graphikfunktion

                Graphics	Plot, ListPlot, ParametricPlot
  DensityGraphics	DensityPlot, ListDensityPlot
 ContourGraphics	ContourPlot, ListContourPlot
  SurfaceGraphics	Plot3D, ListPlot3D
          Graphics3D	ParametricPlot3D

Die Art des Graphikobjektes ist über   Head[graphic]   zu erfahren.

plot3 = Plot[Sin[x], {x, 0, 2 Pi}]

Head[plot3]

Aus der Differenzierung der Graphiken in Objekte resultiert
auch eine Unterscheidung der Optionen bei verschiedenen 
Objekten.

Die Ausgabe des Rahmens wird z.B. bei einem Graphikobjekt
des Typs Graphik mit der Option     Frame  ->  False      
(= Defaultwert)    gesteuert.

Plot[Sin[x], {x, 0, 2 Pi}, Frame -> True]

Bei einem Graphikobjekt des Typs    SurfaceGraphics     lautet 
dagegen die entsprechende Option      Boxed  ->  True      
(= Defaultwert).

Plot3D[Sin[x] Cos[y], {x, 0,  Pi}, {y, 0, 10 Pi}, 
   Boxed -> False, Axes -> False
]

Verschiedene Graphikobjekte können durch die Funktion  Show [ ]  
zwar kombiniert werden; dies ergibt jedoch nicht unbedingt auch 
einen Sinn.

plot3d1 =  
Plot3D[Sin[x] Cos[y], {x, 0, 4 Pi}, {y, 0, 4 Pi},
    DisplayFunction -> Identity
]

Show[plot3, plot3d1 ]

Mit   GraphicArray[]  können ebenfalls verschiedene 
Graphikobjekte ausgegeben werden.

tablett[[2,2]] =  
   Plot3D[Sin[x y], {x, 0, 2 Pi}, {y, 0, 2Pi},
      DisplayFunction -> Identity
   ]

tablett

Show[ GraphicsArray[tablett] ]

Graphikelemente

Jede in Mathematica erzeugte Graphik läßt sich auf eine Folge
von graphischen Grundelementen zurückführen, den sogenannten
graphics primitives . Damit ist es möglich, auch Graphiken zu 
erstellen, die nicht durch die vorhandenen Graphikfunktionen 
unterstützt werden.

Die wichtigsten Graphikelemente sind:

Point[ {x, y} ]

erzeugt einen Punkt an der Position {x,y}.

Line[ {x1, y1}, {x2, y2}, ... ]

erzeugt eine Linie durch die Punkte {x1,y1}, {x2, y2}, ... .

Polygon[ {x1, y1}, {x2, y2}, ... ]

erzeugt ein gefülltes Polygon mit den angegebenen Eckpunkten.

Die Graphikelemente sind Graphikobjekte vom Typ    Graphics,  
damit können alle Optionen für diesen Graphiktyp auf 
die Graphikelemente angewandt werden.

Show[Graphics[{Point[{3,3}], Point[{2,2}]}]]

Show[Graphics[{Point[{3,3}], Point[{2,2}],
     Line[{{2,2}, {3,3}}]}]]

Show[Graphics[{Point[{3,3}], Point[{2,2}], 
     RGBColor[0.502,0.000,0.251],
     Line[{{2,2}, {3,3}}]}]]

Show[Graphics[Polygon[{{2,2}, {3,3}, {2,3}}]]]