domingo, 22 de dezembro de 2013

Bonecada

Acabámos de ver como podemos usar o módulo turtle para resolver um problema de visualização de um gráfico de barras. Notámos várias dificuldades que procurámos resolver de modo mais ou menos satisfatório. Do exercício resulta a ideia de gráficos em Python são um tormento. Nada de mais errado. O que precisamos é usar a ferramenta certa. É o que vamos fazer agora mostrando como podemos resolver o mesmo problema usando o módulo matplotlib.

Comecemos pelo exemplo básico.
import random
import matplotlib.pyplot as plt


def gera(n):
    return [random.randint(1,6) + random.randint(1,6) for i in range(n)]

def histograma(dados):
    plt.hist(dados,11)
    plt.show()    
    
if __name__ == '__main__':
    dados = gera(5000)
    histograma(dados)
Correndo o programa aparece-nos a bela imagem seguinte.
Fantástico, não é. Mas ainda podemos introduzir um pouco de cosmética...
def histograma(dados):
    plt.title('Dados = ' + str(len(dados)))
    plt.xlabel('Resultado')
    plt.ylabel('Frequência')
    plt.hist(dados,11,color='red')
    plt.show()  
... para obter um resultado diferente!
E a Lei dos Grandes Números? ainda se lembra?
Usar o matplotlib é mais simples ... e bem mais rápido! Claro que também o podemos usar para outro tipo de gráficos. Por exempo, o gráfico de uma função y=f(x).
def grafico(x,y):
    plt.title('y=f(x)')
    plt.xlabel('x')
    plt.ylabel('y')
    plt.plot(x,y,'go-')
    plt.show()
E obtemos com esta configuração o resultado:
As possibilidades do matplotlib são imensas. O manual recente do módulo pode ser obtido em Manual

Divirta-se.

Sem comentários:

Enviar um comentário