Beispiel #1
0
def make_toolbar(canvas):
    # Create the toolbar
    toolbar = PlotCanvasToolbar(
        bounds=[70, 200],
        position=[50, 350],
        fill_padding=True,
        bgcolor="lightgrey",
        padding=5,
        align="left",
    )

    # Create the scatterplot
    pd = ArrayPlotData()
    scatterplot = Plot(pd,
                       padding=15,
                       bgcolor="white",
                       unified_draw=True,
                       border_visible=True)
    if not MULTITOUCH:
        scatterplot.tools.append(PanTool(scatterplot, drag_button="right"))
        scatterplot.tools.append(ZoomTool(scatterplot))
    else:
        scatterplot.tools.append(MPPanZoom(scatterplot))
    scatterplot.overlays.append(
        PlotCloneTool(scatterplot, dest=canvas, plot_cloner=clone_plot))

    # Create the overlay
    overlay = TransientPlotOverlay(
        component=toolbar,
        overlay_component=scatterplot,
        bounds=[350, 350],
        border_visible=True,
        visible=False,  # initially invisible
    )
    scatterplot.container = overlay

    # Create buttons
    controller = ButtonController()
    for name in list(DATA.keys()):
        plot = do_plot(name, pd)
        if MULTITOUCH:
            plot.tools.append(MPPanZoom(plot))
        else:
            plot.tools.append(
                PanTool(plot,
                        drag_button="right",
                        constrain=True,
                        constrain_direction="x"))
            plot.tools.append(
                ZoomTool(plot,
                         tool_mode="range",
                         axis="index",
                         always_on=False))
        plot.overlays.append(
            PlotCloneTool(plot, dest=canvas, plot_cloner=clone_plot))
        plot_overlay = TransientPlotOverlay(
            component=toolbar,
            overlay_component=plot,
            border_visible=True,
            visible=False,
        )
        plot.container = plot_overlay
        button = DataSourceButton(
            label=name,
            bounds=[80, 46],
            padding=5,
            button_controller=controller,
            #canvas = canvas,
            plot_overlay=plot_overlay,
            plotname=name)
        toolbar.add(button)
        canvas.overlays.append(plot_overlay)
    controller.plot = scatterplot
    controller.plot_overlay = overlay
    canvas.overlays.append(overlay)

    return toolbar
Beispiel #2
0
def make_toolbar(canvas):
    # Create the toolbar
    toolbar = PlotCanvasToolbar(bounds=[70, 200],
                                position=[50,350],
                                fill_padding=True,
                                bgcolor="lightgrey",
                                padding = 5,
                                align = "left",
                                )

    # Create the scatterplot
    pd = ArrayPlotData()
    scatterplot = Plot(pd, padding=15, bgcolor="white", unified_draw=True,
                       border_visible=True)
    if not MULTITOUCH:
        scatterplot.tools.append(PanTool(scatterplot, drag_button="right"))
        scatterplot.tools.append(ZoomTool(scatterplot))
    else:
        scatterplot.tools.append(MPPanZoom(scatterplot))
    scatterplot.overlays.append(PlotCloneTool(scatterplot, dest=canvas,
                                              plot_cloner=clone_plot))

    # Create the overlay
    overlay = TransientPlotOverlay(component=toolbar,
                                   overlay_component=scatterplot,
                                   bounds=[350,350],
                                   border_visible=True,
                                   visible = False,  # initially invisible
                                   )
    scatterplot.container = overlay

    # Create buttons
    controller = ButtonController()
    for name in DATA.keys():
        plot = do_plot(name, pd)
        if MULTITOUCH:
            plot.tools.append(MPPanZoom(plot))
        else:
            plot.tools.append(PanTool(plot, drag_button="right", constrain=True,
                                      constrain_direction="x"))
            plot.tools.append(ZoomTool(plot, tool_mode="range", axis="index",
                                         always_on=False))
        plot.overlays.append(PlotCloneTool(plot, dest=canvas,
                                           plot_cloner=clone_plot))
        plot_overlay = TransientPlotOverlay(component=toolbar,
                                            overlay_component=plot,
                                            border_visible=True,
                                            visible=False,
                                            )
        plot.container = plot_overlay
        button = DataSourceButton(label=name,
                                  bounds=[80,46],
                                  padding = 5,
                                  button_controller = controller,
                                  #canvas = canvas,
                                  plot_overlay = plot_overlay,
                                  plotname = name)
        toolbar.add(button)
        canvas.overlays.append(plot_overlay)
    controller.plot = scatterplot
    controller.plot_overlay = overlay
    canvas.overlays.append(overlay)

    return toolbar