I know that I can do logarithmic scales with bokeh using the plotting API:
p = figure(tools="pan,box_zoom,reset,previewsave",y_axis_type="log", y_range=[0.001, 10**22], title="log axis example",x_axis_label='sections', y_axis_label='particles'
)
However, I can't figure out how to get this to apply to high level charts such as Bokeh.charts.Bar.
In general I'm having a lot of trouble grokking what to relationship is between a Chart
and a figure
. Can anyone point me to some documentation on this or explain how to modify things which are only exposed through figure and have them affect my Chart.
I am specifically going to update the documentation describing the different Bokeh APIs this week, but for now, the three Bokeh APIs in increasing order of "level":
- models interface: lowest level API, base serialization layer, must put everything together everything manually
- glyphs interface (bokeh.plotting): mid-level API, easily create plots/figures centered around visual glyphs with attributes tied to data
- charts interface (bokeh.charts): high level API for canned/schematic statistical charts, e.g. "BoxPlot" and "Histogram".
There is no particular relation between figure
and the various chart functions, except that they both produces subclasses of Plot
as output.
I am not sure it is currently possible to add a log axis to the Bar plot in "charts" interface (that would be a reasonable feature to add). However it would be simple to make a boxplot "by hand" using the middle "glyphs" interface using rect
or quad
glyphs. Here is a quick example:
from bokeh.plotting import figure, output_file, showoutput_file("bars.html")p = figure(title="log bar example", y_axis_type="log")p.quad(bottom=0, top=[10**5, 10**8, 10**3], left=[0, 2, 4], right=[1,3,5]
)show(p)