Pygal

Por: Ricardo Dortas Schönhofen

O que é Pygal?

Pygal é um módulo Python que cria gráficos em formato SVG. Os arquivos SVG criados pelo Pygal possuem uma grande variedade de estilos. Pygal possui uma combinação rara de ser ao mesmo tempo muito customizável e simples de manusear. É possível criar gráficos de barras, linhas, histogramas, pizza, mapas e muito mais. A partir daí, é possível customizar a aparência e estilo dos gráficos criados.

Embora a quantidade de gráficos da biblioteca não seja das maiores, você pode salvar seus gráficos diretamente em arquivos SVG. Além de possuir muitos estilos disponíveis.

Instalando e usando Pygal

Para começar a usar Pygal, primeiro faça a instalação:

pip install pygal

Depois, é só importar a classe:

import pygal

Preparando os dados

Os dados que vamos utilizar foram extraídos da Receita Federal do Brasil. Vamos usar os dados de receita administrada em 2016.

ldata = [
[Timestamp('2016-01-01 00:00:00'), 90815.41],
[Timestamp('2016-02-01 00:00:00'), 53768.33], 
[Timestamp('2016-03-01 00:00:00'), 61374.19], 
[Timestamp('2016-04-01 00:00:00'), 75906.30], 
[Timestamp('2016-05-01 00:00:00'), 58819.31], 
[Timestamp('2016-06-01 00:00:00'), 58375.15], 
[Timestamp('2016-07-01 00:00:00'), 67156.61], 
[Timestamp('2016-08-01 00:00:00'), 53930.33], 
[Timestamp('2016-09-01 00:00:00'), 57535.14], 
[Timestamp('2016-10-01 00:00:00'), 110249.79], 
[Timestamp('2016-11-01 00:00:00'), 61267.31], 
[Timestamp('2016-12-01 00:00:00'), 70553.93]
]

tempo = [d[0] for d in ldata]    
amount = [a[1] for a in ldata]
pdata = {
              'CIDE  Combustíveis': 6010.65, 
              'COFINS': 204678.62, 
              'CPMF': 0.0, 
              'CSLL': 68143.26, 
              'IOF': 33782.40, 
              'IPI': 42293.98, 
              'Imposto de Importação': 31390.47, 
              'Imposto de Renda': 341115.24,
               'Outras': 38442.45, 
              'PIS/PASEP': 53894.73
              }

Visualizações

Barra vertical

def plota_pygal_v_bar():       
   bar_chart = pygal.Bar()    
   bar_chart.title = 'Receita Administrada pela RFB'
   bar_chart.x_labels = map(lambda d: d.strftime('%Y-%m'), tempo)        bar_chart.add('Receita', amount)
   bar_chart.render_to_file('bar_chart.svg')

pygal1

Barra horizontal

def plota_pygal_h_bar():
   bar_chart = pygal.HorizontalBar()
   bar_chart.title = 'Distribuição da Receita Administrada pela RFB'
   for i in pdata.keys():
      bar_chart.add(i, hdata[i])
      bar_chart.render_to_file('hbar_chart.svg')

pygal2

Linha

def plota_pygal_linha():    
   line_chart = pygal.Line()    
   line_chart.title = 'Receita Administrada pela RFB'
   line_chart.x_labels = map(lambda d: d.strftime('%Y-%m'), tempo)      
   line_chart.add('Receita', amount)
   line_chart.render_to_file('line_chart.svg')

pygal3

Pizza

def plota_pygal_pizza():    
   pizza_chart = pygal.Pie()   
   for tax in pdata.keys():        
      pizza_chart.add(tax, pdata[tax])
      pizza_chart.render_to_file('pizza_chart.svg')

pygal4


Veja também:


Deixe uma resposta