Gerando gráficos com Pylab

Publicado por Danillo Souza em 12/05/2010

[ Hits: 23.518 ]

 


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

Agendando tarefas com Python (schedule)

Criando repositório de módulos Python localmente

Pyevolve - Framework para algoritmos genéticos

PyGame no Python 3.2 - Instalação no Ubuntu 12.04

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