Hi,
With bokeh 0.12.13
When adding a second x-axis, the tickers don’t work if the original axis is placed below the plot (default) and the second x-axis is placed above.
import bokeh.plotting as BPlotting
import bokeh.models as BModels
num_chans = 6
x = [16, 32, 64, 96, 128]
y = [10, 15, 20, 24, 25]
ticks = x
ticks_t = [i*num_chans for i in x]
spacer = 1.2
p = BPlotting.figure( x_axis_type=‘log’, x_range=(ticks[0]/spacer, ticks[-1]*spacer) )
p.line(‘x’, ‘y’, source=BPlotting.ColumnDataSource(data=dict(x=x, y=y)))
p.xgrid.ticker = BModels.FixedTicker(ticks=ticks)
p.xaxis[0].ticker = BModels.FixedTicker(ticks=ticks)
p.xaxis[0].formatter = BModels.PrintfTickFormatter(format=“%d kbps/ch”)
p.extra_x_ranges[‘total’] = BModels.Range1d(start=ticks_t[0]/spacer, end=ticks_t[-1]*spacer)
p.add_layout( BModels.LogAxis(x_range_name=‘total’), ‘above’ ) # doesn’t work
#p.add_layout( BModels.LogAxis(x_range_name=‘total’), ‘below’ ) # works as expected
p.xaxis[1].ticker = BModels.FixedTicker(ticks=ticks_t)
p.xaxis[1].formatter = BModels.PrintfTickFormatter(format=“%d Tot kbps”)
BPlotting.output_file(‘dual_x.html’)
BPlotting.save(p)
This combination (first x-axis below, second x-axis above) is the only one that misbehaves. Both above, both below, or first above and second below work as intended.
Bokeh bug? or is there something wrong in my code?
Also, browser reports warning related to my use of log-scale x-axis:
“LogTickFormatter not configured with a ticker, using default base of 10 (labels will be incorrect if ticker base is not 10)”
OK to ignore this warning? Or if it is a concern, how do I correct it?
thanks
albert.