Siguiente: Opciones gráficas, Anterior: Formatos gráficos, Subir: Gráficos [Índice general][Índice]
Dibuja las curvas de nivel de expr
en el rectángulo x_range por y_range.
Cualesquiera otros argumentos adicionales se tratan como en plot3d
.
contour_plot
sólo trabaja con los métodos gnuplot
o gnuplot_pipes
.
Véase también implicit_plot
.
Ejemplos:
(%i1) contour_plot (x^2 + y^2, [x, -4, 4], [y, -4, 4])$
Se pueden añadir cualesquiera opciones que acepte plot3d
;
por ejemplo, la opción legend
con un valor false
,
para eliminar la leyenda. Gnuplot muestra por defecto tres
líneas de contorno, pero para aumentar el
número de niveles es necesario añadir algún código nativo
de Gnuplot:
(%i1) contour_plot (u^3 + v^2, [u, -4, 4], [v, -4, 4], [legend,false], [gnuplot_preamble, "set cntrparam levels 12"])$
Devuelve el valor actual de la opción keyword almacenada
en la variable global plot_options
. Si index toma
el valor 1, devuelve el propio valor de keyword; si vale 2
le añade el primer parámetro, y así sucesivamente.
Véanse también plot_options
, set_plot_option
y la
sección Opciones gráficas.
Devuelve una función que se puede utilizar con la opción transform_xy
de plot3d
. Las tres variables ficticias var1, var2 y var3
representan las tres variables de la función plot3d
, las dos primeras
independientes y la tercera dependiente. Las tres funciones fx, fy y
fz deben depender solo de las tres variables anteriores y retornar las
correspondientes x, y, z que se deben dibujar. Hay dos transformaciones
predefinidas: polar_to_xy
y spherical_to_xyz
.
Véanse polar_to_xy
y spherical_to_xyz
.
Cuando a la opción transform_xy
de plot3d
se le pasa el valor
polar_to_xy
, se interpretarán las dos primeras variables independientes como
polares, transformándolas luego a coordenadas cartesianas.
Donde plot, plot_1, …, plot_n pueden ser
expresiones, nombres de funciones o una
lista de cualquiera de las siguientes formas:
[discrete, [x1, ..., xn],
[y1, ..., yn]]
, [discrete, [[x1, y1],
..., [xn, ..., yn]]
o [parametric, x_expr,
y_expr, t_range]
.
Muestra un gráfico de una o más expresiones como función de una variable.
La función plot2d
representa uno o más gráficos en dos
dimensiones. Las expresiones o nombres de funciones que se utilicen para
definir curvas deben depender todas ellas de una única variable var,
siendo obligatorio utilizar x_range para nombrar la variable y darle sus
valores mínimo y máximo usando la siguiente sintaxis:
[variable, min, max]
.
Un gráfico también se puede definir de forma discreta o paramétrica. La forma discreta se utiliza para dibujar un conjunto de puntos de coordenadas dadas. Un gráfico discreto se define como una lista que empiezan con la palabra clave discrete seguida de una o dos listas de valores numéricos. Cuando haya dos listas, ambas deben ser de igual longitud, la primera se interpreta como la de abscisas y la segunda de ordenadas. Cuando haya una lista siguiendo la clave discrete, cada uno de sus elementos debe ser a su vez una lista de solo dos valores, correspondientes a las coordenadas x e y.
Un gráfico paramétrico se define como una lista que empieza con la
palabra clave parametric, seguida de dos expresiones o nombres de
funciones y un rango paramétrico. El rango paramétrico debe ser una
lista formada con el nombre del parámetro seguido de sus valores
mínimo y máximo:
[param, min, max]
. El gráfico se formará con
los puntos cuyas coordenadas devuelvan las dos expresiones o funciones,
según param aumente desde min hasta max.
La especificación del rango para el eje vertical es opcional y
toma la forma [y, min, max]
(y se utiliza
siempre para el eje vertical). En caso de utilizar esta opción,
el gráfico mostrará exactamente ese rango vertical,
independientemente de los valores alcanzados por los elementos
gráficos. Si no se especifica el rango vertical, se ajustará
a los valores extremos alcanzados por las ordenadas de los puntos
que aparezcan en el gráfico.
Cualesquiera otras opciones deben ser listas, comenzando con el
nombre de la opción seguido de uno o más valores. Véase
plot_options
.
Si hay varias expresiones para ser dibujadas, se mostrará una leyenda que identifique a cada una de ellas. Las etiquetas a utilizar pueden especificarse con la opción legend. Si no se utiliza esta opción, Maxima creará etiquetas a partir de las expresiones o nombres de funciones.
Ejemplos:
Dibujando la función sinusoidal:
(%i1) plot2d (sin(x), [x, -%pi, %pi])$
Si la función crece rápidamente puede ser necesario limitar los valores del eje vertical:
(%i1) plot2d (sec(x), [x, -2, 2], [y, -20, 20])$ plot2d: some values were clipped.
El aspecto del gráfico puede ser diferente dependiendo del programa gráfico utilizado. Por ejemplo, cuando se desactiva el marco, Xmaxima dibuja los ejes como flechas:
(%i1) plot2d ( x^2-1, [x, -3, 3], [y, -2, 10], [box, false], [plot_format, xmaxima])$
Gráfico con escala logarítmica:
(%i1) plot2d (exp(3*s), [s, -2, 2], [logy])$
Dibujando funciones especificadas por su nombre:
(%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])$
Ejemplo de función paramétrica. Curva de la mariposa:
(%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], [nticks, 2000]])$
Una circunferencia de dos vueltas y solo siete puntos:
(%i1) plot2d ([parametric, cos(t), sin(t), [t, -2*%pi, 2*%pi], [nticks, 8]])$
Dibujo de una función junto con la representación paramétrica de una circunferencia. El tamaño del gráfico se ha ajustado con las opciones x e y para que la circunferencia no se vea como una elipse. Estos valores son aceptables para el terminal Postscript utilizado para producir este gráfico, y puede seer necesario adaptar los valores para otros terminales:
(%i1) plot2d([[parametric, cos(t), sin(t), [t,0,2*%pi], [nticks, 80]], abs(x)], [x,-2,2], [y, -1.5, 1.5])$ plot2d: some values were clipped.
Puntos discretos definiendo separadamente las coordenadas x e y:
(%i1) plot2d ([discrete, [10, 20, 30, 40, 50], [.6, .9, 1.1, 1.3, 1.4]])$
Los mismos puntos del ejemplo anterior, pero definiendo una a una las coordenadas y sin segmentos que unan los puntos:
(%i1) plot2d([discrete, [[10, .6], [20, .9], [30, 1.1], [40, 1.3], [50, 1.4]]], [style, points])$
En este ejemplo, se guarda una tabla de tres columnas en el
archivo data.txt
, que luego será leído
para representar las dos últimas columnas:
(%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])$
Un gráfico de datos empíricos junto con su modelo teórico:
(%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)"])$
Dibuja una o más superficies definidas como funciones de dos variables o en forma paramétrica
Las funciones a dibujar se pueden especificar como expresiones o nombres de funciones. Puede utilizarse el ratón para hacer girar el gráfico y observarlo desde distintos ángulos.
Ejemplos:
Representación de una función:
(%i1) plot3d (2^(-u^2 + v^2), [u, -3, 3], [v, -2, 2])$
Uso de la opción z para acotar una función que tiende a infinito (en este caso, la función tiende a menos infinito en los ejes x e y):
(%i1) plot3d ( log ( x^2*y^2 ), [x, -2, 2], [y, -2, 2], [z, -8, 4], [palette, false], [color, magenta, blue])$
Los valores infinitos de z se pueden obviar eligiendo una retícula que no coincida con las asíntotas; este ejemplo también muestra cómo seleccionar las paletas predefinidas, en este caso la número 4:
(%i1) plot3d (log (x^2*y^2), [x, -2, 2], [y, -2, 2], [grid, 29, 29], [palette, get_plot_option(palette,5)])$
Dos superficies en el mismo gráfico, compartiendo el mismo dominio; en Gnuplot, ambas superfifies comparten la misma paleta:
(%i1) plot3d ([2^(-x^2 + y^2), 4*sin(3*(x^2+y^2))/(x^2+y^2), [x, -3, 3], [y, -2, 2]])$
Las mismas superficies, pero con diferentes dominios; en Xmaxima
cada superficies usa una paleta diferente, elegida de la lista
definida por la opción palette
:
(%i1) plot3d ([[2^(-x^2 + y^2),[x,-2,2],[y,-2,2]], 4*sin(3*(x^2+y^2))/(x^2+y^2), [x, -3, 3], [y, -2, 2]], [plot_format,xmaxima])$
La botella de Klein, definida paramétricamente:
(%i1) expr_1:5*cos(x)*(cos(x/2)*cos(y)+sin(x/2)*sin(2*y)+3.0)-10.0$ (%i2) expr_2:-5*sin(x)*(cos(x/2)*cos(y) + sin(x/2)*sin(2*y) + 3.0)$ (%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, 40, 40])$
Gráfico de un armónico esférico, utilizando las transformaciones
predefinidas spherical_to_xyz
:
(%i1) plot3d (sin(2*theta)*cos(phi), [theta, 0, %pi], [phi, 0, 2*%pi], [transform_xy, spherical_to_xyz], [grid,30,60])$
Uso de la transformación predefinida polar_to_xy
. Este
ejemplo también muestra cómo eliminar el marco y la leyenda:
(%i1) plot3d (r^.33*cos(th/3), [r, 0, 1], [th, 0, 6*%pi], [grid, 12, 80], [transform_xy, polar_to_xy], [box, false], [legend,false])$
Dibujo de una esfera utilizando la transformación esférica. En Xmaxima, los tres ejes utilizan escalas proporcionales, manteniendo la forma simétrica de la esfera. Se utiliza una paleta con color degradado:
(%i1) plot3d ( 5, [theta, 0, %pi], [phi, 0, 2*%pi], [plot_format,xmaxima], [transform_xy, spherical_to_xyz], [palette,[value,0.65,0.7,0.1,0.9]])$
Definición de una función con dos variables utilizando una matriz.
Nótese la comilla simple en la definición de la función para
prevenir que plot3d
falle al detectar que la matriz necesita
índices enteros:
(%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, 4, 4])$ apply: subscript must be an integer; found: round(x)
Asignando a la opción elevation
el valor cero, una superficie
puede verse como una aplicación en la que cada color representa un nivel
diferente. La opción colorbox
se utiliza para mostrar la correspondencia
entre colores y niveles; las líneas de la retícula
se desactivan para facilitar la visualización de los colores:
(%i1) plot3d (cos (-x^2 + y^3/4), [x, -4, 4], [y, -4, 4], [mesh_lines_color, false], [elevation, 0], [azimuth, 0], [colorbox, true], [grid, 150, 150])$
Véase también la sección Opciones gráficas.
Los elementos de esta lista establecen las opciones por defecto para los gráficos.
Si una opción está presente en una llamada a plot2d
o a plot3d
,
este valor adquiere prevalencia sobre las opciones por defecto.
En otro caso se utilizará el valor que tenga en plot_options
.
Las opciones por defecto se asignan mediante la función set_plot_option
.
Cada elemento de plot_options
es una lista de dos o más elementos,
el primero de los cuales es el nombre de la opción, siendo los siguientes
los valores que toma. En algunos casos el valor asignado es a su vez una lista,
que puede contener varios elementos.
Véanse también set_plot_option
, get_option
y la sección
Opciones gráficas.
Acepta la mayor parte de opciones listadas en la sección Opciones gráficas
y las almacena en la variable global plot_options
.
La función set_plot_option
evalúa su argumento y devuelve
la lista completa plot_options
tal como queda después de la actualización.
Véanse también plot_options
, get_option
y la sección
Opciones gráficas.
Ejemplos:
Modificación de los valores para 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]]
Cuando a la opción transform_xy
de plot3d
se le pasa el valor
spherical_to_xyz
, se interpretarán las variables independientes como
esféricas, transformándolas luego a coordenadas cartesianas.
Siguiente: Opciones gráficas, Anterior: Formatos gráficos, Subir: Gráficos [Índice general][Índice]