1 from builtins
import zip
2 from builtins
import object
26 from .densityPlot
import mergeDefaults
27 from ..
import modelfitLib
29 __all__ = (
"SamplingDataAdapter",
"OptimizerTrackLayer",
"OptimizerDataAdapter",)
36 self.
pdf = record.getPdf()
37 self.
dimensions = list(record.getInterpreter().getParameterNames())
41 z = numpy.zeros(x.shape, dtype=float)
42 if i >= self.
pdf.getDimension():
44 projection = self.
pdf.project(i)
45 projection.evaluate(x.reshape(x.shape + (1,)), z)
51 z = numpy.zeros(x.size, dtype=float)
52 if i >= self.
pdf.getDimension()
or j >= self.
pdf.getDimension():
54 projection = self.
pdf.project(j, i)
55 xy = numpy.zeros((x.size, 2), dtype=float)
56 xy[:, 0] = x.flatten()
57 xy[:, 1] = y.flatten()
58 projection.evaluate(xy, z)
59 return z.reshape(x.shape)
65 ModelFitDataAdapter.__init__(self, record)
66 self.
samples = record.getSamples().copy(deep=
True)
73 fractions = numpy.array([lower, upper], dtype=float)
74 ranges = self.
record.getInterpreter().computeParameterQuantiles(self.
record, fractions)
83 marker=
'.', linestyle=
'-', color=
'c',
87 marker=
'.', linestyle=
'-', color=
'k', alpha=0.5,
92 def __init__(self, tag, accepted=None, rejected=None):
94 self.accepted =
mergeDefaults(accepted, self.defaults[
'accepted'])
95 self.rejected =
mergeDefaults(rejected, self.defaults[
'rejected'])
97 def plotX(self, axes, data, dim):
100 def plotY(self, axes, data, dim):
103 def plotXY(self, axes, data, xDim, yDim):
104 i = data.dimensions.index(yDim)
105 j = data.dimensions.index(xDim)
107 artists.extend(axes.plot(data.rejected[:, j], data.rejected[:, i], **self.rejected))
108 artists.extend(axes.plot(data.accepted[:, j], data.accepted[:, i], **self.accepted))
115 ModelFitDataAdapter.__init__(self, record)
116 self.
samples = record.getSamples().copy(deep=
True)
121 mask = (self.
state & modelfitLib.Optimizer.STATUS_STEP_REJECTED).astype(bool)
129 nans = numpy.array([numpy.nan] * self.
parameters.shape[1], dtype=float)
130 for parameters, isRejected
in zip(self.
parameters, mask):
132 rejected.extend([parameters, current, nans])
139 projected = self.
pdf[0].project(i)
140 mu = projected.getMu()
141 sigma = projected.getSigma()**0.5
142 self.
lower[dim] = min(self.
accepted[:, i].min(), mu - 3*sigma)
143 self.
upper[dim] = max(self.
accepted[:, i].max(), mu + 3*sigma)
146 record.getInterpreter().packParameters(
147 self.
record[
'initial.nonlinear'], self.
record[
'initial.amplitudes'],
150 record.getInterpreter().packParameters(
151 self.
record[
'fit.nonlinear'], self.
record[
'fit.amplitudes'],
def __init__(self, record)
def __init__(self, record)
def mergeDefaults(kwds, defaults)
def eval2d(self, xDim, yDim, x, y)
def __init__(self, record)
def setRangesFromQuantiles(self, lower, upper)