# demo where two plots are added below, making embedded horizontal and vertical # slices. # This expects that the original dataset is rank 2 or rank 3. # from org.virbo.autoplot.layout import LayoutConstants plots= dom.controller.addPlots(1,2,LayoutConstants.ABOVE) dom.controller.plot.setDisplayTitle(False) plotElements= map( dom.controller.getPlotElementsFor, plots ) plotElements[0]= plotElements[0][0] plotElements[1]= plotElements[1][0] for pe in plotElements: pe.dataSourceFilterId= dom.controller.plotElement.dataSourceFilterId pe= dom.controller.plotElement sliceDsf= 0 # once we make the first plot, then keep the same ranges, etc. plot= dom.plots[0].controller.dasPlot # red flag that Autoplot should provide API for this. from org.das2.event import DataPointSelectorMouseModule from org.das2.event import CrossHairRenderer sliceRenderer= CrossHairRenderer( plot, None, plot.getXAxis(), plot.getYAxis() ) mm= DataPointSelectorMouseModule( plot, None, sliceRenderer, 'demo slice' ) from java.lang import Runtime import java.lang.Exception def dataPointSelected(event): x= event.getX() y= event.getY() dsf= dom.controller.getDataSourceFilterFor(pe) ds= dom.controller.dataSourceFilter.controller.dataSet print ds try: slic= slice0( ds, dataset(x) ) plotElements[0].component= "|slice0('"+x.toString()+"')" except java.lang.Exception,e: plotElements[0].controller.renderer.setDataSet(None) plotElements[0].controller.renderer.setException(e) try: slic= slice1( ds, dataset(y) ) plotElements[1].component= "|slice1('"+y.toString()+"')" except java.lang.Exception,e: plotElements[1].controller.renderer.setDataSet(None) plotElements[1].controller.renderer.setException(e) mm.dataPointSelected= dataPointSelected plot.dasMouseInputAdapter.primaryModule= mm