Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile
Visite também: Ipok ·  Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Lan University

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Usando gnuplot para gerar bons gráficos

Colaboração: João Paulo de Souza Medeiros

Data de Publicação: 08 de Junho de 2006

O gnuplot é um software que facilita a criação de graficos 2D e 3D para ambientes UNIX, IBM OS/2, MS Windows, DOS, Macintosh, VMS, Atari. Vamos ver aqui alguns comandos básicos de utilização, e algumas opções que podem incrementar mais resultado final do gráfico.

Iniciando o gnuplot:

  $ gnuplot
  Terminal type set to 'x11'
  gnuplot>

Para terminar a execução do gnuplot presionasse Ctrl+D.

Plotando funções

Usa-se o comando plot para plotar funções 2D. No gnuplot existem as variáveis próprias de cada espaço, no caso 2D usamos a variável x para coordenadas retangulares e t para coordenadas polares.

  gnuplot> plot sin(x)

Também é possível imprimir mais de uma função separando-as por vírgula.

  gnuplot> plot sin(x), log(x), cos(x), x**2

Podemos também setar o título da função dentre outros parametros:

  gnuplot> plot sin(x) title 'Senóide'

Alterar os limites do gráfico:

  gnuplot> set xrange [0:10]
  gnuplot> set yrange [-2:2]
  gnuplot> plot sin(x) title 'Senóide', cos(x) title 'Cossenóide'
  gnuplot> replot

Para utilizar coordenadas polares usa-se o comando set polar. Para espaços 3D utiliza-se a função splot no lugar de plot.

Plotando dados de um arquivo

Antes de mostrar como carregar os dados de um arquivo, vamos criar esse arquivo.

  $ cat > dados.dat << EOF
  > 0.0   0.0   0.0
  > 0.1   1.5   2.0
  > 0.2   1.2   2.2
  > 0.3   1.9   2.1
  > 0.5   0.5   0.9
  > EOF
  $ gnuplot

Carreando os dados do arquivo e imprimindo:

  gnuplot> plot 'dados.dat'

Note que foram plotados os pontos (x,y), onde x é a primeira coluna do arquivo, e y a segunda. Podemos selecionar as colunas que desejamos usar:

  gnuplot> plot 'dados.dat' using 1:3 title 'Pontos'

Agora foram foram utilizadas as colunas 1 e 3 (x,y). Podemos ainda interpolar linearmente esses pontos utilizando a opção with lines.

  gnuplot> plot 'dados.dat' using 1:2 title 'Coluna 2' with lines, \
  > plot 'dados.dat' using 1:3 title 'Coluna 3' with lines

Usar interpolação é muito útil quando pretende-se analizar valores intermediários dentre os pontos que se possui nos dados.

Últimas dicas

Utilizando os botões do mouse pode-se dar zoom e marcar pontos para obter a coordenada no local. Uma outra boa opção é usar grades no gráfico, para isso bastar usar a opção set grid. Pode-se ainda salvar a seqüência de comandos em um arquivo:

  gnuplot> save 'exemplo'

E carregar arquivos.

  gnuplot> load 'exemplo'

E é claro, podemos salvar o gráfico em uma imagem. O gnuplot oferece uma vasta gama de formatos de saída para imagens. No caso, vamos salvar o gráfico no formato png:

  gnuplot> set terminal png
  gnuplot> set output 'imagem.png'
  gnuplot> replot

A imagem só será gerada após o comando replot.

Conclusão

Bom pessoal, vimos aqui como é simples e rápido gerar bons gráficos com o gnuplot. Mas esse texto é apenas um material básico, existem muitas outras funções que a presente ferramenta oferece. Para se aprofundar mais navegue pelos links abaixo.

http://www.gnuplot.info/ e http://www.cs.uni.edu/Help/gnuplot/

 

 

Veja a relação completa dos artigos de João Paulo de Souza Medeiros

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 2.95/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (2365 votos)

Opinião dos Leitores

guilherme canella
23 Nov 2013, 16:21
Ola joão tudo bem?

João primeiramente parabéns! Muito bom o tutorial!

Mas joão estou com uma dúvida: eu tenho dois arquivos "arquivo1.dat" e o "arquivo2.dat" e ambos geram gráficos. Se eu ploto eles separados fica ótimo a resolução mas eu estou tendo problema para postar os dois juntos. Na verdade a dimensão deles é muito diferente uma da outra, ou seja, quando eu ploto os dois juntos ao invés de mostrar as duas curvas bonitas no gráfico, ele plota duas linhas horizontais! Tem como corrigir isso e plotar os dois gráficos mesmo tendo dimensões diferentes?

Desde já obrigado!
João Paulo
15 Out 2013, 21:36
Obrigado, este site é um salva vidas!!
Nathália
15 Out 2013, 03:36
Obrigada, mas depois de tanta luta, acabei que achei um fórum em inglês e resolvi meu problema.
Nathália
15 Out 2013, 02:33
Preciso de ajuda urgente!
Sempre utilizei o gnuplot em uma computador que eu utilizava no laboratório de pesquisa q e trabalhava.
Então resolvi colocá-lo no meu notebook. Instalei ele direitinho no linux, consegue entrar e tudo.
O problema é que na hora que mando plotar um gráfico (seja ele de uma função ou a partir de dados de um arquivo txt), o programa não dá erro nem nada, porém a imagem não aparece na tela!
Gostaria de saber se é necessário instalar mais algum programa para visualizar os gráficos.

Aguardo resposta, obrigada!

Nathália Mello
Breno
20 Nov 2011, 06:32
Oi, tutorial muito legal para começar a mexer no gnuplot. Parabéns.

O link http://www.cs.uni.edu/Help/gnuplot/ não está mais funcionando.
Davi
22 Ago 2011, 16:07
Cara eu tive problemas para fazer um gráfico com duas curvas porque neste tutorial e em outros que vi na net tinha esse exemplo como o que vc usa, o quarto exemplo da seção "Plotando dados de um arquivo"

gnuplot> plot 'dados.dat' using 1:2 title 'Coluna 2' with lines, \
> plot 'dados.dat' using 1:3 title 'Coluna 3' with lines

Mas acho que está errado, pelo menos quando eu tentava denunciava um erro assim:
undefined variable: plot

Aí eu tirei esse segundo plot e funcionou, o certo então pelo que entendi seria assim:

gnuplot> plot "./graphtest4" using 1:2 title 'Cache Hits' with lines, \
> "./graphtest4" using 1:3 title 'Cache Miss' with lines


De toda forma agradeço o tutorial que está bem resumido
Luan alexandre
22 Mai 2011, 23:35
muito bom! estava procurando este tuto.
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
3ª geração do Under Servidor Cloud




 

As Palavras Mais Comuns da Língua Inglesa - 2ª edição