def line_advanced(): source = ColumnDataSource(data=dict(x=x,y=y,z=z,widths=widths, heights=heights)) xdr = DataRange1d(sources=[source.columns("x")]) xdr2 = DataRange1d(sources=[source.columns("x")]) ydr = DataRange1d(sources=[source.columns("y")]) ydr2 = DataRange1d(sources=[source.columns("y")]) line_glyph = Line(x="x", y="y", line_color="blue") renderer = GlyphRenderer(data_source = source, xdata_range = xdr, ydata_range = ydr, glyph = line_glyph) pantool = PanTool(dataranges = [xdr, ydr], dimensions=["width","height"]) zoomtool = ZoomTool(dataranges=[xdr,ydr], dimensions=("width","height")) plot = Plot(x_range=xdr, y_range=ydr, data_sources=[source], border=50) plot.tools = [pantool, zoomtool] plot.renderers.append(renderer) #notice that these two have a differen y data range renderer2 = GlyphRenderer(data_source = source, xdata_range = xdr, ydata_range = ydr2, glyph = line_glyph) plot2 = Plot(x_range=xdr, y_range=ydr2, data_sources=[source], border=50) plot2.renderers.append(renderer2) #notice that these two have a differen y data range renderer3 = GlyphRenderer(data_source = source, xdata_range = xdr2, ydata_range = ydr, glyph = line_glyph) plot3 = Plot(x_range=xdr2, y_range=ydr, data_sources=[source], border=50) plot3.renderers.append(renderer3) #this is a dummy plot with no renderers plot4 = Plot(x_range=xdr2, y_range=ydr, data_sources=[source], border=50) sess = session.HTMLFileSession("line_linked_advanced.html") sess.add(plot, renderer, source, xdr, ydr, pantool, zoomtool) sess.add(plot2, renderer2, ydr2, xdr2, renderer3, plot3, plot4) grid = GridPlot(children=[[plot, plot2], [plot3, plot4 ]], name="linked_advanced") sess.add(grid) sess.plotcontext.children.append(grid) sess.save(js="relative", css="relative", rootdir=os.path.abspath(".")) print "Wrote line_linked_advanced.html" webbrowser.open("file://" + os.path.abspath("line_linked_advanced.html"))
county_renderer = Glyph( data_source = county_source, xdata_range = xdr, ydata_range = ydr, glyph = county_patches, ) state_renderer = Glyph( data_source = state_source, xdata_range = xdr, ydata_range = ydr, glyph = state_patches, ) plot = Plot(x_range=xdr, y_range=ydr, data_sources=[state_source, county_source], min_border=0, border_fill="white", title="2009 Unemployment Data", width=1300, height=800) resizetool = ResizeTool(plot=plot) plot.renderers.append(county_renderer) plot.renderers.append(state_renderer) plot.tools = [resizetool] sess = session.HTMLFileSession("choropleth.html") sess.add_plot(plot) if __name__ == "__main__": sess.save() print("Wrote %s" % sess.filename) sess.view()
pantool = PanTool(plot=plot) wheelzoomtool = WheelZoomTool(plot=plot) objectexplorer = ObjectExplorerTool() plot.tools.extend([pantool, wheelzoomtool, objectexplorer]) # Plot some data on top source = ColumnDataSource(data=dict(lat=[30.2861, 30.2855, 30.2869], lon=[-97.7394, -97.7390, -97.7405], fill=['orange', 'blue', 'green'])) circle_renderer = Glyph(data_source=source, xdata_range=x_range, ydata_range=y_range, glyph=Circle(x="lon", y="lat", fill_color="fill", size=15, radius_units="screen", line_color="black")) plot.data_sources.append(source) plot.renderers.append(circle_renderer) sess = session.HTMLFileSession("maps.html") sess.add_plot(plot) if __name__ == "__main__": sess.save() print("Wrote %s" % sess.filename) sess.view()
circle = Circle(x="x", y="y", fill_color="red", radius=5, line_color="black") glyph_renderer = GlyphRenderer( data_source=source, xdata_range=xdr, ydata_range=ydr, glyph=circle, ) plot = Plot(x_range=xdr, y_range=ydr, data_sources=[source], border=80) xaxis = LinearAxis(plot=plot, dimension=0, location="min") yaxis = LinearAxis(plot=plot, dimension=1, location="min") pantool = PanTool(dataranges=[xdr, ydr], dimensions=["width", "height"]) zoomtool = ZoomTool(dataranges=[xdr, ydr], dimensions=("width", "height")) plot.renderers.append(glyph_renderer) plot.tools = [pantool, zoomtool] sess = session.HTMLFileSession("circle.html") sess.add(plot, glyph_renderer, xaxis, yaxis, source, xdr, ydr, pantool, zoomtool) sess.plotcontext.children.append(plot) sess.save(js="relative", css="relative", rootdir=os.path.abspath(".")) print "Wrote circle.html" try: import webbrowser webbrowser.open("file://" + os.path.abspath("circle.html")) except: pass
glyph_renderer = GlyphRenderer( data_source = source, xdata_range = xdr, ydata_range = ydr, glyph = circle, ) plot = Plot(x_range=xdr, y_range=ydr, data_sources=[source], border= 80) xaxis = LinearAxis(plot=plot, dimension=0, location="min") yaxis = LinearAxis(plot=plot, dimension=1, location="min") pantool = PanTool(dataranges = [xdr, ydr], dimensions=["width","height"]) zoomtool = ZoomTool(dataranges=[xdr,ydr], dimensions=("width","height")) plot.renderers.append(glyph_renderer) plot.tools = [pantool,zoomtool] sess = session.HTMLFileSession("glyph1.html") sess.add(plot, glyph_renderer, xaxis, yaxis, source, xdr, ydr, pantool, zoomtool) sess.plotcontext.children.append(plot) sess.save(js="relative", css="relative", rootdir=os.path.abspath(".")) sess.dumpjson(file="glyph1.json") print "Wrote glyph1.html" try: import webbrowser webbrowser.open("file://" + os.path.abspath("glyph1.html")) except: pass
plot.renderers.append(renderer) renderer2 = GlyphRenderer(data_source=source, xdata_range=xdr, ydata_range=ydr, glyph=line_glyph) plot2 = Plot(x_range=xdr, y_range=ydr, data_sources=[source], border=50) pantool2 = PanTool(dataranges=[xdr, ydr], dimensions=["width", "height"]) zoomtool2 = ZoomTool(dataranges=[xdr, ydr], dimensions=("width", "height")) plot2.renderers.append(renderer2) plot2.tools = [pantool2, zoomtool2] sess = session.HTMLFileSession("line_linked.html") sess.add(plot, renderer, source, xdr, ydr) sess.plotcontext.children.append(plot) sess.add(plot2, renderer2, pantool2, zoomtool2) sess.plotcontext.children.append(plot2) sess.save(js="relative", css="relative", rootdir=os.path.abspath(".")) print "Wrote line_linked.html" try: import webbrowser webbrowser.open("file://" + os.path.abspath("line_linked.html")) except: pass
plot = Plot(x_range=xdr, y_range=ydr, data_sources=[source], border=80) xaxis = LinearAxis(plot=plot, dimension=0) yaxis = LinearAxis(plot=plot, dimension=1) xgrid = Rule(plot=plot, dimension=0) ygrid = Rule(plot=plot, dimension=1) plot.renderers.append(glyph_renderer) plot.tools = [pantool, zoomtool] import sys demo_name = "line" if len(sys.argv) > 1 and sys.argv[1] == "server": sess = session.PlotServerSession(username="******", serverloc="http://localhost:5006", userapikey="nokey") sess.use_doc(demo_name) sess.add(plot, glyph_renderer, xaxis, yaxis, xgrid, ygrid, source, xdr, ydr, pantool, zoomtool) sess.store_all() print "Stored to document", demo_name else: filename = demo_name + ".html" sess = session.HTMLFileSession(filename) sess.server_static_dir = "../bokeh/server" sess.add(plot, glyph_renderer, xaxis, yaxis, xgrid, ygrid, source, xdr, ydr, pantool, zoomtool) sess.save(js="relative", css="relative", rootdir=os.path.abspath(".")) print "Wrote", filename
glyph_renderer = Glyph( data_source = source, xdata_range = xdr, ydata_range = ydr, glyph = circle, ) plot = Plot(x_range=xdr, y_range=ydr, data_sources=[source], border=80, title="Iris Data") xaxis = LinearAxis(plot=plot, dimension=0, location="min", axis_label="petal length", bounds=(1,7), major_tick_in=0) yaxis = LinearAxis(plot=plot, dimension=1, location="min", axis_label="petal width", bounds=(0,2.5), major_tick_in=0) xgrid = Grid(plot=plot, dimension=0) ygrid = Grid(plot=plot, dimension=1) pantool = PanTool(dataranges = [xdr, ydr], dimensions=["width","height"]) wheelzoomtool = WheelZoomTool(dataranges=[xdr,ydr], dimensions=("width","height")) plot.renderers.append(glyph_renderer) plot.tools = [pantool,wheelzoomtool] sess = session.HTMLFileSession("iris.html") sess.add(plot, recursive=True) sess.plotcontext.children.append(plot) sess.save(js="absolute", css="absolute") print("Wrote %s" % sess.filename) if __name__ == "__main__": sess.view()
]) xdr = DataRange1d(sources=[source.columns("x")]) ydr = DataRange1d(sources=[source.columns("y")]) line_renderer = LineRenderer( data_source = source, xdata_range = xdr, ydata_range = ydr, color = "red", xfield = "x", yfield = "y", ) plot = Plot(x_range=xdr, y_range=ydr, data_sources=[source]) xaxis = LinearAxis(orientation="bottom", data_range=xdr) yaxis = LinearAxis(orientation="left", data_range=ydr) plot.axes = [xaxis, yaxis] plot.renderers = [line_renderer] sess = session.HTMLFileSession("glyph_line.html") sess.server_static_dir="../bokeh/server" sess.add(plot, line_renderer, xaxis, yaxis, source, xdr, ydr) sess.save(js="relative", css="relative", rootdir=os.path.abspath("."))
# the SVG named 147 colors, or a hex color string starting with "#", # or a string "rgb(r,g,b)" or "rgba(r,g,b,a)". # Any other string will be interpreted as a field name to look up # on the datasource. line_color="black") glyph_renderer = Glyph( data_source=source, xdata_range=xdr, ydata_range=ydr, glyph=circle, ) plot = Plot(x_range=xdr, y_range=ydr, data_sources=[source], min_border=80) xaxis = LinearAxis(plot=plot, dimension=0, location="min") yaxis = LinearAxis(plot=plot, dimension=1, location="min") pantool = PanTool(dimensions=["width", "height"]) wheelzoomtool = WheelZoomTool(dimensions=["width", "height"]) plot.renderers.append(glyph_renderer) plot.tools = [pantool, wheelzoomtool] sess = session.HTMLFileSession("colorspec.html") sess.add_plot(plot) if __name__ == "__main__": sess.save() print("Wrote %s" % sess.filename) sess.view()
yaxis = LinearAxis(plot=plot, dimension=1, location="left") pantool = PanTool(dataranges=[xdr, ydr], dimensions=["width", "height"]) wheelzoomtool = WheelZoomTool(dataranges=[xdr, ydr], dimensions=("width", "height")) renderer = Glyph( data_source=source, xdata_range=xdr, ydata_range=ydr, glyph=Line(x=xname, y=yname, linecolor=linecolor), ) plot.renderers.append(renderer) plot.tools = [pantool, wheelzoomtool] return plot plot1 = make_plot(source, "x", "y1", "blue") plot2 = make_plot(source, "x", "y2", "red", xdr=plot1.x_range) plot3 = make_plot(source, "x", "y3", "green") plot4 = make_plot(source, "x", "y4", "black") grid = GridPlot(children=[[plot1, plot2], [plot3, plot4]]) sess = session.HTMLFileSession("grid.html") sess.add(grid, recursive=True) sess.plotcontext.children.append(grid) sess.save(js="absolute", css="absolute") print("Wrote %s" % sess.filename) if __name__ == "__main__": sess.view()
data_source=source, xdata_range=xdr, ydata_range=ydr, glyph=circle, ) plot = Plot(x_range=xdr, y_range=ydr, data_sources=[source], border=80) xaxis = DatetimeAxis(plot=plot, dimension=0, location="min") yaxis = LinearAxis(plot=plot, dimension=1, location="min") pantool = PanTool(dataranges=[xdr, ydr], dimensions=["width", "height"]) zoomtool = ZoomTool(dataranges=[xdr, ydr], dimensions=("width", "height")) plot.renderers.append(glyph_renderer) plot.tools = [pantool, zoomtool] FILENAME = __file__.replace(".py", ".html") sess = session.HTMLFileSession(FILENAME) sess.add(plot, glyph_renderer, source, xaxis, yaxis, xdr, ydr, pantool, zoomtool) sess.plotcontext.children.append(plot) sess.save(js="relative", css="relative", rootdir=os.path.abspath(".")) sess.dumpjson(file=__file__.replace(".py", ".json")) print "Wrote " + FILENAME try: import webbrowser webbrowser.open("file://" + os.path.abspath(FILENAME)) except: pass
radius=6, fill_color="#cc6633", line_color="#cc6633", fill_alpha=0.5), ) plot.renderers.append(circle_renderer) return plot, (line_renderer, circle_renderer, xaxis, yaxis, xgrid, ygrid) #where will this comment show up I, objsI = make_plot('I', 'xi', 'yi') II, objsII = make_plot('II', 'xii', 'yii') III, objsIII = make_plot('III', 'xiii', 'yiii') IV, objsIV = make_plot('IV', 'xiv', 'yiv') grid = GridPlot(children=[[I, II], [III, IV]], width="800px") sess = session.HTMLFileSession("anscombe.html") sess.add(lines_source, circles_source, xdr, ydr) sess.add(*(objsI + objsII + objsIII + objsIV)) sess.add(grid, I, II, III, IV) sess.plotcontext.children.append(grid) sess.save(js="relative", css="relative", rootdir=os.path.abspath(".")) if __name__ == "__main__": try: import webbrowser webbrowser.open("file://" + os.path.abspath("anscombe.html")) except: pass
ydr = DataRange1d(sources=[source.columns("y")]) line_glyph = Line(x="x", y="y", line_color="blue") renderer = Glyph( data_source = source, xdata_range = xdr, ydata_range = ydr, glyph = line_glyph ) plot = Plot(x_range=xdr, y_range=ydr, data_sources=[source], border=50) xaxis = LinearAxis(plot=plot, dimension=0, location="bottom") yaxis = LinearAxis(plot=plot, dimension=1, location="left") pantool = PanTool(dataranges = [xdr, ydr], dimensions=["width","height"]) wheelzoomtool = WheelZoomTool(dataranges=[xdr,ydr], dimensions=("width","height")) plot.renderers.append(renderer) plot.tools = [pantool, wheelzoomtool] sess = session.HTMLFileSession("line.html") sess.add(plot, recursive=True) sess.plotcontext.children.append(plot) sess.save(js="absolute", css="absolute") print("Wrote %s" % sess.filename) if __name__ == "__main__": sess.view()
circle = Circle(x="times", y="y", fill_color="red", size=5, line_color="black") glyph_renderer = Glyph( data_source=source, xdata_range=xdr, ydata_range=ydr, glyph=circle, ) plot = Plot(x_range=xdr, y_range=ydr, data_sources=[source], border=80) xaxis = DatetimeAxis(plot=plot, dimension=0, location="min") yaxis = LinearAxis(plot=plot, dimension=1, location="min") pantool = PanTool(dataranges=[xdr, ydr], dimensions=["width", "height"]) wheelzoomtool = WheelZoomTool(dataranges=[xdr, ydr], dimensions=("width", "height")) plot.renderers.append(glyph_renderer) plot.tools = [pantool, wheelzoomtool] sess = session.HTMLFileSession("dateaxis.html") sess.add(plot, recursive=True) sess.plotcontext.children.append(plot) sess.save(js="absolute", css="absolute") sess.dumpjson(file="dateaxis.json") print("Wrote %s" % sess.filename) if __name__ == "__main__": sess.view()
text_align="center", text_font_size="28pt") text_renderer = GlyphRenderer( data_source=text_source, xdata_range=xdr, ydata_range=ydr, glyph=text, ) plot.data_sources.append(text_source) plot.renderers.append(text_renderer) objs.append(text_renderer) objs.append(text_source) return plot, objs + [circle_renderer, xgrid, ygrid] sess = session.HTMLFileSession("iris_splom.html") attrs = ["petal_length", "petal_width", "sepal_width", "sepal_length"] plots = [] for y in attrs: row = [] for x in attrs: xax = (y == attrs[-1]) yax = (x == attrs[0]) text = x if (x == y) else None plot, objs = make_plot(x, y, xax, yax, text) sess.add(plot, *objs) row.append(plot) plots.append(row) grid = GridPlot(children=plots, name="iris_splom")
xgrid = Grid(plot=plot, dimension=0) ygrid = Grid(plot=plot, dimension=1) plot.renderers.append(glyph_renderer) plot.tools = [pantool, wheelzoomtool] demo_name = "line2" if len(sys.argv) > 1 and sys.argv[1] == "server": try: sess = session.PlotServerSession(serverloc="http://localhost:5006", username="******", userapikey="nokey") except requests.exceptions.ConnectionError: print( "ERROR: This example requires the plot server. Please make sure plot server is running, by executing 'bokeh-server'" ) sys.exit(1) sess.use_doc(demo_name) sess.add(plot, recursive=True) sess.plotcontext.children.append(plot) sess.plotcontext._dirty = True sess.store_all() print("Stored to document", demo_name) else: sess = session.HTMLFileSession(demo_name + ".html") sess.add(plot, recursive=True) sess.plotcontext.children.append(plot) sess.save(js="absolute", css="absolute") print("Wrote %s" % sess.filename)