Curso de gnuplot

Introdução

O gnuplot é um programa para plotar gráficos em 2D e 3D de funções ou arquivos de dados. Algumas de suas características são:

Alguns exemplos de gráficos feitos com o gnuplot são mostrados a seguir:


Instalando o gnuplot

O gnuplot pode ser instalado em Linux, OS/2, MS Windows, Mac OS, VMS e muitas outras plataformas. O programa pode ser compilado a partir do código fonte ou pode ser utilizado um instalador para a plataforma desejada.

Para usuários do ...

Para consultar as versões mais recentes do gnuplot, acessar a sua página de Download.

Plotando o gráfico

Para plotar o gráfico de uma função y = f(x) vamos usar o comando plot.

Por exemplo, para ver o gráfico de y = cos(x), basta digitar na janela de comandos do gnuplot:

plot cos(x)

e será imediatamente exibido o gráfico seguinte:

Para inserir rapidamente uma grade no gráfico recém gerado, com a sua janela selecionada, tecle "g" e teremos o seguinte resultado:

Obs: a tecla de atalho "g", ativa e desativa a grade. Portanto, pressione "g" mais duas vezes e perceba a transição da grade.

Para plotar o gráfico de uma superfície 3D basta usar o comando splot.  Por exemplo, para plotar as funções 

e

basta executar o seguinte comando:

splot x**2+y**2, x**2-y**2

e será exibido o gráfico das duas funções:

Como podemos perceber pelo exemplo anterior, podem-se plotar vários gráficos de uma só vez. Por exemplo, digite o comando seguinte para plotar as três funções respectivamente.

plot cos(x), log(x), log(-x)

Elementos de um gráfico

Um gráfico é constituído por muitos objetos: bordas, eixos, linhas, símbolos, grade, escala usada nos eixos etc. Você deve ter percebido que nos exemplos anteriores não precisamos informar muita coisa sobre esses objetos. Não informamos, por exemplo, que faixa de valores usar no eixo-x e no eixo-y ou que cores e espessura atribuir a cada linha etc. Isso faz do gnuplot uma ferramenta poderosa e prática quando se quer visualizar rapidamente o formato do gráfico de uma função ou de um arquivo de dados. Entretanto, para podermos utilizar esse gráficos em documentos ou artigos é interessante que possamos definir as características dos objetos que constituem o gráfico, seja por questões estéticas ou para respeitar exigências da mídia onde esse gráfico vai ser publicado. 

Vejamos alguns objetos que aparecem num gráfico e como são chamados pelo gnuplot.

Todos esses elementos de um gráfico e alguns que veremos depois podem ser manipulados. Deixar um gráfico com todas as características desejadas (cores, espessuras, tamanhos etc) pode demorar algum tempo mas depois de alcançado o resultado pretendido, todos os ajustes podem ficar gravados em arquivo para fácil reutilização em outros gráficos.

Modificando os elementos do gráfico

Vamos partir do gráfico da função y=cos(x) e fazer várias modificações em seus objetos.

1) Inicialmente, para gerar o gráfico da função, digite na janela de comandos:

plot cos(x)

e o gráfico ilustrado a seguir será exibido na tela (como já fizemos anteriormente)

2) Vamos dar o comando para inserir a grid (grade)

set grid; replot

O comando set grid diz ao gnuplot que na próxima vez que o gráfico for gerado deverá ser exibida a grade, portanto, após configurar a exibição da grade, replotamos o gráficos com o comando replot. Na linha de comando anterior pode-se perceber que mais de um comando pode ser dado na mesma linha, desde que separados por ";". O resultado é mostrado a seguir:

Obs. 1: O objeto grid poderia ser modificado de diversas formas. Para ver como fazer isso via linha de comando, a melhor forma é contar com seu incansável professor de gnuplot, o comando help. Nesse caso, o comando seria help set grid, mas em breve abordaremos em mais detalhes o uso do comando help.

Obs 2: Outro recurso auxiliar além do nosso professor help é o manual do gnuplot que acompanha o mesmo, geralmente denominado gnuplot.pdf.

3) Vamos mudar o xrange (a faixa de valores a ser usada no eixo-x), para, por exemplo, 0 a 4π:

set xrange [0:4*pi]; replot

e será gerada a próxima figura:

4) Podemos observar que a legenda automaticamente gerada está configurada para ser posicionada (por padrão) no canto superior direito do gráfico e internamente ao frame, fazendo com que a linha do gráfico e da legenda se cruzem. Podemos alterar o yrange (a faixa de valores do eixo-y) de modo que o frame aumente na direção vertical e assim evitar que a legenda e a linha do gráfico se cruzem:

set yrange [-1.5:1.5]; replot

o que geraria o próximo gráfico:

5) Que tal colocarmos um title no gráfico? Digite:

set title "Meu Primeiro Gráfico"; replot

e teremos: 

Juntando tudo num único script

Todos os gráficos plotados até aqui foram gerados digitando-se um comando na janela de comandos do gnuplot. À medida que um gráfico vai ganhando complexidade (várias linhas de comando) é mais prático gravar esses comandos num arquivo de texto chamado de um script e carregar esse arquivo para gerar o gráfico. 

Portanto, Um script gnuplot é simplesmente um arquivo de texto puro que contém sucessivos comandos que resultarão no gráfico desejado. Um arquivo de texto puro pode ser gerado com editores de texto como o "bloco de notas" ou "notepad" do Windows. No Linux existem diversos editores que podem ser utilizados como emacs, vi, vim, nano, kwrite, kate etc etc. O meu preferido para Windows é o Notepad++. No Linux, o editor padrão da sua distribuição é suficiente, entretanto, os meus preferidos são o emacs e o kate.

Ao gravar seu script pode-se usar qualquer extensão de arquivo, porém, as mais comumente usadas são "plt" e "gp".

Daremos um exemplo de como plotar, no Windows, o gráfico anterior, "Meu Primeiro Gráfico", através de um script. Em outras plataformas o procedimento é semelhante.

1. Usando um editor de texto de sua preferência, abra um arquivo de texto.

Obs: Não use programas como o MS Word pois eles, normalmente, não salvam um arquivo de texto puro.

2. Nesse arquivo, escreva os comandos usados para configurar e plotar o gráfico:

set grid

set xrange [0:4*pi]

set yrange [-1.5:1.5]

set title "Meu Primeiro Gráfico"

plot cos(x)

3. Salve o arquivo como "primeiro.plt" num diretório (pasta) à sua escolha.

4. Supondo que arquivo tenha sido gravado em "C:\Users\Ricardo\Documents\gnuplot_curso", você poderá plotar o gráfico de 2 formas:

Método 1 - Carregue o arquivo "primeiro.plt" informando o caminho completo para localizar o arquivo:

load 'C:\Users\Ricardo\Documents\gnuplot_curso\primeiro.plt'

Método 2 - Primeiro faça o diretório corrente do gnuplot ser C:\Users\Ricardo\Documents\gnuplot_curso e depois carregue o arquivo "primeiro.plt". Isso pode ser feito via linha de comando ou via interface gráfica (figuras abaixo).

Método 2 via linha de comando:

cd 'C:\Users\Ricardo\Documents\gnuplot_curso'

load 'primeiro.plt'

Método 2 via interface gráfica:

Na Janela de comandos do gnuplot, versão Windows, clique em File e depois em Change Directory ...

Será exibida uma janela para escolha do diretório. Clique em gnuplot_curso e depois em OK.

Agora é só carregar o script:

load 'primeiro.plt'

O conceito de terminal

Na linguagem do gnuplot, terminal representa o dispositivo para onde o gráfico é enviado para ser plotado. Um gráfico é sempre enviado para um terminal gráfico, um dispositivo de saída que por sua vez, é responsável por exibir o gráfico. Esse dispositivo de saída gráfico pode ser, por exemplo, a tela do computador (um terminal gráfico), uma impressora, um plotter ou um arquivo. Assim, se o gráfico deve ser plotado num arquivo em formato jpeg, usamos o terminal jpeg. Para o gnuplot já foram implementados mais de 70 terminais, entretanto, qualquer usuário só deverá precisar de um número bem pequeno de terminais. É possível até mesmo não ser necessário se preocupar com nenhum tipo de terminal se o usuário só deseja plotar seus gráficos na tela do computador, pois um terminal que reproduz o gráfico na tela é utilizado por padrão. Voltaremos ao assunto em mais detalhes futuramente.

continua na próxima semana ...