Nächste: , Vorige: , Nach oben: Grafische Darstellung   [Inhalt][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])$
./figures/plotting1

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"])$
./figures/plotting2
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])$
./figures/plotting3
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])$
./figures/plotting6

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])$
./figures/plotting7

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"])$
./figures/plotting8

Ein Graph mit einer logarithmischen Skala:

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

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])$
./figures/plotting10

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]])$
./figures/plotting11

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)$
./figures/plotting12

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]])$
./figures/plotting14

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])$
./figures/plotting15

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)"])$
./figures/plotting16
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])$
./figures/plotting17

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])$
./figures/plotting18

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])$
./figures/plotting19

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])$
./figures/plotting20

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])$
./figures/plotting21

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])$
./figures/plotting22

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])$
./figures/plotting23

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])$
./figures/plotting24

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])$
./figures/plotting25

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])$
./figures/plotting26
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.


Nächste: , Vorige: , Nach oben: Grafische Darstellung   [Inhalt][Index]