importnumpyasnpfrombokeh.ioimportcurdoc,showfrombokeh.modelsimport(BasicTicker,BasicTickFormatter,ColumnDataSource,Ellipse,HBar,Line,LinearAxis,Plot,Scatter,Text,Title)frombokeh.themesimportThemefrombokeh.transformimportdodgetheme_json={"attrs":{"Plot":{"width":400,"height":400,"background_fill_color":"#eeeeee"},"Grid":{"visible":False},"Title":{"text":"Demo of Themes"},"LinearAxis":{"axis_line_color":"#ffffff","major_tick_line_color":"#ffffff","axis_label_text_font_size":"10pt","axis_label_text_font_style":"bold",},"LineGlyph":{"line_color":"#ee33ee","line_width":2},"FillGlyph":{"fill_color":"orange"},"HatchGlyph":{"hatch_pattern":"@","hatch_alpha":0.8},"TextGlyph":{"text_color":"red","text_font_style":"bold","text_font":"Helvetica",},"Ellipse":{"fill_color":"green","line_color":"yellow","fill_alpha":0.2},}}curdoc().theme=Theme(json=theme_json)x=np.linspace(1,5,100)y=x+np.sin((x-1)*np.pi)x2=np.linspace(1.5,5.5,5)z=x2+2*np.cos((x2-1)*np.pi)source1=ColumnDataSource({"x":[1,2,3,4,5],"y":[1,2,3,4,5],"who":["a","b","c","d","e"]})source2=ColumnDataSource({"x":x,"y":y})source3=ColumnDataSource({"x":x2,"y":z})source4=ColumnDataSource({"y":[2.5],"x":[0.5]})plot=Plot(width=300,height=300)plot.title=Title(text="Themed glyphs")xaxis=LinearAxis(ticker=BasicTicker(),formatter=BasicTickFormatter())yaxis=LinearAxis(ticker=BasicTicker(),formatter=BasicTickFormatter())plot.add_layout(xaxis,"below")plot.add_layout(yaxis,"left")plot.add_glyph(source1,Scatter(x="x",y="y",marker="diamond",size=20))plot.add_glyph(source1,Text(x=dodge("x",-0.2),y=dodge("y",0.1),text="who"))plot.add_glyph(source2,Line(x="x",y="y"))plot.add_glyph(source3,Ellipse(x="x",y="y",width=0.2,height=0.3,angle=-0.7))plot.add_glyph(source4,glyph=HBar(y="y",right="x",height=1.5))show(plot)