Reducing boilerplate code¶
A frequent task is to plot multiple spectra on multiple axes in a subplot.
Of course, the most direct way is simply to use for
loops as well as enumerate()
and zip()
.
This is already far better than individually plotting on each Axes by.
However, there are also many ways in which penguins
tries to reduce the amount of boilerplate code required for this:
You can
read()
in multiple datasets at a go by passing a list or other iterable of expnos:# Reads in one dataset pg.read(path, 1) # "Slow" way of reading in a list of four datasets [pg.read(path, expno) for expno in range(1, 5)] # "Fast" way, equivalent to the above pg.read(path, range(1, 5))Staging still has to be done individually, unfortunately.
The
mkplots()
function essentially performsmkplot()
on a series of axes:# Construct one plot with a given title pg.mkplot(ax, title=title) # "Slow" way of constructing a series of plots for ax, title in zip(axs, titles): pg.mkplot(ax, title=title) # "Fast" way, equivalent to the above pg.mkplots(axs, titles=titles)