Update docs to match implementation of $build_and_dump_html_index
[maxima.git] / doc / info / pt_BR / Plotting.texi
blob9c886d1e699b0bf87f955cbe59d8968c0621178f
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ções e Variáveis Definidas para Montagem de Gráficos::    
8 @end menu
10 @node Funções e Variáveis Definidas para Montagem de Gráficos,  , Montando Gráficos, Montando Gráficos
11 @section Funções e Variáveis Definidas para Montagem de Gráficos
13 @deffn {Função} contour_plot (@var{expr}, @var{x_range}, @var{y_range}, @var{opções}, ...)
15 Monta gráficos de contorno (curvas de nível) de @var{expr}
16 sobre a região @var{x_range} por @var{y_range}.
17 Quaisquer argumentos adicionals são tratados da mesma forma que em @code{plot3d}.
19 @code{contour_plot} somente trabalha quando o formato do gráfico for @code{gnuplot} ou @code{gnuplot_pipes}.
21 Veja també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ável} in_netmath
59 Valor padrão: @code{false}
61 Quando @code{in_netmath} é @code{true},
62 @code{plot3d} imprime uma saída OpenMath para o console se @code{plot_format} é @code{openmath};
63 caso contrário @code{in_netmath} (mesmo se @code{true}) não tem efeito.
64 @code{in_netmath} não tem efeito sobre @code{plot2d}.
66 @end defvr
68 @deffn {Função} plot2d (@var{expr}, @var{x_range}, ..., @var{opções}, ...)
69 @deffnx {Função} plot2d ([@var{expr_1}, ..., @var{expr_n}], ..., @var{opções}, ...)
70 @deffnx {Função} plot2d ([@var{expr_1}, ..., @var{expr_n}], @var{x_range},..., @var{opções}, ...)
72 onde @var{expr}, @var{expr_1}, ..., @var{expr_n} pode ser uma entre
73 expressões, ou funçõ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áfico de uma ou mais expressões como uma função de uma
80 variável.
82 @code{plot2d} monta o gráfico da expressão @var{expr} ou muitas expressões
83 @code{[@var{name_1}, ..., @var{name_n}]}. As expressões que não forem
84 paramétricas ou discretas podem todas depender somente de uma
85 variável @var{var} e isso torna obrigatório o uso de @var{x_range} para
86 nome daquela variável e fornece seus valores de máximo e de mínimo, usando a
87 sintaxe: @code{[@var{variable}, @var{min}, @var{max}]}. O gráfico irá
88 mostrar o eixo horizontal associado aos valores de @var{min} e de @var{max}.
90 Uma expressão a ser montado o gráfico pode também ser fornecida na forma discreta ou
91 na forma paramé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ã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õ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ões devem depender somente do parâmetro
100 @var{param}, e o gráfico irá 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ão é obrigatório. É somente mais uma das
105 opções para o comando, com a sintaxe: @code{[y, @var{min},
106 @var{max}]}. Se aquela opção for usada, o gráfico irá mostrar aquele intervalo
107 completo, mesmo se a expressão não ocupe todo aquele intervalo. De outra forma,
108 se um intervalo vertical não for especificado através de @code{set_plot_option}, as
109 extremidade do eixo vertical serão encontrada automaticamente.
111 Todas as outras opções podem também serem listas, iniciando-se com o nome da
112 opção. A opção @var{xlabel} pode ser usada para fornecer um ótulo para o
113 eixo horizontal; se aquela opção não for usada, o eixo horizontal irá
114 ser rotulado com o nome da variável especificada em @var{x_range}, ou
115 com a expressão @var{x_expr} no caso de apenas uma expressão
116 paramétrica, ou isso irá ser deichado em branco de outra forma.
118 Um rótulo para o eixo vertical pode ser fornecido com a opção
119 @var{ylabel}. Se existir somente uma expressão a ser montado o gráfico e a
120 opção @var{ylabel} não tiver sido usada, o eixo vertical irá ser rotulado com
121 aquela expressão, a menos que ela seja muito larga, ou com a expressão
122 @var{y_expr} se a expressão for paramétrica, ou com o texto
123 ``discrete data'' se a expressão for discreta.
125 As opções @code{[logx]} e @code{[logy]} não precisam de quaisquer
126 parâmetros. Elas irão tornar os eixos horizontal e vertical sejam
127 escritos em escala logarítmica.
129 Se houverem muitas expressões para serem montados os gráficos respectivos, uma legenda irá ser
130 escrita para identificar cada uma das expressões. Os rótulos que podem ser
131 usados naquela legenda podem ser fornecidos com a opção @var{legend}. Se a opção @var{legend}
132 não for usada, Maxima irá criar rótulos a partir das expressões.
134 Por padrão, as expressões terão seus gráficos montados como um conjunto de segmentos de reta
135 saltando pontos adjacentes dentro de um conjunt de pontos que é um dos fornecidos entre
136 a forma @var{discrete}, ou calculado automaticamente a partir da expressão
137 fornecida, usando um algorítmo que automaticamente adapta os passos entre
138 os pontos usando como uma estimativa inicial do total número de pontos
139 o conjunto de valores com a opção @var{nticks}. A opção @var{style} pode ser
140 usada para fazer uma das expressões serem representadas como um conjunto de
141 pontos isolados, ou como pontos e segmentos de reta.
143 Existem muitas opções globais armazenadas na lsita @var{plot_options}
144 que pode ser modificada com a função @code{set_plot_option}; qualque
145 daquelas opções globais pode ser sobrescrita com opções fornecidas no
146 comando @var{plot2d}.
148 Uma função a ter seu gráfico montado pode ser especificada como o nome de uma função
149 do Maxima ou do Lisp ou um operador, uma expressão lambda do Maxima, ou uma expressão
150 geral do Maxima.  Se especificado como um nome ou uma expressão lambda, a
151 função deve ser uma função de um argumento.
153 @c PUT EXAMPLES FOR PRECEDING SIMPLE FORMS OF plot2d HERE
154 @b{Exemplos:}
156 Gráficos de funçõ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áfico de funçõ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áfico de um círculo usando um gráfico paramétrico com um parâmetro
203 @var{t}. Não é necessário fornecer um intervalo para intervalo horizontal,
204 uma vez que o intervalo do parâmetro @var{t} determina o
205 domínio. Todavia, usaremos a opçã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áfico logarí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á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áfico de pontos pode ser mostrado juntamente com um gráfico da
251 função teorética/doutrinária/estética que prevê 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ém @code{plot_options}, que descreve opções de montagem de gráfico e tem mais exemplos.
280 @end deffn
283 @defvr {Variável de sistema} plot_options
284 Elementos dessa lista estabelecem as opções padrão para a montagem do gráfico.
285 Se uma opção está presente em uma chamada a @code{plot2d} ou @code{plot3d},
286 esse valor tem precedência sobre a opção padrão.
287 De outra forma, o valor em @code{plot_options} é usado.
288 Opções padrão são atribuídas por @code{set_plot_option}.
290 Cada elemento de @code{plot_options} é uma lista de dois ou mais ítens.
291 O primeiro item é o nome de uma opção, e os restantes compreendem o valor ou valores
292 atribuídos à opção.
293 Em alguns casos, o valor atribuído é uma lista, que pode compreender muitos ítens.
295 As opções de montagem de gráfico que são reconhecidas por @code{plot2d} e @code{plot3d} são as seguintes:
297 @itemize @bullet
298 @item
299 Opção: @code{plot_format}
301 Determina qual interface gráfica é usada por @code{plot2d} e por
302 @code{plot3d}.
304 @itemize @bullet
305 @item
306 Valor: @code{gnuplot} padrão para windows
308 Gnuplot é o mais avançado pacote de montagem de gráficos entre os pacotes
309 disponíveis no Maxima. Esse valor requer uma instalação externa do gnuplot.
310 @item
311 Valor: @code{gnuplot_pipes} padrão nas plantaformas não windows
313 Similar ao formato @code{gnuplot} exceto que a comunicação com o
314 gnuplot é realizada através de um pipe. Esse valor pode ser usado para montar um gráfico na tela,
315 para redirecionar a saída do gráfico para um arquivos é melhor usar o formato @code{gnuplot}.
316 @item
317 Valor: @code{mgnuplot}
319 Mgnuplot é um ambiente montado em volta do gnuplot baseado no Tk.  Esse ambiente está incluído na
320 distribuíçã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ção externa do gnuplot e
323 Tcl/Tk.
324 @item
325 Valor: @code{openmath}
327 Openmath é um programa gráfico escrito em Tcl/Tk. Este formato é fornecido pelo pacote
328 Xmaxima, que é distribuído junto com Maxima; com o objetivo de usar esse
329 formato você pode instalar o pacote Xmaxima, e o Openmath irá trabalhar não somente
330 a partir do Xmaxima em si mesmo, mas também a apartir da linha de comando e outras GUI's para
331 o Maxima.
332 @end itemize
334 @item
335 Opção: @code{run_viewer}
337 Controla se o visualizador apropriado para o formato da montagem do gráfico pode ou nã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ão: @code{true}
345 Executa o programa visualizador.
346 @item
347 Valor: @code{false}
349 Não executa o programa visualizador.
350 @end itemize
352 @item
353 Opção: @code{y}
355 O intervalo vertical do gráfico.
357 Exemplo:
359 @example
360 [y, - 3, 3]
361 @end example
362 Especifica intervalo vertical para [-3, 3].
364 @item
365 Opção: @code{plot_realpart}
367 Quando @code{plot_realpart} for @code{true},
368 a parte real de um valor complexo @var{x} é mostrada;
369 isso é equivalente a mostrar @code{realpart(@var{x})} em lugar de @var{x}.
370 De outra forma,
371 somente valores com a parte imaginária igual a 0 são mostrados na tela,
372 e valores complexos sã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ão é @code{false}.
382 @item
383 Opção: @code{nticks}
385 Em plot2d, essa opção é fornece o número inicial de pontos usado pela
386 rotina adaptativa de montagem de gráficos para funções de montagem de gráfico. Ess número inicial de pontos é também
387 o número de pontos que isrá ser mostrado em um gráfico paramétrico.
389 Exemplo:
391 @example
392 [nticks, 20]
393 @end example
394 O padrão para @code{nticks} é 10.
396 @item
397 Opção: @code{adapt_depth}
399 O número maximo de quebras usada pela rotina adaptativa de montagem do gráfico.
401 Exemplo:
403 @example
404 [adapt_depth, 5]
405 @end example
406 O padrão para @code{adapt_depth} é 10.
408 @item
409 Opção: @code{xlabel}
411 O rótulo para o eixo horizontal em um gráfico bidimensional.
413 Exemplo:
414 @example
415 [xlabel, "Time in seconds"]
416 @end example
418 @item
419 Opção: @code{ylabel}
421 O rótulo do eixo vertical em gráficos bidimensionais.
423 Exemplo:
424 @example
425 [ylabel, "Temperatura"]
426 @end example
428 @item
429 Opção: @code{logx}
431 Essa opção faz com que o eixo horizontal de um gráfico bidimensional seja desenhado
432 em proporção logarítmica. Essa opção não precisa de quaisquer parâmetros adicionais.
434 @item
435 Opção: @code{logy}
437 Essa opção faz com que o eixo vertical de um gráfico bidimensional seja desenhado
438 em proporção logarítmica. Essa opção não precisa de quaisquer parâmetros adicionais.
440 @item
441 Opção: @code{legend}
443 Os rótulos para várias expressões em um gráfico bidimensional com muitas
444 expressões. Se houverem mais expressões que o número de rótulos
445 fornecidos, eles irão ser repetidos. Por padrão, os nomes das expressões
446 ou funçõe irã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ção: @code{style}
457 Os estilos que irão ser usados para várias funções ou conjuntos de dados
458 em um gráfico bidimensional. A palavra @var{style} deve ser seguida por um ou mais
459 estilos. Se houverem mais funções e conjuntos de pontos que estilos
460 fornecidos, os estilos irã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ém o estilo @var{impulses}.
465 Cada um dos estilos pode também ser fechado dentro de uma lista com alguns parâmetros
466 adicionais. @var{lines} aceita um ou dois números: a largura da
467 linha e um inteiro que identifica uma cor. @var{points} aceita um ou
468 dois parâmetros; o primeiro parâmetro é o raio dos pontos e
469 o segundo parâmetro é 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é quatro parâmetros;
472 os primerios dois possuem o mesmo significado que em @var{lines} e os ú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á montar o gráfico da primeira (e terceira, quinta, etc)
481 expressão com segmentos de retas azuis de largura 2, ea segunda (e
482 quarta, sexta, etc) expressão com quadrados verdes de tamanho 1. No
483 Openmath, a primeira expressão irá 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ão para a opção de estilo é @var{lines} com largura 1, e
489 diferentes cores.
491 @item
492 Opção: @code{grid}
494 Escolhe o número de pontos da grade para usar nas direções x e y
495 para montagem de grá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ão é 30 por 30.
503 @item
504 Opção: @code{transform_xy}
506 Permite que transformações sejam aplicadas à montagem de gráficos tridimensionais.
508 Exemplo:
509 @example
510 [transform_xy, false]
511 @end example
512 O valor padrão de @code{transform_xy} é @code{false}.  Se o valor padrão de @code{transform_xy} não é @code{false}, pode ser
513 a saí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ção @code{polar_xy} é previamente definida no Maxima.  Isso fornece a mesma
519 transformaçã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ções do Gnuplot:}
527 Existem muitas opções de montagem de gráfico específicas para gnuplot.  Algumas dessas
528 opções são naturais do gnuplot, especificados como seq@"{u}ências de caracteres. Consulte a
529 documentação do gnuplot para mais detalhes.
531 @itemize @bullet
532 @item
533 Opção: @code{gnuplot_term}
535 Escolhe a saída para o tipo terminal para o gnuplot.
536 @itemize @bullet
537 @item
538 Valor padrão: @code{default}
540 A saída do Gnuplot é mostrada em uma janela gráfica separada.
542 @item
543 Valor: @code{dumb}
545 A sída do Gnuplot é mostrada no console do Maxima por meio de uma "concepção artística em ASCII" aproximada para gráficos.
547 @item
548 Valor: @code{ps}
550 Gnuplot gera comandos na linguagem PostScript de descrição de página.
551 Se a opçã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 é salvo com o nome @code{maxplot.ps}.
555 @item
556 Valor: qualquer outra especificação válida do terminal @code{term} do gnuplot
558 Gnuplot pode gerar saídas em muitos outros formatos gráficos tais
559 como png, jpeg, svg etc.  Paa criar gráficos em todos esses formatos a opção
560 @code{gnuplot_term} pode ser escolhida para qualquer terminalsuportado pelo gnuplot (símbolo)
561 ou mesmo especificação completa de terminal do gnuplot com quaisquer opções (seq@"{u}ência de caracteres).
562 Por exemplo @code{[gnuplot_term,png]} cria saí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ção @code{gnuplot_out_file} for escolhida para @var{nomearquivo}, gnuplot 
566 escreve a saída para @var{nomearquivo}. De outra forma, esse arquivo é gravado com o nome de
567 @code{maxplot.@var{term}}, onde @var{term} é o nome do terminal do
568 gnuplot .
569 @end itemize
571 @item
572 Opção: @code{gnuplot_out_file}
574 Escreve a saída do gnuplot para um arquivo.
576 @itemize @bullet
577 @item
578 Valor padrão: @code{false}
580 Nenhum arquivo de saída especificado.
581 @item
582 Valor: @var{nomearquivo}
584 Exemplo: @code{[gnuplot_out_file, "meugrafico.ps"]}
585 Esse exemplo envia a saí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ção: @code{gnuplot_pm3d}
594 Controla o uso do modo PM3D, que tem recursos
595 avançados em 3D.  PM3D está somente disponível no gnuplot em versões após a 3.7.  O
596 valor padrão para @code{gnuplot_pm3d} é @code{false}.
598 Exemplo:
600 @example
601 [gnuplot_pm3d, true]
602 @end example
604 @item
605 Opção: @code{gnuplot_preamble} 
607 Insere comandos antes que o gráfico seja
608 desenhado.  Quaisquer comandos válidos para o gnuplot podem ser usados.  Multiplos comandos
609 podem ser separados com um ponto e vírgula.  O exemplo mostrado produz uma
610 escala numérica na montagem do gráfico.  O valor padrão para @code{gnuplot_preamble} é uma seq@"{u}ência de caracteres vazia @code{""}.
612 Exemplo:
614 @example
615 [gnuplot_preamble, "set log y"]
616 @end example
618 @item
619 Opção: @code{gnuplot_curve_titles}
621 Controla os títulos dados na chave da montagem do gráfico.  O
622 valor padrão é @code{[default]}, que automaticamente escolhe o título de cada
623 curva para a função cujo gráfico está sendo construído. Se não contiver @code{[default]}, @code{gnuplot_curve_titles}
624 pode conter uma lista de seq@"{u}ências de caracteres,
625 cada uma das quais é @code{"title '@var{title_string}'"}.
626 (Para disabilitar a chave de impressão de gráfico, adicione @code{"set nokey"} a @code{gnuplot_preamble}.)
628 Exemplo:
630 @example
631 [gnuplot_curve_titles,
632 ["title 'Minha primeira função'", "title 'Minha segunda função'"]]
633 @end example
635 @item
636 Opção: @code{gnuplot_curve_styles}
638 Uma lista de seq@"{u}ências de caracteres controlando a aparência
639 das curvas, i.e., cor, largura, brilho, etc., para serem enviadas para o
640 comando de montagem do gráfico do gnuplot.  O valor padrão é
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és de diferentes cores.  Veja a
642 documentação do gnuplot de @code{plot} para maiores informações.
644 Exemplo:
646 @example
647 [gnuplot_curve_styles, ["with lines 7", "with lines 2"]]
648 @end example
650 @item
651 Opção: @code{gnuplot_default_term_command}
653 O comando gnuplot para escolher o
654 tipo de terminal para o terminal padrão. O valor padrão é @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ção: @code{gnuplot_dumb_term_command}
667 O comando gnuplot para escolher o
668 tipo de terminal para o terminal dumb.  O valor padrão é @code{"set term dumb 79 22"},
669 que faz a saí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ção: @code{gnuplot_ps_term_command}
681 O comando gnuplot para escolher o tipo
682 de terminal para o terminal PostScript.  O valor padrão é 
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ão do gnuplot, e o tamanho da fonte para 24, além de
686 outras coisas.  Veja a documentação do gnuplot de @code{set term postscript} para mais informação.
688 Exemplo:
690 Todos os números nos exemplos para a função @var{plot2d} nesse
691 manual foram obtidos de arquivos Postscript que foram gerados apó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ção} plot3d ([@var{expr_1}, @var{expr_2}, @var{expr_3}], @var{x_range}, @var{y_range}, ..., @var{opções}, ...)
704 @deffnx {Função} plot3d (@var{expr}, @var{x_range}, @var{y_range}, ..., @var{opções}, ...)
705 @deffnx {Função} plot3d (@var{name}, @var{x_range}, @var{y_range}, ..., @var{opções}, ...)
706 @deffnx {Função} plot3d ([@var{expr_1}, @var{expr_2}, @var{expr_3}], @var{x_rge}, @var{y_rge})
707 @deffnx {Função} plot3d ([@var{nome_1}, @var{nome_2}, @var{nome_3}], @var{x_range}, @var{y_range}, ..., @var{opções}, ...)
709 Mostra um gráfico de uma ou três expressões como funções de duas variá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á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 é uma superfí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 é necessário para definir uma função para montar o graico da expressão. Todos
754 os argumentos para plot3d são avaliados antes de serem passados para plot3d. Tentar
755 fazer um expressão que faz apenas o que é preciso pode ser 
756 difícil e pode ser mais fácil fazer uma funçã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ção}  make_transform (@var{vars}, @var{fx}, @var{fy}, @var{fz})
780 Retorna uma função adequada para a função transformação em plot3d.  Use
781 com a opção de montagem de gráfico @code{transform_xy}.
782 @example
783 make_transform ([r, th, z], r*cos(th), r*sin(th), z)$
784 @end example
785 é uma transformação para coordenadas polares.
786 @end deffn
788 @deffn {Função}  set_plot_option (@var{opção})
789 Atribui uma das varáveis globais para impressão.
790 @var{opção} é especificada como uma lista de dois ou mais elementos,
791 na qual o primeiro elemento é 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ós modificar um de seus elementos).
798 Veja també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ído,
804 colocar um apóstrofo evita avaliaçã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ções para trabalhar com o formato @code{gnuplot_pipes}
849 @deffn {Função} gnuplot_start ()
851 Abre o pipe para o gnuplot usado para montar um gráfico com o formato
852 @code{gnuplot_pipes}. Não é necessário abrir manualmente o
853 pipe antes de montar o gráfico.
855 @end deffn
857 @deffn {Função} gnuplot_close ()
859 Fecha o pipe para o gnuplot que está sendo usado com o formato 
860 @code{gnuplot_pipes}.
862 @end deffn
864 @deffn {Função} gnuplot_restart ()
866 Fecha o pipe para o gnuplot que é usado com o formato 
867 @code{gnuplot_pipes} e abre um novo pipe.
869 @end deffn
871 @deffn {Função} gnuplot_replot ()
872 @deffnx {Função} gnuplot_replot (@var{s})
874 Atualiza a janela gráfica do gnuplot. Se @code{gnuplot_replot} for chamado com um
875 comando gnuplot em uma seq@"{u}ência de caracteres @var{s}, então @code{s} é enviado para o gnuplot
876 antes de atualizar a janela.
878 @end deffn
880 @deffn {Função} gnuplot_reset ()
882 Restaura o estado inicial padrão do gnuplot usado com o formato
883 @code{gnuplot_pipes}. Para atualizar a janela do gnuplot chama @code{gnuplot_replot} após
884 @code{gnuplot_reset}.
886 @end deffn