You are on page 1of 41

Introdu c ao ao aplicativo Gnuplot

Universidade Federal do Par a Instituto de Ci encias Exatas e Naturais Faculdade de Matem atica Patricia de Almeida Viana Agosto 2011
Resumo Neste trabalho foi feita uma investiga c ao no aplicativo Gnuplot, um software livre de grande potencial que gera gr acos em duas e tr es dimens oes e e usado em diversas areas cient cas. Pretende-se mostrar de forma clara como come car a trabalhar com este aplicativo no Linux. Como fontes de pesquisa foram consultadas o manual do Gnuplot e alguns tutoriais dispon veis na internet.

Introdu c ao

O Gnuplot e um programa usado na cria c ao de gr acos de fun c oes e dados em duas ou tr es dimens oes. Ele e bastante vers atil e possui uma simplicidade capaz de fazer com que atrav es da execu c ao de apenas um comando de arquivo seja poss vel plotar diversos gr acos. Este aplicativo oferece ainda ferramentas de an alise de dados, como ajuste de fun c oes aos dados experimentais. Al em de exibir gr acos na tela, possibilita grav a-los em diversos formatos, como postscript, g e diretamente no formato tex. Ele e altamente port avel, possuindo vers oes para os sistemas operacionais linux, windows e unix. Iniciemos um estudo do aplicativo no Linux. Uma documenta c ao detalhada pode ser encontrada atrav es do help do programa (assim como suas man pages), http://www.gnuplot.info/, http://www.duke.edu/ hpgavin/gnuplot.html ou atrav es de servi cos de busca na internet.

Primeiro Contato

O primeiro passo e executar o programa Gnuplot, para isso basta digitar o comando gnuplot em alguma janela do terminal e pressionar a tecla [enter]. Feito isto, aparecer ao algumas informa c oes na tela, como a vers ao do programa que est a sendo executado, os nomes dos criadores deste aplicativo bem como um site na internet onde podem ser encontradas maiores informa c oes a respeito deste software.

Figura 1: A u ltima linha deste terminal deve ser a linha de comando do gnuplot, a qual ser a utilizada como interface entre o usu ario e o programa; esta linha de comando e da seguinte forma: gnuplot > A partir dessa linha de comando, digitaremos diversas instru c oes que o Gnuplot executar a gerando o gr aco desejado. E se algum momento desejarmos nalizar este programa e voltar para o terminal, basta digitar o comando quit (ou simplesmente a letra q) e, pressionar a tecla [enter].

Sintaxe

Existe um conjunto de regras que ditam a forma como se escrevem as express oes. Uma 2 delas e a forma como se escrevem as pot encias (x 2) = x . Outra regra importante e que e obrigat orio usar o asteristico (*) em todas as opera c oes de multiplica c ao, isto quer dizer que n ao podemos escrever, por exemplo, plot 2x, temos que escrever plot 2 x. A divis ao faz-se com uma barra (/), a soma e a multiplica c ao fazem-se com os sinais do costume (+ e ). Al em de gr acos o Gnuplot faz c alculos, e e isso que faz o comando print. Por em, uma 2

regra importante no Gnuplot, e que um n umero escrito sem casa decimal e interpretado como um n umero inteiro. Por exemplo, se pedirmos para o Gnuplot calcular a divis ao 1/2 , a sua resposta ser a 0. Veja: gnuplot> print 1/2 0 Isso ocorreu pois a divis ao de um n umero inteiro por um n umero inteiro, e um inteiro. Se quisermos obter 0.5 devemos digitar 1.0/2 ou 1/2.0: gnuplot> print 1/2.0 0.5 O que o comando print faz e mostrar valores calculados, ou seja, podemos us a-lo como uma calculadora, para efetuar as opera c oes fundamentais, fatorial, valores de seno, coseno, tangente, exponencial, o valor de uma fun c ao em um ponto, etc.

Comandos para Plotar Gr acos em 2D e 3D

Para plotarmos gr acos em duas ou tr es dimens oes usamos respectivamente, os comandos plot e splot. Estes comandos sozinhos n ao fazem absolutamente nada; para que eles possam gerar qualquer tipo de gr aco devemos oferecer a eles algumas informa c oes.

Comando Plot

O comando plot j a mencionado anteriormente, e utilizado para elaborar gr acos em duas dimens oes. Para isso, ele precisa receber informa c oes como: a fun c ao ou nome do arquivo que cont em o conjunto de dados a serem plotados, se e um histograma, se ele deve utilizar pontos, linhas ou ambos para a representa c ao do gr aco, tipo de ponto a ser utilizado, cor destes pontos ou linhas, etc. A entrada b asica deste comando e a seguinte: gnuplot > plot <limites> <fun c~ ao ou nome do arquivo> with <estilos> Sendo: < limites >: dene que o gr aco ser a plotado entre dois valores de x e entre dois valores de y , ou seja, dominio e imagem, por em se esses limites ou um deles n ao for especicado o programa utilizar a os que achar conveniente. < fun c ao ou nome do arquivo >: dene qual ou quais fun c oes e/ou conjuntos de dados ser ao plotados. Para plotar mais de uma fun c ao ou conjunto de dados utilizando apenas um comando plot, basta separar cada fun c ao ou conjunto de dados por v rgulas, como no exemplo a seguir: gnuplot > plot x**2, G(x), dados.dat Neste exemplo ser a gerado um gr aco da fun c ao x2 e neste mesmo gr aco ser a plotada a fun c ao G(x), a qual deve ter sido denida anteriormente e, o gr aco do conjunto de dados contido no arquivo dados.dat1 . < estilos >: dene a apar encia do gr aco, ou seja, se este gr aco ser a plotado como uma linha, como pontos, como linha e pontos al em de denir qual ser a a cor utilizada. Por exemplo: gnuplot > plot x**2 with points 2 2

Neste exemplo ser a gerado um gr aco da fun c ao x2 , sendo que ela ser a representada por pontos (with points) na cor n umero 2 (with points 2) ou seja, cor ciano e, os pontos ser ao representados pelo sinal de adi c ao (+) (with points 2 2). Existem diversos tipos de pontos e cores, basta mudar o n umero de [-1,34] que a cor ou o tipo de ponto mudar a.

Comando Splot

Este comando e extremamente semelhante ao plot, por em usa-se para plotar gr acos em tr es dimens oes, sendo assim voc e deve espec car fun c oes de tr es vari aveis ou ter um arquivo de dados com tr es colunas no m nimo. O comando splot usa as mesmas op c oes do comando plot, por em ele trabalha sempre ou com fun c oes de duas vari avies, ou tabelas com no m nimo tr es colunas.

Comandos b asicos

No Gnuplot podemos denir os tipos de pontos e linhas. Para visualizar as cores, bem como os formatos dos pontos, basta ativar na linha de comando, a palavra test, como mostrado abaixo: gnuplot > test A partir desse comando aparecer a a gura 2.

Figura 2: Tipos de pontos e cores dispon veis no gnuplot Outra coisa muito importante que n ao podemos deixar de falar e sobre o comando help, basta digit a-lo na linha de comando do Gnuplot, que ele lhe dar a uma ajuda de tudo o que ele pode fazer.

7.1

Outras deni c oes do programa

No Gnuplot h a uma s erie de comandos para complementar informa c oes a respeito do gr aco de uma fun c ao, por exemplo para modicar as escalas de visualiza c ao, realizar desenhos de v arios gr acos no mesmo sistema de eixos, colocar t tulo em um gr aco, colocar algum coment ario nos eixos coordenados, entre outros. Passamos ent ao uma sintaxe destes comandos. T tulo: gnuplot > set title "texto" Esta linha de comando d a um t tulo ao gr aco. Tipo e Espessura da linha: Atrav es da linha de comando, usando ap os plot f(x) os seguintes comandos: linestyle n altera o estilo da linha, linetype n altera o tipo de linha. e linewidth n altera a espessura da linha. 5

Nomear eixos: gnuplot gnuplot gnuplot > set xlabel "Eixo x" > set ylabel "Eixo y" > set zlabel "Eixo z" Esta linha de comando nomeia o eixo x no gr aco da fun c ao. Esta linha de comando nomeia o eixo y no gr aco da fun c ao. Esta linha de comando nomeia o eixo z no gr aco da fun c ao. O eixo z s o aparece 3 quando estamos trabalhando no R , com o comando splot. Denir par ametros de escala: gnuplot > set xrange [ninf : nsup] Com esta linha de comando podemos determinar o intervalo de varia c ao (dom nio) da vari avel x no gr aco. O intervalo deve ser escrito entre colchetes e os n umeros separados por dois pontos [ : ]. gnuplot > set yrange [ninf : nsup] Esta linha de comando dene o intervalo de varia c ao poss vel para os valores da fun c ao (contradom nio) no caso de fun c oes de uma vari avel. E no caso de fun c oes de duas vari aveis, denir a o dom nio da vari avel y. gnuplot > set zrange [ninf : nsup] No caso de fun c oes de duas vari aveis, esta linha de comando dene o contradom nio da fun c ao. Observa c ao: Uma vez modicada a faixa de varia c ao de uma vari avel, esta modica c ao permanecer a v alida para todos os gr acos feitos posteriormente. Denir valores dos eixos: Para denir os valores que aparecer ao nos eixos podemos usar o comando set xtics, set ytics e set ztics. A sintaxe do comando e: gnuplot Exemplo: gnuplot > set xtics -2,1,3 No exemplo acima, aparecer ao os valores -2, -1, 0, 1, 2, 3 no eixo x, caso estes valores estejam dentro do limite de varia c ao para a vari avel x denido no comando set xrange. Os comandos set ytics e set ztics s ao an alogos ao set xtics. Mostrar eixos x e y: gnuplot > set zeroaxis Com este comando e exibido o sistema de eixos e quando poss vel a sua origem, recomendado colocar este tornando o gr aco mais completo e f acil de entender. E comando logo no in cio para que apare cam os eixos em todos os demais gr acos. > set xtics xinicial,incremento,xfinal onde xinicial e xnal s ao opcionais.

Mostrar grades: gnuplot > set grid Mostra as grades nos eixos x e y. Ou ainda, se quizermos desativar a op c ao grade basta utilizar o comando unset grid. Efeito de S olido: gnuplot > set hidden3d O comando acima e utilizado no modo 3D para esconder o que ca atr as da superf cie. Resolu c ao do Gr aco: Para tra car o gr aco de uma fun c ao, o Gnuplot escolhe alguns pontos e calcula o valor da fun c ao nestes pontos. A quantidade padr ao de pontos escolhidos no eixo x para gr acos 2D e 100. No caso de gr acos tridimensionais a quantidade padr ao de pontos tamb em e de 100, sendo tomados 10 pontos no eixo x e no eixo y. Esta quantidade pode ser alterada atrav es dos comandos set samples n para gr acos no plano e set isosamples k,m para gr acos no espa co, sendo que n e o n umero de pontos no eixo x e k, m correspondem ao n umero de pontos nos eixos x e y, respectivamente. Bordas do gr aco: O comando set border controla a exibi c ao das bordas do gr aco gerado com os comandos plot e splot. Para excluir todo o contorno da janela gr aca utilizamos o comando unset border. Para incluir uma das bordas utilizamos o comando set border n, sendo n o n umero associado a borda desejada. Para colocar duas ou mais bordas somamos os respectivos n umeros e utilizamos set border k, onde k e a soma dos n umeros associados ` as bordas. Outra op c ao e o comando reset, que faz com que todas as modica c oes de formata c ao sejam canceladas de uma vez s o. Diret orio: Para navegarmos pelo diret orio: gnuplot > pwd Isto dar a a sua localiza c ao atual. Se caso quizermos modicar o diret orio basta digitar o comando: gnuplot > cd novo diret orio

Salvando arquivos: Para salrmos um arquivo, devemos direcionar a sa da padr ao para um arquivo, como o exmplo abaixo:
A O formato postscript eps, e o formato original do L TEX. Para exportar o gr aco A do Gnuplot para o L TEXbasta utilizar o comando:

gnuplot gnuplot gnuplot

> set terminal postscript eps color > set output arquivo.eps > replot 7

Para usarmos t tulos acentuados devemos usar o seguinte comando: set encoding iso 8859 1 Exemplo: set title Taxa de transmiss\3431 o Resultando o t tulo Taxa de transmiss ao

7.2

Modica c oes na posi c ao das legendas

Podem ser realizadas atrav es dos comandos: set key left bottom, set key right bottom, set key left top e set key right top.
1

0.5

-0.5

Seno -1 0 1 2 3 4 5 6

Figura 3: set key left bottom (Legenda no canto inferior esquerdo)

0.5

-0.5

Seno -1 0 1 2 3 4 5 6

Figura 4: set key righ bottom (canto inferior direito)


1 O c odigo desses acentos pode ser obtido no site http://www.ic.unicamp.br/ stol/EXPORT/www/ISO8859-1-Encoding.html

1 Seno

0.5

-0.5

-1 0 1 2 3 4 5 6

Figura 5: set key left top (canto superior esquerdo)

1 Seno

0.5

-0.5

-1 0 1 2 3 4 5 6

Figura 6: set key righ top (canto superior direito)

Para construir gr acos a partir de um conjunto de dados podemos utilizar plot ou splot, dependendo das dimens oes desejadas. gnuplot > plot "dados.txt" J a os gr acos 3D (Ver gura 7) s ao constru dos ` a partir do comando splot. Como, por exemplo: log x2 + y 2 gnuplot > splot log(sqrt(x**2+y**2))

3 2.5 2 1.5 1 0.5 0 10 5 -10 -5 0 5 log(sqrt(x**2+y**2)) -10 10 -5 0

Figura 7: Gr aco 3d

10

` vezes As e interessante construir gr acos mais complexos, usando duas ou mais fun c oes, podemos apenas separar as fun c oes por v rgulas, pode-se usar ,\(v rgula e barra invertida) como terminador de linha e denir a fun c ao desejada na linha seguinte ou, outra possibilidade e usar a op c ao rep (de replot) a cada fun c ao adicional, onde s ao apresentadas as fun c oes simultaneamente. Figura 8 gnuplot > plot sin(x),cos(x) ou apenas usar o comando replot gnuplot > plot sin(x) gnuplot > replot cos(x) Podemos tamb em usar ,\ para continuar na outra linha gnuplot > plot sin(x), \ cos(x) gnuplot > set grid gnuplot > set grid gnuplot > set key box gnuplot > set key box gnuplot > plot sin(x) Figura 9 gnuplot > plot sin(x), \ ou gnuplot > rep cos(x/3) cos ( x/ 3) , \ x x gnuplot > rep 14 1 1 14 O comando: set key box inseri uma caixa na legenda.
1 sin(x) cos(x) 0.8 0.5 0.6 0.4 0 0.2 0 -0.2 -1 -0.4 -0.6 -1.5 -0.8 -1 -10 -2 -10 -0.5 1 sin(x) cos(x/3) x/14-1

-5

10

-5

10

Figura 8:

Figura 9:

Algumas deni c oes a serem utilizadas com o argumento with

Voc e pode ver que tipos de gr acos o Gnuplot pode desenhar. Para espec car o estilo de gr aco temos os comandos: lines, points, linespoints e impulses.

11

0.5

-0.5

Seno -1 0 1 2 3 4 5 6

Figura 10: lines: Utiliza apenas uma linha que liga todos os pontos. Comando: plot sin(x) with lines.
1

0.5

-0.5

Seno -1 0 1 2 3 4 5 6

Figura 11: points: utiliza pontos com formatos diferentes como quadrados, sinais de mais, diamantes, asteristicos,... Comando: plot sin(x) with points.

12

0.5

-0.5

Seno -1 0 1 2 3 4 5 6

Figura 12: linespoints: e a combina c ao dos dois tens anteriores; utiliza uma linha que liga os pontos e al em disso mostra os pontos como no tem anterior. Comando: plot sin(x) with linespoints.
1

0.5

-0.5

Seno -1 0 1 2 3 4 5 6

Figura 13: impulses: O gr aco aparece rachurado. Comando: plot sin(x) with impulses.

Redirecionamento de Output

Quando estamos trabalhando com o Gnuplot, a sa da padr ao do gr aco e para o display, ou seja, ele desenha o gr aco em um nova janela e a exibe no monitor. Na maior parte dos casos, desejamos gerar gr acos em arquivos que possamos incluir em algum trabalho, como relat orios. Para isto o Gnuplot permite o redirecionamento de output para um arquivo, ou seja, permite gerar o gr aco em um arquivo cujo formato e reconhecido por A outros programas, como o LTEX. Para isto, devemos espec car o tipo de terminal que ser a utilizado, uma lista pode ser obtida a partir do comando dentro do Gnuplot. gnuplot > ?term (Figura:14)

13

Figura 14:

10

Trabalhando a Matem atica no Gnuplot


2

Vamos tra car o gr aco da fun c ao polinomial 9x3 + x 78x + 4. Observe que denimos 2 o nome da fun c ao no caso, f(x) e em seguida plotamos a mesma pelo seu nome. gnuplot>f(x)= 9*x**3+0.5*x**2-7.0/8.0*x+4 gnuplot>plot f(x)

14

10000 f(x) 8000 6000 4000 2000 0 -2000 -4000 -6000 -8000 -10000 -10

-5

10

Figura 15: Fun c ao Polinomial Agora vamos xar o dom io [1 : 1]x[1 : 1] e plotar tr es superf cies sem grades ou marcas, com estilos diferentes. Com os comando set xrange e yrange, podemos determinar o intervalo de varia c ao (dom nio) das vari aveis x e y no gr aco. O intervalo deve ser escrito entre colchetes e os n umeros separados por dois pontos [ : ]. Assim: xy, x2 + y 3 e x3 + y 2 . gnuplot>set xrange [-1:1] gnuplot>set yrange [-1:1] gnuplot>splot x*y with lines, x**2*y**3 with linespoints, x**3*y*2 with points Obtemos a gura 16.

15

x*y x**2*y**3 x**3*y*2

2.5 2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 -2.5 1 0.5 -1 -0.5 0 0.5 1 -1 -0.5 0

Figura 16: Para tra car o gr aco de uma fun c ao, o Gnuplot escolhe alguns pontos e calcula o valor da fun c ao nestes pontos. A quantidade padr ao de pontos escolhidos no eixo x para gr acos 2D e 100. No caso de gr acos tridimensionais a quantidade padr ao de pontos tamb em e de 100, sendo tomados 10 pontos no eixo x e no eixo y. Esta quantidade pode ser alterada atrav es dos comandos set samples n para gr acos no plano e set isosamples k,m para gr acos no espa co, sendo que n e o n umero de pontos no eixo x e k, m correspondem ao n umero de pontos nos eixos x e y,respectivamente. Uma verica c ao matem atica, s ao para obter as curvas de n veis. Para obter as curvas de n vel de z = xy , utilizamos o set contour para curva de n vel com altura dada, melhoramos a malha gr aca com samples e isosamples, para nomear os eixos x, y e z usamos o xlabel, ylabel e zlabel, respectivamente. Observe que aparecer ao suas repectivas curvas de n vel no plano. gnuplot>set contour gnuplot>set samples 20 gnuplot>set isosamples 21 gnuplot>set title "Curvas de n vel" gnuplot>splot x*y

16

Curvas de nivel x*y 1 0.5 0 -0.5

1 0.5 0 -0.5 -1 1 0.5 -1 -0.5 0 0.5 1 -1 -0.5 0

Figura 17: Curva de n vel z = xy Agora as curvas de n vel podem aparecer na superf cie e no plano, fazemos isso com os comandos set contour surface onde aparecer a a curva de n vel na superf cie e o set contour both que mostra a curva de n vel no plano. x2 y 2 gnuplot>set contour surface gnuplot>set contour both gnuplot>splot x**2-y**2
Curvas de nvel x**2-y**2 1 0.5 0 -0.5

1 0.5 0 -0.5 -1 1 0.5 -1 -0.5 0 0.5 1 -1 -0.5 0

Figura 18:

17

Uma fun c ao denida por partes tem a forma: { sen(x) se x < 0, f (x) = 5 x se x > 0. onde cada parte e associada a um intervalo. A nota c ao 1/0 usada abaixo representa o innito no Gnuplot. set samples 300 f(x) = x < 0 ? sin(x) : x > 0 ? 5-x : 1/0 plot f(x)
5 f(x) 4 3 2 1 0 -1 -2 -3 -4 -5 -10

-5

10

Figura 19: Fun c ao denida por partes.

18

Curvas parametrizadas no espa co tridimensional.


Para plotar curvas parametrizadas no espa co R3 , da forma r(t) = (x(t), y (t), z (t)), usaremos um truque que n ao est a no Help do Gnuplot, mas que e similar a plotagem de uma superf cie parametrizada. Desse modo, deniremos o padr ao como: gnuplot> set parametric Para plotar a curva helicoidal r(t) = (cos(t), sen(t), t) com t no dom nio [0, 4 ], deniremos esse dominio com set urange, substituirmos o par ametro t pelo par ametro u, que eo padr ao para plotar superf cies parametrizadas. gnuplot>set urange [0:4*pi] gnuplot>splot cos(u), sin(u), u

cos(u), sin(u), u

14 12 10 8 6 4 2 0 0.8 0.6 0.4 0.2 1

-1

-0.8 -0.6 -0.4 -0.2

0.2 0.4 0.6 0.8

1 -1

-0.2 -0.4 -0.6 -0.8

Figura 20:

19

A ao param etrica de um c rculo e: { express x = sen(t) com 0 < t < 2. y = cos(t), gnuplot > set parametric gnuplot > set xrange [-1:1] gnuplot > set yrange [-1:1] gnuplot > plot [0:2*pi] sin(t),cos(t) linewidth 4
1 sin(t), cos(t)

0.5

-0.5

-1 -1 -0.5 0 0.5 1

20

Exemplo 10.1 Agora observemos r(t) = 1 + cos(t), a chamada cardi oide. gnuplot > set parametric gnuplot > r(t) = 1+cos(t) gnuplot > plot [0:2*pi] r(t)*cos(t),r(t)*sin(t)
1.5 r(t)*cos(t), r(t)*sin(t)

0.5

-0.5

-1

-1.5 -0.5

0.5

1.5

21

Derivadas
Dada uma fun c ao f deriv avel no ponto a Dom(f ), sabemos que a reta tangente ao gr aco de f no ponto (a, f (a)) tem a seguinte equa c ao: y y0 = m(x a) onde y0 = f (a) e m = f (a). Assim, podemos escrever a equa c ao da reta tangente ao gr aco de f no ponto (a, f (a)) da seguinte forma: g (x) = f (a) + f (a).(x a) Usando o Gnuplot para visualizar o gr aco de uma fun c ao e a reta tangente num ponto (a, f (a)) pertencente ao gr aco. Vamos tomar a fun c ao f (x) = x2 +2x. Ent ao sua derivada e f (x) = 2x +2. Para visualizar a reta tangente ao gr aco de f no ponto (2, f (2)), passemos ao Gnuplot os seguintes comandos: gnuplot > reset gnuplot > f(x)=x**2+2*x gnuplot > df(x)=2*x+2 gnuplot > g(x)=f(2)+df(2)*(x-2) gnuplot > plot f(x), g(x)
120 f(x) g(x) 100 80 60 40 20 0 -20 -40 -60 -80 -10

-5

10

22

Superf cies
A visualiza c ao de superf cies e an aloga ` a visualiza c ao de curvas planas. Neste caso o comando b asico e splot. e mostrada uma superf cie dada pela fun c ao f (x, y ) = x + y , que tem como Na gura 21 gr aco um plano. Basta considerar f (x, y ) = z , temos: x+yz =0 Para constatar com o Gnuplot, fa camos: gnuplot > f(x,y)=x+y gnuplot > splot f(x,y)

f(x,y)

20 15 10 5 0 -5 -10 -15 -20 10 5 -10 -5 0 5 -10 10 -5 0

Figura 21: Agora podemos observar outras superf cies com comandos diferentes. Exemplo 10.2 (Parabol oide) O gr aco da fun c ao f (x, y ) = x2 + y 2 o que chamamos de parabol oide. Com o Gnuplot: O comando set isosample 20,20 e para melhorar a malha, deix a -la mais fechada. J ao comando set hidden3d e para diferenciar as faces da superf cie. gnuplot > set isosample 20,20 gnuplot > set hidden3d gnuplot > f(x,y)=x**2+y**2 gnuplot > splot f(x,y),0

23

f(x,y) 0

200 150 100 50 0 10 5 -10 -5 0 5 -10 10 -5 0

Figura 22: Se considerarmos a fun c ao f (x, y ) = x2 + (y 5)2 teremos uma pequena modica c ao no ponto mais baixo do parabol oide. Antes, o bico do parabol oide era o ponto (0, 0, 0) no plano XY , agora ser a o ponto (0, 5, 0). gnuplot > f(x,y),5

f(x,y) 5

200 180 160 140 120 100 80 60 40 20 0 10 5 -10 -5 0 5 -10 10 -5 0

Figura 23: Agora, considerando a fun c ao f (x, y ) = x2 + y 2 + 50, o bico do parabol oide ser a o ponto (0, 0, 50). Basta digitar o comando gnuplot > splot f(x,y),50

24

f(x,y) 50

200 180 160 140 120 100 80 60 40 20 0 10 5 -10 -5 0 5 -10 10 -5 0

Figura 24: Exemplo 10.3 (Sela) Considere a fun c ao f (x, y ) = x2 y 2 e passemos ao Gnuplot os seguintes comandos: gnuplot > set isosample 20,20 gnuplot > set hidden3d gnuplot > f(x,y)=x**2-y**2 gnuplot > splot f(x,y)

f(x,y)

100 80 60 40 20 0 -20 -40 -60 -80 -100 10 5 -10 -5 0 5 -10 10 -5 0

Figura 25:

25

Observe que cortes paralelos ao plano XZ nos d ao par abolas com concavidade para cima, pois isso equivale a y constante em f (x, y), ou seja, f (x, y ) = f (x, k ) = x2 + k Cortes paralelos ao plano Y Z nos d ao par abolas com concavidade para baixo, uma vez que nesse caso, x e constante e temos: f (x, y ) = f (k, y ) = k y 2 Para ver isso, passe ao Gnuplot os comandos: gnuplot > splot f(x,2) gnuplot > splot f(3,y) a apar Exemplo 10.4 (Chap eu de Cowboy) E encia do gr aco da fun c ao: sen( x2 +y 2 ) f (x, y ) =
x2 + y 2

Que para gnuplot gnuplot gnuplot gnuplot gnuplot

o Gnuplot passaremos: > set isosample 40,20 > set hidden3d > set zrange[-0.5:1.5] > f(x,y)=(sin(sqrt(x**2+y**2)))/(sqrt(x**2+y**2)) > splot f(x,y)

f(x,y)

1.5 1 0.5 0 -0.5 10 5 -10 -5 0 5 -10 10 -5 0

Figura 26:

26

Exemplo 10.5 (Caixa de ovos) O gr aco da fun c ao f (x, y ) = senx +cos x lembra bastante esse objeto: gnuplot > set isosample 60,20 gnuplot > set hidden3d gnuplot > set zrange[-2:2] gnuplot > f(x,y)=sin(x)+cos(x) gnuplot > splot f(x,y)

f(x,y)

2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 10 5 -10 -5 0 5 -10 10 -5 0

Figura 27:

27

11

Superf cies Parametrizadas

Esfera Parametrizada
(cos(u)cos(v ), 2sen(u)cos(v ), 3sen(v )) gnuplot>set parametric gnuplot> set zeroaxis gnuplot > set key box gnuplot > splot cos(u)*cos(v),2*sin(u)*cos(v),3*sin(v) gnuplot > set contour base gnuplot > set grid xtics ytics ztics

cos(u)*cos(v), 2*sin(u)*cos(v), 3*sin(v) 2 1 0 -1 -2 3 2 1 0 -1 -2 -3 2 1.5 1 -1 0.5 -0.8 -0.6 -0.4 -0.2 0 -0.5 0 0.2 0.4 0.6 0.8 -1 -1.5 1 -2

Se quizermos vericar somente as curvas de n vel da superf cie, adicionamos os seguintes comandos: cie gnuplot > unset surface Este comando esconde a superf gnuplot > set view 0,0 Este comando mostra como queremos visualizar o gr aco.

28

2 1.5 1 0.5 0 -0.5 -1 -1.5 -1 -2 -3 3 2 1 0 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 -2

2 1 0 -1 -2

Cilindro Circular Reto


Uma observa c ao diferente nesta gura e em rela c ao ao comando unset tics e unset border, com estes comando escondemos os eixos e observamos somente a gura. . (cos(u), sen(u), v ) gnuplot>set parametric gnuplot>set urange [0:2*pi] gnuplot>set hidden3d gnuplot> unset border gnuplot> unset tics gnuplot>set vrange [-4:4] gnuplot>splot cos(u), sin(u), v

cos(u), sin(u), v

29

Toro Parametrizado
Uma outra forma de visualiza c ao de gr acos e o efeito usado com o with, usamdo o comando with pm3d, e algo como uma distribui c ao de densidade da cor, o que signica que cada peda co de superf cie colorida e mostrada na parte infeior do gr aco; e ainda se colocarmos logo ap os do plot ou splot junto com a fun c ao que queremos plotar o comando title Nome isto modicar a o que aparece na legenda, ou seja, e uma edi c ao do que queremos nomear na legenda, observemos o seguinte efeito: ((1 0.2cos(v ))cos(u), (1 0.2cos(v ))sen(u), 0.2sen(v )) gnuplot>set parametric gnuplot>splot (1-0.2*cos(v))*cos(u), (1-0.2*cos(v))*sin(u), 0.2*sin(v) with pm3d title Toro Parametrizado

Toro Parametrizado

30

Prisma Hexagonal
(cos(v )3 cos(u)3 , sen(v )3 cos(u)3 , sen(u)3 ) gnuplot>set parametric gnuplot>unset border gnuplot>unset tics gnuplot>set isosamples 100,20 gnuplot>splot cos(v)**3*cos(u)**3, sin(v)**3*cos(u)**3, sin(u)**3
Prisma Hexagonal cos(v)**3*cos(u)**3, sin(v)**3*cos(u)**3, sin(u)**3

Figura 28:

31

H elice Parametrizada
((1 0.1cos(v ))cos(u), (1 0.1cos(v ))sen(u), 0.1(sin(v ) + u/1.7 10)) gnuplot>set parametric gnuplot>set isosamples 100,20 gnuplot>set urange [0:10*pi] gnuplot>set vrange [0:2*pi] gnuplot>unset border gnuplot>unset tics gnuplot>set hidden3d gnuplot> splot (1-0.1*cos(v))*cos(u),(1-0.1*cos(v))*sin(u),0.1*(sin(v)+u/1.7-10)
Helice parametrizada (1-0.1*cos(v))*cos(u), (1-0.1*cos(v))*sin(u), 0.1*(sin(v)+u/1.7-10)

Figura 29:

32

Concha Parametrizada
( 1 + cos(v ) u , sen(v ) , sen(u).u. cos(u).u. 2 2 ( 1 + cos(v ) 2 ))

gnuplot>set isosamples 40,20 gnuplot>set urange [0:2*pi] gnuplot>set vrange [0:2*pi] gnuplot>set zrange [-3:1.5] gnuplot>splot cos(u)*u*(1+cos(v)/2), sin(v)*u/2, sin(u)*u*(1+cos(v)/2) gnuplot> set autoscale z
Concha Parametrizada

cos(u)*u*(1+cos(v)/2), sin(v)*u/2, sin(u)*u*(1+cos(v)/2)

Figura 30:

33

Dois Toros Parametrizados Entrela cados


(cos(u) + .5cos(u)cos(v ), sen(u) + .5sen(u)cos(v ), .5sen(v ), 1 + cos(u) +.5cos(u)cos(v ), .5sen(v ), sen(u) + .5sen(u)cos(v )) gnuplot>set urange [-pi:pi] gnuplot>set vrange [-pi:pi] gnuplot>set isosamples 50,20 gnuplot>splot cos(u)+.5*cos(u)*cos(v),sin(u)+.5*sin(u)*cos(v),.5*sin(v) with lines, 1+cos(u)+.5*cos(u)*cos(v),.5*sin(v),sin(u)+.5*sin(u)*cos(v) with lines
Toros cos(u)+.5*cos(u)*cos(v), sin(u)+.5*sin(u)*cos(v), .5*sin(v) 1+cos(u)+.5*cos(u)*cos(v), .5*sin(v), sin(u)+.5*sin(u)*cos(v)

Figura 31:

34

Interse c ao de Dois Cilindros


(u, 4 u2 , v, u, 4 u2 , v, 4 v 2 , u, v, 4 v 2 , u, v ) Comandos: set parametric set hidden3d set isosamples 30,30 set urange [-2:2] set vrange [-2:2] set zrange [-2:2] unset tics splot u, sqrt(4-u**2), v,u, -sqrt(4-u**2), v,sqrt(4-v**2), u, v,-sqrt(4-v**2), u, v

u, sqrt(4-u**2), v u, -sqrt(4-u**2), v sqrt(4-v**2), u, v -sqrt(4-v**2), u, v

Figura 32:

12

Editando Arquivos com Comandos do Gnuplot

Observamos que at e agora, todas as instru c oes foram feitas diretamente na linha de comando. Para que n ao seja necess ario digitarmos todos os comandos a cada novo gr aco a ser feito, e poss vel criarmos um arquivo em um editor de texto, contendo todas as instru c oes para a constru c ao do gr aco. Depois de criado, o arquivo e lido e interpretado pelo Gnuplot atrav es do comando load, cuja sintaxe e dada a seguir: gnuplot> load "nome do arquivo".

35

13

Criar arquivo no bloco de notas

Ap os digitarmos todos os comandos necess arios para tra car o gr aco desejado, salvamos o arquivo numa pasta de trabalho. Todos os comandos utilizados,podem ser colocados em um mesmo arquivo (exe1.plt) da seguinte maneira: # # arquivo exe1.plt # comandos para realizar o gr aco da fun c ao cos(2x) # set title teste1-cosseno set xrange [0:2*pi] set yrange [-1.2:1.2] set xlabel eixo x set ylabel eixo y plot cos(2*x)
Cosseno cos(2x)

Figura 33: Figura feita com Gnuplot a partir da leitura de dados. Observa c ao: Se utilizarmos o sinal # (sustenido) no in cio de uma linha do arquivo, o Gnuplot n ao ir a ler esta linha, ent ao usamos # para fazer coment arios.

14

Visualizando o Modo Multiplot

O modo multiplot permite a visualiza c ao de v arios gr acos. Observe este gr aco e seu script: set multiplot set size 1,0.5; set origin 0.0,0.5; plot sin(x); set origin 0.0,0.0; plot cos(x) unset multiplot

36

Figura 34: Veja a fun c ao de cada comando: Com o comando set multiplot passamos para o modo multiplot, set origin xa a origem do gr aco, set size, xa o tamanho do gr aco e unset multiplot, sai do modo multiplot.

15

Aplica c oes Cient cas

O aplicativo gnuplot e destinado ` a visualiza c ao de gr acos e superf cies, u teis em aplica c oes cient cas nas areas de f sica, estat stica, engenharias (cartogr aca, mec anica, el etrica, ...). Vejamos a seguir algumas dessas aplica c oes.

Aplica c ao na Estat stica


O gr aco estat stico e uma forma de apresenta c ao dos dados estatisticos, cujo objetivo e o de produzir no investigador ou no p ublico em geral, uma impress ao mais r apida e viva do fen omeno em estudo. Os estat sticos usam o Gnuplot com o objetivo de obter diversica c oes gr acas na forma de linhas, barras... Vejamos uma aplica c ao cl assica na estat stica, o gr aco de barras:

37

US immigration from Northern Europe Plot selected data columns as histogram of clustered boxes 300000 250000 200000 150000 100000 50000 0 Denmark Netherlands Norway Sweden

Comandos: Para exibir este gr aco, criamos um arquivo de dados immigration.dat, o qual ter a todas as informa c oes das investiga oes feita.

Em seguida passamos os seguintes comandos ao Gnuplot: set title US immigration from Northern Europe \nPlot selected data columns as histogram of clustered boxes set auto x set yrange [0:300000] set style data histogram set style histogram cluster gap 1 set style ll solid border -1 set boxwidth 0.9 set xtic rotate by -45 set bmargin 10 plot immigration.dat using 6:xtic(1) ti col, u 12 ti col, u 13 ti col, u 14 ti col

18 91

19 01 00 19

Figura 35:

19 11 10 19

38

19 21 20 19

19 31 30 19

19 41 40 19

19 51 50 19

19 61 70 19 60 19

Aplica c ao na Engenharia Cartograca


Uma interessante aplica c ao do Gnuplot e a visualiza c ao de Proje c oes Cartogr acas, podendo ser u til no aprendizado de Cartograa Matem atica, uma vez que o aluno pode escrever as equa c oes das proje c oes, modicar o paralelo padr ao, modicar o ponto de tang encia, modicar a escala, calcular o fator de escala, visualizar a proje c ao, dentre outras possibilidades. A seguir observemos algumas guras cartogr acas. Estas guras podem ser encontradas na p agina ocial do Gnuplot (www.gnuplot.info/).
100 80 60 40 20 0 -20 -40 -60 -80 -100 -200 -150 -100 -50 0 50 100 150 200 world.dat world.cor

Figura 36:

Versao 3D usando o sistema de coordenadas esfericas cos(u)*cos(v), cos(u)*sin(v), sin(u) world.dat world.cor

1 0.5 0 -0.5

0.81 -1 0.6 -1-0.8 0.4 -0.6 0.2 -0.4 0 -0.2 0 0.2 -0.2 -0.4 0.4 -0.6 0.6 -0.8 0.8 1-1

Figura 37:

39

3D solid version through hiddenlining cos(u)*cos(v), -cos(u)*sin(v), sin(u) world.dat u 1:2:(1.001) world.cor

1 0.5 0 -0.5

0.81 -1 0.6 -1-0.8 0.4 -0.6 -0.4 -0.2 0 0.2 -0.200.2 -0.4 -0.6 0.4 -0.8 0.6 -1 0.8 1 -1.2

Figura 38:

Versao 3D usando sistema de coordenadas cilindricas cos(u), sin(u), v world.dat world.cor

100 80 60 40 20 0 -20 -40 -60 -80 -100 -1

-0.5

0.5

1-1

-0.5

0.5

Figura 39: Para produzirmos as guras anteriores, teremos que construir tr es arquivos: world.dat, world.cor e world.dem, estes arquivos podem ser baixados no site do Gnuplot. A partir destes arquivos basta digitar na linha de comando do Gnuplot load world.dem, arquivo de dados j a criado, que visualizaremos tais guras.

40

Considera c oes Finais


O Gnuplot foi desenvolvido inicialmente por Thomas Williams e Colin Kelly em 1986 com o objetivo de criar um programa que lhes permitisse visualizar gracamente propriedades das equa c oes matem aticas relacionadas ao fen omeno do eletromagnetismo. Primeiramente foi denominado de NEWPLOT, mas ao descobrirem que j a existia outro programa com esse mesmo nome, mudaram para Gnuplot. O programa destina-se a cria c ao de gr acos a partir de fun c oes e conjuntos de dados em duas ou tr es dimens oes. O Gnuplot e bastante utilizado devido a sua simplicidade, versatilidade e automatiza c ao das tarefas, o que possibilita tra car diversos gr acos a partir da execu c ao de apenas um arquivo de comandos. Segundo Galo (2003) o aplicativo Gnuplot e destinado ` a visualiza c ao de gr acos e superf cies, u teis em aplica c oes cient cas nas areas de f sica, matem atica, estat stica e engenharias. Este aplicativo e de dom nio p ublico e tem vers oes para uma s erie de sistemas operacionais, tais como: Windows, Unix, Linux.

Refer encias
[1] FONTENELE, F. C. F. GNUPLOT: comandos b asicos e aplica c oes em sala de aula. Monograa do Curso de Matem atica, 2007. [2] GALO, Mauricio. Instru c oes iniciais para o uso do Gnuplot. Dispon vel no site: www.prudente.unesp.br/dcartog/galo/gnuplot [3] P agina central do Gnuplot: www.gnuplot.info. [4] Gnuplot um programa para fazer gr acos e alguns c alculos: Dispon vel no seguinte site: http://t16web.lanl.gov/Kawano/gnuplot/index-e.html.

41