Amit
Amit

Reputation: 149

python bokeh plot how to format axis display

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

Answers (2)

sharon
sharon

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

Marc Garcia
Marc Garcia

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

Related Questions