Académique Documents
Professionnel Documents
Culture Documents
SOFTWARE GRFICO
6.1 - Introduo ao GNUPLOT
GNUPLOT um programa interativo de comandos dirigidos para a gerao de grficos.
Ele se parece um pouco com o DOS no sentido de que temos de digitar os comandos linha a linha.
Alguns comandos podem ser encontrados na Barra de Menus de onde podem ser acionados
utilizando-se o mouse no caso de computadores pessoais; em estaes de trabalho costuma-se
utilizar os comandos linha a linha.
O Gnuplot foi desenvolvido em 1986 inicialmente por Thomas Williams e Colin Kelley no
Dartmouth College, na cidade de Hanover-NH, ao norte dos EEUU (Cf. Willians et al, 1993). Foi
lanado como um free software, e ainda (no ano de 1999) pode ser obtido sem nus atravs da
pgina Internet do Dartmouth College: www.dartmouth.edu. Hoje em dia (2007), esse software
est sendo disponibilizado para download no site: www.gnuplot.info .
No texto que se segue estaremos comentando os comandos referentes verso 4.0,
desenvolvida em 2004. Ao acionar, pois, essa verso do Gnuplot, o cursor aparece piscando em
frente ao prompt sinalizado por " gnuplot > " , aps o qual devem ser digitadas as instrues. P r
simplificao, iremos sempre indicar as instrues utilizadas num procedimento aps o sinal ">".
Nos exemplos que utilizaremos, digite apenas o comando que segue o sinal ">" e tecle enter para
que o comando seja executado.
Duas instrues inicialmente so de interesse:
> help
> exit
Com o Gnuplot podemos produzir grficos que sejam definidos por uma equao ou
grficos a partir de pontos gerados por um programa que deposite valores num arquivo. Os
comandos plot (grficos de duas dimenses) e splot (grficos de trs dimenses) so considerados
comandos primrios . H outros comandos que modificam tamanho, cor, ttulo, etc., que sero
considerados secundrios para a finalidade a que se prope o programa.
Outra facilidade oferecida pelo Gnuplot o comando de repetio de digitaes anteriores.
Basta acionar [] no teclado para evitar a digitao de linhas anteriores. Ao aparecer a digitao
anteriormente utilizada, basta modific-la da maneira mais conveniente e teclar enter.
Analogamente, [] busca o prximo comando aps a linha em uso.
Um outro comando oferecido o replot, que apenas repete a gerao do ltimo grfico
pedido pelo comando plot ou splot. Se modificaes forem introduzidas no formato do grfico, o
replot repetir o ltimo grfico gerado, respeitadas as modificaes introduzidas pelos comandos
secundrios que por ventura tenham sido digitados.
Em resumo:
> replot
[]
[]
grfico de cosseno de 2x
Note que, assim como vimos em Linguagem de Programao, temos de introduzir via
teclado as funes atravs de comandos que reflitam o que escrevemos no papel. Como em
algumas linguagens, notamos que dois asteriscos (**) significa exponenciao, e que um asterisco
(*) significa multiplicao. Seguem-se, abaixo, alguns operadores e funes para o Gnuplot:
Operao
*
**
/
+
-
Exemplo
x*y
x**y
x/y
x+y
x-y
Retorno
produto xy
exponenciao x y
diviso x/y
soma x + y
subtrao x - y
Como vimos acima, podemos inserir uma funo como seno ou cosseno e o Gnuplot ir
gerar o grfico automaticamente. Algumas das funes mais utilizadas so:
Funes Trigonomtricas e Hiperblicas
cos(x)
sin(x)
tan(x)
acos(x)cosh(x)
asin(x)
sinh(x)
atan(x)
tanh(x)
Na tabela abaixo, seguem-se alguns exemplos de como inserir o comando no Gnuplot, para
gerar o grfico da equao desejada.
Equao
tan( x )
sen
cos( x )
cos(10 x ) + sen 2 ( 3 x )
x 1/ 2 ou x
x 1/ 3
1 sen( x )
x+
x2 + 4
Comando Gnuplot
> plot sin(tan(x)/cos(x))
> plot
> plot
> plot
> plot
cos(10*x)+sin(3*x)**2
sqrt(x) ou plot x**(0.5)
x**(0.333333)
x + sqrt((1-sen(x))/(x**2+4))
Como observa-se nos exemplos 3 e 4 da tabela acima, por algum motivo o Gnuplot falha
em compreender fraes para o expoente, dentre outras operaes. Por tanto, importante
ressaltar que no sejam colocadas operaes a serem calculadas no expoente.
6.3 - Grficos em 3D (splot)
Assim como o comando plot um comando para gerar grficos de duas dimenses, e o
Gnuplot espera que venhamos a definir uma funo f(x), para o comando splot devemos definir
uma funo z=f(x,y). Assim, as variveis x e y podem figurar na linha de comando do splot.
Como exemplo vamos gerar a superfcie x 2 y 2 z = 0 . Ou seja, em termos de z=f(x,y),
teramos z = x 2 y 2 , de onde entramos com o comando:
> splot x**2 - y**2
e o resultado :
x**2-y**2
100
50
0
-50
-100
10
5
-10
-5
0
0
-5
10
-10
Equao
x2 + y2
ln(| y| +| x| +1)
xy
xy +
1 sen( y )
x2 + 4
Comando Gnuplot
> splot x**2+y**2
> splot log(abs(y)+abs(x)+1)
> splot sqrt(x*y)
> splot x*y + sqrt((1-sen(y))/(x**2+4))
Note que os comandos secundrios como set grid, depois de acionados fazem com que
todos os grficos a partir daquele comando sejam gerados com as linha de grade. Para desativar
esse modo de gerao, deve-se utilizar o comando unset grid.
SET KEY / UNSET KEY
Esses comandos controlam o acionamento de uma "chave" que mostra a funo que gerou
um determinado grfico. O comando set key aciona a chave indicadora e set nokey retira. Os
grficos abaixo foram gerados pela seqncia de comandos:
> unset key
> set grid
> plot sin(x),cos(x)
> set key
> unset grid
> replot
1
0.8
0.8
0.6
0.6
0.4
0.4
0.2
0.2
-0.2
-0.2
-0.4
-0.4
-0.6
-0.6
-0.8
-1
-10
sin(x)
cos(x)
-0.8
-5
10
-1
-10
-5
10
O primeiro comando (plot sin(x),cos(x)) gera o grfico esquerda, aps ser inserida a
grade e retirada a chave atravs dos comandos set grid e set nokey, respectivamente. O grfico
direita foi obtido pelo comando replot aps retirada a grade e colocada a chave. Note, que as
chaves so interessantes nesse caso para distinguir entre as curvas sin(x) (em azul) e cos(x) (em
verde).
LIMITES DOS EIXOS (set range)
Os valores mximos e mnimos dos eixos podem ser mudados para valores mais
apropriados, conforme a necessidade. O grfico ter seu aspecto modificado para se ajustar s
novas definies. As instrues utilizadas so set xrange, set yrange, e para grficos de trs
dimenses tambm h o set zrange. Nesses comandos deve-se especificar os valores mnimo e
mximo entre colchetes e separados pelo sinal "dois pontos".
Exemplos:
> set xrange[0:2]
> set yrange[-0.4:0.4]
> set zrange[-100:100]
Para retornar escala automtica o comando set autoscale, ou especificando o eixo que
deve retomar escala automtica set autoscale x, ou set autoscale xy. Entretanto, nessa verso 3.5
do Gnuplot, notamos que esse comando no tem sido eficiente, sendo mais aconselhvel sair do
programa e retornar em seguida.
COMO INSERIR TTULOS E TEXTOS NO GRFICO
Os comandos para inserir textos so:
> set title "figura 12" 0,0
> set xlabel "eixo dos x" 0,0
> set ylabel "eixo vertical" 0,0
Esses indicadores de posio so opcionais e podem ser mudados, cabendo ao leitor fazer
o teste para verificar como os valores modificam o grfico. Para grficos em 3D o valor
automtico para a posio 0,0,0 e pode-se fazer o mesmo teste para se verificar quais
modificaes ocorrem. Ainda com relao posio de rtulos no grfico, o comando set key
tambm admite definies desse tipo. Por exemplo:
> set key 10, 3.7, 8
retira a chave do canto superior direito e f-la aparecer na posio (10,3.7,8) no grfico.
6.5 - Coordenadas Polares e Grficos Paramtricos
O comando set polar aciona o modo polar para grficos em 2D. Em coordenadas polares
usualmente montamos os grficos escrevendo r = f(), isto , r uma funo do ngulo . Mas,
no teclado no temos o caracter , com o que o gnuplot entender a varivel x como sendo o
ngulo. O comando set polar torna os comandos plot seguintes todos em funo polar,
formatando um grfico r . No campo plot em que escrevermos uma funo de x, todos os
valores x sero entendidos como se fossem o ngulo . No exemplo a seguir, iremos gerar o
grfico paraa espiral r = 1 + 2 :
> set polar
> plot 1 + 2*x
Onde, no ltimo comando, o ngulo est sendo representado por x. Para obter grficos polares,
muitas vezes cabe ao usurio fazer antes uma modificao na equao para que a mesma se
apresente na forma r = f(), como j fizemos anteriormente para grficos retangulares.
Caso seja necessrio retornar s coordenadas retangulares, basta utilizar:
> unset polar