This is documentation for Mathematica 4, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.1)

 Documentation /  Mathematica /  Das Mathematica Buch /  Die Prinzipien von Mathematica /  Die Struktur von Grafik und Ton /

InhaltZweidimensionale Grafik-Elemente

2.9.1 Die Struktur von Grafik

In Abschnitt 1.9 wurde beschrieben, wie Funktionen wie Plot und ListPlot zum Zeichnen von Funktionsgraphen und Daten benutzt werden. In diesem Abschnitt wird beschrieben, wie Mathematica diese Grafik darstellt und wie Sie Mathematica so programmieren können, daß es kompliziertere Bilder erzeugt.

Die Grundidee ist, daß Mathematica alle Grafik mit einem Satz Grafik-Primitiven darstellt. Die Primitiven sind sowohl Objekte wie Point, Line und Polygon, die Elemente grafischer Bilder repräsentieren, als auch Anweisungen wie RGBColor, Thickness und SurfaceColor.

Dies erzeugt ein Diagramm einer Punktliste.

In[1]:= ListPlot[ Table[Prime[n], {n, 20}] ]

Out[1]=

InputForm zeigt, wie Mathematica die Grafik darstellt. Jeder Punkt wird durch eine Point-Grafik-Primitive dargestellt. All die verschiedenen Grafik-Optionen, die in diesem Fall benutzt werden, sind ebenfalls aufgeführt.

In[2]:= InputForm[%]

Out[2]//InputForm= Graphics[{Point[{1, 2}], Point[{2, 3}], Point[{3, 5}], Point[{4, 7}], Point[{5, 11}], Point[{6, 13}], Point[{7, 17}], Point[{8, 19}], Point[{9, 23}], Point[{10, 29}], Point[{11, 31}], Point[{12, 37}], Point[{13, 41}], Point[{14, 43}], Point[{15, 47}], Point[{16, 53}], Point[{17, 59}], Point[{18, 61}], Point[{19, 67}], Point[{20, 71}]}, {PlotRange -> Automatic, AspectRatio -> GoldenRatio^(-1), DisplayFunction :> $DisplayFunction, ColorOutput -> Automatic, Axes -> Automatic, AxesOrigin -> Automatic, PlotLabel -> None, AxesLabel -> None, Ticks -> Automatic, GridLines -> None, Prolog -> {}, Epilog -> {}, AxesStyle -> Automatic, Background -> Automatic, DefaultColor -> Automatic, DefaultFont :> $DefaultFont, RotateLabel -> True, Frame -> False, FrameStyle -> Automatic, FrameTicks -> Automatic, FrameLabel -> None, PlotRegion -> Automatic, ImageSize -> Automatic, TextStyle :> $TextStyle, FormatType :> $FormatType}]

Jedes vollständige Teilstück einer Grafik in Mathematica wird als ein Grafik-Objekt dargestellt. Es gibt verschiedene Arten von Grafik-Objekten, entsprechend den verschiedenen Typen von Grafik. Jede Art von Grafik-Objekten ist mit einem definierten Kopf versehen, der ihren Typ identifiziert.

Grafik-Objekte in Mathematica

Funktionen wie Plot und ListPlot, die in Abschnitt 1.9 behandelt wurden, funktionieren alle so, daß die Mathematica-Grafik-Objekte erst aufgebaut und dann dargestellt werden.

Erzeugung von Grafik-Objekten durch Zeichnen von Funktionen und Daten

Sie können andere Arten grafischer Bilder in Mathematica erzeugen, indem Sie eigene grafische Objekte erstellen. Da Grafik-Objekte in Mathematica nur symbolische Ausdrücke sind, können sie mit allen Mathematica-Standardfunktionen manipuliert werden.

Wenn Sie ein Grafik-Objekt erzeugt haben, können Sie es auch darstellen. Mit der Funktion Show läßt sich jedes grafische Mathematica-Objekt darstellen.

Darstellung von Grafik-Objekten

Hier wird mit Table eine Polygon-Grafik-Primitive erzeugt.

In[3]:= poly = Polygon[
Table[N[{Cos[n Pi/5], Sin[n Pi/5]}], {n, 0, 5}] ]

Out[3]=

Dies erzeugt ein zweidimensionales Grafik-Objekt, das die Polygon-Grafik-Primitive verwendet. Im Standardausgabeformat wird das Grafik-Objekt einfach als -Graphics- angegeben.

In[4]:= Graphics[ poly ]

Out[4]=

InputForm zeigt das vollständige Grafik-Objekt.

In[5]:= InputForm[%]

Out[5]//InputForm= Graphics[Polygon[{{1., 0.}, {0.8090169943749475, 0.5877852522924731}, {0.30901699437494745, 0.9510565162951535}, {-0.30901699437494745, 0.9510565162951535}, {-0.8090169943749475, 0.5877852522924731}, {-1., 0.}}]]

Dies stellt das Grafik-Objekt dar, das Sie erzeugt haben.

In[6]:= Show[%]

Out[6]=

Lokale und globale Möglichkeiten, Grafik zu modifizieren

Bei einer gegebenen Liste von Grafik-Primitiven kann die Endform der Grafik in Mathematica auf zweierlei Weise modifiziert werden. Zuerst einmal können Sie in die Liste der Grafik-Primitiven Grafikanweisungen, wie zum Beispiel RGBColor, einfügen, die die nachfolgenden grafischen Elemente in der Liste modifizieren. Derart läßt sich die Wiedergabe einer Teilmenge der grafischen Elemente bestimmen.

Dies nimmt die Liste der oben erzeugten Grafik-Primitiven und fügt die Grafikanweisung GrayLevel[0.3] hinzu.

In[7]:= Graphics[ {GrayLevel[0.3], poly} ]

Out[7]=

Jetzt wird das Polygon grau wiedergegeben.

In[8]:= Show[%]

Out[8]=

Durch Einfügen von Grafikanweisungen können Sie spezifizieren, wie bestimmte grafische Elemente wiedergegeben werden sollen. Oftmals wollen Sie jedoch die Art, in der ein ganzes Grafik-Objekt wiedergegeben wird, global modifizieren. Dies erreichen Sie mit Grafik-Optionen.

Durch Hinzufügen der Grafik-Option Frame läßt sich die äußere Gesamterscheinung der Grafik modifizieren.

In[9]:= Show[%, Frame -> True]

Out[9]=

Show liefert ein Grafik-Objekt mit seinen Optionen.

In[10]:= InputForm[%]

Out[10]//InputForm= Graphics[{GrayLevel[0.3], Polygon[{{1., 0.}, {0.8090169943749475, 0.5877852522924731}, {0.30901699437494745, 0.9510565162951535}, {-0.30901699437494745, 0.9510565162951535}, {-0.8090169943749475, 0.5877852522924731}, {-1., 0.}}]}, {Frame -> True}]

In Show können Sie Grafik-Optionen angeben. Daher ist es nicht kompliziert, ein Grafik-Objekt wiederholt mit vielen verschiedenen Grafik-Optionen darzustellen.

Beachten Sie aber, daß Show die Grafik-Objekte, die es gezeigt hat, stets zurückgibt. Wenn Sie Grafik-Optionen in Show angeben, dann werden diese Optionen automatisch in die Grafik-Objekte eingefügt, die Show zurückgibt. Wenn Sie Show mit zurückgegebenen Objekten erneut aufrufen, werden deshalb dieselben Grafik-Optionen benutzt, falls Sie nicht explizit andere angegeben haben. Beachten Sie, daß in allen Fällen neue Optionen bereits vorhandene überschreiben werden.

Ermitteln der Optionen eines Grafik-Objektes

Einige Grafik-Optionen verlangen von Ihnen, daß Sie einen bestimmten Parameterwert spezifizieren, der einen Teil der Grafik beeinflußt. Bei anderen Optionen können Sie die Einstellung Automatic angeben, in der Mathematica für die Auswahl passender Parameter interne Algorithmen benutzt. In derartigen Fällen können Sie die von Mathematica tatsächlich benutzten Werte durch Anwendung der Funktion AbsoluteOptions herausfinden.

Hier ist ein Diagramm.

In[11]:= zplot = Plot[Abs[Zeta[1/2 + I x]], {x, 0, 10}]

Out[11]=

Die Option PlotRange ist gleich ihrem Vorgabewert Automatic gesetzt, der angibt, daß Mathematica interne Algorithmen zur Festlegung des eigentlichen Diagrammbereiches benutzen soll.

In[12]:= Options[zplot, PlotRange]

Out[12]=

AbsoluteOptions gibt den von Mathematica in diesem Fall festgelegten eigentlichen Diagrammbereich aus.

In[13]:= AbsoluteOptions[zplot, PlotRange]

Out[13]=

Ermitteln der vollständigen Form einer Grafik

Wenn Sie eine Grafik-Option, wie beispielsweise Axes, benutzen, muß Mathematica eine Liste der grafischen Elemente konstruieren, um die angeforderten Objekte darzustellen. Gewöhnlich gibt Mathematica die Liste, die es auf diese Weise konstruiert, nicht explizit zurück. Manchmal kann dies aber nützlich sein. Die Funktion FullGraphics gibt die vollständige Liste der zur Erzeugung eines Diagramms benötigten Grafik-Primitiven aus, ohne die Optionen dabei zu benutzen.

Dies zeichnet eine Werteliste.

In[14]:= ListPlot[ Table[EulerPhi[n], {n, 10}] ]

Out[14]=

FullGraphics liefert ein Grafik-Objekt mit Grafik-Primitiven, die Achsen usw. repräsentieren.

In[15]:= Short[ InputForm[ FullGraphics[%] ], 6]

Out[15]//Short=

Mit ihren Options-Voreinstellungen bewirken Funktionen wie Plot und Show, daß Mathematica grafische Ausgabe erzeugt. Im allgemeinen wird die eigentliche Erzeugung grafischer Ausgabe durch die Option DisplayFunction kontrolliert. Die Voreinstellung dieser Option ist der Wert der globalen Variablen $DisplayFunction.

In den meisten Fällen sind $DisplayFunction und die Option DisplayFunction so eingestellt, daß sie die elementare Funktion Display einsetzen, um, eventuell nach Vorverarbeitung, Ausgabe zu erzeugen. Manchmal wollen Sie möglicherweise jedoch, daß eine Funktion wie Plot zwar ein Grafik-Objekt erzeugt, aber dies nicht sofort tatsächlich zeigt. Sie können Mathematica anweisen, das Objekt zwar zu erzeugen, aber es nicht wiederzugeben, indem Sie die Option DisplayFunction -> Identity setzen. In Abschnitt 2.9.14 wird genau erklärt, wie das funktioniert.

Erzeugung und Anzeige von Grafik-Objekten

Dies erzeugt ein Grafik-Objekt, zeigt es aber nicht.

In[16]:= Plot[BesselJ[0, x], {x, 0, 10},
DisplayFunction -> Identity]

Out[16]=

Dies modifiziert das Grafik-Objekt, zeigt es aber immer noch nicht.

In[17]:= Show[%, Frame -> True]

Out[17]=

Um die Grafik darzustellen, müssen Sie Mathematica explizit anweisen, die Vorgabe-Anzeigefunktion zu benutzen.

In[18]:= Show[%, DisplayFunction -> $DisplayFunction]

Out[18]=

InhaltZweidimensionale Grafik-Elemente