Usando o GNUplot para plotar grágicos
O GNUplot é um software muito bom para plotar grágicos 2D e 3D, ele possui diversas funções, muito mais do que consigo usar.
Usar o GNUplot consiste em escrever um script, uma série de comandos de terminal, para obter um gráfico dos dados dispostos em um arquivo de dados. Me explico.
O arquivo de dados
Você deve se lembrar em um plano cartesiano o ponto são representados por duas coordenadas x e y. Em geral, um arquivo de dados é um arquivo de texto com os valores de x e y de um ponto em cada linha, como no seguinte exemplo:
-5.00000000 25.0000000
-4.00000000 16.0000000
-3.00000000 9.00000000
-2.00000000 4.00000000
-1.00000000 1.00000000
0.00000000 0.00000000
1.00000000 1.00000000
2.00000000 4.00000000
3.00000000 9.00000000
4.00000000 16.0000000
Este será o conteúdo do nosso primeiro exemplo, que estará em um arquivo chamado dados.dat, o nome poderia ser qualquer outro.
Note que se for um gráfico 3D então cada linha deverá conter os valores das três coordenadas de cada ponto.
Pra começar
Usando seu editor de texto favorito crie um arquivo com um nome qualquer, eu costumo colocar um .gr depois do nome pra indicar que se trata de um script para gráfico.
O primeiro comando do script trata do interpretador e somente é necessário de você quiser torná-lo executável, se você não sabe o que é isso sugiro que pesquise ou ignore esse comando.
#!/usr/bin/env gnuplot
O seguinte comando indica o formato que queremos salvar nosso gráfico, o tamanho da fonte e da imagem
- png
set term png size 720, 720 font ",18" set output "output.png"
- svg
set term svg size 720, 720 font ",18" set output "output.svg"
Neste caso o tamanho da fonte é 18 e o gráfico terá o formato 720px, quadrado.
Plotando
O comando para plotar é simples:
- Somente pontos
plot "dados.dat" w p
- Somente linhas
plot "dados.dat" w l
- Linhas e pontos
plot "dados.dat" w lp
Para gerar o gráfico basta abrir o terminal no mesmo diretório que o script e executar-lo com o gnuplot usando o seguinte comando, no terminal:
gnuplot test.gr
Pontos
Para mudar o tipo dos pontos para 7 e o tamanho dos pontos para 1, faça:
plot "dados.dat" w p pt 7 ps 1
Há 13 tipos de pontos.
Para mudar a cor dos pontos para azul, faça:
plot "dados.dat" w p lt rgb "blue" pt 6 ps 1
Linhas
Para mudar a cor das linhas para azul, faça:
plot "dados.dat" w l lt rgb "blue"
Caixa
Para mudar a posição da caixa coloque, antes do plot:
- Esquerda
set key left
- Centro
set key center
- Direita
set key right
- Encima
set key top
- Embaixo
set key bottom
- Fora
set key outside
Podemos colocar-lo em uma caixa:
set key box
Ou sumir com ele:
set key off
Os comandos acima podem ser mesclados, por exemplo:
set key box top right
Também é possível mudar o título de um gráfico:
plot "dados.dat" w p lt rgb "blue" pt 6 ps 3 title "Massa 1"
Eixos e Título
Já os eixos e o título da figura podem ser auterados assim:
set xlabel "Eixo x"
set ylabel "Eixo y"
set zlabel "Eixo z"
set title "Tutorial"
Curva de ajuste
Primeiro crie uma função dependente de quantos parâmetros quiser, na física use não mais que dois sempre que possível:
f(x) = a * x ** 2 + b
Depois crie uma variável para o seu arquivo de dados:
data = "dados.dat"
Agora passe um ajuste nos seus dados e guarde a informação na função:
fit f(x) data via a, b
Plote as duas curvas juntas:
plot data w p lt rgb "blue" pt 6 ps 3 title "Massa 1", \
f(x) w l lt rgb "red"
Nosso primeiro exemplo termina aqui, ficando assim:
#!/usr/bin/env gnuplot
set term png size 720, 720 font ",18"
set output "output.png"
set key box top right
data = "dados.dat"
set xlabel "Eixo x"
set ylabel "Eixo y"
set title "Tutorial"
f(x) = a * x ** 2 + b
fit f(x) data via a, b
plot data w p lt rgb "blue" pt 6 ps 3 title "Massa 1", \
f(x) w l lt rgb "red"
Escala logarítmica
Para usar a escala logarítmica faça:
set logscale xyz
Note que não necessáriamente a escala logarítimica deve ser aplicada em todos os eixos.
Strings
É possível usar strings como no c:
a=2
plot "dados.dat" title sprintf("%02d", a)
Barra de erro
Támbem é possível que, no arquivo de dados, além das coordenadas x e y de um ponto, uma linha contenha os valores da incerteza em uma medida.
Por exemplo, em um arquivo, os dados de cada linha podem estar organizados da forma:
x y xErro yErro
Para plotar as barras de erro basta usar:
plot "dados.dat" with xyerrorbars
Superfícies
Para plotar curvas e superfúcies 3D basicamente basta trocar o plot por splot e todo o resto é igual.