Ready-Made Plots
Some plots are the same in every lab: the newest spectrum, all spectra of a scan as a
map, one value against another. plesty.lib.monitor.common has them, so an
experiment that needs only these writes no plot of its own:
from plesty.lib.monitor import Viz
from plesty.lib.monitor.common import Series, Spectrum, SpectrumMap
viz = Viz("Polarization PL", experiment="pol_pl", reads=read_spectrum)
viz.add_plot(Spectrum(weight=3))
viz.add_plot(SpectrumMap(row="hwp_deg", y_label="HWP angle (deg)", weight=3))
viz.add_plot(Series("power_w", x="hwp_deg", y_label="Power (W)"))
read_spectrum turns each row’s spectrum file into wavelength and counts fields;
see reads: rows that name a file.
Each is told which fields of the rows to use, so the names in your records are up to you.
Spectrum
The newest spectrum the run has saved, as a line.
Argument |
Default |
Meaning |
|---|---|---|
|
|
the field holding the values |
|
|
the field holding the axis; without it, the samples are numbered |
|
|
the axis labels |
SpectrumMap
Every spectrum so far, stacked into an image against what was scanned. It uses a square-root colour scale by default, because emission lines can differ in brightness by more than ten times, and on a linear scale the weak ones disappear into the background.
Argument |
Default |
Meaning |
|---|---|---|
|
|
the field holding each spectrum |
|
none |
the field that was scanned, such as an angle; without it, the rows are numbered |
|
|
the field holding the axis |
|
|
|
|
|
the axis labels |
To map something you have cleaned up first, such as the spectra with cosmic rays
removed, subclass SpectrumMap and override block(data), which returns the 2-D
array to draw.
Series
One field against another, one point per row.
Argument |
Default |
Meaning |
|---|---|---|
|
required |
the field holding the value |
|
none |
the field holding the position; without it, the rows are numbered |
|
|
draw a marker on each point |
|
the field names ( |
the axis labels |
Arguments they all take
title, name and weight mean the same as for @viz.plot (see
A viewer), and color is a palette name (see
The drawables).
Each is an ordinary Plot: to change one, subclass it, or write your own plot
instead (see Three ways to write a plot).