Friday 2:30 p.m.–2:45 p.m.

Getting more out of Matplotlib with GR

Josef Heinen

Audience level:


Matplotlib is the most popular graphics library for Python. It is the workhorse plotting utility of the scientific Python world. However, depending on the field of application, the software may be reaching its limits. This is the point where the GR framework will help. GR can be used as a backend for Matplotlib applications and significantly improve the performance and expand their capabilities.


Python is well established in software development departments of research and industry, not least because of the proliferation of libraries such as SciPy and Matplotlib. However, when processing large amounts of data, in particular in combination with GUI toolkits (Qt) or three-dimensional visualizations (OpenGL), Python as an interpretative programming language seems to be reaching its limits. In particular, large amounts of data or the visualization of three-dimensional scenes may overwhelm the system.

This presentation shows how visualization applications with special performance requirements can be designed on the basis of Matplotlib and GR, a high-performance visualization library for Linux, OS X and Windows. The lecture focuses on the development of a new graphics backend for Matplotlib based on the GR framework. By combining the power of those libraries the responsiveness of animated visualization applications and their resulting frame rates can be improved significantly. This in turn allows the use of Matplotlib in real-time environments, for example in the area of signal processing.

Using concrete examples, the presentation will demonstrate the benefits of the GR framework as a companion module for Matplotlib, both in Python and Julia. Based on selected applications, the suitability of the GR framework will be highlighted especially in environments where time is critical. The system’s performance capabilities will be illustrated using demanding live applications. In addition, the special abilities of the GR framework are emphasized in terms of interoperability with graphical user interfaces (Qt/PySide) and OpenGL, which opens up new possibilities for existing Matplotlib applications.