"Em tempo de mudanças, os dispostos a aprender sempre são os que herdarão o futuro. Os que acham que já aprenderam tudo, descobrirão estar preparados apenas para viver num mundo que já não mais existe." Eric Haffer


Adicione aos favoritos !

Adicionar aos favoritos no Firefox ou Para adicionar no IE clique Aqui

sábado, 19 de janeiro de 2008

Criando gráficos no computador com o auxílio do GNUPLOT

O Gnuplot é um software que serve para que possamos gerar gráficos no computador e possamos estudar o comportamento desses gráficos. O Gnuplot pode ser usado tanto em ambiente windows como em ambiente Unix/Linux.

O Gnuplot foi desenvolvido em 1986 por Colin Kelly e Thomas Williams objetivando criar um programa que lhes permitisse visualizar graficamente propriedades de equações matemáticas relacionadas ao fenômeno do eletromagnetismo.

Além de tudo, o Gnuplot é gratuito, ou seja você pode desfrutar de todas as maravilhas deste software sem ter que pagar nada por isso. Esse software é bastante utilizado hoje em dia no ramo da ciência devido a sua eficiência, simplicidade e flexibilidade.

Nesse breve tutorial tenho como objetivo passar alguns dos comandos básicos do Gnuplot e não será abordada a instalação do aplicativo. Os comandos do tutorial foram usados em uma distribuição linux, mais creio que no windows as sintaxes sejam as mesmas.

Quando instalado vamos ao terminal e digitamos gnuplot. Deverá aparecer uma tela como a da figura abaixo:

(clique na imagem para ampliar)
Pois bem antes de começarmos é necessário que saibamos algumas funções pre-definidas do gnuplot:

(clique na imagem para ampliar)
Se digitarmos plot sin(x) no terminal, teremos:

(clique na imagem para ampliar)
Dessa forma geramos na tela o gráfico da função y = sen(x).

Podemos perceber que na imagem o domínio da função vai de -10 até 10, isso ocorre porque não definimos o domínio que queriamos visualizar no gráfico. Digamos que quisessemos visualizar o gráfico da função no domínio de -20 até 20. O comando nesse caso seria: plot [-20:20] sin(x).

Outra maneira de se definir o domínio é através do comando xrange e yrange. Digitando assim no terminal:

set xrange[-20:20]

set yrange [-2:2]

Dessa maneira o eixo x de nosso próximo gráfico vai de -20 até 20 e o eixo y vai de -2 até 2.

Se quisermor zerar essas configurações é só digitar o comando reset, que o gnuplot volta pro default.

Pode-se ativar a grade nos gráficos, para se ativar a grade é só darmos o comando set grid no terminal que o próximo gráfico terá a grade, e para desativar pode-se digitar set nogrid, ou então apertar a letra g na tela do gráfico para habilitar ou desabilitar a grade.

Até agora estávamos visualizando apenas uma função por vez, mais no gnuplot é possível se visualizar vários gráficos de uma vez só. Para se visualisar vários gráficos existem duas maneiras. Usando -se o ',\' e digitar a próxima função ou utilizando-se o comando rep (de replot).

Exemplo:

plot x
rep x*x

rep x +3


(clique na imagem para ampliar)

No Gnuplot pode-se modificar os vários atributos do gráfico. Por exempo se quiséssemos mudar os pontos do traço do gráfico ou a cor é possível. Para se visualizar as cores e os tipos de pontos pode-se usar o comando abaixo:

test

Se digitarmos esse comando deve aparecer uma tela como a da figura abaixo:

(clique na imagem para ampliar)

Até agora nossos gráficos foram plotados usando linhas, mais é possível também utilizarmos tanto linhas, como impulsos, pontos, pontos e linhas e etc.

Para servir de exemplo o leitor pode testar os seguintes comandos (um de cada vez):

plot cos(x) with lines


plot cos(x) with points


plot cos(x) with linespoints


plot cos(x) with dots


plot cos(x) with impulses


Para se usar as cores da tabela da figura anterior é só colocar no final da linha de comando o número correpondente a cor que se deseja de acordo com a tabela. Para se utilizar os pontos de acordo com a tabela utilizamos também o número correspondente ao tipo de ponto que se deseja. Por exemplo:

Digamos que queiramos visualizar a função sen(x/2) no intervalo de -pi/2 até 2*pi na cor verde (10) e com asteríscos (6) juntamente com a função cos(2*x) na cor azul e com impulsos o comando seria:

plot [-pi/2:2*pi] sin(x/2) with points 10 6


rep cos(2*x) with impulses 3


(clique na imagem para ampliar)

Podemos também definir as funções e depois visualiza-las, dessa forma:

f(x) = 2*x

plot f(x)

Podemos fazer também assim:

f(x,b) = x*b

plot f(x,2)


ou

plot f(x,b), b = 2

Podemos perceber que uma mesma função pode ser representada de diversas maneiras!

A vantagem é que podemos definir a função uma única vez e depois se quisermos, podemos modificar os seu coeficientes.

Digamos que queremos visualizar no mesmo gráfico as funções:

f(x) = 2*x*x + 3

f(x) = x*x + 4*x

f(x) = x*x


Podemos declarar uma única vez uma função do tipo

f(x,a,b,c) = a*x*x + b*x + c

e depois mudamos os coeficientes, ou seja:

plot f(x,2,0,3)

rep f(x,1,4,0)

rep f(x,1,0,0)



É possível também modificar o título do gráfico, o texto correspondente ao eixo x e o texto correspondente ao eixo y, para isso:

set title "Texto desejado para o título"

set xlabel "
Texto correspondente ao eixo x"

set ylabel "
Texto correspondente ao eixo y"


Lembrando que se quiser zerar tudo pra outra configuração é só usar o comando reset.

Para se mudar a legenda de cada função usa-se a opção t, assim:

plot sin(x) t"funcao seno"


O Gnuplot é um aplicativo com muitas funções e não é coveniente numeralas todas aqui em um único post, mais para se começar, com tudo que vimos aqui já se tem uma boa base.

Pretendo no futuro fazer um outro post sobre o Gnuplot aonde se usa arquivos de texto com os dados e usa-se o Gnuplot para plotar os gráficos através dos dados no arquivo.

Um comentário:

Anônimo disse...

Beleza de blog. gostei da dica do programa sobre gráficos.
Tens artigos interessantes aqui,muito bom mesmo.
Abraços.