PLplot 01: Introdução e Instalação.

Este artigo é a parte 1 de 2 da série PLplot em C

PLplot é uma blbioteca multiplataforma para para criar gráficos científicos. Com ela, você pode gerar gráficos comuns, histogramas,  gráficos de barra, traçar curvas de nível e várias outras coisas. A biblioteca está disponível para várias linguagens de programação, como C/C++, Python, Ada, Fortran, Java, entre outras. É possível também o uso dela dentro do Octave. Com vários drivers disponíveis, os seus gráficos podem ser salvos em vários formatos de imagem diferentes ou simplesmente serem visualizados na tela através dos drivers xwin, xcairo, entre outros. A possibilidade de embutir o gráfico dentro de um aplicativo Qt, GTK, WxWidgets é também um atrativo se você tem a intenção de criar um aplicativo com interface gráfica e que necessite lidar com gráficos científicos.

A figura abaixo é um exemplo de gráfico gerado utilizando utilizando a PLplot. Note a qualidade do gráfico gerado. Se você deseja ver do que mais essa biblioteca é capaz, visite a página de exemplos disponível no site oficial.

Gráfico 3D

Gráfico 3D gerado através da biblioteca PLplot. Esse exemplo foi tirado do site do projeto.

O objetivo dessa série de posts é explorar o uso dessa biblioteca utilizando a linguagem C. Se você têm interesse em utilizá-la com outra linguagem de programação, não se desanime. A lógica é a mesma, mudando apenas a sintaxe.

Instalação

A biblioteca PLplot está disponível na maior parte das distribuições Linux atuais. Vamos apresentar aqui a instalação da mesma em algumas das distribuições mais famosas. Caso a sua distribuição não esteja listada aqui, não se desespere! Utilize o seu gerenciador de pacotes para procurar e instalar a biblioteca em seu sistema. E lembre-se que em softwares livres, sempre há a possibilidade de instalação a partir do código-fonte.

Fedora, RHEL,  CentOS e openSUSE

Abra um terminal de linha de comando, torne-se root e instale os pacotes plplot e plplot-devel.

Para usuários do Red Hat Enterprise Linux e derivados, os pacotes são instalados pelo EPEL, de forma que você deve ter esse repositório habilitado em seu sistema

Mageia

Abra um terminal de linha de comando, torne-se root e instale os pacotes plplot e libplplot-devel:

Archlinux

Abra um terminal de linha de comando, torne-se root e instale os pacotes plplot a partir do AUR:

Debian e Ubuntu

Abra um terminal de linha de comando, torne-se root e instale os pacotes plplot-bin libplplot-dev, plplot9-driver-cairo e plplot9-driver-xwin:

É isso, agora você está pronto para gerar os seus gráficos utilizando a PLplot.

Última alteração: 16/02/2012

PLplot 02: O primeiro gráfico

Este artigo é a parte 2 de 2 da série PLplot em C

A criação de gráficos utilizando a PLplot é bastante simples na maior parte do tempo. O conjunto de funções da biblioteca pode, a grosso modo, ser visto como dois conjuntos separados. Um conjunto de funções que definem as propriedades do gráfico — cor de fundo, tipo de linha, uso ou não de grades, escala, etc —  e um conjunto de funções responsáveis pela plotagem do gráfico em si. Neste artigo, criaremos um gráfico básico com a PLplot.

Seja então f(x) a função que queremos plotar. Consideremos, a título de exemplo, f(x) como sendo definida por

f(x) = \frac{x}{1+x^2}

O programa abaixo é uma implementação para que possamos gerar o gráfico dessa função.  Praticamente nenhuma personalização é feita, deixando que a biblioteca utilize os parâmetros default para a maior parte das opções disponíveis.

O download do código-fonte pode ser feito aqui.

 Simples e rápido, não? Antes de compilarmos esse código, vamos dar uma olhada melhor nele. Note que qualquer programa que queira utilizar essa biblioteca deve adicionar o arquivo de cabeçalho plplot.h. É onde estão definidas todas as funções do quais iremos precisar para gerar os nossos gráficos.

Como foi dito no código, a PLplot não é capaz de receber uma expressão matemática como parâmetro e gerar um gráfico a partir disso, mas nada impede que você implemente uma função capaz de fazê-lo. Nesse caso, a biblioteca libmatheval seria de grande utilidade.  Em artigos futuros, tentaremos implementar esse recurso.

Vamos compilar esse código e ver o que obtemos. Abra um terminal, navegue até o diretório onde colocou o programa e compile-o com o comando

Isso deverá gerar um executável de nome exemplo01 em seu diretório de trabalho. Vamos executá-lo:

Opa, mas o que diabos… Ah sim, o driver! Quando você executa o programa, a função plinit é chamada (linha 63).  Ela verifica se um driver foi definido e em caso negativo, exibe a lista acima perguntando ao usuário qual utilizar. Note que temos várias opções. Se a opção escolhida for salvar o arquivo no disco, na forma de uma imagem (drivers ps, png, svg, pdfcairo, svgcairo, etc), o programa irá perguntar o nome da imagem que deverá ser utilizado e então salvar o arquivo nela. Mas vamos escolher a opção xcairo, número 22 na lista acima. Digite isso e dê um ENTER para visualizar o gráfico na tela:

Perfeito! Mas cadê as marcas nos eixos? Lembra que na linha 77, utilizamos a função plenv, onde o último parâmetro estava  associado as propriedades dos eixos, bem como o desenho de uma caixa ao redor do gráfico? Pois é, fica como tarefa pra você: Leia a documentação dessa função no site oficial e veja quais são as outras opções possíveis. Modifique-as e recompile o seu programa para ver qual é o resultado. Teste também os diferentes drivers que podem ser utilizados e verifique quais são as diferenças entre eles.

No próximo artigo,  iremos definir algumas propriedades do nosso gráfico como a cor de fundo, cor da linha utilizada para o gráfico, espessura, etc. Isso fará com que tenhamos algo mais personalizado.

Última atualização: 17/12/2012