def create_plot_component(self):
     self.plot_data = ArrayPlotData()
     self.plot_data.set_data("imagedata", self.model.intens_yz)
     self.plot_data.set_data('vert_image',self.model.intens_xz)
     self.plot_data.set_data('beam_section', self.model.intens_xy)
     # Create a contour polygon plot of the data
     plot = Plot(self.plot_data)
     plot.title = 'Horizontal plane'
     plot.padding=5
     plot.padding_top = 22
     plot.padding_left=25
     plot.padding_bottom=20
     my_plot = plot.img_plot("imagedata", name='my_plot', # xbounds=x,#ybounds=y,
                          colormap=jet, hide_grids=True)[0]
     
     colormap = my_plot.color_mapper
     colorbar = ColorBar(index_mapper=LinearMapper(range=colormap.range),
                     color_mapper=colormap,
                     plot=my_plot,
                     orientation='v',
                     resizable='v',
                     width=25,
                     padding=0)      
     colorbar.padding_top = plot.padding_top
     colorbar.padding_bottom = plot.padding_bottom
     colorbar.padding_left = 35
     colorbar.padding_right = 30                                         
     colorbar._axis.tick_label_formatter = lambda x: ('%.0e'%x)                     
                          
     rplot = Plot(self.plot_data)
     rplot.title = 'Vertical plane'
     rplot.padding=plot.padding
     rplot.padding_top = plot.padding_top
     rplot.padding_left = plot.padding_left
     rplot.padding_bottom = plot.padding_bottom   
     my_plot = rplot.img_plot('vert_image',name='vert_plot',colormap=jet)[0]
     colormap = my_plot.color_mapper
     colorbar_rplot = ColorBar(index_mapper=LinearMapper(range=colormap.range),
                     color_mapper=colormap,
                     plot=my_plot,
                     orientation='v',
                     resizable='v',
                     width=25,
                     padding=0)      
     colorbar_rplot.padding_top = plot.padding_top
     colorbar_rplot.padding_bottom = plot.padding_bottom
     colorbar_rplot.padding_right = 20
     colorbar_rplot.padding_left = 35    
     colorbar_rplot._axis.tick_label_formatter = lambda x: ('%.0e'%x) 
        
     sec_plot = Plot(self.plot_data)
     sec_plot.title = 'Beam section'
     sec_plot.padding=plot.padding
     sec_plot.padding_top = plot.padding_top
     sec_plot.padding_left = plot.padding_left
     sec_plot.padding_bottom = plot.padding_bottom   
     my_plot = sec_plot.img_plot('beam_section',name='beam_section_plot',colormap=jet)[0]
     colormap = my_plot.color_mapper
     colorbar_sec_plot = ColorBar(index_mapper=LinearMapper(range=colormap.range),
                     color_mapper=colormap,
                     plot=my_plot,
                     orientation='v',
                     resizable='v',
                     width=25,
                     padding=0)      
     colorbar_sec_plot.padding_top = plot.padding_top
     colorbar_sec_plot.padding_bottom = plot.padding_bottom
     colorbar_sec_plot.padding_right = 20
     colorbar_sec_plot.padding_left = 35    
     colorbar_sec_plot._axis.tick_label_formatter = lambda x: ('%.0e'%x)    
     container = HPlotContainer(use_backbuffer = True)
     container.add(plot)
     container.add(colorbar)
     container.add(rplot)
     container.add(colorbar_rplot)
     container.add(sec_plot)
     container.add(colorbar_sec_plot)
     self.plot_container = container
示例#2
0
def _create_plot_component(file_name):
    # Create a scalar field to colormap
    z = load(file_name)
    pd = ArrayPlotData()
    pd.set_data("imagedata", z)
    
    # Create the plot
    plot = Plot(pd)
    plot.bgcolor = 'gray'
    
    img_plot = plot.img_plot("imagedata",
                             name='my_plot', 
                             colormap=jet,
                             hide_grids=True)[0]
    #cont_plot=plot.contour_plot('imagedata', type='line', name='countour')
    # Tweak some of the plot properties
    #plot.title = file_name
    plot.padding = 40
    plot.padding_right=20
    # Attach some tools to the plot
    plot.tools.append(PanTool(plot))
    #plot.tools.append(TraitsTool(plot))
    zoom = ZoomTool(component=img_plot, tool_mode="box", always_on=False)
    img_plot.overlays.append(zoom)
    #plot.y_axis.tick_label_formatter = lambda x: "%.3e" % x
    #plot.x_axis.tick_label_formatter = lambda x: "%.3e" % x
    #plot.tools.append(SaveTool(plot))
    # Right now, some of the tools are a little invasive, and we need the
    # actual CMapImage object to give to them
    my_plot = img_plot#plot.plots["my_plot"][0]
    colormap = my_plot.color_mapper
    colorbar = ColorBar(index_mapper=LinearMapper(range=colormap.range),
                        color_mapper=colormap,
                        plot=my_plot,
                        orientation='v',
                        resizable='v',
                        width=25,
                        padding=0)
    colorbar.origin = 'bottom left'
    #colorbar._axis.tick_label_formatter = lambda x: '%.0e'%(x*10e6) + u' [\u00b5' + 'Watt]'
    colorbar._axis.tick_label_formatter = lambda x: ('%.0e'%(x*1e6))
    colorbar._axis.orientation = 'right'
    colorbar._axis.title = u'Intensity [\u00b5W]'
    colorbar.padding_top = plot.padding_top
    colorbar.padding_bottom = plot.padding_bottom
    colorbar.padding_right = 100
    # create a range selection for the colorbar
    range_selection = RangeSelection(component=colorbar)
    colorbar.tools.append(range_selection)
    colorbar.overlays.append(RangeSelectionOverlay(component=colorbar,
                                                   border_color="white",
                                                   alpha=0.5,
                                                   fill_color="lightgray"))
    
    range_selection.listeners.append(my_plot)
    
    imgtool = ImageInspectorTool(img_plot)
    img_plot.tools.append(imgtool)
    plot.overlays.append(ImageInspectorOverlay(component=img_plot, image_inspector=imgtool))
    # we also want to the range selection to inform the cmap plot of
    # the selection, so set that up as well

    # Create a container to position the plot and the colorbar side-by-side
    container = HPlotContainer(use_backbuffer = True)
    container.add(plot)
    container.add(colorbar)
    container.bgcolor = "white"
    container.tools.append(SaveTool(container))
    container.tools.append(TraitsTool(container))
    #my_plot.set_value_selection((-1.3, 6.9))
    return container