python bokeh plot how to format axis display

最后都变了- 提交于 2019-12-06 00:09:40

问题


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'


回答1:


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)



回答2:


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))


来源:https://stackoverflow.com/questions/25657448/python-bokeh-plot-how-to-format-axis-display

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!