How to make plots using Pygal
This is a series of introductions to Python plotting libraries. This time we’re talking about Pygal.
Pygal is the library for people who like things to look good. It puts style first, literally.
We’ll show you how to make this multi-bar plot:
We’re plotting the UK election results from 1966 to 2020 for each library, to pick out the differences between them. The data looks like this:
year conservative labour liberal others 0 1966 253 364 12 1 1 1970 330 287 6 7 2 Feb 1974 297 301 14 18 .. ... ... ... ... ... 12 2015 330 232 8 80 13 2017 317 262 12 59 14 2019 365 202 11 72
Plotting this in Pygal is very simple. First, we create a
Bar object and specify the style it will have:
import pygal from pygal.style import Style custom_style = Style( colors=('#0343df', '#e50000', '#ffff14', '#929591'), font_family='Roboto,Helvetica,Arial,sans-serif', background='transparent', label_font_size=14, ) c = pygal.Bar( title="UK Election Results", style=custom_style, y_title='Seats', width=1200, x_label_rotation=270, )
Then, we pass our data into the
from votes import wide as df c.add('Conservative', df['conservative']) c.add('Labour', df['labour']) c.add('Liberal', df['liberal']) c.add('Others', df['others']) c.x_labels = df['year']
Finally, we save the plot as an SVG file:
The result is an interactive SVG plot:
Beautifully simple, and with beautiful results.
You can copy this example as an Anvil app here:
The simplest of all: Pandas
This is part of a rundown of Python plotting libraries. We’ve seen a few that are full-featured and dynamic, and a few that provide very clean, simple interfaces. Next we’ll look at the simplest of all: plotting directly from Pandas.