Fix bug #1848: taytorat leaks internal gensyms from multivar expansions
[maxima.git] / doc / info / pt_BR / Plotting.texi
blob48f747d9821b1d98def043c588bee2dd37c3fa9d
1 @c Language: Brazilian Portuguese, Encoding: iso-8859-1
2 @c /Plotting.texi/1.41/Fri Jun  8 17:19:03 2007/-ko/
3 @iftex
4 @hyphenation{ca-rac-te-res}
5 @end iftex
6 @menu
7 * Funç@~{o}es e Vari@'{a}veis Definidas para Montagem de Gr@'{a}ficos::    
8 @end menu
10 @node Funç@~{o}es e Vari@'{a}veis Definidas para Montagem de Gr@'{a}ficos,  , Montando Gr@'{a}ficos, Montando Gr@'{a}ficos
11 @section Funç@~{o}es e Vari@'{a}veis Definidas para Montagem de Gr@'{a}ficos
13 @deffn {Funç@~{a}o} contour_plot (@var{expr}, @var{x_range}, @var{y_range}, @var{opç@~{o}es}, ...)
15 Monta gr@'{a}ficos de contorno (curvas de n@'{i}vel) de @var{expr}
16 sobre a regi@~{a}o @var{x_range} por @var{y_range}.
17 Quaisquer argumentos adicionals s@~{a}o tratados da mesma forma que em @code{plot3d}.
19 @code{contour_plot} somente trabalha quando o formato do gr@'{a}fico for @code{gnuplot} ou @code{gnuplot_pipes}.
21 Veja tamb@'{e}m @code{implicit_plot}.
23 Exemplos:
25 @c ===beg===
26 @c contour_plot (x^2 + y^2, [x, -4, 4], [y, -4, 4]);
27 @c contour_plot (sin(y) * cos(x)^2, [x, -4, 4], [y, -4, 4]);
28 @c F(x, y) := x^3 + y^2;
29 @c contour_plot (F, [u, -4, 4], [v, -4, 4]);
30 @c contour_plot (F, [u, -4, 4], [v, -4, 4], [gnuplot_preamble, "set size ratio -1"]);
31 @c set_plot_option ([gnuplot_preamble, "set cntrparam levels 12"])$
32 @c contour_plot (F, [u, -4, 4], [v, -4, 4]);
33 @c ===end===
34 @example
35 (%i1) contour_plot (x^2 + y^2, [x, -4, 4], [y, -4, 4]);
36 (%o1) 
37 (%i2) contour_plot (sin(y) * cos(x)^2, [x, -4, 4], [y, -4, 4]);
38 (%o2) 
39 (%i3) F(x, y) := x^3 + y^2;
40                                    3    2
41 (%o3)                  F(x, y) := x  + y
42 (%i4) contour_plot (F, [u, -4, 4], [v, -4, 4]);
43 (%o4) 
44 (%i5) contour_plot (F, [u, -4, 4], [v, -4, 4], [gnuplot_preamble, "set size ratio -1"]);
45 (%o5) 
46 (%i6) set_plot_option ([gnuplot_preamble, "set cntrparam levels 12"])$
48 (%i7) contour_plot (F, [u, -4, 4], [v, -4, 4]);
49 @end example
51 @end deffn
53 @c INSPECTING src/plot.lisp AND TRYING SOME EXAMPLES,
54 @c IT APPEARS THAT in_netmath HAS NO EFFECT ON plot2d
55 @c AND ONLY EFFECT ON plot3d IS TO CAUSE OPENMATH OUTPUT TO BE WRITTEN TO CONSOLE
56 @c WHEN [plot_format, openmath] IS SET.
57 @c NOT CONVINCED WE REALLY WANT TO DOCUMENT THIS VARIABLE
58 @defvr {Vari@'{a}vel} in_netmath
59 Valor padr@~{a}o: @code{false}
61 Quando @code{in_netmath} @'{e} @code{true},
62 @code{plot3d} imprime uma sa@'{i}da OpenMath para o console se @code{plot_format} @'{e} @code{openmath};
63 caso contr@'{a}rio @code{in_netmath} (mesmo se @code{true}) n@~{a}o tem efeito.
64 @code{in_netmath} n@~{a}o tem efeito sobre @code{plot2d}.
66 @end defvr
68 @deffn {Funç@~{a}o} plot2d (@var{expr}, @var{x_range}, ..., @var{opç@~{o}es}, ...)
69 @deffnx {Funç@~{a}o} plot2d ([@var{expr_1}, ..., @var{expr_n}], ..., @var{opç@~{o}es}, ...)
70 @deffnx {Funç@~{a}o} plot2d ([@var{expr_1}, ..., @var{expr_n}], @var{x_range},..., @var{opç@~{o}es}, ...)
72 onde @var{expr}, @var{expr_1}, ..., @var{expr_n} pode ser uma entre
73 express@~{o}es, ou funç@~{o}es do Lisp ou do Maxima ou operadores, ou uma lista com
74 qualquer das formas: @code{[discrete, [@var{x1}, ..., @var{xn}],
75 [@var{y1}, ..., @var{yn}]]}, @code{[discrete, [[@var{x1}, @var{y1}],
76 ..., [@var{xn}, ..., @var{yn}]]} ou @code{[parametric, @var{x_expr},
77 @var{y_expr}, @var{t_range}]}.
79 Mostra um gr@'{a}fico de uma ou mais express@~{o}es como uma funç@~{a}o de uma
80 vari@'{a}vel.
82 @code{plot2d} monta o gr@'{a}fico da express@~{a}o @var{expr} ou muitas express@~{o}es
83 @code{[@var{name_1}, ..., @var{name_n}]}. As express@~{o}es que n@~{a}o forem
84 param@'{e}tricas ou discretas podem todas depender somente de uma
85 vari@'{a}vel @var{var} e isso torna obrigat@'{o}rio o uso de @var{x_range} para
86 nome daquela vari@'{a}vel e fornece seus valores de m@'{a}ximo e de m@'{i}nimo, usando a
87 sintaxe: @code{[@var{variable}, @var{min}, @var{max}]}. O gr@'{a}fico ir@'{a}
88 mostrar o eixo horizontal associado aos valores de @var{min} e de @var{max}.
90 Uma express@~{a}o a ser montado o gr@'{a}fico pode tamb@'{e}m ser fornecida na forma discreta ou
91 na forma param@'{e}trica. A saber, como uma lista iniciando-se com a palavra ``discrete''
92 ou a palavra ``parametric''. A palavra chave @var{discrete} deve ser seguida por duas
93 listas de valores, ambas com o mesmo comprimento, que s@~{a}o as coodenadas horizontais e
94 as coordenadas verticais de um conjunto de pontos; alternativamente, as coordenadas
95 de cada ponto pode ser colocada dentro de uma lista com dois valores, e todas as
96 coordenadas dos pontos podem estar dentro de outra lista. A palavra chave
97 @var{parametric} deve ser seguida por douas express@~{o}es @var{x_expr} e
98 @var{y_expr}, e um intervalo da forma @code{[@var{param}, @var{min},
99 @var{max}]}. As duas express@~{o}es devem depender somente do par@^{a}metro
100 @var{param}, e o gr@'{a}fico ir@'{a} mostrar o caminho percorrido pelo ponto
101 com coordenadas (@var{x_expr}, @var{y_expr}) com @var{param} variando
102 de @var{min} a @var{max}.
104 O intervalo do eixo vertical n@~{a}o @'{e} obrigat@'{o}rio. @'{E} somente mais uma das
105 opç@~{o}es para o comando, com a sintaxe: @code{[y, @var{min},
106 @var{max}]}. Se aquela opç@~{a}o for usada, o gr@'{a}fico ir@'{a} mostrar aquele intervalo
107 completo, mesmo se a express@~{a}o n@~{a}o ocupe todo aquele intervalo. De outra forma,
108 se um intervalo vertical n@~{a}o for especificado atrav@'{e}s de @code{set_plot_option}, as
109 extremidade do eixo vertical ser@~{a}o encontrada automaticamente.
111 Todas as outras opç@~{o}es podem tamb@'{e}m serem listas, iniciando-se com o nome da
112 opç@~{a}o. A opç@~{a}o @var{xlabel} pode ser usada para fornecer um @'{o}tulo para o
113 eixo horizontal; se aquela opç@~{a}o n@~{a}o for usada, o eixo horizontal ir@'{a}
114 ser rotulado com o nome da vari@'{a}vel especificada em @var{x_range}, ou
115 com a express@~{a}o @var{x_expr} no caso de apenas uma express@~{a}o
116 param@'{e}trica, ou isso ir@'{a} ser deichado em branco de outra forma.
118 Um r@'{o}tulo para o eixo vertical pode ser fornecido com a opç@~{a}o
119 @var{ylabel}. Se existir somente uma express@~{a}o a ser montado o gr@'{a}fico e a
120 opç@~{a}o @var{ylabel} n@~{a}o tiver sido usada, o eixo vertical ir@'{a} ser rotulado com
121 aquela express@~{a}o, a menos que ela seja muito larga, ou com a express@~{a}o
122 @var{y_expr} se a express@~{a}o for param@'{e}trica, ou com o texto
123 ``discrete data'' se a express@~{a}o for discreta.
125 As opç@~{o}es @code{[logx]} e @code{[logy]} n@~{a}o precisam de quaisquer
126 par@^{a}metros. Elas ir@~{a}o tornar os eixos horizontal e vertical sejam
127 escritos em escala logar@'{i}tmica.
129 Se houverem muitas express@~{o}es para serem montados os gr@'{a}ficos respectivos, uma legenda ir@'{a} ser
130 escrita para identificar cada uma das express@~{o}es. Os r@'{o}tulos que podem ser
131 usados naquela legenda podem ser fornecidos com a opç@~{a}o @var{legend}. Se a opç@~{a}o @var{legend}
132 n@~{a}o for usada, Maxima ir@'{a} criar r@'{o}tulos a partir das express@~{o}es.
134 Por padr@~{a}o, as express@~{o}es ter@~{a}o seus gr@'{a}ficos montados como um conjunto de segmentos de reta
135 saltando pontos adjacentes dentro de um conjunt de pontos que @'{e} um dos fornecidos entre
136 a forma @var{discrete}, ou calculado automaticamente a partir da express@~{a}o
137 fornecida, usando um algor@'{i}tmo que automaticamente adapta os passos entre
138 os pontos usando como uma estimativa inicial do total n@'{u}mero de pontos
139 o conjunto de valores com a opç@~{a}o @var{nticks}. A opç@~{a}o @var{style} pode ser
140 usada para fazer uma das express@~{o}es serem representadas como um conjunto de
141 pontos isolados, ou como pontos e segmentos de reta.
143 Existem muitas opç@~{o}es globais armazenadas na lsita @var{plot_options}
144 que pode ser modificada com a funç@~{a}o @code{set_plot_option}; qualque
145 daquelas opç@~{o}es globais pode ser sobrescrita com opç@~{o}es fornecidas no
146 comando @var{plot2d}.
148 Uma funç@~{a}o a ter seu gr@'{a}fico montado pode ser especificada como o nome de uma funç@~{a}o
149 do Maxima ou do Lisp ou um operador, uma express@~{a}o lambda do Maxima, ou uma express@~{a}o
150 geral do Maxima.  Se especificado como um nome ou uma express@~{a}o lambda, a
151 funç@~{a}o deve ser uma funç@~{a}o de um argumento.
153 @c PUT EXAMPLES FOR PRECEDING SIMPLE FORMS OF plot2d HERE
154 @b{Exemplos:}
156 Gr@'{a}ficos de funç@~{o}es comuns.
158 @c ===beg===
159 @c plot2d (sin(x), [x, -%pi, %pi])$
160 @c ===end===
161 @example
162 (%i1) plot2d (sin(x), [x, -%pi, %pi])$
163 @end example
165 @ifnotinfo
166 @image{@value{figuresfolder}/plotting6,8cm}
167 @end ifnotinfo
169 @c ===beg===
170 @c plot2d (sec(x), [x, -2, 2], [y, -20, 20])$
171 @c ===end===
172 @example
173 (%i1) plot2d (sec(x), [x, -2, 2], [y, -20, 20])$
174 @end example
176 @ifnotinfo
177 @image{@value{figuresfolder}/plotting7,8cm}
178 @end ifnotinfo
180 Montando gr@'{a}fico de funç@~{o}es pelo nome.
182 @c ===beg===
183 @c F(x) := x^2 $
184 @c :lisp (defun |$g| (x) (m* x x x))
185 @c H(x) := if x < 0 then x^4 - 1 else 1 - x^5 $
186 @c plot2d ([F, G, H], [u, -1, 1], [y, -1.5, 1.5])$
187 @c ===end===
188 @example
189 (%i1) F(x) := x^2 $
190 @group
191 (%i2) :lisp (defun |$g| (x) (m* x x x))
193 @end group
194 (%i2) H(x) := if x < 0 then x^4 - 1 else 1 - x^5 $
195 (%i3) plot2d ([F, G, H], [u, -1, 1], [y, -1.5, 1.5])$
196 @end example
198 @ifnotinfo
199 @image{@value{figuresfolder}/plotting10,8cm}
200 @end ifnotinfo
202 Podemos montar o gr@'{a}fico de um c@'{i}rculo usando um gr@'{a}fico param@'{e}trico com um par@^{a}metro
203 @var{t}. N@~{a}o @'{e} necess@'{a}rio fornecer um intervalo para intervalo horizontal,
204 uma vez que o intervalo do par@^{a}metro @var{t} determina o
205 dom@'{i}nio. Todavia, usaremos a opç@~{a}o 
206 @var{same_xy} para obter a mesma escala em ambos os eixos:
208 @c ===beg===
209 @c plot2d([[parametric, cos(t), sin(t), [t,0,2*%pi]], -abs(x)],
210 @c          [x, -sqrt(2), sqrt(2)], same_xy)$
211 @c ===end===
212 @example
213 @group
214 (%i1) plot2d([[parametric, cos(t), sin(t), [t,0,2*%pi]], -abs(x)],
215          [x, -sqrt(2), sqrt(2)], same_xy)$
216 @end group
217 @end example
219 @ifnotinfo
220 @image{@value{figuresfolder}/plotting12,8cm}
221 @end ifnotinfo
223 Exemplo de um gr@'{a}fico logar@'{i}tmico:
224 @c ===beg===
225 @c plot2d (exp(3*s), [s, -2, 2], logy)$
226 @c ===end===
227 @example
228 (%i1) plot2d (exp(3*s), [s, -2, 2], logy)$
229 @end example
231 @ifnotinfo
232 @image{@value{figuresfolder}/plotting9,8cm}
233 @end ifnotinfo
235 Exemplo de gr@'{a}fico discreto, definindo as coordenadas x e y por separado:
237 @c ===beg===
238 @c plot2d ([discrete, makelist(i*%pi, i, 1, 5),
239 @c                            [0.6, 0.9, 0.2, 1.3, 1]])$
240 @c ===end===
241 @example
242 (%i1) plot2d ([discrete, makelist(i*%pi, i, 1, 5),
243                             [0.6, 0.9, 0.2, 1.3, 1]])$
244 @end example
246 @ifnotinfo
247 @image{@value{figuresfolder}/plotting14,8cm}
248 @end ifnotinfo
250 O gr@'{a}fico de pontos pode ser mostrado juntamente com um gr@'{a}fico da
251 funç@~{a}o teor@'{e}tica/doutrin@'{a}ria/est@'{e}tica que prev@^{e} as coordenads dos pontos:
253 @c ===beg===
254 @c xy: [[10, .6], [20, .9], [30, 1.1], [40, 1.3], [50, 1.4]]$
255 @c plot2d([[discrete, xy], 2*%pi*sqrt(l/980)], [l,0,50],
256 @c         [style, points, lines], [color, red, blue],
257 @c         [point_type, asterisk],
258 @c         [legend, "experiment", "theory"],
259 @c         [xlabel, "pendulum's length (cm)"],
260 @c         [ylabel, "period (s)"])$
261 @c ===end===
262 @example
263 (%i1) xy: [[10, .6], [20, .9], [30, 1.1], [40, 1.3], [50, 1.4]]$
264 @group
265 (%i2) plot2d([[discrete, xy], 2*%pi*sqrt(l/980)], [l,0,50],
266         [style, points, lines], [color, red, blue],
267         [point_type, asterisk],
268         [legend, "experiment", "theory"],
269         [xlabel, "pendulum's length (cm)"],
270         [ylabel, "period (s)"])$
271 @end group
272 @end example
274 @ifnotinfo
275 @image{@value{figuresfolder}/plotting16,8cm}
276 @end ifnotinfo
278 Veja tamb@'{e}m @code{plot_options}, que descreve opç@~{o}es de montagem de gr@'{a}fico e tem mais exemplos.
280 @end deffn
283 @defvr {Vari@'{a}vel de sistema} plot_options
284 Elementos dessa lista estabelecem as opç@~{o}es padr@~{a}o para a montagem do gr@'{a}fico.
285 Se uma opç@~{a}o est@'{a} presente em uma chamada a @code{plot2d} ou @code{plot3d},
286 esse valor tem preced@^{e}ncia sobre a opç@~{a}o padr@~{a}o.
287 De outra forma, o valor em @code{plot_options} @'{e} usado.
288 Opç@~{o}es padr@~{a}o s@~{a}o atribu@'{i}das por @code{set_plot_option}.
290 Cada elemento de @code{plot_options} @'{e} uma lista de dois ou mais @'{i}tens.
291 O primeiro item @'{e} o nome de uma opç@~{a}o, e os restantes compreendem o valor ou valores
292 atribu@'{i}dos @`a opç@~{a}o.
293 Em alguns casos, o valor atribu@'{i}do @'{e} uma lista, que pode compreender muitos @'{i}tens.
295 As opç@~{o}es de montagem de gr@'{a}fico que s@~{a}o reconhecidas por @code{plot2d} e @code{plot3d} s@~{a}o as seguintes:
297 @itemize @bullet
298 @item
299 Opç@~{a}o: @code{plot_format}
301 Determina qual interface gr@'{a}fica @'{e} usada por @code{plot2d} e por
302 @code{plot3d}.
304 @itemize @bullet
305 @item
306 Valor: @code{gnuplot} padr@~{a}o para windows
308 Gnuplot @'{e} o mais avançado pacote de montagem de gr@'{a}ficos entre os pacotes
309 dispon@'{i}veis no Maxima. Esse valor requer uma instalaç@~{a}o externa do gnuplot.
310 @item
311 Valor: @code{gnuplot_pipes} padr@~{a}o nas plantaformas n@~{a}o windows
313 Similar ao formato @code{gnuplot} exceto que a comunicaç@~{a}o com o
314 gnuplot @'{e} realizada atrav@'{e}s de um pipe. Esse valor pode ser usado para montar um gr@'{a}fico na tela,
315 para redirecionar a sa@'{i}da do gr@'{a}fico para um arquivos @'{e} melhor usar o formato @code{gnuplot}.
316 @item
317 Valor: @code{mgnuplot}
319 Mgnuplot @'{e} um ambiente montado em volta do gnuplot baseado no Tk.  Esse ambiente est@'{a} inclu@'{i}do na
320 distribu@'{i}ç@~{a}o do Maxima.  Mgnuplot oferece uma GUI rudimentar para o gnuplot,
321 mas tem menos recursos em geral que a interface plana do
322 gnuplot.  Mgnuplot requer uma instalaç@~{a}o externa do gnuplot e
323 Tcl/Tk.
324 @item
325 Valor: @code{openmath}
327 Openmath @'{e} um programa gr@'{a}fico escrito em Tcl/Tk. Este formato @'{e} fornecido pelo pacote
328 Xmaxima, que @'{e} distribu@'{i}do junto com Maxima; com o objetivo de usar esse
329 formato voc@^{e} pode instalar o pacote Xmaxima, e o Openmath ir@'{a} trabalhar n@~{a}o somente
330 a partir do Xmaxima em si mesmo, mas tamb@'{e}m a apartir da linha de comando e outras GUI's para
331 o Maxima.
332 @end itemize
334 @item
335 Opç@~{a}o: @code{run_viewer}
337 Controla se o visualizador apropriado para o formato da montagem do gr@'{a}fico pode ou n@~{a}o
338 ser executado.
340 @itemize @bullet
341 @item
342 @c DOES FALSE IMPLY THE OUTPUT FILE IS GENERATED AND NOT SHOWN ?? OR IS NOTHING GENERATED ??
343 Valor padr@~{a}o: @code{true}
345 Executa o programa visualizador.
346 @item
347 Valor: @code{false}
349 N@~{a}o executa o programa visualizador.
350 @end itemize
352 @item
353 Opç@~{a}o: @code{y}
355 O intervalo vertical do gr@'{a}fico.
357 Exemplo:
359 @example
360 [y, - 3, 3]
361 @end example
362 Especifica intervalo vertical para [-3, 3].
364 @item
365 Opç@~{a}o: @code{plot_realpart}
367 Quando @code{plot_realpart} for @code{true},
368 a parte real de um valor complexo @var{x} @'{e} mostrada;
369 isso @'{e} equivalente a mostrar @code{realpart(@var{x})} em lugar de @var{x}.
370 De outra forma,
371 somente valores com a parte imagin@'{a}ria igual a 0 s@~{a}o mostrados na tela,
372 e valores complexos s@~{a}o ignorados.
374 Exemplo:
376 @example
377 plot2d (log(x), [x, -5, 5], [plot_realpart, false]);
378 plot2d (log(x), [x, -5, 5], [plot_realpart, true]);
379 @end example
380 O valor padr@~{a}o @'{e} @code{false}.
382 @item
383 Opç@~{a}o: @code{nticks}
385 Em plot2d, essa opç@~{a}o @'{e} fornece o n@'{u}mero inicial de pontos usado pela
386 rotina adaptativa de montagem de gr@'{a}ficos para funç@~{o}es de montagem de gr@'{a}fico. Ess n@'{u}mero inicial de pontos @'{e} tamb@'{e}m
387 o n@'{u}mero de pontos que isr@'{a} ser mostrado em um gr@'{a}fico param@'{e}trico.
389 Exemplo:
391 @example
392 [nticks, 20]
393 @end example
394 O padr@~{a}o para @code{nticks} @'{e} 10.
396 @item
397 Opç@~{a}o: @code{adapt_depth}
399 O n@'{u}mero maximo de quebras usada pela rotina adaptativa de montagem do gr@'{a}fico.
401 Exemplo:
403 @example
404 [adapt_depth, 5]
405 @end example
406 O padr@~{a}o para @code{adapt_depth} @'{e} 10.
408 @item
409 Opç@~{a}o: @code{xlabel}
411 O r@'{o}tulo para o eixo horizontal em um gr@'{a}fico bidimensional.
413 Exemplo:
414 @example
415 [xlabel, "Time in seconds"]
416 @end example
418 @item
419 Opç@~{a}o: @code{ylabel}
421 O r@'{o}tulo do eixo vertical em gr@'{a}ficos bidimensionais.
423 Exemplo:
424 @example
425 [ylabel, "Temperatura"]
426 @end example
428 @item
429 Opç@~{a}o: @code{logx}
431 Essa opç@~{a}o faz com que o eixo horizontal de um gr@'{a}fico bidimensional seja desenhado
432 em proporç@~{a}o logar@'{i}tmica. Essa opç@~{a}o n@~{a}o precisa de quaisquer par@^{a}metros adicionais.
434 @item
435 Opç@~{a}o: @code{logy}
437 Essa opç@~{a}o faz com que o eixo vertical de um gr@'{a}fico bidimensional seja desenhado
438 em proporç@~{a}o logar@'{i}tmica. Essa opç@~{a}o n@~{a}o precisa de quaisquer par@^{a}metros adicionais.
440 @item
441 Opç@~{a}o: @code{legend}
443 Os r@'{o}tulos para v@'{a}rias express@~{o}es em um gr@'{a}fico bidimensional com muitas
444 express@~{o}es. Se houverem mais express@~{o}es que o n@'{u}mero de r@'{o}tulos
445 fornecidos, eles ir@~{a}o ser repetidos. Por padr@~{a}o, os nomes das express@~{o}es
446 ou funç@~{o}e ir@~{a}o ser usados, ou as palavras discrete1, discrete2, ..., para
447 conjuntos discretos de pontos.
449 Exemplo:
450 @example
451 [legend, "Conj 1", "Conj 2", "Conj 3"]
452 @end example
454 @item
455 Opç@~{a}o: @code{style}
457 Os estilos que ir@~{a}o ser usados para v@'{a}rias funç@~{o}es ou conjuntos de dados
458 em um gr@'{a}fico bidimensional. A palavra @var{style} deve ser seguida por um ou mais
459 estilos. Se houverem mais funç@~{o}es e conjuntos de pontos que estilos
460 fornecidos, os estilos ir@~{a}o ser repetidos. Cada estilo pode ser um entre os seguintes
461 @var{lines} para segmentos de reta, @var{points} para pontos isolados,
462 @var{linespoints} para segmentos e pontos, ou @var{dots} para pequenos
463 pontos isolados. Gnuplot aceita tamb@'{e}m o estilo @var{impulses}.
465 Cada um dos estilos pode tamb@'{e}m ser fechado dentro de uma lista com alguns par@^{a}metros
466 adicionais. @var{lines} aceita um ou dois n@'{u}meros: a largura da
467 linha e um inteiro que identifica uma cor. @var{points} aceita um ou
468 dois par@^{a}metros; o primeiro par@^{a}metro @'{e} o raio dos pontos e
469 o segundo par@^{a}metro @'{e} um inteiro que para o Gnuplot seleciona diferentes
470 ajustes e cores para os ponots e em Openmath modifica a cor
471 usada para os pontos. @var{linesdots} aceita at@'{e} quatro par@^{a}metros;
472 os primerios dois possuem o mesmo significado que em @var{lines} e os @'{u}ltimos dois possuem o mesmo
473 significado que em @var{points}.
475 Exemplo:
476 @example
477 [style,[lines,2,3],[points,1,4]]
478 @end example
480 No Gnuplot, esse exemplo ir@'{a} montar o gr@'{a}fico da primeira (e terceira, quinta, etc)
481 express@~{a}o com segmentos de retas azuis de largura 2, ea segunda (e
482 quarta, sexta, etc) express@~{a}o com quadrados verdes de tamanho 1. No
483 Openmath, a primeira express@~{a}o ir@'{a} ser mostrada com segmentos da cor magenta de
484 largura 2, e o segundo com pontos alaranjados de raio 1; note que
485 openmath_color(3) openmath_color(4) retornam ``magenta'' e
486 ``orange'' (alaranjado).
488 O padr@~{a}o para a opç@~{a}o de estilo @'{e} @var{lines} com largura 1, e
489 diferentes cores.
491 @item
492 Opç@~{a}o: @code{grid}
494 Escolhe o n@'{u}mero de pontos da grade para usar nas direç@~{o}es x e y
495 para montagem de gr@'{a}ficos tridimensionais.
497 Exemplo:
498 @example
499 [grid, 50, 50]
500 @end example
501 Escolhe a grade para 50 por 50 pontos.  A grade padr@~{a}o @'{e} 30 por 30.
503 @item
504 Opç@~{a}o: @code{transform_xy}
506 Permite que transformaç@~{o}es sejam aplicadas @`a montagem de gr@'{a}ficos tridimensionais.
508 Exemplo:
509 @example
510 [transform_xy, false]
511 @end example
512 O valor padr@~{a}o de @code{transform_xy} @'{e} @code{false}.  Se o valor padr@~{a}o de @code{transform_xy} n@~{a}o @'{e} @code{false}, pode ser
513 a sa@'{i}da de
515 @example
516 make_transform ([x, y, z], f1(x, y, z), f2(x, y, z), f3(x, y, z))$
517 @end example
518 A transformaç@~{a}o @code{polar_xy} @'{e} previamente definida no Maxima.  Isso fornece a mesma
519 transformaç@~{a}o que
520 @example
521 make_transform ([r, th, z], r*cos(th), r*sin(th), z)$
522 @end example
523 @end itemize
525 @b{Opç@~{o}es do Gnuplot:}
527 Existem muitas opç@~{o}es de montagem de gr@'{a}fico espec@'{i}ficas para gnuplot.  Algumas dessas
528 opç@~{o}es s@~{a}o naturais do gnuplot, especificados como seq@"{u}@^{e}ncias de caracteres. Consulte a
529 documentaç@~{a}o do gnuplot para mais detalhes.
531 @itemize @bullet
532 @item
533 Opç@~{a}o: @code{gnuplot_term}
535 Escolhe a sa@'{i}da para o tipo terminal para o gnuplot.
536 @itemize @bullet
537 @item
538 Valor padr@~{a}o: @code{default}
540 A sa@'{i}da do Gnuplot @'{e} mostrada em uma janela gr@'{a}fica separada.
542 @item
543 Valor: @code{dumb}
545 A s@'{i}da do Gnuplot @'{e} mostrada no console do Maxima por meio de uma "concepç@~{a}o art@'{i}stica em ASCII" aproximada para gr@'{a}ficos.
547 @item
548 Valor: @code{ps}
550 Gnuplot gera comandos na linguagem PostScript de descriç@~{a}o de p@'{a}gina.
551 Se a opç@~{a}o
552 @code{gnuplot_out_file} for escolhida para @var{nomearquivo}, gnuplot escreve os comandos PostScript em @var{nomearquivo}.
553 De outra forma, Esse arquivo @'{e} salvo com o nome @code{maxplot.ps}.
555 @item
556 Valor: qualquer outra especificaç@~{a}o v@'{a}lida do terminal @code{term} do gnuplot
558 Gnuplot pode gerar sa@'{i}das em muitos outros formatos gr@'{a}ficos tais
559 como png, jpeg, svg etc.  Paa criar gr@'{a}ficos em todos esses formatos a opç@~{a}o
560 @code{gnuplot_term} pode ser escolhida para qualquer terminalsuportado pelo gnuplot (s@'{i}mbolo)
561 ou mesmo especificaç@~{a}o completa de terminal do gnuplot com quaisquer opç@~{o}es (seq@"{u}@^{e}ncia de caracteres).
562 Por exemplo @code{[gnuplot_term,png]} cria sa@'{i}das no formato PNG (Portable
563 +Network Graphics) enquanto @code{[gnuplot_term,"png size 1000,1000"]}
564 cria PNG de tamanho 1000x1000 pixels. 
565 Se a opç@~{a}o @code{gnuplot_out_file} for escolhida para @var{nomearquivo}, gnuplot 
566 escreve a sa@'{i}da para @var{nomearquivo}. De outra forma, esse arquivo @'{e} gravado com o nome de
567 @code{maxplot.@var{term}}, onde @var{term} @'{e} o nome do terminal do
568 gnuplot .
569 @end itemize
571 @item
572 Opç@~{a}o: @code{gnuplot_out_file}
574 Escreve a sa@'{i}da do gnuplot para um arquivo.
576 @itemize @bullet
577 @item
578 Valor padr@~{a}o: @code{false}
580 Nenhum arquivo de sa@'{i}da especificado.
581 @item
582 Valor: @var{nomearquivo}
584 Exemplo: @code{[gnuplot_out_file, "meugrafico.ps"]}
585 Esse exemplo envia a sa@'{i}da PostScript para o arquivo @code{meugrafico.ps} quando
586 usada conjuntamente com o terminal PostScript do gnuplot.
587 @c DOES OUTPUT FILE != FALSE IMPLY DON'T RUN THE VIEWER ??
588 @c WHAT HAPPENS IF OUTPUT FILE IS SPEFICIED BUT TERMINAL IS NOT PS ??
589 @end itemize
591 @item
592 Opç@~ao: @code{gnuplot_pm3d}
594 Controla o uso do modo PM3D, que tem recursos
595 avançados em 3D.  PM3D est@'{a} somente dispon@'{i}vel no gnuplot em vers@~{o}es ap@'{o}s a 3.7.  O
596 valor padr@~{a}o para @code{gnuplot_pm3d} @'{e} @code{false}.
598 Exemplo:
600 @example
601 [gnuplot_pm3d, true]
602 @end example
604 @item
605 Opç@~{a}o: @code{gnuplot_preamble} 
607 Insere comandos antes que o gr@'{a}fico seja
608 desenhado.  Quaisquer comandos v@'{a}lidos para o gnuplot podem ser usados.  Multiplos comandos
609 podem ser separados com um ponto e v@'{i}rgula.  O exemplo mostrado produz uma
610 escala num@'{e}rica na montagem do gr@'{a}fico.  O valor padr@~{a}o para @code{gnuplot_preamble} @'{e} uma seq@"{u}@^{e}ncia de caracteres vazia @code{""}.
612 Exemplo:
614 @example
615 [gnuplot_preamble, "set log y"]
616 @end example
618 @item
619 Opç@~{a}o: @code{gnuplot_curve_titles}
621 Controla os t@'{i}tulos dados na chave da montagem do gr@'{a}fico.  O
622 valor padr@~{a}o @'{e} @code{[default]}, que automaticamente escolhe o t@'{i}tulo de cada
623 curva para a funç@~{a}o cujo gr@'{a}fico est@'{a} sendo constru@'{i}do. Se n@~{a}o contiver @code{[default]}, @code{gnuplot_curve_titles}
624 pode conter uma lista de seq@"{u}@^{e}ncias de caracteres,
625 cada uma das quais @'{e} @code{"title '@var{title_string}'"}.
626 (Para disabilitar a chave de impress@~{a}o de gr@'{a}fico, adicione @code{"set nokey"} a @code{gnuplot_preamble}.)
628 Exemplo:
630 @example
631 [gnuplot_curve_titles,
632 ["title 'Minha primeira funç@~{a}o'", "title 'Minha segunda funç@~{a}o'"]]
633 @end example
635 @item
636 Opç@~{a}o: @code{gnuplot_curve_styles}
638 Uma lista de seq@"{u}@^{e}ncias de caracteres controlando a apar@^{e}ncia
639 das curvas, i.e., cor, largura, brilho, etc., para serem enviadas para o
640 comando de montagem do gr@'{a}fico do gnuplot.  O valor padr@~{a}o @'{e}
641 @code{["with lines 3", "with lines 1", "with lines 2", "with lines 5", "with lines 4", "with lines 6", "with lines 7"]}, que circula atrav@'{e}s de diferentes cores.  Veja a
642 documentaç@~{a}o do gnuplot de @code{plot} para maiores informaç@~{o}es.
644 Exemplo:
646 @example
647 [gnuplot_curve_styles, ["with lines 7", "with lines 2"]]
648 @end example
650 @item
651 Opç@~{a}o: @code{gnuplot_default_term_command}
653 O comando gnuplot para escolher o
654 tipo de terminal para o terminal padr@~{a}o. O valor padr@~{a}o @'{e} @code{set
655 term windows "Verdana" 15} em sistemas windows, e @code{set term x11
656 font "Helvetica,16"} em sistemas de janelas do X11.
658 Exemplo:
660 @example
661 [gnuplot_default_term_command, "set term x11"]
662 @end example
664 @item
665 Opç@~{a}o: @code{gnuplot_dumb_term_command}
667 O comando gnuplot para escolher o
668 tipo de terminal para o terminal dumb.  O valor padr@~{a}o @'{e} @code{"set term dumb 79 22"},
669 que faz a sa@'{i}da texto com 79 caracteres por 22
670 caracteres.
672 Exemplo:
674 @example
675 [gnuplot_dumb_term_command, "set term dumb 132 50"]
676 @end example
678 @item
679 Opç@~{a}o: @code{gnuplot_ps_term_command}
681 O comando gnuplot para escolher o tipo
682 de terminal para o terminal PostScript.  O valor padr@~{a}o @'{e} 
683 @code{"set size 1.5, 1.5;set term postscript eps enhanced color solid 24"},
684 que escolhe o
685 tamanho para 1.5 vezes o padr@~{a}o do gnuplot, e o tamanho da fonte para 24, al@'{e}m de
686 outras coisas.  Veja a documentaç@~{a}o do gnuplot de @code{set term postscript} para mais informaç@~{a}o.
688 Exemplo:
690 Todos os n@'{u}meros nos exemplos para a funç@~{a}o @var{plot2d} nesse
691 manual foram obtidos de arquivos Postscript que foram gerados ap@'{o}s
692 escolher @code{gnuplot_ps_term_command} como:
694 @example
695 [gnuplot_ps_term_command,
696 "set size 1.3, 1.3; set term postscript eps color solid lw 2.5 30"]
697 @end example
698 @end itemize
701 @end defvr
703 @deffn {Funç@~{a}o} plot3d ([@var{expr_1}, @var{expr_2}, @var{expr_3}], @var{x_range}, @var{y_range}, ..., @var{opç@~{o}es}, ...)
704 @deffnx {Funç@~{a}o} plot3d (@var{expr}, @var{x_range}, @var{y_range}, ..., @var{opç@~{o}es}, ...)
705 @deffnx {Funç@~{a}o} plot3d (@var{name}, @var{x_range}, @var{y_range}, ..., @var{opç@~{o}es}, ...)
706 @deffnx {Funç@~{a}o} plot3d ([@var{expr_1}, @var{expr_2}, @var{expr_3}], @var{x_rge}, @var{y_rge})
707 @deffnx {Funç@~{a}o} plot3d ([@var{nome_1}, @var{nome_2}, @var{nome_3}], @var{x_range}, @var{y_range}, ..., @var{opç@~{o}es}, ...)
709 Mostra um gr@'{a}fico de uma ou tr@^{e}s express@~{o}es como funç@~{o}es de duas vari@'{a}veis.
711 @c ===beg===
712 @c plot3d (u^2 - v^2, [u, -2, 2], [v, -3, 3], [grid, 100, 100],
713 @c         [mesh_lines_color,false])$
714 @c ===end===
715 @example
716 @group
717 (%i1) plot3d (u^2 - v^2, [u, -2, 2], [v, -3, 3], [grid, 100, 100],
718         [mesh_lines_color,false])$
719 @end group
720 @end example
722 @ifnotinfo
723 @image{@value{figuresfolder}/plotting17,8cm}
724 @end ifnotinfo
726 monta o gr@'{a}fico de @code{u^2-v^2} com @code{u} e @code{v} variando no intervalo fechado [-2,2] e
727 no intervalo fechado de [-3,3] respectivamente, e com @var{u} sobre o eixo x, e @code{v} sobre o eixo
730 Outro exemplo @'{e} uma superf@'{i}cie de Klein:
732 @c ===beg===
733 @c expr_1: 5*cos(x)*(cos(x/2)*cos(y)+sin(x/2)*sin(2*y)+3)-10$
734 @c expr_2: -5*sin(x)*(cos(x/2)*cos(y)+sin(x/2)*sin(2*y)+3)$
735 @c expr_3: 5*(-sin(x/2)*cos(y)+cos(x/2)*sin(2*y))$
736 @c plot3d ([expr_1, expr_2, expr_3], [x, -%pi, %pi],
737 @c         [y, -%pi, %pi], [grid, 50, 50])$
738 @c ===end===
739 @example
740 (%i1) expr_1: 5*cos(x)*(cos(x/2)*cos(y)+sin(x/2)*sin(2*y)+3)-10$
741 (%i2) expr_2: -5*sin(x)*(cos(x/2)*cos(y)+sin(x/2)*sin(2*y)+3)$
742 (%i3) expr_3: 5*(-sin(x/2)*cos(y)+cos(x/2)*sin(2*y))$
743 @group
744 (%i4) plot3d ([expr_1, expr_2, expr_3], [x, -%pi, %pi],
745         [y, -%pi, %pi], [grid, 50, 50])$
746 @end group
747 @end example
749 @ifnotinfo
750 @image{@value{figuresfolder}/plotting21,8cm}
751 @end ifnotinfo
753 Algumas vezes isso @'{e} necess@'{a}rio para definir uma funç@~{a}o para montar o graico da express@~{a}o. Todos
754 os argumentos para plot3d s@~{a}o avaliados antes de serem passados para plot3d. Tentar
755 fazer um express@~{a}o que faz apenas o que @'{e} preciso pode ser 
756 dif@'{i}cil e pode ser mais f@'{a}cil fazer uma funç@~{a}o.   
758 @c ===beg===
759 @c M: matrix([1,2,3,4], [1,2,3,2], [1,2,3,4], [1,2,3,3])$
760 @c f(x, y) := float('M [round(x), round(y)])$
761 @c plot3d (f(x,y), [x,1,4],[y,1,4],[grid,3,3],[legend,false])$
762 @c ===end===
763 @example
764 (%i1) M: matrix([1,2,3,4], [1,2,3,2], [1,2,3,4], [1,2,3,3])$
765 (%i2) f(x, y) := float('M [round(x), round(y)])$
766 @group
767 (%i3) plot3d (f(x,y), [x,1,4],[y,1,4],[grid,3,3],[legend,false])$
768 @end group
769 @end example
771 @ifnotinfo
772 @image{@value{figuresfolder}/plotting25,8cm}
773 @end ifnotinfo
775 Veja @code{plot_options} para mais exemplos.
777 @end deffn
779 @deffn {Funç@~{a}o}  make_transform (@var{vars}, @var{fx}, @var{fy}, @var{fz})
780 Retorna uma funç@~{a}o adequada para a funç@~{a}o transformaç@~{a}o em plot3d.  Use
781 com a opç@~{a}o de montagem de gr@'{a}fico @code{transform_xy}.
782 @example
783 make_transform ([r, th, z], r*cos(th), r*sin(th), z)$
784 @end example
785 @'{e} uma transformaç@~{a}o para coordenadas polares.
786 @end deffn
788 @deffn {Funç@~{a}o}  set_plot_option (@var{opç@~{a}o})
789 Atribui uma das var@'{a}veis globais para impress@~{a}o.
790 @var{opç@~{a}o} @'{e} especificada como uma lista de dois ou mais elementos,
791 na qual o primeiro elemento @'{e} uma das palavras chave
792 dentro da lista @code{plot_options}.
794 @code{set_plot_option} avalia seu argumento e
795 retorna a liasta completa @code{plot_options}
796 (ap@'{o}s modificar um de seus elementos).
798 Veja tamb@'{e}m @code{plot_options}, @code{plot2d}, e @code{plot3d}.
800 Exemplos:
802 Modifica a malha (@code{grid}) e valores de @code{x}.
803 Quando uma palavra chave em @code{plot_options} tem um valor atribu@'{i}do,
804 colocar um ap@'{o}strofo evita avaliaç@~{a}o.
806 @c ===beg===
807 @c set_plot_option ([grid, 30, 40]);
808 @c x: 42;
809 @c set_plot_option (['x, -100, 100]);
810 @c ===end===
812 @example
813 (%i1) set_plot_option ([grid, 30, 40]);
814 (%o1) [[x, - 1.755559702014E+305, 1.755559702014E+305], 
815 [y, - 1.755559702014E+305, 1.755559702014E+305], [t, - 3, 3], 
816 [grid, 30, 40], [transform_xy, false], [run_viewer, true], 
817 [plot_format, gnuplot], [gnuplot_term, default], 
818 [gnuplot_out_file, false], [nticks, 10], [adapt_depth, 10], 
819 [gnuplot_pm3d, false], [gnuplot_preamble, ], 
820 [gnuplot_curve_titles, [default]], 
821 [gnuplot_curve_styles, [with lines 3, with lines 1, 
822 with lines 2, with lines 5, with lines 4, with lines 6, 
823 with lines 7]], [gnuplot_default_term_command, ], 
824 [gnuplot_dumb_term_command, set term dumb 79 22], 
825 [gnuplot_ps_term_command, set size 1.5, 1.5;set term postscript #
826 eps enhanced color solid 24]]
827 (%i2) x: 42;
828 (%o2)                          42
829 (%i3) set_plot_option (['x, -100, 100]);
830 (%o3) [[x, - 100.0, 100.0], [y, - 1.755559702014E+305, 
831 1.755559702014E+305], [t, - 3, 3], [grid, 30, 40], 
832 [transform_xy, false], [run_viewer, true], 
833 [plot_format, gnuplot], [gnuplot_term, default], 
834 [gnuplot_out_file, false], [nticks, 10], [adapt_depth, 10], 
835 [gnuplot_pm3d, false], [gnuplot_preamble, ], 
836 [gnuplot_curve_titles, [default]], 
837 [gnuplot_curve_styles, [with lines 3, with lines 1, 
838 with lines 2, with lines 5, with lines 4, with lines 6, 
839 with lines 7]], [gnuplot_default_term_command, ], 
840 [gnuplot_dumb_term_command, set term dumb 79 22], 
841 [gnuplot_ps_term_command, set size 1.5, 1.5;set term postscript #
842 eps enhanced color solid 24]]
843 @end example
845 @end deffn
847 @subsection Funç@~{o}es para trabalhar com o formato @code{gnuplot_pipes}
849 @deffn {Funç@~{a}o} gnuplot_start ()
851 Abre o pipe para o gnuplot usado para montar um gr@'{a}fico com o formato
852 @code{gnuplot_pipes}. N@~{a}o @'{e} necess@'{a}rio abrir manualmente o
853 pipe antes de montar o gr@'{a}fico.
855 @end deffn
857 @deffn {Funç@~{a}o} gnuplot_close ()
859 Fecha o pipe para o gnuplot que est@'{a} sendo usado com o formato 
860 @code{gnuplot_pipes}.
862 @end deffn
864 @deffn {Funç@~{a}o} gnuplot_restart ()
866 Fecha o pipe para o gnuplot que @'{e} usado com o formato 
867 @code{gnuplot_pipes} e abre um novo pipe.
869 @end deffn
871 @deffn {Funç@~{a}o} gnuplot_replot ()
872 @deffnx {Funç@~{a}o} gnuplot_replot (@var{s})
874 Atualiza a janela gr@'{a}fica do gnuplot. Se @code{gnuplot_replot} for chamado com um
875 comando gnuplot em uma seq@"{u}@^{e}ncia de caracteres @var{s}, ent@~{a}o @code{s} @'{e} enviado para o gnuplot
876 antes de atualizar a janela.
878 @end deffn
880 @deffn {Funç@~{a}o} gnuplot_reset ()
882 Restaura o estado inicial padr@~{a}o do gnuplot usado com o formato
883 @code{gnuplot_pipes}. Para atualizar a janela do gnuplot chama @code{gnuplot_replot} ap@'{o}s
884 @code{gnuplot_reset}.
886 @end deffn