Glue is a Python library to explore relationships within and among related datasets. Its main features include:
- Linked Statistical Graphics. With Glue, users can create scatter plots, histograms and images (2D and 3D) of their data. Glue is focused on the brushing and linking paradigm, where selections in any graph propagate to all others.
- Flexible linking across data. Glue uses the logical links that exist between different data sets to overlay visualizations of different data, and to propagate selections across data sets. These links are specified by the user, and are arbitrarily flexible.
- Full scripting capability. Glue is written in Python, and built on top of its standard scientific libraries (i.e., Numpy, Matplotlib, Scipy). Users can easily integrate their own python code for data input, cleaning, and analysis.
The latest version of glue is v0.14 - find out what’s new in glue!
Glue is designed with “data-hacking” workflows in mind, and can be used in different ways. For instance, you can simply make use of the graphical Glue application as is, and never type a line of code. However, you can also interact with Glue via Python in different ways:
- Using the IPython terminal built-in to the Glue application
- Sending data in the form of NumPy arrays or Pandas DataFrames to Glue for exploration from a Python or IPython session.
- Customizing/hacking your Glue setup using
config.pyfiles, including automatically loading and clean data before starting Glue, writing custom functions to parse files in your favorite file format, writing custom functions to link datasets, or creating your own data viewers.
Glue thus blurs the boundary between GUI-centric and code-centric data exploration. In addition, it is also possible to develop your own plugin packages for Glue that you can distribute to users separately, and you can also make use of the Glue framework in your own application to provide data linking capabilities.
To see how glue compares with other open-source and commercial data visualization solutions, you can view this comparison table.
In the following sections, we cover the different ways of using Glue from the Glue application to the more advanced ways of interacting with Glue from Python.
Using the Glue application¶
- Installing and running glue
- Getting started
- Advanced User Interface Guide
Interacting with data from Python¶
The Glue architecture¶
The pages below take you through the main infrastructure in Glue, and in particular how selections, linking, and communications are handled internally. You don’t need to understand all of this in order to get started with contributing, but in order to tackle some of the more in-depth issues, this will become important. This is not meant to be a completely exhaustive guide, but if there are areas that you feel could be explained better, or are missing and would be useful, please let us know!
Information on the Data framework is available in Working with Data objects and is not repeated here.
If you use glue for research presented in a publication, please consider citing the following two references:
- Beaumont et al. (2015), Hackable User Interfaces In Astronomy with Glue
- Robitaille et al (2017) glueviz v0.13.1: multidimensional data exploration
The first is a conference proceedings describing glue, while the second is the software itself.