from paida import * analysisFactory = IAnalysisFactory.create() treeFactory = analysisFactory.createTreeFactory() tree = treeFactory.create() ### DataPointSet dataPointSetFactory = analysisFactory.createDataPointSetFactory(tree) dataPointSet1 = dataPointSetFactory.create('dataPointSet1', 'Symmetric', 2) dataPointSet2 = dataPointSetFactory.create('dataPointSet2', 'Asymmetric', 2) ### Fill import random r = random.Random() for i in range(30): error1 = r.randrange(-10.0, 10.0) error2 = r.random() * 10.0 ### Symmetric dataPoint = dataPointSet1.addPoint() dataPoint.coordinate(0).setValue(i) dataPoint.coordinate(1).setValue(2.0 * i + error1) dataPoint.coordinate(1).setErrorPlus(error2) dataPoint.coordinate(1).setErrorMinus(error2) ### Asymmetric dataPoint = dataPointSet2.addPoint() dataPoint.coordinate(0).setValue(i) dataPoint.coordinate(1).setValue(2.0 * i + error1) dataPoint.coordinate(1).setErrorPlus(error2) dataPoint.coordinate(1).setErrorMinus(error2 / 2.0) ### Fit fitFactory = analysisFactory.createFitFactory() fitter = fitFactory.createFitter() fitResult1 = fitter.fit(dataPointSet1, 'P1') print '### Symmetric: p0 + p1 * x' print 'Parameter:', fitResult1.fittedParameters() print 'Error :', fitResult1.errors() fitResult2 = fitter.fit(dataPointSet2, 'P1') print '### Asymmetric: p0 + p1 * x' print 'Parameter:', fitResult2.fittedParameters() print 'Error :', fitResult2.errors() ### Plot plotterFactory = analysisFactory.createPlotterFactory() plotter = plotterFactory.create('PAIDA Plotter') plotter.createRegions(1, 2) plotter.region(0).setTitle('Symmetric') plotter.region(0).style().setParameter('showTitle', 'true') plotter.region(0).style().dataStyle().setParameter('showErrorBars', 'True') plotter.region(0).plot(dataPointSet1) plotter.region(0).plot(fitResult1.fittedFunction()) plotter.region(1).setTitle('Asymmetric') plotter.region(1).style().setParameter('showTitle', 'true') plotter.region(1).style().dataStyle().setParameter('showErrorBars', 'True') plotter.region(1).plot(dataPointSet2) plotter.region(1).plot(fitResult2.fittedFunction()) ### Wait. dummy = raw_input('Hit any key.')