Plotting in GWpy (gwpy.plot)¶
Basic plotting¶
The gwpy.plot module provides integrated extensions to the fantastic
data visualisation tools provided by matplotlib.
Basic plotting with pyplot¶
Each of the data representations provided by gwpy can be directly passed
to the standard methods available in pyplot:
>>> from gwpy.timeseries import TimeSeries
>>> data = TimeSeries.fetch_open_data('L1', 1126259446, 1126259478)
>>> from matplotlib import pyplot as plt
>>> plt.plot(data)
>>> plt.show()
(png)
.plot() instance methods¶
Each of the data representations provided by gwpy also come with a
.plot() method that provides a figure with improved defaults tailored
to those data:
>>> from gwpy.timeseries import TimeSeries
>>> data = TimeSeries.fetch_open_data('L1', 1126259446, 1126259478)
>>> plot = data.plot()
>>> plot.show()
(png)
The .plot() methods accept any keywords that can be used to create the
Figure and the Axes,
and to draw the element itself, e.g:
>>> from gwpy.timeseries import TimeSeries
>>> data = TimeSeries.fetch_open_data('L1', 1126259446, 1126259478)
>>> plot = data.plot(figsize=(8, 4.8), ylabel='Strain',
... color='gwpy:ligo-livingston')
>>> plot.show()
(png)
Multi-data plots¶
GWpy enables trivial generation of plots with multiple datasets.
The Plot constructor will accept an arbitrary
collection of data objects and will build a figure with the required geometry
automatically.
By default, a flat set of objects are shown on the same axes:
>>> from gwpy.timeseries import TimeSeries
>>> hdata = TimeSeries.fetch_open_data('H1', 1126259446, 1126259478)
>>> ldata = TimeSeries.fetch_open_data('L1', 1126259446, 1126259478)
>>> from gwpy.plot import Plot
>>> plot = Plot(hdata, ldata, figsize=(12, 4.8))
>>> plot.show()
(png)
However, separate=True can be given to show each dataset on a separate
Axes:
>>> plot = Plot(hdata, ldata, figsize=(12, 6), separate=True, sharex=True)
>>> plot.show()
(png)
Warning
The Plot constructor can only handle one plotting method at any time
(e.g. ax.plot(), ax.imshow()), so you can’t create plots with
a line and an image using this call,
for example.