Reputation: 149
the y axis ticks seem to be formatting numbers like 500000000 to 5.000e+8. Is there a way to control the display so that it displays as 500000000?
using python 2.7, bokeh 0.5.2
i m trying out the timeseries example at bokeh tutorials page
The tutorial plots 'Adj Close' against 'Date' but i'm plotting with 'Volume' against 'Date'
Upvotes: 12
Views: 15826
Reputation: 4626
You can also use NumeralTickFormatter as used in the toy plot below. The other possible values in place of '00' are listed here.
import pandas as pd
import numpy as np
from bokeh.plotting import figure, output_file, show
from bokeh.models import NumeralTickFormatter
df = pd.DataFrame(np.random.randint(0, 90000000000, (10,1)), columns=['my_int'])
p = figure(plot_width=700, plot_height=280, y_range=[0,100000000000])
output_file("toy_plot_with_commas")
for index, record in df.iterrows():
p.rect([index], [record['my_int']/2], 0.8, [record['my_int']], fill_color="red", line_color="black")
p.yaxis.formatter=NumeralTickFormatter(format="00")
show(p)
Upvotes: 22
Reputation: 3497
You have to add the option p.left[0].formatter.use_scientific = False
to your code. In the timeseries tutorial, it'd be:
p1 = figure(title="Stocks")
p1.line(
AAPL['Date'],
AAPL['Adj Close'],
color='#A6CEE3',
legend='AAPL',
)
p1.left[0].formatter.use_scientific = False # <---- This forces showing 500000000 instead of 5.000e+8 as you want
show(VBox(p1, p2))
Upvotes: 12