How do you add more x axis ticks and labels to datetime axis using Python's Bokeh?
bokeh, datetime, matplotlib, python, visualization
Solution
First, thanks for trying Bokeh! Answering to your question, right now, you are not able to specify the amounts of ticks in the plot. It is automatically calculated. I have opened an issue in our issue tracker (https://github.com/ContinuumIO/bokeh/issues/665) to work in an enhancement to answer and solve your request. Feel free to participate in the comments if you want.
Cheers.
Problem
I've been testing out Python's Bokeh, specifically the candlestick chart tools but have been unable to figure out how to add more than 5 datetime labels/ticks to my chart. Any insight would be appreciated. Here's the code: ``` from math import pi import pandas as pd import pandas.io.data as web from bokeh.plotting import * stocks = 'FB' ####################################################### date_today = time.strftime("%x") def get_px(stock, start, end): return web.get_data_yahoo(stock, start, end) x = get_px(stocks, '1/1/2013', date_today) ###################################################### ######## Function Defined ############################## def dateConvert(df): dt = df.index df['Date'] = dt df.reset_index(drop=True) return df ##### transform data for useability ##### df = dateConvert(x) df = df.reset_index(drop=True) df = df.sort_index(axis=1) cols = ['adj_close', 'close', 'date', 'high', 'low', 'open', 'volume'] df.columns = cols ewma50 = pd.ewma(df.close, span=50) ewma200 = pd.ewma(df.close, span=200) ####################################################### ##### PLOT CODE ####################################### mids = (df.open + df.close)/2 spans = abs(df.close-df.open) inc = df.close > df.open dec = df.open > df.close w = 24*60*60*1000 # half day in ms output_file("FB_candlestick.html", title="FB_candlestick.py example") figure(x_axis_type = "datetime", tools="pan,wheel_zoom,box_zoom,reset,previewsave", width=1000, name="candlestick") hold() segment(df.date, df.high, df.date, df.low, color='black') rect(df.date[inc], mids[inc], w, spans[inc], fill_color="#D5E1DD", line_color="black") rect(df.date[dec], mids[dec], w, spans[dec], fill_color="#F2583E", line_color="black") line(df.date, ewma50, color='blue', legend='ewma 50 day') line(df.date, ewma200, color='red', legend='ewma 200 day') curplot().title = "FB Candlestick" xaxis().major_label_orientation = pi/4 grid().grid_line_alpha=0.3 curplot().width=1200 show() ``` Here is the resulting image: