Pygal: gráficas sexys

Eles mesmos se presentan como gráficas sexys para Python na súa páxina: pygal.org


¢ pygal.org

Como método de traballo en clase recomendaríamos ter que ler a páxina para atopar a seguinte información:

  • Como crear gráficas rápidas e sexys dos nosos datos.
  • Como gardar as gráficas en distintos formatos e como abrilas automáticamente co navegador.
  • Como configurar a gráfica: título, tamaños, cores, etiquetas...
  • Interactuar con html: ler un táboa dunha web e crear a gráfica, exportar unha gráfica a unha web directamente...

Aquí só imos explicar os pasos iniciais, o resto quedarán como exercicios.

Pero antes diso, a pregunta de moitos será: para que perder o tempo con isto se podemos facelo sen programar na folla de cálculo?. A resposta é dobre: dunha banda aprendes a programar, entendes mellor o que fas cos datos, evitas a sensación caixa negra; doutra, esta opción da moitas máis posibilidades de interación con outras plataformas. O mellor exemplo será ter unha interface que rexistre datos (unha web, unha aplicación da Raspberry...) e pode procesalos directamente con Python.

1. Instalar

Como xa temos explicado o mellor para instalar bibliotecas en Python 3 é usar PIP. Abrimos a terminal e escribimos:

pip install pygal

Ollo: a día de hoxe (Maio 2018) pygal non funciona en Python3.6. É probable que cando leas isto xa teña cambiado.

Hai tres bibliotecas (aka librerías) en GNU-Linux que poden ser interesantes se queres gardar as gráficas en formato PNG: cairosvg, tinycss, cssselect. Se non, gardas en formato SVG.

2. Probar

O proceso básico é o seguinte:

  • Temos unha biblioteca instalada en Python, pygal, polo tanto  importámola ao principio do programa:

import pygal

  • Como norma xeral queremos crear un obxecto (ou varios), unha gráfica, que imos gardar/visualizar. Para iso o primeiro que escribimos é o código para crear e darlle nome á nosa gráfica:

bar_chart = pygal.Bar() #obviamente podemos chamala doutro xeito; neste caso será unha gráfica de barras, usamos o método Bar()

  • Engadimos os datos á gráfica. O máis sinxelo é telos nunha lista que teña un nome. Por exemplo a serie de Fibonacci:
bar_chart.add('Fibonacci', [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55])
  • E agora temos dúas opcións:
    • Gardar os datos nun ficheiro en formato SVG (por defecto), aplicamos o método render_to_file():

bar_chart.render_to_file('bar_chart.svg') #Onde estará gardado este ficheiro?. Pois no cartafol de traballo. Logo poderemos gardalo noutro directorio.

bar_chart.render_to_file('/tmp/bar_chart.svg') #para gardalo no directorio temporal

  • Visualizar a gráfica no navegador por defecto (tamén pode ser no programa que escollamos) con método render_in_browser():

bar_chart.render_in_browser()

Pois nada a probar. Aquí tes o programa e a saída no navegador (lembra, aprendes máis se escribes, non copies e pegues). Ademáis terás un ficheiro en formato SVG gardado:

Código Python 3 Saida no navegador e no ficheiro

comando scratch input()

 

 

Problema posible: aparece en negro o gráfico. Iso non é un erro da biblioteca pygal, senón do teu Linux e da renderización. Terás que instalar lxml, tinycss and cssselect.

Para abrir/editar ficheiros SVG o mellor é ter instalado Inkscape, pero para visualizar rápidamente podemos abrir co navegador.

3. Configurar

Do mesmo xeito que na folla de cálculo, as gráficas creadas con Pygal poden ser interactivas. Compróbao con este exemplo que teñen na páxina:

import pygal

line_chart = pygal.Line() #neste caso tereremos unha gráfica de liña
line_chart.title = 'Browser usage evolution (in %)'
line_chart.x_labels = map(str, range(2002, 2013))

line_chart.add('Firefox', [None, None,    0, 16.6,   25,   31, 36.4, 45.5, 46.3, 42.8, 37.1])
line_chart.add('Chrome',  [None, None, None, None, None, None,    0,  3.9, 10.8, 23.8, 35.3])
line_chart.add('IE',      [85.8, 84.6, 84.7, 74.5,   66, 58.6, 54.7, 44.8, 36.2, 26.6, 20.1])
line_chart.add('Others',  [14.2, 15.4, 15.3,  8.9,    9, 10.4,  8.9,  5.8,  6.7,  6.8,  7.5])

line_chart.render_in_browser()

4. Exercicios:

  1. Busca na páxina de pygal e crea:
    • Unha gráfica de barras horizontais.
    • Unha gráfica circular.
    • Unha gráfica co eixo X en vertical e Y en horizontal.
  2. Busca na páxina de pygal e obtén os métodos e etiquetas para:
    • Modificar o ancho e alto das barras.
    • Inserir etiquetas e lendas dos eixos.
    • Amosar puntos nunha liña e modificar o tipo de liña.

Pygal: gráficas sexys TkInter: xanelas e botóns TkInter 2: debuxar e animar Pygame: videoxogos