Gerando gráficos com Pylab

Publicado por Danillo Souza em 12/05/2010

[ Hits: 23.681 ]

 


Gerando gráficos com Pylab



Bom, antes de mais nada vale a explicação.

"O Pylab é um módulo da linguagem Python que permite gerar gráficos de duas dimensões de excelente qualidade, permitindo edição interativa, animações, inúmeros tipos de gráficos diferentes, anotações em sintaxe Latex e salvamento das imagens geradas em diversos formatos diferentes. A sintaxe de criação e manipulação das imagens será familiar para quem já trabalhou com o software comercial Matlab, mas provendo muito mais capacidades, além de uma interface baseada em objetos, para quem conhece a técnica.

O Pylab permite trabalhar com diversos tipos de gráficos diferentes, entre eles: gráficos de funções, múltiplos gráficos, histogramas, funções discretas, torta, barra, etc. Fornece funções para a customização dos gráficos, podendo trabalhar com diversas fontes diferentes, cores, tamanhos de página, e muito mais. Além disso, existem funções para a manipulação e análise de imagens e sinais."

Realmente, muito útil não? (pelo menos pra mim sim, que sempre estou resolvendo problemas matemáticos com Python)
"uma imagem vale mais que mil dígitos" - literalmente

Bom, criei um pequeno script/tutorial ilustrando o uso mais simples do módulo Pylab, mas antes você precisa instalar o módulo. Você pode instalá-lo através de um apt-get/aptitude.

Vou deixar aqui a minha instalação padrão do Python, que já fica incluída no meu script de pós-formatação:

# aptitude install ipython bpython python-pygame python-sqlite python-matplotlib python-numpy python-scipy pychecker

Quem quiser seguir a minha instalação, leva de brinde uns módulos a mais aí :D

Mas bem, vamos ver o tal script:

#! /usr/bin/env python2.5
# -*- coding:utf-8 -*-

import pylab

# função usada como exemplo
def cubo (x):
 &nbds; return x * x

# pylab.arange(inicio, fim, passo) - define um 'arranjo' com os valores de entrada.
entrada = pylab.arange(0, 20, 1)

# saida - recebe um 'arranjo' com os resultados da
# função sobre cada ítem de 'entrada'.
saida = cubo(entrada)

# pylab.plot(e, s) - 'plota' os dados de entrada e saída
# no grafico.
pylab.plot(entrada, saida)

# pylab.xlabel(s) - define o label do eixo x.
pylab.xlabel('Entrada')

# pylab.ylabel(s) - define o label do eixo y.
pylab.ylabel('Cubo')

# pylab.title(s) - define o titulo do grafico.
pylab.title('Funcao do Cubo')

# pylab.grid(boleano) - define se exibirá ou não as 'grids'
# no gráfico.
pylab.grid(True)

# pylab.show() - exibe o gráfico
pylab.show()

Agora vamos a aquela explicaçãozinha..

import pylab

Desnecessário dizer, mas aqui importamos o módulo do pylab.

# função usada como exemplo
def cubo (x):
 &nbds; return x * x

Bem, o gráfico é baseado numa ação sobre uma sequência de números, para facilitar, lembre das equações do segundo grau em que você tinha que fazer na escola e que criavam uma parábola no plano cartesiano. Considere aquela parábola desenhada no plano cartesiano como um gráfico. Pois é, a função usada pra gerar o gráfico foi a equação do segundo grau. A única diferença aqui é que formamos o gráfico aplicando uma função sobre uma lista de valores (observando o gráfico vocês entenderão de primeira). A função que iremos aplicar é essa aí, que eleva um número ao cubo.

entrada = pylab.arange(0, 20, 1)

Aqui estamos definindo a lista de valores onde aplicaremos a função (começando de 0 até 20 com passo 1, ou seja = 0, 1, 2, 3, 4, 5...). Mas por que não definimos como uma lista comum, e sim como um 'arranjo'?

O Pylab é uma biblioteca de gráficos que funciona sobre o Matplotlib, que é uma biblioteca matemática que por sua vez se baseia em NumPy (e devo dizer, NumPy é FAN-TAS-TI-CA, simplesmente maraviwonderfull, quando aprender ela legal posto um artigo) que é uma biblioteca matemática extremamente poderosa, portanto, usamos o arranjo para tratar os dados.

saida = cubo(entrada)

Aqui 'saida' está recebendo um arranjo (não uma lista um arranjo.. não se preocupe, Pylab cuidou disso pra você ;] ) com os resultados de cada valor submetido a função, como se fosse um uso da função map (ou para os Perl Mongers, um foreach no arranjo, aplicando a função e retornando o valor).

pylab.plot(entrada, saida)

Aqui estamos 'plotando', ou seja, concretizando esses dados no gráfico que será exibido.

pylab.xlabel('Entrada')
pylab.ylabel('Cubo')
pylab.title('Funcao do Cubo')

Nessas duas linhas definimos os labels que irão aparecer nos eixos X e Y (horizontal e vertical) do gráfico, e também definimos o título do gráfico(não da janela, do gráfico).

pylab.grid(True)

Dizemos que queremos que o gráfico exiba as grids (altere para False e perceba a diferença).

pylab.show()

E aqui finalmente, é onde a mágica acontece e o gráfico é exibido:
Linux: Gerando Gráficos com Pylab
Bom pessoal, espero que tenham gostado, apesar de simples, deu pra dar uma boa noção do que essa lib é capaz de fazer. Sempre que der vou escrever alguma coisinha por aqui. :D

Vlw, espero que curtam \õ/

Outras dicas deste autor

Programação funcional em Python

Criando listas individuais para cada instância da mesma classe em Python

Leitura recomendada

Erro ao rodar o IDLE no Python 3.0 b3

Criando repositório de módulos Python localmente

Python - atualizando todos os módulos com pipdate

ISO8583 em Python

Erro: "ImportError: No module named PIL" [Resolvido]

  

Comentários
[1] Comentário enviado por Zaraki em 08/11/2011 - 00:36h

muito boa a dica! e boa opção ao programas usuais para plotar um gráfico.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts