def create_plot(value_ds, index_ds, horizontal_val_ds, horizontal_index_ds, int_val_ds, int_index_ds): xmapper = LinearMapper(range=DataRange1D(index_ds)) value_mapper = LinearMapper(range=DataRange1D(value_ds)) xmapper_val = LinearMapper(range=DataRange1D(horizontal_index_ds)) horizontal_val_mapper = LinearMapper(range=DataRange1D(horizontal_val_ds)) int_xmapper = LinearMapper(range=DataRange1D(int_index_ds)) int_val_mapper = LinearMapper(range=DataRange1D(int_val_ds)) value_plot = FilledLinePlot(index = index_ds, value = value_ds, index_mapper = xmapper, value_mapper = value_mapper, line_color = "black", render_style='connectedhold', fill_color = (0,0,1,0.3), antialias=False) add_default_grids(value_plot) value_plot.overlays.append(PlotAxis(value_plot, orientation='left')) value_plot.overlays.append(PlotAxis(value_plot, orientation='bottom', title='steps backwards')) value_plot.overlays.append(PlotLabel('position of max power: vertical axes', component=value_plot, font = 'swiss 16', overlay_position='top')) value_plot.padding = 50 horizontal_pos_plot = FilledLinePlot(index = horizontal_index_ds, value = horizontal_val_ds, index_mapper = xmapper_val, value_mapper = horizontal_val_mapper, line_color = "black", render_style='connectedhold', fill_color = (0,1,0,0.3), antialias=False) horizontal_pos_plot.padding = 50 add_default_grids(horizontal_pos_plot) horizontal_pos_plot.overlays.append(PlotAxis(horizontal_pos_plot, orientation='left')) horizontal_pos_plot.overlays.append(PlotAxis(horizontal_pos_plot, orientation='bottom', title='steps backwards')) horizontal_pos_plot.overlays.append(PlotLabel('position of max power: horizontal axes', component=horizontal_pos_plot, font = 'swiss 16', overlay_position='top')) intensity_plot = FilledLinePlot(index = int_index_ds, value = int_val_ds, index_mapper = int_xmapper, value_mapper = int_val_mapper, line_color = "black", fill_color = (0,0,0,0.4), antialias=False) intensity_plot.padding = 50 add_default_grids(intensity_plot) intensity_plot.overlays.append(PlotAxis(intensity_plot, orientation='left', title= 'Power [uW]')) intensity_plot.overlays.append(PlotAxis(intensity_plot, orientation='bottom', title='steps backwards')) intensity_plot.y_axis.tick_label_formatter = lambda x: ('%.1e'%(x*1e6)) intensity_plot.overlays.append(PlotLabel('Transmission power', component=intensity_plot, font = 'swiss 16', overlay_position='top')) container = VPlotContainer(use_backbuffer = True) container.add(horizontal_pos_plot) container.add(value_plot) #container.add(intensity_plot) container_h = HPlotContainer(use_backbuffer = True) container_h.add(container) container_h.add(intensity_plot) return container_h
def _plot_container_default(self): container = OverlayPlotContainer( padding = 60, fill_padding = False, bgcolor = "white", use_backbuffer=True) # Plot some distribution functions plots = {} broadcaster = BroadcasterTool() #""" Plot # view = DataView(border_visible = True) # index = ArrayDataSource(self.x_array) value = ArrayDataSource(self.pdf_array, sort_order="none") index_range = DataRange1D() index_range.add(index) index_mapper = LinearMapper(range=index_range) value_range = DataRange1D() value_range.add(value) value_mapper = LinearMapper(range=value_range) pdf_plot = FilledLinePlot(index = index, value = value, index_mapper = index_mapper, value_mapper = value_mapper, edge_color = tuple(COLOR_PALETTE[0]), face_color = "paleturquoise", bgcolor = "white", border_visible = True) add_default_grids(pdf_plot) add_default_axes(pdf_plot) #***************************Label************************************* pdf_label = DataLabel(component=pdf_plot, data_point=(2.4,0.15), label_position=(15,15), padding=5, label_format = 'PDF', bgcolor = "transparent", marker_color = "transparent", marker_line_color = "transparent", border_visible=False) pdf_plot.overlays.append(pdf_label) # tool = DataLabelTool(pdf_label, drag_button="right", auto_arrow_root=True) # pdf_label.tools.append(tool) container.add(pdf_plot) pan = PanTool(pdf_plot) zoom = SimpleZoom(pdf_plot, tool_mode="box", always_on=False) broadcaster.tools.append(pan) broadcaster.tools.append(zoom) #*********************************CDF**************************** plot = create_line_plot((self.x_array,self.pdf_array), color=tuple(COLOR_PALETTE[0]), width=2.0) plot.bgcolor = "white" plot.border_visible = True add_default_grids(plot) add_default_axes(plot) container.add(plot) # # Create a pan tool and give it a reference to the plot it should # # manipulate, but don't attach it to the plot. Instead, attach it to # # the broadcaster. pan = PanTool(plot) zoom = SimpleZoom(plot, tool_mode="box", always_on=False) broadcaster.tools.append(pan) broadcaster.tools.append(zoom) #""" PDF Plot # Add an axis on the right-hand side that corresponds to the second plot. # Note that it uses plot.value_mapper instead of plot0.value_mapper. pdf_plot = create_line_plot((self.x_array,self.cdf_array), color=tuple(COLOR_PALETTE[1]), width=2.0) pdf_plot.bgcolor = "white" pdf_plot.border_visible = True # Label cdf_text = TextBoxOverlay(text = 'CDF', alternate_position = (200,390) ) pdf_plot.overlays.append(cdf_text) tool = DataLabelTool(cdf_text, drag_button="right", auto_arrow_root=True) cdf_text.tools.append(tool) container.add(pdf_plot) # vertical_axis = LabelAxis(pdf_plot, orientation='top', # title='Categories') # pdf_plot.underlays.append(vertical_axis) pdf_pan = PanTool(pdf_plot) pdf_zoom = SimpleZoom(pdf_plot, tool_mode="box", always_on=False) broadcaster.tools.append(pdf_pan) broadcaster.tools.append(pdf_zoom) axis = PlotAxis(pdf_plot, orientation="right") pdf_plot.underlays.append(axis) #""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" # Add the broadcast tool to the container, instead of to an # individual plot container.tools.append(broadcaster) container.underlays.append(PlotLabel("CDF", component=container, font = "swiss 16", overlay_position="right")) legend = Legend(component=container, padding=10, align="ul") legend.tools.append(LegendTool(legend, drag_button="right")) container.overlays.append(legend) # Set the list of plots on the legend plots["pdf"] = plot plots["cdf"] = pdf_plot legend.plots = plots #******************************************************************************* x = ArrayDataSource( array( [ 0.0, 0.0 ], dtype = float ) ) y = ArrayDataSource( array( [ 0.0, self.mean ], dtype = float ) ) mean_plot = create_line_plot((x,y), color=tuple(COLOR_PALETTE[2]), width=2.0) # vertical_plot = LinePlot(index = ArrayDataSource( array( [ 0.0, 1.0 ], dtype = float ) ), # value = ArrayDataSource( array( [ 0.0, 1.0 ], dtype = float ) ), # color = "green"), # index_mapper = LinearMapper(range=index_mapper), # value_mapper = LinearMapper(range=value_mapper)) container.add(mean_plot) # Create a pan tool and give it a reference to the plot it should # manipulate, but don't attach it to the plot. Instead, attach it to # the broadcaster. mean_pan = PanTool(mean_plot) mean_zoom = SimpleZoom(mean_plot, tool_mode="box", always_on=False) broadcaster.tools.append(mean_pan) broadcaster.tools.append(mean_zoom) #************************************************************************** x = ArrayDataSource( array( [ 0.0, 0.0 ], dtype = float ) ) y = ArrayDataSource( array( [ 0.0, 2.0 ], dtype = float ) ) print "self.standard_deviation", self.standard_deviation st_plot = create_line_plot((x,y), color=tuple(COLOR_PALETTE[4]), width=2.0) container.add(st_plot) # Create a pan tool and give it a reference to the plot it should # manipulate, but don't attach it to the plot. Instead, attach it to # the broadcaster. st_pan = PanTool(st_plot) st_zoom = SimpleZoom(st_plot, tool_mode="box", always_on=False) broadcaster.tools.append(st_pan) broadcaster.tools.append(st_zoom) #***************************************************************************** # Add the title at the top container.overlays.append(PlotLabel("Distribution plots", component=container, font = "swiss 16", overlay_position="top")) # Add the traits inspector tool to the container container.tools.append(TraitsTool(container)) return container