首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Python的Bokeh向datetime轴添加更多x轴刻度和标签?

如何使用Python的Bokeh向datetime轴添加更多x轴刻度和标签?
EN

Stack Overflow用户
提问于 2014-05-28 23:04:08
回答 1查看 5.4K关注 0票数 10

我一直在测试Python的Bokeh,特别是烛台图表工具,但一直无法弄清楚如何在我的图表中添加5个以上的日期时间标签/刻度。任何洞察力都将不胜感激。代码如下:

代码语言:javascript
运行
复制
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()

以下是生成的图像:

EN

回答 1

Stack Overflow用户

发布于 2014-05-30 10:02:38

首先,感谢您尝试Bokeh!关于您的问题,现在,您无法指定图表中的刻度数。它是自动计算的。我已经在我们的问题跟踪器(https://github.com/ContinuumIO/bokeh/issues/665)中打开了一个问题,以便在增强功能中工作,以回答和解决您的请求。如果你愿意,请随时参与评论。

干杯。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23915275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档