2014-09-04 8 views
3

Цифры оси y, похоже, являются номерами форматирования, такими как 500000000 до 5.000e + 8. Есть ли способ управлять дисплеем так, чтобы он отображался как 500000000?python bokeh plot как отформатировать дисплей оси

с помощью Python 2.7, боке 0.5.2

им попробовать пример TimeSeries на боке учебники странице

В учебнике земля «Adj Закрыть» против «Даты», но я уверен, черчение с «Томом» против «Дата»

+0

Вот ссылка на код .. http://bokeh.pydata.org/tutorial/topical.html#timeseries я м используя Volume вместо Adj Close – Amit

+0

обошел мою проблему путем форматирования перед помещением данных в ColumnDataSource. таким образом, можно управлять форматом текста наведения. Но я все еще не смог отформатировать дисплеи оси. – Amit

ответ

5

Вы должны добавить свой код p.left[0].formatter.use_scientific = False. В учебнике таймсерии, было бы:

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

Вы также можете использовать NumeralTickFormatter, используемый в игрушечном участке ниже. Другие возможные значения в месте «00», перечислены в http://bokeh.pydata.org/en/latest/docs/reference/models.html

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) 

 Смежные вопросы

  • Нет связанных вопросов^_^