[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Índice] [ ? ]

8. Montando Gráficos


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Índice] [ ? ]

8.1 Funções e Variáveis Definidas para Montagem de Gráficos

Função: contour_plot (expr, x_range, y_range, opções, ...)

Monta gráficos de contorno (curvas de nível) de expr sobre a região x_range por y_range. Quaisquer argumentos adicionals são tratados da mesma forma que em plot3d.

contour_plot somente trabalha quando o formato do gráfico for gnuplot ou gnuplot_pipes.

Veja também implicit_plot.

Exemplos:

(%i1) contour_plot (x^2 + y^2, [x, -4, 4], [y, -4, 4]);
(%o1) 
(%i2) contour_plot (sin(y) * cos(x)^2, [x, -4, 4], [y, -4, 4]);
(%o2) 
(%i3) F(x, y) := x^3 + y^2;
                                   3    2
(%o3)                  F(x, y) := x  + y
(%i4) contour_plot (F, [u, -4, 4], [v, -4, 4]);
(%o4) 
(%i5) contour_plot (F, [u, -4, 4], [v, -4, 4], [gnuplot_preamble, "set size ratio -1"]);
(%o5) 
(%i6) set_plot_option ([gnuplot_preamble, "set cntrparam levels 12"])$

(%i7) contour_plot (F, [u, -4, 4], [v, -4, 4]);
Variável: in_netmath

Valor padrão: false

Quando in_netmath é true, plot3d imprime uma saída OpenMath para o console se plot_format é openmath; caso contrário in_netmath (mesmo se true) não tem efeito. in_netmath não tem efeito sobre plot2d.

Função: plot2d (expr, x_range, ..., opções, ...)
Função: plot2d ([expr_1, ..., expr_n], ..., opções, ...)
Função: plot2d ([expr_1, ..., expr_n], x_range,..., opções, ...)

onde expr, expr_1, ..., expr_n pode ser uma entre expressões, ou funções do Lisp ou do Maxima ou operadores, ou uma lista com qualquer das formas: [discrete, [x1, ..., xn], [y1, ..., yn]], [discrete, [[x1, y1], ..., [xn, ..., yn]] ou [parametric, x_expr, y_expr, t_range].

Mostra um gráfico de uma ou mais expressões como uma função de uma variável.

plot2d monta o gráfico da expressão expr ou muitas expressões [name_1, ..., name_n]. As expressões que não forem paramétricas ou discretas podem todas depender somente de uma variável var e isso torna obrigatório o uso de x_range para nome daquela variável e fornece seus valores de máximo e de mínimo, usando a sintaxe: [variable, min, max]. O gráfico irá mostrar o eixo horizontal associado aos valores de min e de max.

Uma expressão a ser montado o gráfico pode também ser fornecida na forma discreta ou na forma paramétrica. A saber, como uma lista iniciando-se com a palavra "discrete" ou a palavra "parametric". A palavra chave discrete deve ser seguida por duas listas de valores, ambas com o mesmo comprimento, que são as coodenadas horizontais e as coordenadas verticais de um conjunto de pontos; alternativamente, as coordenadas de cada ponto pode ser colocada dentro de uma lista com dois valores, e todas as coordenadas dos pontos podem estar dentro de outra lista. A palavra chave parametric deve ser seguida por douas expressões x_expr e y_expr, e um intervalo da forma [param, min, max]. As duas expressões devem depender somente do parâmetro param, e o gráfico irá mostrar o caminho percorrido pelo ponto com coordenadas (x_expr, y_expr) com param variando de min a max.

O intervalo do eixo vertical não é obrigatório. É somente mais uma das opções para o comando, com a sintaxe: [y, min, max]. Se aquela opção for usada, o gráfico irá mostrar aquele intervalo completo, mesmo se a expressão não ocupe todo aquele intervalo. De outra forma, se um intervalo vertical não for especificado através de set_plot_option, as extremidade do eixo vertical serão encontrada automaticamente.

Todas as outras opções podem também serem listas, iniciando-se com o nome da opção. A opção xlabel pode ser usada para fornecer um ótulo para o eixo horizontal; se aquela opção não for usada, o eixo horizontal irá ser rotulado com o nome da variável especificada em x_range, ou com a expressão x_expr no caso de apenas uma expressão paramétrica, ou isso irá ser deichado em branco de outra forma.

Um rótulo para o eixo vertical pode ser fornecido com a opção ylabel. Se existir somente uma expressão a ser montado o gráfico e a opção ylabel não tiver sido usada, o eixo vertical irá ser rotulado com aquela expressão, a menos que ela seja muito larga, ou com a expressão y_expr se a expressão for paramétrica, ou com o texto "discrete data" se a expressão for discreta.

As opções [logx] e [logy] não precisam de quaisquer parâmetros. Elas irão tornar os eixos horizontal e vertical sejam escritos em escala logarítmica.

Se houverem muitas expressões para serem montados os gráficos respectivos, uma legenda irá ser escrita para identificar cada uma das expressões. Os rótulos que podem ser usados naquela legenda podem ser fornecidos com a opção legend. Se a opção legend não for usada, Maxima irá criar rótulos a partir das expressões.

Por padrão, as expressões terão seus gráficos montados como um conjunto de segmentos de reta saltando pontos adjacentes dentro de um conjunt de pontos que é um dos fornecidos entre a forma discrete, ou calculado automaticamente a partir da expressão fornecida, usando um algorítmo que automaticamente adapta os passos entre os pontos usando como uma estimativa inicial do total número de pontos o conjunto de valores com a opção nticks. A opção style pode ser usada para fazer uma das expressões serem representadas como um conjunto de pontos isolados, ou como pontos e segmentos de reta.

Existem muitas opções globais armazenadas na lsita plot_options que pode ser modificada com a função set_plot_option; qualque daquelas opções globais pode ser sobrescrita com opções fornecidas no comando plot2d.

Uma função a ter seu gráfico montado pode ser especificada como o nome de uma função do Maxima ou do Lisp ou um operador, uma expressão lambda do Maxima, ou uma expressão geral do Maxima. Se especificado como um nome ou uma expressão lambda, a função deve ser uma função de um argumento.

Exemplos:

Gráficos de funções comuns.

(%i1) plot2d (sin(x), [x, -%pi, %pi])$

../figures/plotting6

(%i1) plot2d (sec(x), [x, -2, 2], [y, -20, 20])$

../figures/plotting7

Montando gráfico de funções pelo nome.

(%i1) F(x) := x^2 $
(%i2) :lisp (defun |$g| (x) (m* x x x))
$g
(%i2) H(x) := if x < 0 then x^4 - 1 else 1 - x^5 $
(%i3) plot2d ([F, G, H], [u, -1, 1], [y, -1.5, 1.5])$

../figures/plotting10

Podemos montar o gráfico de um círculo usando um gráfico paramétrico com um parâmetro t. Não é necessário fornecer um intervalo para intervalo horizontal, uma vez que o intervalo do parâmetro t determina o domínio. Todavia, usaremos a opção same_xy para obter a mesma escala em ambos os eixos:

(%i1) plot2d([[parametric, cos(t), sin(t), [t,0,2*%pi]], -abs(x)],
         [x, -sqrt(2), sqrt(2)], same_xy)$

../figures/plotting12

Exemplo de um gráfico logarítmico:

(%i1) plot2d (exp(3*s), [s, -2, 2], logy)$

../figures/plotting9

Exemplo de gráfico discreto, definindo as coordenadas x e y por separado:

(%i1) plot2d ([discrete, makelist(i*%pi, i, 1, 5),
                            [0.6, 0.9, 0.2, 1.3, 1]])$

../figures/plotting14

O gráfico de pontos pode ser mostrado juntamente com um gráfico da função teorética/doutrinária/estética que prevê as coordenads dos pontos:

(%i1) xy: [[10, .6], [20, .9], [30, 1.1], [40, 1.3], [50, 1.4]]$
(%i2) plot2d([[discrete, xy], 2*%pi*sqrt(l/980)], [l,0,50],
        [style, points, lines], [color, red, blue],
        [point_type, asterisk],
        [legend, "experiment", "theory"],
        [xlabel, "pendulum's length (cm)"],
        [ylabel, "period (s)"])$

../figures/plotting16

Veja também plot_options, que descreve opções de montagem de gráfico e tem mais exemplos.

Variável de sistema: plot_options

Elementos dessa lista estabelecem as opções padrão para a montagem do gráfico. Se uma opção está presente em uma chamada a plot2d ou plot3d, esse valor tem precedência sobre a opção padrão. De outra forma, o valor em plot_options é usado. Opções padrão são atribuídas por set_plot_option.

Cada elemento de plot_options é uma lista de dois ou mais ítens. O primeiro item é o nome de uma opção, e os restantes compreendem o valor ou valores atribuídos à opção. Em alguns casos, o valor atribuído é uma lista, que pode compreender muitos ítens.

As opções de montagem de gráfico que são reconhecidas por plot2d e plot3d são as seguintes:

Opções do Gnuplot:

Existem muitas opções de montagem de gráfico específicas para gnuplot. Algumas dessas opções são naturais do gnuplot, especificados como seqüências de caracteres. Consulte a documentação do gnuplot para mais detalhes.

Função: plot3d ([expr_1, expr_2, expr_3], x_range, y_range, ..., opções, ...)
Função: plot3d (expr, x_range, y_range, ..., opções, ...)
Função: plot3d (name, x_range, y_range, ..., opções, ...)
Função: plot3d ([expr_1, expr_2, expr_3], x_rge, y_rge)
Função: plot3d ([nome_1, nome_2, nome_3], x_range, y_range, ..., opções, ...)

Mostra um gráfico de uma ou três expressões como funções de duas variáveis.

(%i1) plot3d (u^2 - v^2, [u, -2, 2], [v, -3, 3], [grid, 100, 100],
        [mesh_lines_color,false])$

../figures/plotting17

monta o gráfico de u^2-v^2 com u e v variando no intervalo fechado [-2,2] e no intervalo fechado de [-3,3] respectivamente, e com u sobre o eixo x, e v sobre o eixo y.

Outro exemplo é uma superfície de Klein:

(%i1) expr_1: 5*cos(x)*(cos(x/2)*cos(y)+sin(x/2)*sin(2*y)+3)-10$
(%i2) expr_2: -5*sin(x)*(cos(x/2)*cos(y)+sin(x/2)*sin(2*y)+3)$
(%i3) expr_3: 5*(-sin(x/2)*cos(y)+cos(x/2)*sin(2*y))$
(%i4) plot3d ([expr_1, expr_2, expr_3], [x, -%pi, %pi],
        [y, -%pi, %pi], [grid, 50, 50])$

../figures/plotting21

Algumas vezes isso é necessário para definir uma função para montar o graico da expressão. Todos os argumentos para plot3d são avaliados antes de serem passados para plot3d. Tentar fazer um expressão que faz apenas o que é preciso pode ser difícil e pode ser mais fácil fazer uma função.

(%i1) M: matrix([1,2,3,4], [1,2,3,2], [1,2,3,4], [1,2,3,3])$
(%i2) f(x, y) := float('M [round(x), round(y)])$
(%i3) plot3d (f(x,y), [x,1,4],[y,1,4],[grid,3,3],[legend,false])$

../figures/plotting25

Veja plot_options para mais exemplos.

Função: make_transform (vars, fx, fy, fz)

Retorna uma função adequada para a função transformação em plot3d. Use com a opção de montagem de gráfico transform_xy.

make_transform ([r, th, z], r*cos(th), r*sin(th), z)$

é uma transformação para coordenadas polares.

Função: set_plot_option (opção)

Atribui uma das varáveis globais para impressão. opção é especificada como uma lista de dois ou mais elementos, na qual o primeiro elemento é uma das palavras chave dentro da lista plot_options.

set_plot_option avalia seu argumento e retorna a liasta completa plot_options (após modificar um de seus elementos).

Veja também plot_options, plot2d, e plot3d.

Exemplos:

Modifica a malha (grid) e valores de x. Quando uma palavra chave em plot_options tem um valor atribuído, colocar um apóstrofo evita avaliação.

(%i1) set_plot_option ([grid, 30, 40]);
(%o1) [[x, - 1.755559702014E+305, 1.755559702014E+305], 
[y, - 1.755559702014E+305, 1.755559702014E+305], [t, - 3, 3], 
[grid, 30, 40], [transform_xy, false], [run_viewer, true], 
[plot_format, gnuplot], [gnuplot_term, default], 
[gnuplot_out_file, false], [nticks, 10], [adapt_depth, 10], 
[gnuplot_pm3d, false], [gnuplot_preamble, ], 
[gnuplot_curve_titles, [default]], 
[gnuplot_curve_styles, [with lines 3, with lines 1, 
with lines 2, with lines 5, with lines 4, with lines 6, 
with lines 7]], [gnuplot_default_term_command, ], 
[gnuplot_dumb_term_command, set term dumb 79 22], 
[gnuplot_ps_term_command, set size 1.5, 1.5;set term postscript #
eps enhanced color solid 24]]
(%i2) x: 42;
(%o2)                          42
(%i3) set_plot_option (['x, -100, 100]);
(%o3) [[x, - 100.0, 100.0], [y, - 1.755559702014E+305, 
1.755559702014E+305], [t, - 3, 3], [grid, 30, 40], 
[transform_xy, false], [run_viewer, true], 
[plot_format, gnuplot], [gnuplot_term, default], 
[gnuplot_out_file, false], [nticks, 10], [adapt_depth, 10], 
[gnuplot_pm3d, false], [gnuplot_preamble, ], 
[gnuplot_curve_titles, [default]], 
[gnuplot_curve_styles, [with lines 3, with lines 1, 
with lines 2, with lines 5, with lines 4, with lines 6, 
with lines 7]], [gnuplot_default_term_command, ], 
[gnuplot_dumb_term_command, set term dumb 79 22], 
[gnuplot_ps_term_command, set size 1.5, 1.5;set term postscript #
eps enhanced color solid 24]]

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Índice] [ ? ]

8.1.1 Funções para trabalhar com o formato gnuplot_pipes

Função: gnuplot_start ()

Abre o pipe para o gnuplot usado para montar um gráfico com o formato gnuplot_pipes. Não é necessário abrir manualmente o pipe antes de montar o gráfico.

Função: gnuplot_close ()

Fecha o pipe para o gnuplot que está sendo usado com o formato gnuplot_pipes.

Função: gnuplot_restart ()

Fecha o pipe para o gnuplot que é usado com o formato gnuplot_pipes e abre um novo pipe.

Função: gnuplot_replot ()
Função: gnuplot_replot (s)

Atualiza a janela gráfica do gnuplot. Se gnuplot_replot for chamado com um comando gnuplot em uma seqüência de caracteres s, então s é enviado para o gnuplot antes de atualizar a janela.

Função: gnuplot_reset ()

Restaura o estado inicial padrão do gnuplot usado com o formato gnuplot_pipes. Para atualizar a janela do gnuplot chama gnuplot_replot após gnuplot_reset.


[ << ] [ >> ]           [Top] [Contents] [Índice] [ ? ]

This document was generated by Jaime Villate on Outubro, 14 2014 using texi2html 1.76.