I have tried to use the
rect glyph to make bar plot where the x-axis is
Factorrange and the y-axis is normal
DataRange1d. It works OK except I observe a lot of padding below the bars. On the screenshot I have a comparison of
vbar (top) and
rect using the same data. Both got
range_padding of 0.1 and
% and automatic scaling. Adjusting the value of
range_padding does not help since it seems the padding is offset from the center of the highest bar.
It is possible to have the same kind of range padding as
vbar and keeping the automatic scaling? Or is there a something I need to specify for the
rectglyph that I am missing?
I use bokeh ver 2.2.3, python 3.8.1
from bokeh.io import output_file, show, save from bokeh.plotting import figure from bokeh.layouts import column output_file("bars_vbar_vs_rect.html") fruits = ['Apples', 'Pears', 'Nectarines', 'Plums', 'Grapes', 'Strawberries'] counts = [5, 3, 4, 2, 4, 6] count_mid = [item*0.5 for item in counts] def fig(title): p = figure( x_range = fruits, plot_height = 250, title = title, toolbar_location = None, tools = "" ) p.xgrid.grid_line_color = None return p def rng_info(rng): print(rng) print(rng.bounds) print(rng.range_padding) print(rng.range_padding_units) p1 = fig("Fruit Counts - vbar glyph") p1.vbar(x = fruits, top = counts, width = 0.9) rng_info(p1.y_range) p2 = fig("Fruit Counts - rect glyph") p2.rect(x = fruits, y = count_mid, width = 0.9, height = counts) rng_info(p2.y_range) save(column(p1, p2))