Plotting time-domain data¶
Plotting one TimeSeries
¶
The TimeSeries
class includes a plot()
method to
trivialise visualisation of the contained data.
Reproducing the example from gwpy-timeseries-remote:
>>> l1hoft = TimeSeries.fetch_open_data('L1', 'Sep 14 2015 09:50:29', 'Sep 14 2015 09:51:01')
>>> plot = l1hoft.plot()
>>> plot.show()
(png
)
The returned object plot
is a Plot
, a sub-class of
matplotlib.figure.Figure
adapted for GPS time-stamped data.
Customisations of the figure or the underlying Axes
can
be done using standard matplotlib
methods.
For example:
>>> ax = plot.gca()
>>> ax.set_ylabel('Gravitational-wave amplitude [strain]')
>>> ax.set_epoch(1126259462)
>>> ax.set_title('LIGO-Livingston strain data around GW150914')
>>> ax.axvline(1126259462, color='orange', linestyle='--')
>>> plot.refresh()
(png
)
Here the set_epoch()
method is used to reset the
reference time for the x-axis.
Plotting multiple TimeSeries
together¶
Multiple TimeSeries
classes can be combined on a figure in a number of
different ways, the most obvious is to plot()
the first,
then add the second on the same axes.
Reusing the same plot
from above:
>>> h1hoft = TimeSeries.fetch_open_data('H1', 'Sep 14 2015 09:50:29', 'Sep 14 2015 09:51:01')
>>> ax = plot.gca()
>>> ax.plot(h1hoft)
>>> plot.refresh()
(png
)
Alternatively, the two TimeSeries
could be combined into a
TimeSeriesDict
to use the plot()
method from that class:
>>> combined = TimeSeriesDict()
>>> combined['L1'] = l1hoft
>>> combined['H1'] = h1hoft
>>> plot = combined.plot()
>>> plot.gca().legend()
>>> plot.show()
(png
)
The third method of achieving the same result is by importing and accessing the Plot
object directly:
>>> from gwpy.plot import Plot
>>> plot = Plot(l1hoft, h1hoft)
>>> plot.show()
(png
)
Using the Plot
directly allows for greater customisation.
The separate=True
keyword argument can be used to plot each TimeSeries
on its own axes, with sharex=True
given to link the time scales for each
Axes
:
>>> plot = Plot(l1hoft, h1hoft, separate=True, sharex=True)
>>> plot.show()
(png
)