24 from .densityPlot
import mergeDefaults
25 from ..
import modelfitLib
27 __all__ = (
"SamplingDataAdapter",
"OptimizerTrackLayer",
"OptimizerDataAdapter",)
34 self.
pdf = record.getPdf()
39 z = numpy.zeros(x.shape, dtype=float)
40 if i >= self.
pdf.getDimension():
42 projection = self.
pdf.project(i)
43 projection.evaluate(x.reshape(x.shape + (1,)), z)
49 z = numpy.zeros(x.size, dtype=float)
50 if i >= self.
pdf.getDimension()
or j >= self.
pdf.getDimension():
52 projection = self.
pdf.project(j, i)
53 xy = numpy.zeros((x.size, 2), dtype=float)
54 xy[:, 0] = x.flatten()
55 xy[:, 1] = y.flatten()
56 projection.evaluate(xy, z)
57 return z.reshape(x.shape)
63 ModelFitDataAdapter.__init__(self, record)
64 self.
samples = record.getSamples().copy(deep=
True)
71 fractions = numpy.array([lower, upper], dtype=float)
72 ranges = self.
record.getInterpreter().computeParameterQuantiles(self.
record, fractions)
81 marker=
'.', linestyle=
'-', color=
'c',
85 marker=
'.', linestyle=
'-', color=
'k', alpha=0.5,
90 def __init__(self, tag, accepted=None, rejected=None):
92 self.accepted =
mergeDefaults(accepted, self.defaults[
'accepted'])
93 self.rejected =
mergeDefaults(rejected, self.defaults[
'rejected'])
95 def plotX(self, axes, data, dim):
98 def plotY(self, axes, data, dim):
101 def plotXY(self, axes, data, xDim, yDim):
102 i = data.dimensions.index(yDim)
103 j = data.dimensions.index(xDim)
105 artists.extend(axes.plot(data.rejected[:, j], data.rejected[:, i], **self.rejected))
106 artists.extend(axes.plot(data.accepted[:, j], data.accepted[:, i], **self.accepted))
113 ModelFitDataAdapter.__init__(self, record)
114 self.
samples = record.getSamples().copy(deep=
True)
119 mask = (self.
state & modelfitLib.Optimizer.STATUS_STEP_REJECTED).astype(bool)
127 nans = numpy.array([numpy.nan] * self.
parameters.shape[1], dtype=float)
128 for parameters, isRejected
in zip(self.
parameters, mask):
130 rejected.extend([parameters, current, nans])
137 projected = self.
pdf[0].project(i)
138 mu = projected.getMu()
139 sigma = projected.getSigma()**0.5
144 record.getInterpreter().packParameters(
145 self.
record[
'initial.nonlinear'], self.
record[
'initial.amplitudes'],
148 record.getInterpreter().packParameters(
149 self.
record[
'fit.nonlinear'], self.
record[
'fit.amplitudes'],