Fix bug #1848: taytorat leaks internal gensyms from multivar expansions
[maxima.git] / doc / info / es / Plotting.es.texi
blobb83293c30d6290cfb68ea302da094e7372aeaa71
1 @c English version 2011-10-03
2 @menu
3 * Introducción a los gráficos::
4 * Formatos gráficos::
5 * Funciones y variables para gráficos::
6 * Opciones gráficas::
7 * Opciones para Gnuplot::
8 * Funciones para el formato Gnuplot_pipes::
9 @end menu
11 @node Introducción a los gráficos, Formatos gráficos, Gráficos, Gráficos
12 @section Introducción a los gráficos
14 Maxima utiliza un programa gráfico externo para hacer figuras (véase la
15 sección @mref{Formatos gráficos}). Las funciones gráficas calculan un
16 conjunto de puntos y se los pasa al programa gráfico, junto con una
17 serie de instrucciones. Estas instrucciones pueden pasarse al programa
18 gráfico, bien a través de una tubería (@i{pipe}, en inglés), bien
19 llamando al programa, junto con el nombre del fichero en el que se
20 almacenan los datos. Al fichero de datos se le da el nombre
21 @code{maxout.interface}, donde @code{interface} es el nombre del intefaz
22 a ser utilizado (@code{gnuplot}, @code{xmaxima}, @code{mgnuplot} o
23 @code{gnuplot_pipes}).
25 El fichero @code{maxout.interface}, si se utiliza, se almacena en la
26 carpeta especificada por la variable @var{maxima_tempdir}, cuyo valor se
27 puede cambiar por una cadena de texto que represente la ruta a una
28 carpeta válida, en la que Maxima pueda guardar nuevos ficheros.
30 Una vez creado el gráfico, el fichero @code{maxout.interface} puede
31 ejecutarse nuevamente con el programa externo adecuado. Si una
32 instrucción gráfica de Maxima falla, este fichero puede ser
33 inspeccionado a fin de encontrar el origen del problema.
35 Junto con las funciones gráficas descritas en esta sección, el paquete
36 @code{draw} añade otras funcionalidades. Nótese que algunas opciones
37 gráficas se llaman igual en ambos contextos gráficos, pero con diferente
38 sintaxis; para acceder a la información de estas opciones en el ámbito
39 de @code{draw}, es necesario teclear @code{?? opc}, donde @code{opc} es
40 el nombre de la opción.
42 @node Formatos gráficos, Funciones y variables para gráficos, Introducción a los gráficos, Gráficos
43 @section Formatos gráficos
45 Actualmente, Maxima utiliza dos programas gráficos externos: Gnuplot y
46 Xmaxima.  Existen varios formatos diferentes para estos programas, que
47 pueden seleccionarse con la opción @code{plot_format} (véase la sección
48 Opciones gráficas).
50 Los formatos gráficos se listan a continuación:
52 @itemize @bullet
53 @item
54 @strong{gnuplot} (formato por defecto para Windows)
56 Se utiliza para ejecutar el programa externo Gnuplot, el cual debe
57 estar instalado en el sistema. Las instrucciones gráficas y los
58 datos se almacenan en el fichero @code{maxout.gnuplot}.
60 @item
61 @strong{gnuplot_pipes} (formato por defecto para plataformas distintas
62 de Windows)
64 Este formato no está disponible en plataformas Windows. Es similar al
65 formato @code{gnuplot}, excepto por el hecho de que las instrucciones son
66 enviadas a Gnuplot por una tubería, mientras que los datos
67 se almacenan en el fichero @code{maxout.gnuplot_pipes}. Mediante esta 
68 técnica, un único proceso de Gnuplot se mantiene activo y sucesivos
69 gráficos son enviados al mismo proceso, a menos que la tubería
70 a Gnuplot se cierre con la función @code{gnuplot_close()}. Cuando se
71 utiliza este formato, se puede utilizar la función @code{gnuplot_replot}
72 para modificar un gráfico que ya había sido representado
73 previamente en la pantalla (véase @code{gnuplot_replot}).
75 Este formato debería ser utilizado únicamente cuando
76 se representen los gráficos por pantalla; para gráficos almacenados
77 en ficheros, mejor utilizar el formato @code{gnuplot}.
79 @item
80 @strong{mgnuplot}
82 Mgnuplot es una interfaz para Gnuplot basada en Tk. Se incluye en la 
83 distribución de Maxima. Mgnuplot ofrece una interface gráfica de 
84 usuario rudimentaria para gnuplot, pero tiene algunas mejoras 
85 respecto de la interface propia de gnuplot. Mgnuplot requiere de una 
86 instalación externa de Gnuplot y de Tcl/Tk.
88 @item
89 @strong{xmaxima}
91 Xmaxima es un interfaz gráfico Tcl/Tk de Maxima, que también se
92 puede utilizar para representar gráficos cuando Maxima se ejecuta
93 desde la consola o desde otros interfaces. Para utilizar este formato,
94 debe estar instalado junto con Maxima. Si Maxima se ejecuta desde el
95 propio Xmaxima, las instrucciones gráficas y los datos se envían
96 por el mismo canal de comunicación que se establece entre Maxima y
97 Xmaxima (un  @i{socket}). Cuando Maxima se ejecuta desde una consola 
98 o desde otro interfaz, las instrucciones gráficas y los datos
99 se almacenan en un fichero de nombre @code{maxout.xmaxima}, que le es
100 pasado a Xmaxima como argumento
102 En versiones anteriores, este formato se llamaba @code{openmath}, cuyo
103 nombre se sigue aceptando como sinónimo de @code{xmaxima}.
104 @end itemize
107 @node Funciones y variables para gráficos, Opciones gráficas, Formatos gráficos, Gráficos
108 @section Funciones y variables para gráficos
110 @deffn {Función} contour_plot (@var{expr}, @var{x_range}, @var{y_range}, @var{options}, @dots{})
112 Dibuja las curvas de nivel de @var{expr}
113 en el rectángulo @var{x_range} por @var{y_range}.
114 Cualesquiera otros argumentos adicionales se tratan como en @code{plot3d}.
116 @code{contour_plot} sólo trabaja con los métodos @code{gnuplot} o @code{gnuplot_pipes}.
118 Véase también @code{implicit_plot}.
120 Ejemplos:
122 @c ===beg===
123 @c contour_plot (x^2 + y^2, [x, -4, 4], [y, -4, 4])$
124 @c ===end===
125 @example
126 (%i1) contour_plot (x^2 + y^2, [x, -4, 4], [y, -4, 4])$
127 @end example
129 @ifnotinfo
130 @image{@value{figuresfolder}/plotting1,8cm}
131 @end ifnotinfo
133 Se pueden añadir cualesquiera opciones que acepte @code{plot3d};
134 por ejemplo, la opción @code{legend} con un valor @code{false},
135 para eliminar la leyenda. Gnuplot muestra por defecto tres 
136 líneas de contorno, pero para aumentar el
137 número de niveles es necesario añadir algún código nativo
138 de Gnuplot:
140 @c ===beg===
141 @c contour_plot (u^3 + v^2, [u, -4, 4], [v, -4, 4], 
142 @c               [legend,false],
143 @c               [gnuplot_preamble, "set cntrparam levels 12"])$
144 @c ===end===
145 @example
146 @group
147 (%i1) contour_plot (u^3 + v^2, [u, -4, 4], [v, -4, 4],
148               [legend,false],
149               [gnuplot_preamble, "set cntrparam levels 12"])$
150 @end group
151 @end example
153 @ifnotinfo
154 @image{@value{figuresfolder}/plotting2,8cm}
155 @end ifnotinfo
157 @end deffn
161 @deffn {Función} get_plot_option (@var{keyword}, @var{index})
163 Devuelve el valor actual de la opción @var{keyword} almacenada
164 en la variable global @code{plot_options}. Si @var{index} toma
165 el valor 1, devuelve el propio valor de @var{keyword}; si vale 2
166 le añade el primer parámetro, y así sucesivamente.
168 Véanse también @code{plot_options}, @code{set_plot_option} y la
169 sección Opciones gráficas.
171 @end deffn
175 @deffn {Función} make_transform ([@var{var1}, @var{var2}, @var{var3}], @var{fx}, @var{fy}, @var{fz})
177 Devuelve una función que se puede utilizar con la opción @code{transform_xy}
178 de @code{plot3d}. Las tres variables ficticias @var{var1}, @var{var2} y @var{var3} 
179 representan las tres variables de la función @code{plot3d}, las dos primeras
180 independientes y la tercera dependiente. Las tres funciones @var{fx}, @var{fy} y
181 @var{fz} deben depender solo de las tres variables anteriores y retornar las
182 correspondientes x, y, z que se deben dibujar. Hay dos transformaciones
183 predefinidas: @code{polar_to_xy} y @code{spherical_to_xyz}.
185 Véanse @code{polar_to_xy} y @code{spherical_to_xyz}.
187 @end deffn
191 @deffn {Símbolo del sistema} polar_to_xy
193 Cuando a la opción @code{transform_xy} de @code{plot3d} se le pasa el valor 
194 @code{polar_to_xy}, se interpretarán las dos primeras variables independientes como 
195 polares, transformándolas luego a coordenadas cartesianas.
197 @end deffn
199 @anchor{plot2d}
200 @deffn  {Función} plot2d (@var{plot}, @var{x_range}, @dots{}, @var{options}, @dots{})
201 @deffnx {Función} plot2d ([@var{plot_1}, @dots{}, @var{plot_n}], @dots{}, @var{options}, @dots{})
202 @deffnx {Función} plot2d ([@var{plot_1}, @dots{}, @var{plot_n}], @var{x_range}, @dots{}, @var{options}, @dots{})
204 Donde @var{plot}, @var{plot_1}, @dots{}, @var{plot_n} pueden ser
205 expresiones, nombres de funciones o una
206 lista de cualquiera de las siguientes formas: 
207 @code{[discrete, [@var{x1}, ..., @var{xn}],
208 [@var{y1}, ..., @var{yn}]]}, @code{[discrete, [[@var{x1}, @var{y1}],
209 ..., [@var{xn}, ..., @var{yn}]]} o @code{[parametric, @var{x_expr},
210 @var{y_expr}, @var{t_range}]}.
212 Muestra un gráfico de una o más expresiones como función de una variable.
214 La función @code{plot2d} representa uno o más gráficos en dos
215 dimensiones. Las expresiones o nombres de funciones que se utilicen para
216 definir curvas deben depender todas ellas de una única variable @var{var},
217 siendo obligatorio utilizar @var{x_range} para nombrar la variable y darle sus
218 valores mínimo y máximo usando la siguiente sintaxis: 
219 @code{[@var{variable}, @var{min}, @var{max}]}.
221 Un gráfico también se puede definir de forma discreta o paramétrica.
222 La forma discreta se utiliza para dibujar un conjunto de puntos de
223 coordenadas dadas. Un gráfico discreto se define como una lista
224 que empiezan con la palabra clave @var{discrete} seguida de una o dos
225 listas de valores numéricos. Cuando haya dos listas, ambas deben ser
226 de igual longitud, la primera se interpreta como la de abscisas y la
227 segunda de ordenadas. Cuando haya una lista siguiendo la clave @var{discrete},
228 cada uno de sus elementos debe ser a su vez una lista de solo dos valores,
229 correspondientes a las coordenadas x e y.
231 Un gráfico paramétrico se define como una lista que empieza con la
232 palabra clave @var{parametric}, seguida de dos expresiones o nombres de
233 funciones y un rango paramétrico. El rango paramétrico debe ser una
234 lista formada con el nombre del parámetro seguido de sus valores
235 mínimo y máximo:
236 @code{[@var{param}, @var{min}, @var{max}]}. El gráfico se formará con
237 los puntos cuyas coordenadas devuelvan las dos expresiones o funciones, 
238 según @var{param} aumente desde @var{min} hasta @var{max}.
240 La especificación del rango para el eje vertical es opcional y
241 toma la forma @code{[y, @var{min}, @var{max}]} (@var{y} se utiliza
242 siempre para el eje vertical). En caso de utilizar esta opción,
243 el gráfico mostrará exactamente ese rango vertical, 
244 independientemente de los valores alcanzados por los elementos
245 gráficos. Si no se especifica el rango vertical, se ajustará
246 a los valores extremos alcanzados por las ordenadas de los puntos
247 que aparezcan en el gráfico.
249 Cualesquiera otras opciones deben ser listas, comenzando con el
250 nombre de la opción seguido de uno o más valores. Véase
251 @code{plot_options}.
253 Si hay varias expresiones para ser dibujadas, se mostrará una leyenda
254 que identifique a cada una de ellas. Las etiquetas a utilizar pueden
255 especificarse con la opción @var{legend}. Si no se utiliza esta opción,
256 Maxima creará etiquetas a partir de las expresiones o nombres de funciones.
258 Ejemplos:
260 Dibujando la función sinusoidal:
262 @c ===beg===
263 @c plot2d (sin(x), [x, -%pi, %pi])$
264 @c ===end===
265 @example
266 (%i1) plot2d (sin(x), [x, -%pi, %pi])$
267 @end example
269 @ifnotinfo
270 @image{@value{figuresfolder}/plotting2,8cm}
271 @end ifnotinfo
273 Si la función crece rápidamente puede ser necesario limitar los
274 valores del eje vertical:
276 @c ===beg===
277 @c plot2d (sec(x), [x, -2, 2], [y, -20, 20])$
278 @c ===end===
279 @example
280 @group
281 (%i1) plot2d (sec(x), [x, -2, 2], [y, -20, 20])$
282 plot2d: some values were clipped.
283 @end group
284 @end example
286 @ifnotinfo
287 @image{@value{figuresfolder}/plotting3,8cm}
288 @end ifnotinfo
290 El aspecto del gráfico puede ser diferente dependiendo del programa
291 gráfico utilizado. Por ejemplo, cuando se desactiva el marco,
292 Xmaxima dibuja los ejes como flechas:
294 @c ===beg===
295 @c plot2d ( x^2-1, [x, -3, 3], [y, -2, 10], 
296 @c                 [box, false], [plot_format, xmaxima])$
297 @c ===end===
298 @example
299 @group
300 (%i1) plot2d ( x^2-1, [x, -3, 3], [y, -2, 10],
301                       [box, false], [plot_format, xmaxima])$
302 @end group
303 @end example
305 @ifnotinfo
306 @image{@value{figuresfolder}/plotting1,8cm}
307 @end ifnotinfo
309 Gráfico con escala logarítmica:
311 @c ===beg===
312 @c plot2d (exp(3*s), [s, -2, 2], [logy])$
313 @c ===end===
314 @example
315 (%i1) plot2d (exp(3*s), [s, -2, 2], [logy])$
316 @end example
318 @ifnotinfo
319 @image{@value{figuresfolder}/plotting4,8cm}
320 @end ifnotinfo
322 Dibujando funciones especificadas por su nombre:
324 @c ===beg===
325 @c F(x) := x^2 $
326 @c :lisp (defun |$g| (x) (m* x x x))
327 @c H(x) := if x < 0 then x^4 - 1 else 1 - x^5 $
328 @c plot2d ([F, G, H], [u, -1, 1], [y, -1.5, 1.5])$
329 @c ===end===
330 @example
331 (%i1) F(x) := x^2 $
332 @group
333 (%i2) :lisp (defun |$g| (x) (m* x x x))
335 @end group
336 (%i2) H(x) := if x < 0 then x^4 - 1 else 1 - x^5 $
337 (%i3) plot2d ([F, G, H], [u, -1, 1], [y, -1.5, 1.5])$
338 @end example
340 @ifnotinfo
341 @image{@value{figuresfolder}/plotting5,8cm}
342 @end ifnotinfo
344 Ejemplo de función paramétrica. Curva de la mariposa:
346 @c ===beg===
347 @c r: (exp(cos(t))-2*cos(4*t)-sin(t/12)^5)$
348 @c plot2d([parametric, r*sin(t), r*cos(t), 
349 @c        [t, -8*%pi, 8*%pi], [nticks, 2000]])$
350 @c ===end===
351 @example
352 (%i1) r: (exp(cos(t))-2*cos(4*t)-sin(t/12)^5)$
353 (%i2) plot2d([parametric, r*sin(t), r*cos(t), 
354              [t, -8*%pi, 8*%pi], [nticks, 2000]])$
355 @end example
357 @ifnotinfo
358 @image{@value{figuresfolder}/plotting6,8cm}
359 @end ifnotinfo
361 Una circunferencia de dos vueltas y solo siete puntos:
363 @c ===beg===
364 @c plot2d ([parametric, cos(t), sin(t),
365 @c         [t, -2*%pi, 2*%pi], [nticks, 8]])$
366 @c ===end===
367 @example
368 @group
369 (%i1) plot2d ([parametric, cos(t), sin(t),
370               [t, -2*%pi, 2*%pi], [nticks, 8]])$
371 @end group
372 @end example
374 @ifnotinfo
375 @image{@value{figuresfolder}/plotting7,8cm}
376 @end ifnotinfo
378 Dibujo de una función junto con la representación paramétrica de una
379 circunferencia. El tamaño del gráfico se ha ajustado con las opciones x
380 e y para que la circunferencia no se vea como una elipse. Estos valores
381 son aceptables para el terminal Postscript utilizado para producir este
382 gráfico, y puede seer necesario adaptar los valores para otros terminales:
384 @c ===beg===
385 @c plot2d([[parametric, cos(t), sin(t),
386 @c         [t,0,2*%pi], [nticks, 80]],
387 @c         abs(x)], [x,-2,2], [y, -1.5, 1.5])$
388 @c ===end===
389 @example
390 @group
391 (%i1) plot2d([[parametric, cos(t), sin(t),
392               [t,0,2*%pi], [nticks, 80]],
393         abs(x)], [x,-2,2], [y, -1.5, 1.5])$
394 plot2d: some values were clipped.
395 @end group
396 @end example
398 @ifnotinfo
399 @image{@value{figuresfolder}/plotting8,8cm}
400 @end ifnotinfo
402 Puntos discretos definiendo separadamente las coordenadas x e y:
404 @c ===beg===
405 @c plot2d ([discrete, [10, 20, 30, 40, 50],
406 @c                    [.6, .9, 1.1, 1.3, 1.4]])$
407 @c ===end===
408 @example
409 @group
410 (%i1) plot2d ([discrete, [10, 20, 30, 40, 50],
411                          [.6, .9, 1.1, 1.3, 1.4]])$
412 @end group
413 @end example
415 @ifnotinfo
416 @image{@value{figuresfolder}/plotting9,8cm}
417 @end ifnotinfo
419 Los mismos puntos del ejemplo anterior, pero definiendo una a una las
420 coordenadas y sin segmentos que unan los puntos:
422 @c ===beg===
423 @c plot2d([discrete, [[10, .6], [20, .9], [30, 1.1], 
424 @c                    [40, 1.3], [50, 1.4]]],
425 @c                   [style, points])$
426 @c ===end===
427 @example
428 @group
429 (%i1) plot2d([discrete, [[10, .6], [20, .9], [30, 1.1],
430                          [40, 1.3], [50, 1.4]]],
431                         [style, points])$
432 @end group
433 @end example
435 @ifnotinfo
436 @image{@value{figuresfolder}/plotting10,8cm}
437 @end ifnotinfo
439 En este ejemplo, se guarda una tabla de tres columnas en el
440 archivo @code{data.txt}, que luego será leído
441 para representar las dos últimas columnas:
443 @c ===beg===
444 @c with_stdout ("data.txt", for x:0 thru 10 do
445 @c                              print (x, x^2, x^3))$
446 @c data: read_matrix ("data.txt")$
447 @c plot2d ([discrete, transpose(data)[2], transpose(data)[3]],
448 @c   [style,points], [point_type,diamond], [color,red])$
449 @c ===end===
450 @example
451 (%i1) with_stdout ("data.txt", for x:0 thru 10 do 
452                                    print (x, x^2, x^3))$
453 (%i2) data: read_matrix ("data.txt")$
454 @group
455 (%i3) plot2d ([discrete, transpose(data)[2], transpose(data)[3]],
456   [style,points], [point_type,diamond], [color,red])$
457 @end group
458 @end example
460 @ifnotinfo
461 @image{@value{figuresfolder}/plotting11,8cm}
462 @end ifnotinfo
464 Un gráfico de datos empíricos junto con su modelo
465 teórico:
467 @c ===beg===
468 @c xy: [[10, .6], [20, .9], [30, 1.1], [40, 1.3], [50, 1.4]]$
469 @c plot2d([[discrete, xy], 2*%pi*sqrt(l/980)], [l,0,50],
470 @c         [style, points, lines], [color, red, blue],
471 @c         [point_type, asterisk],
472 @c         [legend, "experiment", "theory"],
473 @c         [xlabel, "pendulum's length (cm)"],
474 @c         [ylabel, "period (s)"])$
475 @c ===end===
476 @example
477 (%i1) xy: [[10, .6], [20, .9], [30, 1.1], [40, 1.3], [50, 1.4]]$
478 @group
479 (%i2) plot2d([[discrete, xy], 2*%pi*sqrt(l/980)], [l,0,50],
480         [style, points, lines], [color, red, blue],
481         [point_type, asterisk],
482         [legend, "experiment", "theory"],
483         [xlabel, "pendulum's length (cm)"],
484         [ylabel, "period (s)"])$
485 @end group
486 @end example
488 @ifnotinfo
489 @image{@value{figuresfolder}/plotting12,8cm}
490 @end ifnotinfo
492 @end deffn
497 @deffn  {Función} plot3d (@var{expr}, @var{x_range}, @var{y_range}, @dots{}, @var{options}, @dots{})
498 @deffnx {Función} plot3d ([@var{expr_1}, @dots{}, @var{expr_n}], @var{x_range}, @var{y_range}, @dots{}, @var{options}, @dots{})
500 Dibuja una o más superficies definidas como funciones de dos variables o en forma
501 paramétrica
503 Las funciones a dibujar se pueden especificar como expresiones o nombres de funciones.
504 Puede utilizarse el ratón para hacer girar el gráfico y observarlo desde
505 distintos ángulos.
507 Ejemplos:
509 Representación de una función:
511 @c ===beg===
512 @c plot3d (2^(-u^2 + v^2), [u, -3, 3], [v, -2, 2])$
513 @c ===end===
514 @example
515 (%i1) plot3d (2^(-u^2 + v^2), [u, -3, 3], [v, -2, 2])$
516 @end example
518 @ifnotinfo
519 @image{@value{figuresfolder}/plotting13,8cm}
520 @end ifnotinfo
522 Uso de la opción z para acotar una función que tiende a infinito
523 (en este caso, la función tiende a menos infinito en los ejes
524 x e y):
526 @c ===beg===
527 @c plot3d ( log ( x^2*y^2 ), [x, -2, 2], [y, -2, 2], [z, -8, 4],
528 @c          [palette, false], [color, magenta, blue])$
529 @c ===end===
530 @example
531 (%i1) plot3d ( log ( x^2*y^2 ), [x, -2, 2], [y, -2, 2], [z, -8, 4],
532                [palette, false], [color, magenta, blue])$
533 @end example
535 @ifnotinfo
536 @image{@value{figuresfolder}/plotting14,8cm}
537 @end ifnotinfo
539 Los valores infinitos de z se pueden obviar eligiendo una retícula
540 que no coincida con las asíntotas; este ejemplo también muestra
541 cómo seleccionar las paletas predefinidas, en este caso la número 4:
543 @c ===beg===
544 @c plot3d (log (x^2*y^2), [x, -2, 2], [y, -2, 2],
545 @c    [grid, 29, 29],
546 @c    [palette, get_plot_option(palette,5)])$
547 @c ===end===
548 @example
549 @group
550 (%i1) plot3d (log (x^2*y^2), [x, -2, 2], [y, -2, 2], 
551          [grid, 29, 29],
552          [palette, get_plot_option(palette,5)])$
553 @end group
554 @end example
556 @ifnotinfo
557 @image{@value{figuresfolder}/plotting15,8cm}
558 @end ifnotinfo
560 Dos superficies en el mismo gráfico, compartiendo el mismo dominio; en 
561 Gnuplot, ambas superfifies comparten la misma paleta:
563 @c ===beg===
564 @c plot3d ([2^(-x^2 + y^2), 4*sin(3*(x^2+y^2))/(x^2+y^2),
565 @c         [x, -3, 3], [y, -2, 2]])$
566 @c ===end===
567 @example
568 (%i1) plot3d ([2^(-x^2 + y^2), 4*sin(3*(x^2+y^2))/(x^2+y^2),
569               [x, -3, 3], [y, -2, 2]])$
570 @end example
572 @ifnotinfo
573 @image{@value{figuresfolder}/plotting16,8cm}
574 @end ifnotinfo
576 Las mismas superficies, pero con diferentes dominios; en Xmaxima
577 cada superficies usa una paleta diferente, elegida de la lista
578 definida por la opción @code{palette}:
580 @c ===beg===
581 @c plot3d ([[2^(-x^2 + y^2),[x,-2,2],[y,-2,2]],
582 @c    4*sin(3*(x^2+y^2))/(x^2+y^2),
583 @c    [x, -3, 3], [y, -2, 2]], [plot_format,xmaxima])$
584 @c ===end===
585 @example
586 @group
587 (%i1) plot3d ([[2^(-x^2 + y^2),[x,-2,2],[y,-2,2]],
588          4*sin(3*(x^2+y^2))/(x^2+y^2),
589          [x, -3, 3], [y, -2, 2]], [plot_format,xmaxima])$
590 @end group
591 @end example
593 @ifnotinfo
594 @image{@value{figuresfolder}/plotting17,8cm}
595 @end ifnotinfo
597 La botella de Klein, definida paramétricamente:
599 @c ===beg===
600 @c expr_1: 5*cos(x)*(cos(x/2)*cos(y) + sin(x/2)*sin(2*y) + 3.0) - 10.0$
601 @c expr_2: -5*sin(x)*(cos(x/2)*cos(y) + sin(x/2)*sin(2*y) + 3.0)$
602 @c expr_3: 5*(-sin(x/2)*cos(y) + cos(x/2)*sin(2*y))$
603 @c plot3d ([expr_1, expr_2, expr_3], [x, -%pi, %pi],
604 @c         [y, -%pi, %pi], [grid, 40, 40])$
605 @c ===end===
606 @example
607 (%i1) expr_1:5*cos(x)*(cos(x/2)*cos(y)+sin(x/2)*sin(2*y)+3.0)-10.0$
608 (%i2) expr_2:-5*sin(x)*(cos(x/2)*cos(y) + sin(x/2)*sin(2*y) + 3.0)$
609 (%i3) expr_3: 5*(-sin(x/2)*cos(y) + cos(x/2)*sin(2*y))$
610 @group
611 (%i4) plot3d ([expr_1, expr_2, expr_3], [x, -%pi, %pi],
612         [y, -%pi, %pi], [grid, 40, 40])$
613 @end group
614 @end example
616 @ifnotinfo
617 @image{@value{figuresfolder}/plotting18,8cm}
618 @end ifnotinfo
620 Gráfico de un armónico esférico, utilizando las transformaciones
621 predefinidas @code{spherical_to_xyz}:
623 @c ===beg===
624 @c plot3d (sin(2*theta)*cos(phi), [theta, 0, %pi],
625 @c         [phi, 0, 2*%pi],
626 @c         [transform_xy, spherical_to_xyz], [grid,30,60])$
627 @c ===end===
628 @example
629 @group
630 (%i1) plot3d (sin(2*theta)*cos(phi), [theta, 0, %pi],
631               [phi, 0, 2*%pi],
632               [transform_xy, spherical_to_xyz], [grid,30,60])$
633 @end group
634 @end example
636 @ifnotinfo
637 @image{@value{figuresfolder}/plotting19,8cm}
638 @end ifnotinfo
640 Uso de la transformación predefinida @code{polar_to_xy}. Este
641 ejemplo también muestra cómo eliminar el marco y la leyenda:
643 @c ===beg===
644 @c plot3d (r^.33*cos(th/3), [r, 0, 1], [th, 0, 6*%pi],
645 @c    [grid, 12, 80],
646 @c    [transform_xy, polar_to_xy], [box, false],
647 @c    [legend,false])$
648 @c ===end===
649 @example
650 @group
651 (%i1) plot3d (r^.33*cos(th/3), [r, 0, 1], [th, 0, 6*%pi],
652          [grid, 12, 80],
653          [transform_xy, polar_to_xy], [box, false],
654          [legend,false])$
655 @end group
656 @end example
658 @ifnotinfo
659 @image{@value{figuresfolder}/plotting20,8cm}
660 @end ifnotinfo
662 Dibujo de una esfera utilizando la transformación esférica. En 
663 Xmaxima, los tres ejes utilizan escalas proporcionales, manteniendo
664 la forma simétrica de la esfera. Se utiliza una paleta con color
665 degradado:
667 @c ===beg===
668 @c plot3d ( 5, [theta, 0, %pi], [phi, 0, 2*%pi],
669 @c    [plot_format,xmaxima],
670 @c    [transform_xy, spherical_to_xyz], 
671 @c    [palette,[value,0.65,0.7,0.1,0.9]])$
672 @c ===end===
673 @example
674 @group
675 (%i1) plot3d ( 5, [theta, 0, %pi], [phi, 0, 2*%pi],
676          [plot_format,xmaxima],
677          [transform_xy, spherical_to_xyz],
678          [palette,[value,0.65,0.7,0.1,0.9]])$
679 @end group
680 @end example
682 @ifnotinfo
683 @image{@value{figuresfolder}/plotting21,8cm}
684 @end ifnotinfo
686 Definición de una función con dos variables utilizando una matriz. 
687 Nótese la comilla simple en la definición de la función para
688 prevenir que @code{plot3d} falle al detectar que la matriz necesita
689 índices enteros:
691 @c ===beg===
692 @c M: matrix([1, 2, 3, 4], [1, 2, 3, 2], [1, 2, 3, 4],
693 @c           [1, 2, 3, 3])$
694 @c f(x, y) := float('M [round(x), round(y)])$
695 @c plot3d (f(x,y), [x, 1, 4], [y, 1, 4], [grid, 4, 4])$
696 @c ===end===
697 @example
698 (%i1) M: matrix([1, 2, 3, 4], [1, 2, 3, 2], [1, 2, 3, 4],
699                 [1, 2, 3, 3])$
700 (%i2) f(x, y) := float('M [round(x), round(y)])$
701 @group
702 (%i3) plot3d (f(x,y), [x, 1, 4], [y, 1, 4], [grid, 4, 4])$
703 apply: subscript must be an integer; found: round(x)
704 @end group
705 @end example
707 @ifnotinfo
708 @image{@value{figuresfolder}/plotting22,8cm}
709 @end ifnotinfo
711 Asignando a la opción @code{elevation} el valor cero, una superficie
712 puede verse como una aplicación en la que cada color representa un nivel
713 diferente. La opción @code{colorbox} se utiliza para mostrar la correspondencia
714 entre colores y niveles; las líneas de la retícula
715 se desactivan para facilitar la visualización de los colores:
717 @c ===beg===
718 @c plot3d (cos (-x^2 + y^3/4), [x, -4, 4], [y, -4, 4],
719 @c         [mesh_lines_color, false], [elevation, 0], [azimuth, 0],
720 @c         [colorbox, true], [grid, 150, 150])$
721 @c ===end===
722 @example
723 @group
724 (%i1) plot3d (cos (-x^2 + y^3/4), [x, -4, 4], [y, -4, 4],
725         [mesh_lines_color, false], [elevation, 0], [azimuth, 0],
726         [colorbox, true], [grid, 150, 150])$
727 @end group
728 @end example
730 @ifnotinfo
731 @image{@value{figuresfolder}/plotting23,8cm}
732 @end ifnotinfo
734 Véase también la sección Opciones gráficas.
736 @end deffn
740 @defvr {Variable global} plot_options
742 Los elementos de esta lista establecen las opciones por defecto para los gráficos.
743 Si una opción está presente en una llamada a @code{plot2d} o a @code{plot3d},
744 este valor adquiere prevalencia sobre las opciones por defecto.
745 En otro caso se utilizará el valor que tenga en @code{plot_options}.
746 Las opciones por defecto se asignan mediante la función @code{set_plot_option}.
748 Cada elemento de @code{plot_options} es una lista de dos o más elementos,
749 el primero de los cuales es el nombre de la opción, siendo los siguientes 
750 los valores que toma. En algunos casos el valor asignado es a su vez una lista,
751 que puede contener varios elementos.
753 Véanse también @code{set_plot_option}, @code{get_option} y la sección
754 Opciones gráficas.
756 @end defvr
760 @deffn {Función} set_plot_option (@var{option})
762 Acepta la mayor parte de opciones listadas en la sección Opciones gráficas
763 y las almacena en la variable global @code{plot_options}.
765 La función @code{set_plot_option} evalúa su argumento y devuelve
766 la lista completa @code{plot_options} tal como queda después de la actualización.
768 Véanse también @code{plot_options}, @code{get_option} y la sección
769 Opciones gráficas.
771 Ejemplos:
773 Modificación de los valores para @code{grid}.
775 @c ===beg===
776 @c set_plot_option ([grid, 30, 40]);
777 @c ===end===
778 @example
779 (%i1) set_plot_option ([grid, 30, 40]);
780 @group
781 (%o1) [[t, - 3, 3], [grid, 30, 40], [transform_xy, false], 
782 [run_viewer, true], [axes, true], [plot_format, gnuplot_pipes], 
783 [color, blue, red, green, magenta, black, cyan], 
784 [point_type, bullet, circle, plus, times, asterisk, box, square, 
785 triangle, delta, wedge, nabla, diamond, lozenge], 
786 [palette, [hue, 0.25, 0.7, 0.8, 0.5], 
787 [hue, 0.65, 0.8, 0.9, 0.55], [hue, 0.55, 0.8, 0.9, 0.4], 
788 [hue, 0.95, 0.7, 0.8, 0.5]], [gnuplot_term, default], 
789 [gnuplot_out_file, false], [nticks, 29], [adapt_depth, 5], 
790 [gnuplot_preamble, ], [gnuplot_default_term_command, 
791 set term pop], [gnuplot_dumb_term_command, set term dumb 79 22], 
792 [gnuplot_ps_term_command, set size 1.5, 1.5;set term postscript \
793 eps enhanced color solid 24], [plot_realpart, false]]
794 @end group
795 @end example
797 @end deffn
801 @deffn {Símbolo del sistema} spherical_to_xyz
803 Cuando a la opción @code{transform_xy} de @code{plot3d} se le pasa el valor 
804 @code{spherical_to_xyz}, se interpretarán las variables independientes como 
805 esféricas, transformándolas luego a coordenadas cartesianas.
807 @end deffn
816 @node Opciones gráficas, Opciones para Gnuplot, Funciones y variables para gráficos, Gráficos
817 @section Opciones gráficas
819 Todas las opciones consisten en una lista que comienza con una palabra clave
820 seguida de uno o más valores. La mayor parte de las opciones pueden utilizarse
821 con cualquiera de las funciones gráficas @var{plot2d}, @var{plot3d}, @var{contour_plot} y
822 @var{implicit_plot}, o en la función @var{set_plot_option}. Las excepciones
823 se indican en la lista siguiente.
826 @defvr {Opción para plot} adapt_depth [adapt_depth, @var{integer}]
827 Valor por defecto: 5
829 Número máximo de particiones utilizado por el algoritmo adaptativo
830 de representación gráfica.
832 @end defvr
835 @defvr {Opción para plot} axes [axes, @var{symbol}] 
836 Valor por defecto: @code{true}
838 El argumento @var{symbol} puede valer @code{true}, @code{false}, @code{x} 
839 o @code{y}. Si vale @code{false}, no se mostrarán los ejes; si es igual a
840 @code{x} o @code{y}, solo ese eje será el que se representa; si vale
841 @code{true}, se mostrarán ambos ejes.
843 Esta opción solo es relevante para @code{plot2d} y @code{implicit_plot}.
845 @end defvr
849 @defvr {Opción para plot} azimuth [azimuth, @var{number}]
850 Valor por defecto: 30
852 Un gráfico @code{plot3d} se puede interpretar como comenzando
853 horizontalmente en el plano xy; a partir de ahí,
854 la coordenada z se eleva perpendicularmente al papel. El eje z
855 gira entonces alrededor del eje x un ángulo igual a @code{elevation},
856 luego gira el plano xy alrededor del nuevo eje z un ángulo @code{azimuth}.
857 Esta opción establece el valor para @code{azimuth} en grados
858 sexagesimales.
860 Véase también @code{elevation}.
862 @end defvr
866 @defvr {Opción para plot} box [box, @var{symbol}]
867 Valor por defecto: @code{true}
869 Si vale @code{true}, se representará el marco para el gráfico;
870 si vale @code{false}, no.
872 @end defvr
875 @anchor{color}
876 @defvr {Opción para plot} color [color, @var{color_1}, @dots{}, @var{color_n}]
877 Valor por defecto: blue, red, green, magenta, black, cyan
880 Define el color para las curvas en @code{plot2d} y @code{implicit_plot}. En
881 @code{plot3d} define los colores para el enrejado de las superficies si no
882 se utiliza la paleta; una cara de la superficie tendrá @var{color_1}
883 y la otra @var{color_2}, o el mismo color si se especifica solo uno.
885 Si hay más curvas o superficies que caras, los colores se repetirán 
886 secuencialmente. Con Gnuplot, los colores pueden ser: azul, rojo, verde,
887 magenta, negro y cián; con Xmaxima, los colores pueden ser esos mismos,
888 o una cadena de texto que comienza con el carácter @code{#} seguido de
889 seis dígitos hexadecimales: dos para la componente roja, otros
890 dos para la verde y otros dos para la azul. Si se introduce un nombre de
891 color no reconocido, en su lugar se utilizará el negro.
893 @end defvr
897 @defvr {Opción para plot} colorbox [colorbox, @var{symbol}]
898 Valor por defecto: @code{false}
900 El argumento @var{symbol} puede valer @code{true} o @code{false}.
901 Si vale @code{true} y @code{plot3d} utiliza la paleta de colores
902 para representar diferentes valores de z, se dibujará un rectángulo
903 en la parte derecha, indicando los colores utilizados para
904 los diferentes valores de z. Esta opción no funciona en Xmaxima.
906 @end defvr
910 @defvr {Opción para plot} elevation [elevation, @var{number}]
911 Valor por defecto: 60
913 Un gráfico @code{plot3d} se puede interpretar como comenzando
914 horizontalmente en el plano xy; a partir de ahí,
915 la coordenada z se eleva perpendicularmente al papel. El eje z
916 gira entonces alrededor del eje x un ángulo igual a @code{elevation},
917 luego gira el plano xy alrededor del nuevo eje z un ángulo @code{azimuth}.
918 Esta opción establece el valor para @code{elevation} en grados
919 sexagesimales.
921 Véase también  @code{azimuth}.
923 @end defvr
927 @defvr {Opción para plot} grid [grid, @var{integer}, @var{integer}]
928 Valor por defecto: 30, 30
930 Establece el número de puntos para los puntos de la rejilla en las
931 direcciones x e y en escenas 3D.
933 @end defvr
937 @defvr  {Opción para plot} legend [legend, @var{string_1}, @dots{}, @var{string_n}]
938 @defvrx {Opción para plot} legend [legend, @var{false}]
940 Especifica las etiquetas para los gráficos en los que aparecen
941 varios objetos.  Si hay más expresiones que etiquetas, éstas se repetirán.
942 Con el valor @code{false} no se mostrarán etiquetas.
943 Por defecto se pasarán los nombres de las expresiones o funciones, o las palabras
944 @code{discrete1}, @code{discrete2}, @dots{}, para gráficos de puntos.
945 Esta opción no se puede utilizar con @var{set_plot_option}.
947 @end defvr
951 @defvr {Opción para plot} logx [logx]
953 Hace que el eje de abscisas se dibuje en la escala 
954 logarítmica. Esta opción no se puede utilizar 
955 con @var{set_plot_option}.
957 @end defvr
961 @defvr {Opción para plot} logy [logy]
963 Hace que el eje de ordenadas se dibuje en la escala 
964 logarítmica. Esta opción no se puede utilizar 
965 con @var{set_plot_option}.
967 @end defvr
971 @defvr {Opción para plot} mesh_lines_color [mesh_lines_color, @var{color}]
972 Valor por defecto: @code{black}
974 Establece el color del enrejado en los gráficos creados por @code{plot3d}
975 cuando se utiliza una paleta. Acepta los mismos colores que la opción 
976 @code{color}. También se le puede dar el valor @code{false} para eliminar
977 el enrejado.
979 @end defvr
983 @defvr {Opción para plot} nticks [nticks, @var{integer}]
984 Valor por defecto: 29
986 Cuando se dibujan funciones con @code{plot2d}, establece el número
987 inicial de puntos utilizado por la rutina gráfica adaptativa. Cuando
988 se dibujan funciones con @code{plot3d} o paramétricas con @code{plot2d},
989 su valor es igual al número de puntos que se representarán en el
990 gráfico.
992 @end defvr
996 @defvr  {Opción para plot} palette [palette, [@var{palette_1}], @dots{}, [@var{palette_n}]]
997 @defvrx {Opción para plot} palette [palette, @var{false}]
998 Valor por defecto: [hue, 0.25, 0.7, 0.8, 0.5], [hue, 0.65, 0.8, 0.9, 0.55], 
999 [hue, 0.55, 0.8, 0.9, 0.4], [hue, 0.95, 0.7, 0.8, 0.5]
1001 Puede consistir en una paleta o en una lista de varias paletas. Cada
1002 paleta es una lista con una palabra clave seguida de cuatro números.
1003 Los tres primeros números, que deben tomar valores entre 0 y 1, definen
1004 el matiz, la saturación y el valor de un color básico a asignar al 
1005 mínimo valor de z. La palabra clave especifica cuál de los
1006 tres atributos (@code{hue}, @code{saturation} o @code{value}) incrementará
1007 de acuerdo con los valores de z. El último número se corresponde con el 
1008 incremento del máximo valor de z. Este último número puede ser mayor que
1009 1 o negativo.
1011 Gnuplot solo utiliza la primera paleta de la lista; Xmaxima utilizará 
1012 las paletas de la lista secuencialmente cuando haya que representar varias
1013 superficies conjuntamente; si el número de paletas no es suficiente,
1014 se repetirán también de forma secuencial.
1016 El color del enrrejado de la superficie se establece con @code{mesh_lines_color}.
1017 Si @code{palette} tiene el valor @code{false}, las superficies se representan
1018 solo con el enrrejado; en tal caso, el color de las líneas
1019 será el determinado por @code{color}.
1021 @end defvr
1025 @defvr {Opción para plot} plot_format [plot_format, @var{format}]
1026 Valor por defecto: en sistemas Windows, @code{gnuplot}; en otros, @code{gnuplot_pipes}
1028 Establece el formato a utlizar por las rutinas gráficas.
1030 Debe tomar uno de los siguientes valores: @code{gnuplot}, @code{xmaxima}, @code{mgnuplot}
1031 o @code{gnuplot_pipes}.
1033 @end defvr
1037 @defvr {Opción para plot} plot_realpart [plot_realpart, @var{symbol}]
1038 Valor por defecto: @code{false}
1040 Cuando vale @code{true}, se representa gráficamente la parte real
1041 de las funciones; equivale a ejecutar @code{realpart(@var{función})}.
1042 Si vale @code{false}, no se representa nada cuando la función
1043 no devuelva un valor real. Por ejemplo, si @code{x} es negativo, 
1044 @code{log(x)} devuelve un valor negativo cuya parte real es @code{log(abs(x))};
1045 en tal caso, si @code{plot_realpart} vale @code{true}, @code{log(-5)}
1046 se representa como @code{log(5)}, mientras que no se representa nada 
1047 si @code{plot_realpart} vale @code{false}.
1049 @end defvr
1053 @defvr {Opción para plot} point_type [point_type, @var{type_1}, @dots{}, @var{type_n}]
1054 Valor por defecto: @code{bullet}, @code{circle}, @code{plus}, @code{times}, @code{asterisk},
1055 @code{box}, @code{square}, @code{triangle}, @code{delta}, @code{wedge}, @code{nabla},
1056 @code{diamond}, @code{lozenge}
1058 En Gnuplot, cada conjunto de puntos que vaya a ser representado con los
1059 estilos @code{points} o @code{linespoints} se hará con objetos tomados
1060 de esta lista en orden secuencial. Si hay más conjuntos de puntos que 
1061 objetos en la lista, se irán repitiendo de forma secuencial. Los objetos
1062 que pueden ser utilizados son: @code{bullet}, @code{circle}, @code{plus}, 
1063 @code{times}, @code{asterisk}, @code{box}, @code{square}, @code{triangle}, 
1064 @code{delta}, @code{wedge}, @code{nabla}, @code{diamond} o @code{lozenge}
1066 @end defvr
1070 @defvr {Opción para plot} psfile [psfile, @var{string}]
1072 Guarda el gráfico en formato Postscript con nombre @var{string}
1073 en lugar de mostrarlo en pantalla. Por defecto, el fichero se creará
1074 en la carpeta definida en la variable @var{maxima_tempdir}, cuyo
1075 valor se podrá cambiar para almacenar el fichero en otra carpeta.
1077 @end defvr
1081 @defvr {Opción para plot} run_viewer [run_viewer, @var{symbol}]
1082 Valor por defecto: @code{true}
1084 Controla si el visor apropiado para la salida gráfica debe ejecutarse o no.
1086 @end defvr
1090 @defvr  {Opción para plot} style [style, @var{type_1}, @dots{}, @var{type1_n}]
1091 @defvrx {Opción para plot} style [style, [@var{style_1}], @dots{}, [@var{style_n}]]
1092 Valor por defecto: @var{lines} (dibuja todos los puntos unidos por 
1093 líneas de ancho 1 y con el primer color de la lista de la opción @code{color}).
1095 Estilos a utilizar para las funciones o conjuntos de datos en
1096 gráficos 2d. A la palabra @code{style} debe seguirle uno o más
1097 estilos. Si hay más funciones o conjuntos de datos que estilos,
1098 éstos se repetirán. Los estilos que se admiten son: @var{lines}
1099 para segmentos lineales, @var{points} para puntos aislados,
1100 @var{linespoints} para segmentos y puntos, @var{dots} para
1101 pequeños puntos aislados. Gnuplot también acepta el estilo
1102 @var{impulses}.
1104 Los estilos se pueden escribir como elementos de una lista, junto
1105 con algunos parámetros adicionales. @var{lines} acepta uno o dos
1106 números: el ancho de la línea y un entero que identifica
1107 el color. Los códigos de color por defecto son: 1, azul; 2, rojo;
1108 3, magenta; 4, naranja; 5, marrón; 6, verde lima; 7, aguamarina.
1109 En caso de utilizar Gnuplot con un terminal diferente de X11, estos
1110 colores pueden cambiar; por ejemplo, bajo la opción 
1111 [@var{gnuplot_term},@var{ps}], el índice 4
1112 se corresponde con el negro en lugar del naranja.
1114 @var{points} acepta uno, dos o tres parámetros; el primer parámetro
1115 es el radio de los puntos, el segundo es un entero para seleccionar el color,
1116 con igual codificación que en @var{lines} y el tercer parámetro sólo
1117 es utilizado por Gnuplot y hace referencia a varios objetos para representar
1118 los puntos. Los tipos de objetos disponibles son: 1, círculos
1119 rellenos; 2, circunferencias; 3, +; 4, x; 5, *; 6, cuadrados rellenos;
1120 7, cuadrados huecos; 8, triángulos rellenos; 9, triángulos huecos;
1121 10, triángulos rellenos invertidos; 11, triángulos huecos invertidos;
1122 12, rombos rellenos; 13, rombos huecos.
1124 @var{linesdots} acepta hasta cuatro parámetros: ancho de línea,
1125 radio de los puntos, color y tipo de objetos para representar puntos.
1127 Véanse también @code{color} y @code{point_type}.
1129 @end defvr
1133 @defvr {Opción para plot} transform_xy [transform_xy, @var{symbol}]
1134 Valor por defecto: @code{false}
1136 La variable @var{symbol} puede ser @code{false} o el resultado
1137 devuelto por la función @code{transform_xy}. Si es distinto de
1138 @code{false}, se utiliza para transformar las tres coordenadas en
1139 @code{plot3d}.
1141 Véanse @code{make_transform}, @code{polar_to_xy} y @code{spherical_to_xyz}.
1143 @end defvr
1147 @defvr {Opción para plot} x [x, @var{min}, @var{max}]
1149 Cuando se utiliza como primera opción en una instrucción para
1150 un gráfico 2D (o cualquiera de las dos primeras en un gráfico 3D),
1151 indica que su primera variable independiente es x y ajusta su rango.
1152 También se puede utilizar después de la primera opción
1153 (o después de la segunda opción en un gráfico 3D) para definir
1154 el dominio horizontal que se representará en el gráfico.
1156 @end defvr
1160 @defvr {Opción para plot} xlabel [xlabel, @var{string}]
1162 Especifica la etiqueta para el primer eje. Si no se utiliza esta
1163 opción, la etquieta será el nombre de la variable independiente,
1164 cuando se utilicen @code{plot2d} o @code{implicit_plot}, o el nombre
1165 de la primera variable cuando se utilicen @code{plot3d} o @code{contour_plot},
1166 o la primera expresión en el caso de una curva paramétrica.
1167 No puede utilizarse con @var{set_plot_option}.
1169 @end defvr
1173 @defvr {Opción para plot} y [y, @var{min}, @var{max}]
1175 Cuando se utiliza como una de las dos primeras opciones en @code{plot3d},
1176 indica que una de las variables independientes es ``y'' y ajusta su
1177 rango. En otro caso, define el dominio de la segunda variable que se mostrará
1178 en el gráfico.
1180 @end defvr
1184 @defvr {Opción para plot} ylabel [ylabel, @var{string}]
1186 Especifica la etiqueta para el segundo eje. Si no se utiliza esta
1187 opción, la etiqueta será ``y'',
1188 cuando se utilicen @code{plot2d} o @code{implicit_plot}, o el nombre
1189 de la segunda variable cuando se utilicen @code{plot3d} o @code{contour_plot},
1190 o la segunda expresión en el caso de una curva paramétrica.
1191 No puede utilizarse con @var{set_plot_option}.
1193 @end defvr
1197 @defvr {Opción para plot} z [z, @var{min}, @var{max}]
1199 Se utiliza en @code{plot3d} para ajustar el rango de valores de z que se
1200 mostrará en el gáfico.
1202 @end defvr
1206 @defvr {Opción para plot} zlabel [zlabel, @var{string}]
1208 Especifica la etiqueta para el tercer eje cuando se utiliza @code{plot3d}.
1209 Si no se utiliza esta opción, la etiqueta será ``z''
1210 en el caso de superficies, o la tercera expresión en el caso de una curva paramétrica.
1211 No puede utilizarse con @var{set_plot_option} y se ignora 
1212 en @code{plot2d} y @code{implicit_plot}.
1214 @end defvr
1224 @node Opciones para Gnuplot, Funciones para el formato Gnuplot_pipes, Opciones gráficas, Gráficos
1225 @section Opciones para Gnuplot
1227 Hay varias opciones gráficas que son específicas de Gnuplot.
1228 Algunas de ellas son comandos propios de Gnuplot que se especifican como cadenas de texto.
1229 Consúltese la documentación de Gnuplot para más detalles.
1233 @defvr {Opción para plot} gnuplot_term
1235 Establece el terminal de salida para Gnuplot.
1237 @itemize @bullet
1238 @item
1239 @strong{default} (valor por defecto)
1241 Gnuplot muestra el gráfico en una ventana gráfica.
1243 @item
1244 @strong{dumb}
1246 Gnuplot muestra el gráfico en la consola de Maxima
1247 en estilo ASCII artístico.
1249 @item
1250 @strong{ps}
1252 Gnuplot genera código en lenguaje PostScript.
1253 Si a la opción @code{gnuplot_out_file} se le da el
1254 valor @var{filename}, Gnuplot escribe el código PostScript
1255 en @var{filename}. En caso contrario, se guarda en el archivo @code{maxplot.ps}.
1257 @item
1258 Cualquier otro terminal admitido por Gnuplot.
1260 Gnuplot puede generar gráficos en otros muchos formatos, tales como
1261 png, jpeg, svg etc. Para crear gráficos en cualquera de estos formatos,
1262 a la opción @code{gnuplot_term} se le puede asignar cualquiera de los
1263 terminales admitidos por Gnuplot, bien por su nombre (símbolo)
1264 bien con la especificación completa del terminal (cadena). Por ejemplo,
1265 @code{[gnuplot_term,png]} guarda el gráfico en formato PNG (Portable
1266 Network Graphics), mientras que @code{[gnuplot_term,"png size 1000,1000"]}
1267 lo hace con dimensiones 1000x1000 píxeles.
1268 Si a la opción @code{gnuplot_out_file} se le da el
1269 valor @var{filename}, Gnuplot escribe el código PostScript
1270 en @var{filename}. En caso contrario, se guarda en el archivo 
1271 @code{maxplot.@var{term}}, siendo @var{term} el nombre del terminal.
1273 @end itemize
1275 @end defvr
1279 @defvr {Opción para plot} gnuplot_out_file
1281 Cuando se utiliza conjuntamente con la opción @code{gnuplot_term},
1282 puede utilizarse para almacenar el gráfico en un fichero en uno
1283 de los formatos aceptados por Gnuplot. Si se quiere crear un fichero
1284 Postscript se puede utilizar la opción @code{psfile}, que también 
1285 funciona con Openmath.
1287 @example
1288 [gnuplot_term, png], [gnuplot_out_file, "graph3.png"]
1289 @end example
1291 @end defvr
1295 @defvr {Opción para plot} gnuplot_pm3d
1297 Controla la utilización del modo PM3D, que tiene capacidades avanzadas
1298 para gráficos tridimensionales. PM3D sólo está disponible en versiones 
1299 de Gnuplot posteriores a la 3.7. El valor por defecto de @code{gnuplot_pm3d} es @code{false}.
1301 @end defvr
1305 @defvr {Opción para plot} gnuplot_preamble
1307 Introduce instrucciones de Gnuplot antes de que se haga el gráfico.
1308 Puede utilizarse cualquier comando válido de Gnuplot. Si interesa 
1309 introducir varios comandos se separarán con punto y coma. El valor 
1310 por defecto de @code{gnuplot_preamble} es la cadena vacía @code{""}.
1312 @end defvr
1316 @defvr {Opción para plot} gnuplot_curve_titles
1318 Opción obsoleta que ha sido sustituida por @code{legend}.
1320 @end defvr
1324 @defvr {Opción para plot} gnuplot_curve_styles
1326 Opción obsoleta que ha sido sustituida por @code{style}.
1328 @end defvr
1332 @defvr {Opción para plot} gnuplot_default_term_command
1334 Comando de Gnuplot para establecer el tipo de terminal por defecto.
1335 El valor por defecto es @code{set term pop}.
1337 @end defvr
1341 @defvr {Opción para plot} gnuplot_dumb_term_command
1343 Comando de Gnuplot para establecer el tipo de terminal para
1344 el terminal oculto. El valor por defecto es @code{"set term dumb 79 22"},
1345 que da una salida de texto de 79 por 22 caracteres.
1347 @end defvr
1351 @defvr {Opción para plot} gnuplot_ps_term_command
1353 Comando de Gnuplot para establecer el tipo de terminal para
1354 el terminal PostScript. El valor por defecto es
1355 @code{"set size 1.5, 1.5;set term postscript eps enhanced color solid 24"},
1356 que establece un tamaño de 1.5 veces el valor por defecto de gnuplot,
1357 junto con un tamaño de fuente de 24, entre otras cosas. Consúltese
1358 la documentación de gnuplot para más información sobre @code{set term postscript}.
1360 @end defvr
1369 @node Funciones para el formato Gnuplot_pipes,  , Opciones para Gnuplot, Gráficos
1370 @section Funciones para el formato Gnuplot_pipes
1373 @deffn {Función} gnuplot_start ()
1375 Inicializa una tubería hacia Gnuplot, con el fin
1376 de ser utilizada para utilizar el formato @code{gnuplot_pipes}.
1377 No es necesario inicializarla manualmente antes de hacer gráficos.
1379 @end deffn
1383 @deffn {Función} gnuplot_close ()
1385 Cierra la tubería hacia Gnuplot que haya sido 
1386 utilizada para hacer gráficos.
1388 @end deffn
1392 @deffn {Función} gnuplot_restart ()
1394 Cierra la tubería hacia Gnuplot que haya sido 
1395 utilizada para hacer gráficos e inicializa una nueva.
1397 @end deffn
1401 @deffn  {Función} gnuplot_replot ()
1402 @deffnx {Función} gnuplot_replot (@var{s})
1404 Actualiza la ventana de Gnuplot. Si @code{gnuplot_replot} es invocada
1405 con un comando de Gnuplot en la cadena @var{s}, entonces @var{s} es 
1406 enviada a Gnuplot antes de redibujar la ventana.
1408 @end deffn
1412 @deffn {Función} gnuplot_reset ()
1414 Resetea Gnuplot cuando se utiliza el formato @code{gnuplot_pipes}.
1415 Para actualizar la ventana de Gnuplot invóquese a @code{gnuplot_replot}
1416 después de @code{gnuplot_reset}.
1418 @end deffn