Next: Grafikoptionen, Previous: Grafikformate, Up: Grafische Darstellung [Contents][Index]

### 12.3 Funktionen und Variablen für die grafische Darstellung

Funktion: contour_plot (expr, x_range, y_range, options, …)

  Zeichnet einen Konturgraphen (die Isolinien einer Funktion) von expr im Bereich x_range und y_range mit den Optionen options. expr ist ein Ausdruck oder der Name einer Funktion `f(x,y)` mit zwei Argumenten. Alle weiteren Argumente entsprechen denen der Funktion `plot3d`.

  Die Funktion steht nur für die Grafikformate `gnuplot` und `gnuplot_pipes` zur Verfügung. Das Paket `implicit_plot` enthält die Funktion `implicit_plot` mit der für alle Grafikformate Konturgraphen erstellt werden können.

  Beispiele:

      (%i1) contour_plot(x^2 + y^2, [x, -4, 4], [y, -4, 4])$

  Es kann jede Option genutzt werden, die von der Funktion `plot3d` akzeptiert wird. Standardmäßig zeichnet Gnuplot den Graphen mit 3 Isolinien. Die Anzahl der Isolinien kann mit der Gnuplot-Option `gnuplot_preamble` erhöht werden. In diesem Beispiel werden 12 Isolinien gezeichnet und die Legende ist entfernt.

      (%i1) contour_plot (u^3 + v^2, [u, -4, 4], [v, -4, 4],
                    [legend,false],
                    [gnuplot_preamble, "set cntrparam levels 12"])$

Funktion: get_plot_option (keyword, index)

  Gibt die Werte der Parameter der Option mit dem Namen keyword zurück. Die Optionen und ihre Parameter sind in der Variablen `plot_options` gespeichert. Hat index den Wert 1 wird der Name der Option keyword zurückgeben. Der Wert 2 für index gibt den Wert des ersten Parameters zurück, und so weiter.

  Siehe auch `plot_options`, `set_plot_option` und das Kapitel Grafikoptionen.

  Beispiel:

      (%i1) get_plot_option(color,1);
      (%o1)                         color
      (%i2) get_plot_option(color,2);
      (%o2)                         blue
      (%i3) get_plot_option(color,3);
      (%o3)                          red

Funktion: implicit_plot (expr, x_range, y_range)
Funktion: implicit_plot ([expr_1, …, expr_n], x_range, y_range)

  Zeichnet den Graphen eines oder mehrerer Ausdrücke, die implizit gegeben sind. expr ist der Ausdruck der gezeichnet werden soll, x_range ist der Wertebereich der x-Achse und y_range der Wertebereich der y-Achse. Die Funktion `implicit_plot` beachtet die Werte der Parameter der Grafikoptionen, die in der Systemvariablen `plot_options` enthalten sind. Grafikoptionen können auch als Argumente übergeben werden.

  Der Algorithmus von `implicit_plot` stellt Vorzeichenwechsel der Funktion in den Bereichen x_range und y_range fest. Für komplizierte Flächen kann der Algorithmus versagen.

  Die Funktion wird mit dem Kommando `load(implicit_plot)` geladen.

  Beispiel:

      (%i1) load(implicit_plot)$
      (%i2) implicit_plot (x^2 = y^3 - 3*y + 1, [x, -4, 4], [y, -4, 4])$

Funktion: make_transform ([var1, var2, var3], fx, fy, fz)

  Gibt eine Funktion zurück, die als Parameter für die Grafikoption `transform_xy` geeignet ist. Die zwei Argumente var1 und var2 repräsentieren die zwei unabhängigen Variablen der Funktion `plot3d`. Das dritte Argument var3 ist die Funktion, die von den zwei Variablen abhängt. Die drei Funktionen fx, fy und fz müssen von den drei Argumenten var1, var2 und var3 abhängen und die Argumente der Funktion `plot3d` in kartesische Koordinaten für die Ausgabe des Graphen transformieren.

  Die Transformationen `polar_to_xy` für die Transformation von Polarkoordinaten und `spherical_to_xyz` für die Transformation von Kugelkoordinaten in kartesische Koordinaten sind bereits definiert.

  Beispiel:

  Definition der Transformation von Zylinderkoordinaten nach kartesischen Koordinaten. Die Definition ist identisch mit der für `polar_to_xy`. Der Graph zeigt einen Kegel.

      (%i1) cylinder_to_xy:make_transform([r,phi,z],r*cos(phi),
                                                    r*sin(phi),z)$
      (%i2) plot3d(-r,[r,0,3],[phi,0,2*%pi],
                              [transform_xy, cylinder_to_xy])$

Systemfunktion: polar_to_xy

  Kann als Parameter der Grafikoption `transform_xy` der Funktion `plot3d` übergeben werden. Der Parameter `polar_to_xy` bewirkt, dass die zwei unabhängigen Variablen der Funktion `plot3d` von Polarkoordinaten in kartesische Koordinaten transformiert werden.

  Für ein Beispiele siehe `make_transform`.

Funktion: plot2d (plot, x_range, …, options, …)
Funktion: plot2d ([plot_1, …, plot_n], …, options, …)
Funktion: plot2d ([plot_1, …, plot_n], x_range, …, options, …)

  plot, plot_1, …, plot_n sind Ausdrücke, Namen von Funktionen oder Listen, mit denen diskrete Punkte oder Funktionen in einer parametrischen Darstellung angegeben werden. Diskrete Punkte können als `[discrete, [x1, ..., xn], [y1, ..., yn]]` oder als `[discrete, [[x1, y1], ..., [xn, ..., yn]]` angegeben werden. Eine parametrische Darstellung hat die Form `[parametric, x_expr, y_expr, t_range]`.

  Die Funktion `plot2d` zeichnet einen zweidimensionalen Graphen einer oder mehrerer Ausdrücke als Funktion einer Variablen oder eines Parameters. Mit der Grafikoption x_range wird der Name der unabhängigen Variablen und deren Bereich angegeben. Die Syntax der Grafikoption x_range ist: `[variable, min, max]`.

  Ein diskreter Graph wird durch eine Liste definiert, die mit dem Schlüsselwort disrecte beginnt. Es folgen ein oder zwei Listen mit den Werten. Werden zwei Listen übergeben, müssen diese dieselbe Länge haben. Die Daten der ersten Listen werden als die x-Koordinaten der Punkte und die der zweiten als die y-Koordinaten der Punkte interpretiert. Wird nur eine Liste übergeben, sind die Elemente Listen mit je zwei Elementen, die die x- und y-Koordinaten der Punkte repräsentieren.

  Ein parametrischer Graph wird durch eine Liste definiert, die mit dem Schlüsselwort parametric beginnt. Es folgen zwei Ausdrücke oder Namen von Funktionen und ein Parameter. Der Bereich für den Parameter muss eine Liste sein, die den Namen des Parameters, seinen größten und seinen kleinsten Wert enthält: `[parameter, min, max]`. Der Graph ist der Weg für die zwei Ausdrücke oder Namen von Funktionen, wenn der Parameter parameter von min nach max zunimmt.

  Als optionales Argument kann ein Wertebereich für die vertikale Koordinatenachse mit der Grafikoption `y` angegeben werden: `[y, min, max]`. Die vertikale Achse wird immer mit dem Schlüsselwort `y` bezeichnet. Wird kein Wertebereich `y` angegeben, wird dieser durch den größten und kleinsten `y`-Wert des zu zeichnenden Graphen festgelegt.

  Auch alle anderen Grafikoptionen werden als Listen angegeben, die mit einem Schlüsselwort beginnen, auf das die Parameter der Grafikoption folgen. Siehe `plot_options`.

  Werden mehrere Graphen gezeichnet, wird eine Legende hinzugefügt, die die einzelnen Graphen unterscheidet. Mit der Grafikoption legend können die Bezeichnungen für die Legende festgelegt werden. Wird diese Option nicht genutzt, generiert Maxima die Bezeichnungen der Legende aus den Ausdrücken oder Namen der Funktionen, die als Argument übergeben wurden.

  Siehe auch das Kapitel `Grafikoptionen`.

  Beispiele:

  Graph einer einfachen Funktion.

      (%i1) plot2d (sin(x), [x, -%pi, %pi])$

  Wächst die Funktion sehr schnell, kann es notwendig sein, die Werte auf der vertikalen Achse mit der Grafikoption `y` zu begrenzen.

      (%i1) plot2d (sec(x), [x, -2, 2], [y, -20, 20])$

  Die Ansicht eines Graphen kann sich für verschiedene Grafikprogramme unterscheiden. In Xmaxima bewirkt die Grafikoption `[box, false]`, das die Koordinatenachsen mit Pfeilen dargestellt werden.

      (%i1) plot2d ( x^2 - 1, [x, -3, 3], [box, false], grid2d,
            [yx_ratio, 1], [axes, solid], [xtics, -2, 4, 2],
            [ytics, 2, 2, 6], [label, ["x", 2.9, -0.3],
            ["x^2-1", 0.1, 8]], [title, "A parabola"])$

  Ein Graph mit einer logarithmischen Skala:

      (%i1) plot2d (exp(3*s), [s, -2, 2], logy)$

  Graphen von Funktionen, deren Namen als Argumente übergeben werden.

      (%i1) F(x) := x^2 $

      (%i2) :lisp (defun |$g| (x) (m* x x x))
      $g

      (%i2) H(x) := if x < 0 then x^4 - 1 else 1 - x^5 $
      (%i3) plot2d ([F, G, H], [u, -1, 1], [y, -1.5, 1.5])$

  Graph einer parametrisch definierten Schmetterlingskurve.

      (%i1) r: (exp(cos(t))-2*cos(4*t)-sin(t/12)^5)$
      (%i2) plot2d([parametric, r*sin(t), r*cos(t), [t, -8*%pi, 8*%pi]])$

  Graph der Funktion `abs(x)` und eines parametrischen Kreises. Das Seitenverhältnis der Grafik wurde mit den Grafikoptionen `same_xy`.

      (%i1) plot2d([[parametric, cos(t), sin(t), [t,0,2*%pi]], -abs(x)],
               [x, -sqrt(2), sqrt(2)], same_xy)$

  Graph für diskrete Punkte. Die Punkte sind in zwei separaten Listen jeweils für die x- und y-Koordinaten angegeben. Standardmäßig werden die Punkte mit einer Linie verbunden.

      (%i1) plot2d ([discrete, makelist(i*%pi, i, 1, 5),
                                  [0.6, 0.9, 0.2, 1.3, 1]])$

  In diesem Beispiel wird eine Tabelle mit drei Spalten in eine Datei `data.txt` gespeichert. Die Datei wird gelesen und die zweite und dritte Spalte werden gezeichnet.

      (%i1) with_stdout ("data.txt", for x:0 thru 10 do
                                   print (x, x^2, x^3))$

      (%i2) data: read_matrix ("data.txt")$

      (%i3) plot2d ([discrete, transpose(data)[2], transpose(data)[3]],
        [style,points], [point_type,diamond], [color,red])$

  Graph von experimentellen Datenpunkten zusammen mit einer theoretischen Funktion, die die Daten beschreibt.

      (%i1) xy: [[10, .6], [20, .9], [30, 1.1], [40, 1.3], [50, 1.4]]$

      (%i2) plot2d([[discrete, xy], 2*%pi*sqrt(l/980)], [l,0,50],
              [style, points, lines], [color, red, blue],
              [point_type, asterisk],
              [legend, "experiment", "theory"],
              [xlabel, "pendulum's length (cm)"],
              [ylabel, "period (s)"])$

Funktion: plot3d (expr, x_range, y_range, …, options, …)
Funktion: plot3d ([expr_1, …, expr_n], x_range, y_range, …, options, …)

  Zeichnet einen Graph mit einer oder mehreren Flächen, die als eine Funktion von zwei Variablen oder in parametrischer Form definiert sind.

  Die zu zeichnenden Funktionen werden als Ausdrücke oder mit ihrem Namen als Argumente übergeben. Mit der Maus kann der Graph rotiert werden, um die Fläche aus verschiedenen Blickwinkeln zu betrachten.

  Siehe auch das Kapitel Grafikoptionen.

  Beispiele:

  Graph einer einfachen Funktion.

      (%i1) plot3d (u^2 - v^2, [u, -2, 2], [v, -3, 3], [grid, 100, 100],
              [mesh_lines_color,false])$

  Mit der Grafikoption `z` wird der Wertebereich der z-Achse begrenzt. Dieses Beispiel zeigt den Graph ohne Färbung der Fläche.

      (%i1) plot3d ( log ( x^2*y^2 ), [x, -2, 2], [y, -2, 2], [z, -8, 4],
                     [palette, false], [color, magenta, blue])$

  Unendlich große Werte der z-Koordinate können auch durch Wahl eines Gitters vermieden werden, das nicht mit einer der Asymptoten zusammenfällt. Das Beispiel zeigt zudem die Nutzung einer Palette.

      (%i1) plot3d (log (x^2*y^2), [x, -2, 2], [y, -2, 2],[grid, 29, 29],
             [palette, [gradient, red, orange, yellow, green]],
             color_bar, [xtics, 1], [ytics, 1], [ztics, 4],
             [color_bar_tics, 4])$

  Graph mit zwei Flächen mit verschiedenen Wertebereichen.

      (%i1) plot3d ([[-3*x - y, [x, -2, 2], [y, -2, 2]],
         4*sin(3*(x^2 + y^2))/(x^2 + y^2), [x, -3, 3], [y, -3, 3]],
         [x, -4, 4], [y, -4, 4])$

  Graph der kleinschen Flasche, die parametrisch definiert ist.

      (%i1) expr_1: 5*cos(x)*(cos(x/2)*cos(y)+sin(x/2)*sin(2*y)+3)-10$
      (%i2) expr_2: -5*sin(x)*(cos(x/2)*cos(y)+sin(x/2)*sin(2*y)+3)$
      (%i3) expr_3: 5*(-sin(x/2)*cos(y)+cos(x/2)*sin(2*y))$

      (%i4) plot3d ([expr_1, expr_2, expr_3], [x, -%pi, %pi],
              [y, -%pi, %pi], [grid, 50, 50])$

  Graph einer Kugelfunktion, die vordefinierte Koordinatentransformation `spherical_to_xyz` wird verwendet, um von Kugelkoordinaten in ein kartesisches Koordinatensystem zu transformieren.

      (%i1) plot3d (sin(2*theta)*cos(phi), [theta, 0, %pi],
              [phi, 0, 2*%pi],
              [transform_xy, spherical_to_xyz], [grid,30,60],
         [legend,false])$

  Gebrauch der vordefinierten Funktion `polar_to_xy`, um von zylindrischen Koordinaten in ein kartesisches Koordinatensystem zu transformieren. Siehe auch `polar_to_xy`. Dieses Beispiel zeigt auch wie der Rahmen und die Legende entfernt werden können.

      (%i1) plot3d (r^.33*cos(th/3), [r,0,1], [th,0,6*%pi], [box, false],
         [grid, 12, 80], [transform_xy, polar_to_xy], [legend, false])$

  Graph einer Kugel, wobei die Koordinatentransformation von Kugelkoordinaten in ein kartesisches Koordinatensystem genutzt wird.

      (%i1) plot3d ( 5, [theta, 0, %pi], [phi, 0, 2*%pi], same_xyz,
        [transform_xy, spherical_to_xyz], [mesh_lines_color,blue],
        [palette,[gradient,"#1b1b4e", "#8c8cf8"]], [legend, false])$

  Definition einer Funktion mit zwei Variablen als eine Matrix. Der Quote-Operator `'` in der Definition der Funktion verhindert, das `plot3d` fehlschlägt, wenn die Argumente keine ganze Zahlen sind.

      (%i1) M: matrix([1,2,3,4], [1,2,3,2], [1,2,3,4], [1,2,3,3])$
      (%i2) f(x, y) := float('M [round(x), round(y)])$

      (%i3) plot3d (f(x,y), [x,1,4],[y,1,4],[grid,3,3],[legend,false])$

  Wird die Höhenangabe `elevation` auf Null gesetzt, kann die Fläche als eine Karte betrachtet werden. Jede Farbe repräsentiert einen anderen Wert der Fläche.

      (%i1) plot3d (cos (-x^2 + y^3/4), [x,-4,4], [y,-4,4], [zlabel,""],
             [mesh_lines_color,false], [elevation,0], [azimuth,0],
             color_bar, [grid,80,80], [ztics,false], [color_bar_tics,1])$

Systemvariable: plot_options

  Die Elemente dieser Liste definieren die Standardwerte für die Ausgabe von Graphen. Ist einer der Werte ein Argument der Funktionen `plot2d` oder `plot3d`, wird der Standardwert überschrieben. Die Standardwerte können mit der Funktion `set_plot_option` gesetzt werden. Einige Grafikoptionen sind nicht in der Liste `plot_options` enthalten.

  Jedes Element der Liste `plot_options` ist eine Liste mit zwei oder mehr Einträgen. Der erste Eintrag ist der Name der Grafikoption. Die weiteren Einträge sind die Parameter der Option. In einigen Fällen kann der Parameter einer Option wiederum eine Liste sein.

  Siehe auch `set_plot_option`, `get_plot_option` und das Kapitel Grafikoptionen.

Funktion: set_plot_option (option)

  Akzeptiert die meisten der Optionen, die im Kapitel Grafikoptionen aufgelistet sind und speichert diese in der globalen Variable `plot_options`. `set_plot_options` wertet die Argumente aus und gibt die vollständige Liste `plot_optons` zurück.

  Siehe auch `plot_options`, `get_plot_option` und das Kapitel Grafikoptionen.

  Beispiele:

  Setze einen neue Werte für die Grafikoption `grid`.

      (%i1) set_plot_option ([grid, 30, 40]);

      (%o1) [[t, - 3, 3], [grid, 30, 40], [transform_xy, false],
      [run_viewer, true], [axes, true], [plot_format, gnuplot_pipes],
      [color, blue, red, green, magenta, black, cyan],
      [point_type, bullet, circle, plus, times, asterisk, box, square,
      triangle, delta, wedge, nabla, diamond, lozenge],
      [palette, [hue, 0.25, 0.7, 0.8, 0.5],
      [hue, 0.65, 0.8, 0.9, 0.55], [hue, 0.55, 0.8, 0.9, 0.4],
      [hue, 0.95, 0.7, 0.8, 0.5]], [gnuplot_term, default],
      [gnuplot_out_file, false], [nticks, 29], [adapt_depth, 5],
      [gnuplot_preamble, ], [gnuplot_default_term_command,
      set term pop], [gnuplot_dumb_term_command, set term dumb 79 22],
      [gnuplot_ps_term_command, set size 1.5, 1.5;set term postscript \
      eps enhanced color solid 24], [plot_realpart, false]]

Systemfunktion: spherical_to_xyz

  Kann als Parameter für die Option `transform_xy` der Funktion `plot3d` übergeben werden. Der Parameter `spherical_to_xyz` bewirkt, dass die zwei unabhängigen Variablen und die Funktion beim Aufruf von `plot3d` von Kugelkoordinaten in kartesische Koordinaten umgerechnet werden.

Next: Grafikoptionen, Previous: Grafikformate, Up: Grafische Darstellung [Contents][Index]