Using Matplotlib for visualisation on JASMIN

This article provides a basic example of using Matplotlib on JASMIN to generate a plot. It also gives an important tip that may stop your code failing when run on the LOTUS cluster.

Matplotlib - a basic example

Matplotlib is a very well documented plotting library for Python. Here is a brief example of generating a line graph on a PNG file using matplotlib.
Load the Jaspy Python 3 environment, and start a Python session:
$ module load jaspy
$ python
In python, set some x-values, y-values, axis labels and a title, and plot:
import matplotlib
matplotlib.use('agg')

import matplotlib.pyplot as plt

x_values = [1, 5, 3, 9, 14]
y_values = [2000, 2005, 2010, 2015, 2020]

x_label = 'Temperature (degC)'
y_label = 'Year'

title = 'Average temperature of garden shed (2000-2020)'

plt.plot(y_values, x_values, 'g--')

plt.ylabel(y_label)
plt.xlabel(x_label)
plt.title(title)

plt.savefig('output.png')

Plotting with matplotlib on LOTUS 

When using matplotlib on LOTUS hosts please make sure that you are setting the rendering backend to a setting that will definitely work. 
On JASMIN it is safe to use:
import matplotlib
matplotlib.use('agg')
If you do not set this option or you choose an alternative backend then you may see failures which include very large dump (error) files being written (up to 56GB per file!). Please remove these files if you accidentally create them, and switch over to selecting an appropriate rendering backend as indicated above.
For more information please see the matplotlib back-ends page.

Still need help? Contact Us Contact Us