Skip to content

v0-00-24 - Support for categorical data and faster rendering /downsampling point to render on client

Choose a tag to compare

@miranov25 miranov25 released this 03 Dec 07:41
· 1708 commits to master since this release

Total 45 commits since v0-00-24 -solving or partially solving issues

Visualization changes #76, #89

#76 - Integrate dynamic down-sampling in number of points in bokeh visualization + bug fix in preserving selected points in interactive selection
#89 Bokeh wrappers - add support for categorical data in bokeDraw

  • new syntax to specify number of points to render on client
    • nPointRender=5000
    • rescaleColorMapper=True

Example usage Visualization:

  • creation of categorical data from root trees Experimental
    • TODO - to be simplified further using default factors
pidMap = {0:"electron",1: "muon", 2: "pion", 3: "kaon", 4: "proton", 5: "H2", 6: "H3", 7: "He3", 8: "He4" }
dfResolMap0['pidCategory']=dfResolMap0['pidCenter'].map(pidMap)
markerPID=factor_mark('pidCategory', ['hex', 'circle_x', 'triangle'], pidCategory)
colorPID=factor_cmap('pidCategory', 'Category10_6', pidCategory )
  • usage in visualization
output_file("fitlMultNormHighMultFit.html")
optionsAll={"color":colorPID,"marker":markerPID,"legend_field":"pidCategory"}
#optionsAll={"colorZvar":"tglMean"}
figureArray = [
    [['qPMean'], ['log(dEdxS)'], {"colorZvar":"tglMean"}],
    [['logBGMean'], ['log(dEdxS)'], {"colorZvar":"tglMean"}],
    [['1/dEdxExp'], ['log(dEdxS)'], {"colorZvar":"tglMean"}],
    [['primMultCenter'], ['log(dEdxS)'], {"colorZvar":"tglMean"}],
    #
    [['qPMean'], ['log(dEdxFitBGEl)'], {"colorZvar":"tglMean"}],
    [['logBGMean'], ['log(dEdxFitBGEl)'], {"colorZvar":"tglMean"}],
    [['1/dEdxExp'], ['log(dEdxFitBGEl)'], {"colorZvar":"tglMean"}],
    [['primMultCenter'], ['log(dEdxFitBGEl)'], {"colorZvar":"tglMean"}],
    #
    [['qPMean'], ['log(dEdxS/dEdxFitBG)'], {"colorZvar":"tglMean"}],
    [['logBGMean'], ['log(dEdxS/dEdxFitBG)'], {"colorZvar":"tglMean"}],
    [['1/dEdxExp'], ['log(dEdxS/dEdxFitBG)'], {"colorZvar":"tglMean"}],
    [['primMultCenter'], ['log(dEdxS/dEdxFitBG)'], {"colorZvar":"tglMean"}],
    #
    [['qPMean'], ['log(dEdxS/dEdxFitBGEl)'], {"colorZvar":"tglMean"}],
    [['logBGMean'], ['log(dEdxS/dEdxFitBGEl)'], {"colorZvar":"tglMean"}],
    [['1/dEdxExp'], ['log(dEdxS/dEdxFitBGEl)'], {"colorZvar":"tglMean"}],
    [['primMultCenter'], ['log(dEdxS/dEdxFitBGEl)'], {"colorZvar":"tglMean"}],
    {"size": 4}
]

widgetParams=[
    ['multiSelect', ['pidCenter']],
    ['multiSelect', ['primMultBin']],
    ['multiSelect', ['cutResolOutliers']],
    ['range', ['tglMean']],
    ['range', ['primMultCenter']],
    ['range', ['qPtMean']],
]
tooltips = [("pid", "@pidCenter")]
widgetLayoutDesc=[ [0,1,2],[3,4,5], {'sizing_mode':'scale_width',"legend_visible":False} ]
figureLayoutDesc=[
    [0,1,2,3, {'plot_height':250,"commonY":0,'x_visible':0}],
    [4,5,6,7, {'plot_height':250,'x_visible':0,"commonY":4}],
    [8,9,10,11, {'plot_height':250,"commonY":8}],
    [12,13,14,15, {'plot_height':300,"commonY":8}],
    {'plot_height':250,'sizing_mode':'scale_width',"legend_visible":False}
]
fig=bokehDrawSA.fromArray(dfResolMap0, "qPtMean>0.2&abs(log(dEdxS/dEdxFitBGEl))<0.2", figureArray, widgetParams,layout=figureLayoutDesc,tooltips=tooltips,sizing_mode='scale_width',widgetLayout=widgetLayoutDesc, nPointRender=5000,rescaleColorMapper=True)