def runHighDimAnalysis(data, objHeaders=None, saveFigsPrepend=None, freqsToKeep=None, displayFigs=True): """ standard set of plots generated for 2-objective problems :param data: designs to plot. each row is a design and each column is an objective :param saveFigsPrepend: a prepend name for saving figures generated. None (default) prevents automatic saving. """ if objHeaders is None: objHeaders = list(map(lambda n: 'obj: ' + str(n), range(data.shape[1]))) mp = lowDimMeanPlane(data) # create the mean plane # runShowSaveClose(ft.partial(plotLogTradeRatios,mp,objHeaders),saveFigsPrepend+'_tradeRatios.png',displayFig=displayFigs) if freqsToKeep is None: freqsToKeep = 2**data.shape[1] fa = rbfSummarizerAnalyzer.fromMeanPlane(mp, freqsToKeep) if displayFigs: fa.report() if saveFigsPrepend is not None: fa.report(saveFigsPrepend + '_report.csv') runShowSaveClose(fa.rbfWeightPlot, saveFigsPrepend + '_powerDeclinePlot.png', displayFig=displayFigs)
def run2danalysis(data, objHeaders=None, saveFigsPrepend=None, freqsToKeep=None, displayFigs=True, isMaxObj=None): """ standard set of plots generated for 2-objective problems :param data: designs to plot. each row is a design and each column is an objective :param saveFigsPrepend: a prepend name for saving figures generated. None (default) prevents automatic saving. """ if objHeaders is None: objHeaders = list(map(lambda n: 'obj: ' + str(n), range(data.shape[1]))) mp = lowDimMeanPlane(data) # create the mean plane if saveFigsPrepend is not None: mps = saveFigsPrepend + '_meanPlane.png' trs = saveFigsPrepend + '_tradeRatios.png' spts = saveFigsPrepend + '_spectralPower_legendre.png' rts = saveFigsPrepend + '_reverseTransform.png' pdr = saveFigsPrepend + '_powerDeclineReport.png' else: mps = None trs = None spts = None rts = None pdr = None runShowSaveClose(mp.draw2dMeanPlane, mps, displayFig=displayFigs) fa = rbfSummarizerAnalyzer.fromMeanPlane(mp, freqsToKeep) if displayFigs: fa.report() if saveFigsPrepend is not None: fa.report(saveFigsPrepend + '_report.csv') # maybe use a scatterplot? # runShowSaveClose(ft.partial(spectral1dPowerPlot_nonFFT,fa),spts,displayFig=displayFigs) runShowSaveClose(fa.rbfWeightPlot, pdr, displayFig=displayFigs) runShowSaveClose(ft.partial(rbfApproximationPlot2d, mp, fa, objHeaders), saveFigsPrepend + '_reverseTransform.png', displayFig=displayFigs) # runShowSaveClose(ft.partial(plotTradeRatios,mp,fa,objHeaders),saveFigsPrepend+'_tradeoffPlot.png',displayFig=displayFigs) return (mp, fa)
def run2danalysis(data,objHeaders=None,saveFigsPrepend=None,freqsToKeep=2, displayFigs=True, isMaxObj=None): """ standard set of plots generated for 2-objective problems :param data: designs to plot. each row is a design and each column is an objective :param saveFigsPrepend: a prepend name for saving figures generated. None (default) prevents automatic saving. """ if objHeaders is None: objHeaders=list(map(lambda n: 'obj: '+str(n),range(data.shape[1]))) mp=lmp.lowDimMeanPlane(data) # create the mean plane runShowSaveClose(mp.draw2dMeanPlane,saveFigsPrepend+'_meanPlane.png',displayFig=displayFigs) runShowSaveClose(ft.partial(plotLogTradeRatios,mp,objHeaders),saveFigsPrepend+'_tradeRatios.png',displayFig=displayFigs) fa=FourierSummarizerAnalyzer.fromMeanPlane(mp,freqsToKeep) if displayFigs: fa.report() if saveFigsPrepend is not None: fa.report(saveFigsPrepend+'_report.csv') runShowSaveClose(ft.partial(spectral1dPowerPlot,fa),saveFigsPrepend+'_spectralPower.png',displayFig=displayFigs) runShowSaveClose(ft.partial(spectral1dPhasePlot,fa),saveFigsPrepend+'_spectralPhase.png',displayFig=displayFigs) plt.figure() spectralPower=np.abs(np.fft.fftshift(fa.trueSpectrum()))**2 plt.plot(np.fft.fftshift(fa.fftFreqs),spectralPower,'k.-') # axis_font={'size':'28'} # plt.xlabel('frequency',**axis_font) # plt.ylabel('square power',**axis_font) plt.xlabel('frequency') plt.ylabel('square power') if saveFigsPrepend is not None: plt.savefig(saveFigsPrepend+'_trueSpectralPower.png',bbox_inches='tight') plt.show() if not displayFigs: plt.close('all') runShowSaveClose(ft.partial(approximationPlot2d,mp,fa,objHeaders),saveFigsPrepend+'_reverseTransform.png',displayFig=displayFigs) runShowSaveClose(ft.partial(plotTradeRatios,mp,fa,objHeaders),saveFigsPrepend+'_tradeoffPlot.png',displayFig=displayFigs) return (mp,fa)
def run3danalysis(data,objHeaders=None,saveFigsPrepend=None,freqsToKeep=3**2,displayFigs=True): """ standard set of plots generated for 2-objective problems :param data: designs to plot. each row is a design and each column is an objective :param saveFigsPrepend: a prepend name for saving figures generated. None (default) prevents automatic saving. """ if objHeaders is None: objHeaders=list(map(lambda n: 'obj: '+str(n),range(data.shape[1]))) mp=lmp.lowDimMeanPlane(data) # create the mean plane runShowSaveClose(mp.draw3dMeanPlane,noneSafeConcat(saveFigsPrepend,'_meanPlane.png'),displayFig=displayFigs) runShowSaveClose(ft.partial(plotLogTradeRatios,mp,objHeaders),noneSafeConcat(saveFigsPrepend,'_tradeRatios.png'),displayFig=displayFigs) fa=FourierSummarizerAnalyzer.fromMeanPlane(mp,freqsToKeep) if displayFigs: fa.report() if saveFigsPrepend is not None: fa.report(saveFigsPrepend+'_report.csv') runShowSaveClose(ft.partial(spectral2dPowerImage,fa),noneSafeConcat(saveFigsPrepend,'_spectralPower.png'),displayFig=displayFigs) runShowSaveClose(ft.partial(spectral2dPowerPlot,fa),noneSafeConcat(saveFigsPrepend,'_spectralPower3d.png'),displayFig=displayFigs) runShowSaveClose(ft.partial(approximationPlot3d,mp,fa),noneSafeConcat(saveFigsPrepend,'_reverseTransform.png'),displayFig=displayFigs) runShowSaveClose(ft.partial(plot3dErr,mp.inputInPlane,mp.inputResidual),noneSafeConcat(saveFigsPrepend,'_errorPlot.png'),displayFig=displayFigs) runShowSaveClose(fa.powerDeclineReport,noneSafeConcat(saveFigsPrepend,'_powerDeclineReport.png'),displayFig=displayFigs) runShowSaveClose(ft.partial(plotTradeRatios,mp,fa,objHeaders),noneSafeConcat(saveFigsPrepend,'_tradeoffPlot.png'),displayFig=displayFigs)