1 @c Language: Portuguese
2 @c source: Plotting.texi (en) 1.36
4 * Definições para Criação de Gráficos::
7 @node Definições para Criação de Gráficos, , Criação de Gráficos, Criação de Gráficos
8 @section Definições para Criação de Gráficos
10 @c INSPECTING src/plot.lisp AND TRYING SOME EXAMPLES,
11 @c IT APPEARS THAT in_netmath HAS NO EFFECT ON plot2d
12 @c AND ONLY EFFECT ON plot3d IS TO CAUSE OPENMATH OUTPUT TO BE WRITTEN TO CONSOLE
13 @c WHEN [plot_format, openmath] IS SET.
14 @c NOT CONVINCED WE REALLY WANT TO DOCUMENT THIS VARIABLE
15 @defvr {Variável} in_netmath
16 Valor por omissão: @code{false}
18 Quando @code{in_netmath} é @code{true}, @code{plot3d} imprime uma
19 saída OpenMath para a consola se @code{plot_format} é
20 @code{openmath}; caso contrário @code{in_netmath} (mesmo se for
21 @code{true}) não tem efeito. @code{in_netmath} não tem efeito
26 @deffn {Função} plot2d (@var{expr}, @var{intervalo_x}, ..., @var{opções}, ...)
27 @deffnx {Função} plot2d ([@var{expr_1}, ..., @var{expr_n}], ..., @var{opções}, ...)
28 @deffnx {Função} plot2d ([@var{expr_1}, ..., @var{expr_n}], @var{intervalo_x},..., @var{opções}, ...)
30 Onde @var{expr}, @var{expr_1}, ..., @var{expr_n} podem ser
31 expressões, funções ou operadores do Maxima ou do Lisp, ou ainda
32 uma lista da forma @code{[discrete, [@var{x1}, ..., @var{xn}],
33 [@var{y1}, ..., @var{yn}]]}, @code{[discrete, [[@var{x1}, @var{y1}],
34 ..., [@var{xn}, ..., @var{yn}]]} ou @code{[parametric, @var{expr_x},
35 @var{expr_y}, @var{intervalo_t}]}.
37 Mostra o gráfico de uma ou mais expressões em função de uma
40 @code{plot2d} produz o gráfico de uma expressão @var{expr} ou de
41 várias expressões @code{[@var{expr_1}, ..., @var{expr_n}]}. As
42 expressões que não forem do tipo paramétrico ou discreto, deverão
43 depender todas de uma única variável @var{var} e será
44 obrigatório usar @var{intervalo_x} para indicar o nome dessa
45 variável, e os seus valores mínimo e máximo, usando a
46 sintaxe: @code{[@var{var}, @var{min}, @var{max}]}. O gráfico
47 mostrará o eixo horizontal delimitado pelos valores @var{min} e
50 Uma expressão a ser representada no gráfico pode ser dada também
51 na forma discreta, ou paramétrica. Nomeadamente, por meio de uma lista
52 a começar pela palavra ``discrete'' ou ``parametric''. A palavra
53 chave @var{discrete} deverá ir seguida por duas listas, ambas do mesmo
54 comprimento, que serão as coordenadas horizontais e verticais de um
55 conjunto de pontos; em alternativa, as coordenadas de cada ponto podem
56 ser colocadas numa lista de dois valores, e todas essas coordenadas
57 deverão estar dentro de outra lista. A palavra chave @var{parametric}
58 deverá ir seguida por duas expressões @var{expr_x} e @var{expr_y}, e
59 um intervalo @var{intervalo_t} da forma @code{[@var{param}, @var{min},
60 @var{max}]}. As duas expressões deverão depender unicamente no
61 parâmetro @var{param}, e o gráfico mostrará o percurso seguido
62 pelo ponto com coordenadas (@var{expr_x}, @var{expr_y}) à medida que
63 @var{param} aumenta desde @var{min} até @var{max}.
65 O intervalo de valores no eixo vertical não é obrigatório. É
66 mais uma das opções do comando, com a sintaxe: @code{[y,
67 @var{min}, @var{max}]}. Se essa opção for usada, o gráfico
68 apresentará esse intervalo completo, inclusivamente quando as
69 expressões não cheguem a atingir esses valores. De outra forma, se
70 não for indicado um intervalo no eixo vertical por meio de
71 @code{set_plot_option}, as fronteiras do eixo vertical serão
72 seleccionadas automaticamente.
74 Todas as outras opções deverão ser listas, a começar pelo
75 nome da opção. A opção @var{xlabel} pode ser usada para dar
76 um texto que identificará o eixo horizontal; se essa opção não for
77 usada, o eixo será identificado com o nome da variável indicada em
78 @var{intervalo_x}, ou com a expressão @var{expr_x}, se houver
79 unicamente uma expressão paramétrica, ou caso contrário ficará
82 O texto para identificar o eixo vertical pode ser indicado com a
83 opção @var{ylabel}. Se só houver uma única expressão a ser
84 representada, e a opção @var{ylabel} não tiver sido usada, o
85 eixo vertical será identificado com essa expressão, a menos que for
86 muito comprido, ou com a expressão @var{expr_y}, se a expressão for
87 paramétrica, ou com o texto ``discrete data'' se a expressão for
90 As opções @var{logx} e @var{logy} não precisam de quaisquer
91 paraâmetros. Fazem com que os eixos horizontal e vertical sejam
92 apresentados em forma logarítmica.
94 Se houver vá rias expressões a serem representadas, será escrita
95 uma legenda para identificar cada uma dessas expressões. O texto que
96 deverá ser usado nessa legenda pode ser indicado por meio da
97 opção @var{legend}. Se essa opção não for usada, Maxima
98 criará textos para identificar cada expressão.
100 Por omissão, as expressões dadas serão representadas por pequenos
101 segmentos de recta a ligarem pontos adjacentes num conjunto de pontos
102 que, ou é dado usando a forma @var{discrete}, ou é calculado
103 automaticamente a partir das expressões dadas, por meio de um
104 algoritmo com ajuste automático dos intervalos entre pontos, usando
105 como estimativa inicial do número de pontos o valor indicado pela
106 opção @var{nticks}. A opção @var{style} serve para fazer com
107 que alguma das expressões seja representada por pontos isolados ou por
108 pontos mais segmentos de recta.
110 Existem várias opções globais, armazenadas na lista
111 @var{plot_options}, quu podem ser modificadas usando a função
112 @code{set_plot_option}; qualquer uma dessad opções pode ser
113 contrariada pelos valores locais dados no comando @var{plot2d}.
115 Uma função a ser representada poderá ser identificada pelo nome
116 de uma função ou operador do Maxima ou do Lisp, por meio duma
117 expressão lambda do Maxima, ou como uma expressão geral do Maxima.
118 Se for especificada como um nome ou como expressão lambda, a
119 respectiva função deverá depender dum único argumento.
121 @c PUT EXAMPLES FOR PRECEDING SIMPLE FORMS OF plot2d HERE
124 Gráficos de funções ordinárias.
127 @c plot2d (sin(x), [x, -5, 5])$
128 @c plot2d (sec(x), [x, -2, 2], [y, -20, 20])$
131 (%i1) plot2d (sin(x), [x, -5, 5])$
133 (%i2) plot2d (sec(x), [x, -2, 2], [y, -20, 20])$
141 Gráfico de funções identificadas pelo seu nome.
145 @c :lisp (defun |$g| (x) (m* x x x))
146 @c H(x) := if x < 0 then x^4 - 1 else 1 - x^5 $
147 @c plot2d ([F, G, H], [u, -1, 1], [y, -1.5, 1.5])$
152 (%i4) :lisp (defun |$g| (x) (m* x x x))
155 (%i5) H(x) := if x < 0 then x^4 - 1 else 1 - x^5 $
157 (%i6) plot2d ([F, G, H], [u, -1, 1], [y, -1.5, 1.5])$
164 A curva ``borboleta'', definida paramétricamente:
167 @c r: (exp(cos(t))-2*cos(4*t)-sin(t/12)^5)$
168 @c plot2d([parametric, r*sin(t), r*cos(t), [t, -8*%pi, 8*%pi]])$
171 (%i1) r: (exp(cos(t))-2*cos(4*t)-sin(t/12)^5)$
172 (%i2) plot2d([parametric, r*sin(t), r*cos(t), [t, -8*%pi, 8*%pi]])$
179 Função -|x| e círculo por meio de um gráfico
180 paramétrico com um parâmetro @var{t}. Usa-se a opção
181 @var{same_xy} para obter a mesma escala nos dois eixos:
184 @c plot2d([[parametric, cos(t), sin(t), [t,0,2*%pi]], -abs(x)],
185 @c [x, -sqrt(2), sqrt(2)], same_xy)$
189 (%i1) plot2d([[parametric, cos(t), sin(t), [t,0,2*%pi]], -abs(x)],
190 [x, -sqrt(2), sqrt(2)], same_xy)$
198 Gráficos de um conjunto discreto de pontos, definindo as coordenadas
202 @c plot2d ([discrete, makelist(i*%pi, i, 1, 5),
203 @c [0.6, 0.9, 0.2, 1.3, 1]])$
206 (%i1) plot2d ([discrete, makelist(i*%pi, i, 1, 5),
207 [0.6, 0.9, 0.2, 1.3, 1]])$
214 O gráfico dos pontos dos dados pode ser apresentado junto com o
215 gráfico de uma função teórica que ajusta esses valores:
218 @c xy: [[10, .6], [20, .9], [30, 1.1], [40, 1.3], [50, 1.4]]$
219 @c plot2d([[discrete, xy], 2*%pi*sqrt(l/980)], [l,0,50],
220 @c [style, points, lines], [color, red, blue],
221 @c [point_type, asterisk],
222 @c [legend, "experiment", "theory"],
223 @c [xlabel, "pendulum's length (cm)"],
224 @c [ylabel, "period (s)"])$
227 (%i1) xy: [[10, .6], [20, .9], [30, 1.1], [40, 1.3], [50, 1.4]]$
229 (%i2) plot2d([[discrete, xy], 2*%pi*sqrt(l/980)], [l,0,50],
230 [style, points, lines], [color, red, blue],
231 [point_type, asterisk],
232 [legend, "experiment", "theory"],
233 [xlabel, "pendulum's length (cm)"],
234 [ylabel, "period (s)"])$
242 Veja também @code{plot_options}, que descreve as opções das
243 funções gráficas e mostra mais exemplos.
247 @defvr {Variável de sistema} plot_options
248 Os elementos desta lista estabelecem os valores por omissaão para as
249 opções usadas na elaboração de gráficos. Se uma
250 opção estiver presente numa chamada a @code{plot2d} ou
251 @code{plot3d}, esse valor terá precedência sobre o valor por
252 omissção. De outra forma, será usado o valor em
253 @code{plot_options}. Os valores por omissção das opções
254 podem ser modificados usando @code{set_plot_option}.
256 Cada elemento de @code{plot_options} é uma lista de dois ou mais
257 ítens. O primeiro item é o nome de uma opção, e
258 os restantes compreendem o valor ou valores atribuídos
259 à opção. Em alguns casos, o valor atribuído é
260 uma lista, que pode compreender muitos itens.
262 As opções globais que são reconhecidas por @code{plot2d} e
263 @code{plot3d} são as seguintes:
267 Opção: @code{plot_format}
269 Determina a interface gráfica que será usada por @code{plot2d} e
274 Valor por omissão: @code{gnuplot}
276 Gnuplot é o pcote gráfico mais avançado entre os
277 disponíveis no Maxima. Será preciso que o pacote externo
278 gnuplot esteja instalado.
280 Valor: @code{mgnuplot}
282 Mgnuplot é uma interface Tk para o gnuplot. Vem incluída
283 na distribuíção do Maxima. Mgnuplot oferece uma GUI
284 rudimentar para o gnuplot, mas tem menos recursos em geral que a
285 interface padrão do gnuplot. Mgnuplot precisa que os pacotes externos
286 gnuplot e Tcl/Tk estejam instalados.
288 Valor: @code{openmath}
290 Openmath é um programa gráfico escrito em Tcl/Tk. Este formato é
291 fornecido pelo pacote Xmaxima, que é distribuido com Maxima. Se quiser
292 usar este formato instalar o pacote Xmaxima, que funcionará não só
293 a partir do próprio Xmaxima mas também a partir da linha de comandos
294 de outras GUI para o Maxima.
299 Opção: @code{run_viewer}
301 Controla se será executado ou não o visualizador apropriado para o
306 @c DOES FALSE IMPLY THE OUTPUT FILE IS GENERATED AND NOT SHOWN ?? OR IS NOTHING GENERATED ??
307 Valor por omissão: @code{true}
309 Executa-se o programa visualizador.
313 Não se executa o programa visualizador.
319 O intervalo vertical do gráfico.
325 Faz com que o intervalo vertical seja [-3, 3].
328 Opção: @code{plot_realpart}
330 Quando @code{plot_realpart} for @code{true}, nos pontos onde o valor a
331 ser representado no eixo vertical for complexo, será apresentada a
332 sua parte real @var{x}; isso é equivalente a mostrar
333 @code{realpart(@var{x})} em lugar de @var{x}. De outra forma, somente
334 valores com a parte imaginária igual a 0 são mostrados no
335 gráfico, e os valores complexos serão ignorados.
339 plot2d (log(x), [x, -5, 5], [plot_realpart, false]);
340 plot2d (log(x), [x, -5, 5], [plot_realpart, true]);
342 O valor por omissão é @code{false}.
347 No plot2d, é o número de pontos usados, inicialmente, pela rotina
348 gráfica adaptativa. É também o número de pontos que serão
349 apresentados num gráfico paramétrico.
355 O valor por omissão para @code{nticks} é 10.
358 Opção: @code{adapt_depth}
360 O número maximo de subdivisões usadas pela rotina gráfica adaptativa.
366 O valor por omissão para @code{adapt_depth} é 10.
371 O texto que identifica o eixo horizontal num gráfico a 2d.
375 [xlabel, "Tempo em segundos"]
381 O texto que identifica o eixo vertical num gráfico a 2d.
386 [ylabel, "Temperatura"]
392 Faz com que o eixo horizontal num gráfico a 2d seja representado em
393 escala logarítmica. Não precisa de nenhum parâmetro
399 Faz com que o eixo vertical num gráfico a 2d seja representado em
400 escala logarítmica. Não precisa de nenhum parâmetro
406 Os textos para identificar as diversas expressões num gráfico a 2d
407 com muitas expressões. Se existirem mais expressões do que os textos
408 dados, serão repetidos. Por omissão, seraão usados os nomes das
409 expressões ou das funções, ou as palavras discrete1, discrete2,
410 ..., no caso de conjuntos discretos de pontos.
414 [legend, "Grupo 1", "Grupo 2", "Grupo 3"]
420 Os estilos que serão usados para as diversas funções ou
421 conjuntos discretos de pontos, num gráfico a 2d. A palavra @var{style}
422 deverá ir seguida por um ou mais estilos. Se houver mais funções
423 e conjuntos de dados do que os estilos definidos, serão repetidos
424 estilos. Cada estilo poderá ser @var{lines} para segmentos de recta,
425 @var{points} para pontos isolados, @var{linespoints} para segmentos e
426 pontos, ou @var{dots} para pequenos pontos isolados. O Gnuplot também
427 aceita o estilo @var{impulses}.
429 Cada um dos estilos poderá ser incorporado numa lista, seguido de
430 alguns parâmetros adicionais. @var{lines} admite um ou dois números:
431 a largura da linha e um inteiro que identifica uma cor. @var{points}
432 admite um ou dois números; o primeiro número é o raio dos pontos,
433 e o segundo número é um inteiro que no Gnuplot permite seleccionar
434 diferentes formas e cores para os pontos e no Openmath muda a cor dos
435 pontos usados. @var{linesdots} admite até quatro números; os dois
436 primeiros são os mesmos do que para @var{lines} e os dois últimos
437 são os mesmos do que para @var{points}.
441 [style,[lines,2,3],[points,1,4]]
444 No Gnuplot, isso faz com que a primeira (e terceira, quinta, etc)
445 expressão seja apresentada com segmentos de recta azuis de largura 2,
446 e a segunda (quarta, sexta, etc) expressão com quadrados verdes de
447 tamanho 1. No Openmath, a primeira expressão será apresentada com
448 rectas magenta de largura 2, e a segunda com pontos laranja de raio 1;
449 repare que openmath_color(3) e openmath_color(4) produzem ``magenta'' e
452 O estilo por omissão é segmentos de recta, com largura 1, e com
458 Define o número de pontos nas direções x e y, na grelha usada nos
459 gráficos tridimensionais.
465 Define uma grelha de 50 por 50 pontos. A grelha padrão é 30 por 30.
468 Opção: @code{transform_xy}
470 Permite a aplicação de transformações nos gráficos
475 [transform_xy, false]
477 O valor por omiss~ao de @code{transform_xy} é @code{false}. Se não for
478 @code{false}, deverá ser o resultado produzido por
481 make_transform ([x, y, z], f1(x, y, z), f2(x, y, z), f3(x, y, z))$
483 A transformação @code{polar_xy} está previamente definida no
484 Maxima. É igual ao resultado da transformação
486 make_transform ([r, th, z], r*cos(th), r*sin(th), z)$
490 @b{Opções do Gnuplot:}
492 Existem muitas opções específicas para o
493 Gnuplot. Muitas dessas opções são comandos próprios do
494 Gnuplot, especificados como sequências de caracteres. Consulte a
495 documentação do gnuplot para mais pormenores.
501 Define o tipo terminal de saída para gnuplot.
504 Valor por omissão: @code{default}
506 A saída do Gnuplot é mostrada em uma janela gráfica
512 A saída do Gnuplot é mostrada na consola do Maxima,
513 usando uma aproximação "arte ASCII" para gráficos.
518 Gnuplot gera comandos na linguagem PostScript de descrição de
519 páginas. Se à opção @code{gnuplot_out_file} tiver sido dada o
520 nome de um ficheiro, gnuplot escreverá os comandos PostScript nesse
521 ficheiro. De outra forma, os comandos PostScript serão gravados no
522 ficheiro @code{maxplot.ps}.
525 Valor: qualquer outro tipo de terminal aceite pelo gnuplot
527 Gnuplot pode produzir gráficos em muitos outros formatos gráficos
528 tais como png, jpeg, svg, etc. Para criar gráficos em algum desses
529 deverá dar-se a @code{gnuplot_term} um (símbolo)
530 suportado pelo gnuplot ou uma especificação completa de terminal
531 do gnuplot com opções válidas (sequência de caracteres). Por
532 exemplo @code{[gnuplot_term,png]} cria gráficos no formato PNG
533 (Portable Network Graphics) enquanto @code{[gnuplot_term,"png size
534 1000,1000"]} cria gráficos no formato PNG com tamanho de 1000x1000
535 pixels. Se à opção @code{gnuplot_out_file} for dado o nome de um
536 ficheiro, gnuplot gravará o graáfico nesse ficheiro. De outra forma,
537 o gráfico é gravado no ficheiro @code{maxplot.@var{term}}, onde
538 @var{term} é o nome do terminal do gnuplot.
543 Opção: @code{gnuplot_out_file}
545 Grava o gráfico criado por gnuplot para um ficheiro.
549 Valor por omissão: @code{false}
551 Nenhum ficheiro de saída especificado.
553 Valor: @var{filename}
555 Exemplo: @code{[gnuplot_out_file, "myplot.ps"]}
556 Quando usada em conjunto com o terminal PostScript do gnuplot, neste
557 exemplo o gráfico será gravado em formato PostScript no ficheiro
559 @c DOES OUTPUT FILE != FALSE IMPLY DON'T RUN THE VIEWER ??
560 @c WHAT HAPPENS IF OUTPUT FILE IS SPEFICIED BUT TERMINAL IS NOT PS ??
564 Opção: @code{gnuplot_pm3d}
566 Controla o uso do modo PM3D, que possui recursos avançados em 3D. O
567 modo PM3D está somente disponível nas versões de
568 gnuplot posteriores a 3.7. O valor padrão para @code{gnuplot_pm3d} é
577 Opção: @code{gnuplot_preamble}
579 Insere comandos antes que o gráfico seja desenhado. Quaisquer comandos
580 válidos para o gnuplot podem ser usados. Multiplos comandos podem ser
581 separados com um ponto e vírgula. O exemplo mostrado
582 produz uma escala logarítmica no gráfico. O valor
583 padrão para @code{gnuplot_preamble} é uma sequência de caracteres
588 [gnuplot_preamble, "set log y"]
592 Opção: @code{gnuplot_curve_titles}
594 Controla os títulos dados na legenda do gráfico. O valor
595 padrão é @code{[default]}, que escolhe automaticamente um
596 título para função cujo gráfico está a ser
597 desenhado. Se não for igual a @code{[default]},
598 @code{gnuplot_curve_titles} poderá conter uma lista de sequências de
599 caracteres, cada uma das quais é @code{"title '@var{nome}'"}. (Para
600 desabilitar a legenda do gráfico, adicione @code{"set nokey"} a
601 @code{gnuplot_preamble}.)
605 [gnuplot_curve_titles,
606 ["title 'Minha primeira função'", "title 'Minha segunda função'"]]
610 Opção: @code{gnuplot_curve_styles}
612 Uma lista de sequências de caracteres a ser enviada para o gnuplot
613 para controlar a aparência das curvas, nomeadamente, cor, largura,
614 brilho, etc. O valor padrão é @code{["with lines 3", "with lines
615 1", "with lines 2", "with lines 5", "with lines 4", "with lines 6",
616 "with lines 7"]}, que circula através de diferentes cores. Consulte a
617 documentação de @code{plot} no manual do gnuplot para mais
622 [gnuplot_curve_styles, ["with lines 7", "with lines 2"]]
626 Opção: @code{gnuplot_default_term_command}
628 O comando do Gnuplot para escolher o tipo de terminal gráfico. O valor
629 padrão é a sequência de caracteres vazia @code{""}, nomeadamente,
630 usar-se-á o formato padrão do gnuplot.
634 [gnuplot_default_term_command, "set term x11"]
638 Opção: @code{gnuplot_dumb_term_command}
640 O comando gnuplot para escolher o tipo de terminal não gráfico. O
641 valor padrão é @code{"set term dumb 79 22"}, que produz
642 saída em texto com 79 por 22 caracteres.
646 [gnuplot_dumb_term_command, "set term dumb 132 50"]
650 Opção: @code{gnuplot_ps_term_command}
652 O comando gnuplot para escolher o tipo de terminal para o terminal
653 PostScript. O valor padrão é @code{"set size 1.5, 1.5;set term
654 postscript eps enhanced color solid 24"}, que escolhe o tamanho para 1.5
655 vezes o padrão do gnuplot, e o tamanho da fonte para 24, além de
656 outras coisas. Para mais informação, consulte a documentação
657 de @code{set term postscript} no manual do gnuplot.
661 Toda as figuras nos exemplos para a função @var{plot2d} neste
662 manual forma obtidas a partir de ficheiros Postscript que foram
663 produzidos após ter mudado @code{gnuplot_ps_term_command} par:
666 [gnuplot_ps_term_command,
667 "set size 1.3, 1.3; set term postscript eps color solid lw 2.5 30"]
674 @deffn {Função} plot3d ([@var{expr_1}, @var{expr_2}, @var{expr_3}], @var{x_range}, @var{y_range}, ..., @var{opções}, ...)
675 @deffnx {Função} plot3d (@var{expr}, @var{x_range}, @var{y_range}, ..., @var{opções}, ...)
676 @deffnx {Função} plot3d (@var{name}, @var{x_range}, @var{y_range}, ..., @var{opções}, ...)
677 @deffnx {Função} plot3d ([@var{expr_1}, @var{expr_2}, @var{expr_3}], @var{x_rge}, @var{y_rge})
678 @deffnx {Função} plot3d ([@var{nome_1}, @var{nome_2}, @var{nome_3}], @var{x_range}, @var{y_range}, ..., @var{opções}, ...)
680 Mostra o gráfico de uma ou três expressões como funções
685 Função de duas variáveis:
688 @c plot3d (u^2 - v^2, [u, -2, 2], [v, -3, 3], [grid, 100, 100],
689 @c [mesh_lines_color,false])$
693 (%i1) plot3d (u^2 - v^2, [u, -2, 2], [v, -3, 3], [grid, 100, 100],
694 [mesh_lines_color,false])$
702 Uso da op@.cão @var{z} para limitar uma função que se aproxima de infinito
703 (neste caso a função aproxima-se de menos infinito nos eixos x e y); este
704 exemplo mostra também como traçar gráficos apenas com linhas, sem
705 superfícies coloridas.
708 @c plot3d ( log ( x^2*y^2 ), [x, -2, 2], [y, -2, 2], [z, -8, 4],
709 @c [palette, false], [color, magenta])$
713 (%i1) plot3d ( log ( x^2*y^2 ), [x, -2, 2], [y, -2, 2], [z, -8, 4],
714 [palette, false], [color, magenta])$
722 Os valores infinitos de z podem ser também evitados escolhendo uma
723 gralha que não inclua pontos onde a função é
724 indeterminada, como no exemplo seguinte, que mostra também como
725 modificar a paleta de cores e como incluir uma barra que relaciona as
726 cores com os valores da variável z:
729 @c plot3d (log (x^2*y^2), [x, -2, 2], [y, -2, 2],[grid, 29, 29],
730 @c [palette, [gradient, red, orange, yellow, green]],
731 @c color_bar, [xtics, 1], [ytics, 1], [ztics, 4],
732 @c [color_bar_tics, 4])$
736 (%i1) plot3d (log (x^2*y^2), [x, -2, 2], [y, -2, 2],[grid, 29, 29],
737 [palette, [gradient, red, orange, yellow, green]],
738 color_bar, [xtics, 1], [ytics, 1], [ztics, 4],
739 [color_bar_tics, 4])$
747 Duas superfícies no mesmo gráfico. Definem-se
748 domínios diferentes para cada uma, colocando cada
749 expressão e o seu domínio dentro de uma lista separada;
750 define-se também um domínio global para o gráfico
751 completo, após as definições das funções.
754 @c plot3d ([[-3*x - y, [x, -2, 2], [y, -2, 2]],
755 @c 4*sin(3*(x^2 + y^2))/(x^2 + y^2), [x, -3, 3], [y, -3, 3]],
756 @c [x, -4, 4], [y, -4, 4])$
760 (%i1) plot3d ([[-3*x - y, [x, -2, 2], [y, -2, 2]],
761 4*sin(3*(x^2 + y^2))/(x^2 + y^2), [x, -3, 3], [y, -3, 3]],
762 [x, -4, 4], [y, -4, 4])$
770 Gráfico de uma garrafa de Klein, definida parametricamente:
773 @c expr_1: 5*cos(x)*(cos(x/2)*cos(y)+sin(x/2)*sin(2*y)+3)-10$
774 @c expr_2: -5*sin(x)*(cos(x/2)*cos(y)+sin(x/2)*sin(2*y)+3)$
775 @c expr_3: 5*(-sin(x/2)*cos(y)+cos(x/2)*sin(2*y))$
776 @c plot3d ([expr_1, expr_2, expr_3], [x, -%pi, %pi],
777 @c [y, -%pi, %pi], [grid, 50, 50])$
780 (%i1) expr_1: 5*cos(x)*(cos(x/2)*cos(y)+sin(x/2)*sin(2*y)+3)-10$
781 (%i2) expr_2: -5*sin(x)*(cos(x/2)*cos(y)+sin(x/2)*sin(2*y)+3)$
782 (%i3) expr_3: 5*(-sin(x/2)*cos(y)+cos(x/2)*sin(2*y))$
784 (%i4) plot3d ([expr_1, expr_2, expr_3], [x, -%pi, %pi],
785 [y, -%pi, %pi], [grid, 50, 50])$
793 Gráfico de uma função ``harmónica esférica'', usando a
794 transformaçã pré-definida @code{spherical_to_xyz}, para
795 transformar de coordenadas esféricas para retangulares. Consulte a
796 documentação de @code{spherical_to_xyz}.
799 @c plot3d (sin(2*theta)*cos(phi), [theta, 0, %pi],
801 @c [transform_xy, spherical_to_xyz], [grid,30,60],
806 (%i1) plot3d (sin(2*theta)*cos(phi), [theta, 0, %pi],
808 [transform_xy, spherical_to_xyz], [grid,30,60],
817 Uso da função pré-definida @code{polar_to_xy} para transformar de
818 coordenadas cilíndricas para retangulares. Consulte a
819 documentação de @code{polar_to_xy},
822 @c plot3d (r^.33*cos(th/3), [r,0,1], [th,0,6*%pi], [box, false],
823 @c [grid, 12, 80], [transform_xy, polar_to_xy], [legend, false])$
827 (%i1) plot3d (r^.33*cos(th/3), [r,0,1], [th,0,6*%pi], [box, false],
828 [grid, 12, 80], [transform_xy, polar_to_xy], [legend, false])$
836 Gráfico de uma esfera, usando transformação de coordenadas
837 esféricas para retangulares. Usa-se a opção @code{same_xyz} para
838 obter a mesma escala nos três eixos. Quando se usam transformações
839 de coordenadas, não convém eliminar as curvas traçadas na
840 superfície, porque Gnuplot não mostrará o gráfico
844 @c plot3d ( 5, [theta, 0, %pi], [phi, 0, 2*%pi], same_xyz,
845 @c [transform_xy, spherical_to_xyz], [mesh_lines_color,blue],
846 @c [palette,[gradient,"#1b1b4e", "#8c8cf8"]], [legend, false])$
850 (%i1) plot3d ( 5, [theta, 0, %pi], [phi, 0, 2*%pi], same_xyz,
851 [transform_xy, spherical_to_xyz], [mesh_lines_color,blue],
852 [palette,[gradient,"#1b1b4e", "#8c8cf8"]], [legend, false])$
860 Definição de uma função de duas variáveis usando uma matriz.
861 Repare-se no uso do apóstrofo na definição da função, para
862 evitar que @code{plot3d} falhe queixando-se de que os
863 índices da matriz deveriam ser números inteiros.
866 @c M: matrix([1,2,3,4], [1,2,3,2], [1,2,3,4], [1,2,3,3])$
867 @c f(x, y) := float('M [round(x), round(y)])$
868 @c plot3d (f(x,y), [x,1,4], [y,1,4], [grid,3,3], [legend,false])$
871 (%i1) M: matrix([1,2,3,4], [1,2,3,2], [1,2,3,4], [1,2,3,3])$
872 (%i2) f(x, y) := float('M [round(x), round(y)])$
874 (%i3) plot3d (f(x,y), [x,1,4], [y,1,4], [grid,3,3], [legend,false])$
882 Fixando um valor nulo para a elevação, uma superfície
883 pode ser visualizada como um mapa, em que cada cor representa um valor
887 @c plot3d (cos (-x^2 + y^3/4), [x,-4,4], [y,-4,4], [zlabel,""],
888 @c [mesh_lines_color,false], [elevation,0], [azimuth,0],
889 @c color_bar, [grid,80,80], [ztics,false], [color_bar_tics,1])$
893 (%i1) plot3d (cos (-x^2 + y^3/4), [x,-4,4], [y,-4,4], [zlabel,""],
894 [mesh_lines_color,false], [elevation,0], [azimuth,0],
895 color_bar, [grid,80,80], [ztics,false], [color_bar_tics,1])$
903 Veja @code{plot_options} para mais exemplos.
908 @deffn {Função} make_transform (@var{vars}, @var{fx}, @var{fy}, @var{fz})
909 Produz uma função adequada para a função
910 transformação em plot3d. Usa-se conjuntamente com a opção
911 gráfica @code{transform_xy}.
913 make_transform ([r, th, z], r*cos(th), r*sin(th), z)$
915 é uma transformação para coordenadas polares.
918 @deffn {Função} set_plot_option (@var{opção})
919 Atribui valores às opções globais para impressão.
920 @var{opção} é especificada como uma lista de dois ou mais
921 elementos, na qual o primeiro elemeto é uma das palavras chave
922 dentro da lista @code{plot_options}.
924 O argumento dado a @code{set_plot_option} é avaliado e
925 @code{set_plot_option} retorna a lista completa @code{plot_options}
926 (após modificar um desses elementos).
928 Veja também @code{plot_options}, @code{plot2d} e @code{plot3d}.
932 Modifica a gralha (@code{grid}) e o intervalo de @code{x}. Quando uma
933 palavra chave em @code{plot_options} tiver um valor
934 atribuído, colocar um apóstrofo evita que seja
938 @c set_plot_option ([grid, 30, 40]);
940 @c set_plot_option (['x, -100, 100]);
944 (%i1) set_plot_option ([grid, 30, 40]);
945 (%o1) [[x, - 1.755559702014E+305, 1.755559702014E+305],
946 [y, - 1.755559702014E+305, 1.755559702014E+305], [t, - 3, 3],
947 [grid, 30, 40], [transform_xy, false], [run_viewer, true],
948 [plot_format, gnuplot], [gnuplot_term, default],
949 [gnuplot_out_file, false], [nticks, 10], [adapt_depth, 10],
950 [gnuplot_pm3d, false], [gnuplot_preamble, ],
951 [gnuplot_curve_titles, [default]],
952 [gnuplot_curve_styles, [with lines 3, with lines 1,
953 with lines 2, with lines 5, with lines 4, with lines 6,
954 with lines 7]], [gnuplot_default_term_command, ],
955 [gnuplot_dumb_term_command, set term dumb 79 22],
956 [gnuplot_ps_term_command, set size 1.5, 1.5;set term postscript #
957 eps enhanced color solid 24]]
960 (%i3) set_plot_option (['x, -100, 100]);
961 (%o3) [[x, - 100.0, 100.0], [y, - 1.755559702014E+305,
962 1.755559702014E+305], [t, - 3, 3], [grid, 30, 40],
963 [transform_xy, false], [run_viewer, true],
964 [plot_format, gnuplot], [gnuplot_term, default],
965 [gnuplot_out_file, false], [nticks, 10], [adapt_depth, 10],
966 [gnuplot_pm3d, false], [gnuplot_preamble, ],
967 [gnuplot_curve_titles, [default]],
968 [gnuplot_curve_styles, [with lines 3, with lines 1,
969 with lines 2, with lines 5, with lines 4, with lines 6,
970 with lines 7]], [gnuplot_default_term_command, ],
971 [gnuplot_dumb_term_command, set term dumb 79 22],
972 [gnuplot_ps_term_command, set size 1.5, 1.5;set term postscript #
973 eps enhanced color solid 24]]