5 Best Ways To Generate Gauge Plots in Python Using Pygal

Rate this post

πŸ’‘ Problem Formulation: Gauge plots are a visualization tool commonly used to display the progress or value within a particular range. In Python, creating gauge plots can be an intricate task, but with the Pygal library, it’s simplified. This article demonstrates how Pygal can be used to generate gauge plots, assuming you have a certain value (like current temperature) and want to visualize it on a gauge plot to reflect against a range (like 0-100 degrees).

Method 1: Basic Gauge Plot

Pygal’s Gauge chart is straightforward to create. The chart function Gauge() can be used to generate a basic gauge plot. The simplicity of adding values makes it desirable for small projects or for those getting started with Python visualization.

Here’s an example:

import pygal

gauge_chart = pygal.Gauge()
gauge_chart.title = 'Temperature in Celsius'
gauge_chart.range = [0, 100]
gauge_chart.add('Current Temperature', 67)

Output: A file named ‘basic_gauge.svg’ showing a gauge representing 67 degrees within a range of 0 to 100.

The code creates a simple gauge chart with the title ‘Temperature in Celsius’ and adds the current temperature reading. The output is an SVG file that displays the gauge plot with the value 67 highlighted.

Method 2: Adding Multiple Values

Gauge plots in Pygal can display multiple values simultaneously. This is useful for comparing different readings at a glance. The add() function is utilized multiple times to insert different values into the plot.

Here’s an example:

import pygal

gauge_chart = pygal.Gauge(human_readable=True)
gauge_chart.title = 'Various Temperatures'
gauge_chart.range = [0, 100]
gauge_chart.add('House', 67)
gauge_chart.add('Car', 45)
gauge_chart.add('Outdoors', 92)

Output: A file named ‘multiple_values_gauge.svg’ displaying a gauge with three different temperature readings.

The code above produces a gauge chart that includes readings for various temperatures, like ‘House’, ‘Car’, and ‘Outdoors’, with each having distinct values. The resultant SVG file exhibits all these values in one gauge plot.

Method 3: Styling the Gauge

Styling is crucial to make gauge plots more intuitive and visually appealing. Pygal allows customization options such as changing colors and adding labels. The style module is often used for advanced styling.

Here’s an example:

import pygal
from pygal.style import Style

custom_style = Style(
  colors=('green', 'yellow', 'red')
gauge_chart = pygal.Gauge(style=custom_style)
gauge_chart.title = 'Heat Index'
gauge_chart.range = [0, 100]
gauge_chart.add('Heat', 85)

Output: A file named ‘styled_gauge.svg’ displaying a styled gauge plot with the value 85.

By applying a custom style, you can easily modify the look of the gauge plot. The example above demonstrates changing the color scheme to reflect a heat index with the appropriate value.

Method 4: Advanced Configuration

Pygal’s advanced configuration allows for more intricate customization, such as adjusting the size of the plot, the inclusion of a legend, and more. The configuration is detailed and provides a lot of control over the output.

Here’s an example:

import pygal

gauge_chart = pygal.Gauge(show_legend=True, width=400)
gauge_chart.title = 'Server Utilization (%)'
gauge_chart.range = [0, 100]
gauge_chart.add('Server 1', [{'value': 80, 'max_value': 100}])
gauge_chart.add('Server 2', [{'value': 60, 'max_value': 100}])

Output: A file named ‘advanced_config_gauge.svg’ that showcases a gauge plot with a legend and custom width, indicating server utilization.

This example introduces an advanced configuration where additional parameters, such as legend display and plot width, are specified. The gauge plot shows server utilization percentages with a clear, concise design.

Bonus One-Liner Method 5: Quick Gauge Plot

The one-liner approach for a quick-and-dirty gauge plot involves leveraging Pygal’s simplicity to create a gauge with minimal code.

Here’s an example:

import pygal; pygal.Gauge().add('Speed', 88).render_to_file('quick_gauge.svg')

Output: A file named ‘quick_gauge.svg’ showing a simple gauge with the value 88.

This single line of code generates a basic gauge plot with a predefined value, which is perfect for quick drafts or demonstration purposes without the need for customization.


  • Method 1: Basic Gauge Plot. Easy to implement. Limited customization available.
  • Method 2: Adding Multiple Values. Ideal for comparisons. May get cluttered with too many values.
  • Method 3: Styling the Gauge. Enhances visual appeal. Requires understanding of styling parameters.
  • Method 4: Advanced Configuration. Highly customizable. More complex code structure.
  • Method 5: Quick Gauge Plot. Extremely simple. Not suitable for detailed reporting.