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:
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 \õ/