Creating Histograms¶
There is a generic Histograms Model (HistModel
) that can be used
for binning values, saving the histogram to a dataset, and viewing the data in an applet.
To use the model, first instantiate an instance, specify the bin boundaries, and initialize the datasets:
model = HistModel(self, namespace='my_histogram')
model.init_bins(bin_start=0,
bin_end=50,
nbins=51)
model.initialize_datasets()
## Binning single values ##
To bin a single value use the bin_value()
method:
model.bin_value(9)
After you are done binning, call the set_bins() method to write the histogram to it’s dataset which will be named
bins
under the model namespace:
model.set_bins() # write data to 'my_histogram.bins'
To clear out the histogram and start binning new values, e.g. for a new measurement or datapoint, call the
reset_bins()
method
model.reset_bins()
Binning multiple values at once¶
To bin multiple values and set the bins
dataset all in one go, use the mutate()
method.
model.mutate([42, 42, 42, 42, 42, 41, 43], broadcast=True, persist=False, save=False)
Binning Continuous Values¶
By default, the HistModel
class assumes the data being binned is
discretely valued such as from PMT counts. Non-discrete values can also be binned by setting the model’s discrete
attribute to False.
Plots¶
In addition to the binned data, initialize_datasets()
sets datasets that can be used in plots: x_units
,
x_label
, y_label
, and plot_title
. Values are defined through model attributes:
model = HistModel(self,
namespace="my_histogram",
x_label="PMT Counts",
plot_title="My Plot",
)
model.init_bins(bin_start=0,
bin_end=50,
nbins=51)
model.initialize_datasets() # set's `my_histogram.x_label` to "PMT Counts" & `my_histogram.plot_title` to "My Plot"