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')
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')
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')
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')
Veja também: