Python 如何在Bokeh图表上添加1W、1M、MTD、1Q、1H、1Y、YTD范围按钮

Python 如何在Bokeh图表上添加1W、1M、MTD、1Q、1H、1Y、YTD范围按钮,python,bokeh,candlestick-chart,Python,Bokeh,Candlestick Chart,我试图在博克图表上获得1W、1M、MTD、1Q、1H、1Y、YTD按钮 我遇到了一个情节如下: c_candlestick.update_xaxes( title_text='日期', RangeSloider_visible=真, 范围选择器=dict( 按钮=列表([ dict(计数=1,标签=1M,步长=month,步长=backward), dict(计数=6,标签=6M,步长=month,步长=backward), dict(计数=1,标签=YTD,步骤=year,步骤=todate)

我试图在博克图表上获得1W、1M、MTD、1Q、1H、1Y、YTD按钮

我遇到了一个情节如下:

c_candlestick.update_xaxes(
title_text='日期',
RangeSloider_visible=真,
范围选择器=dict(
按钮=列表([
dict(计数=1,标签=1M,步长=month,步长=backward),
dict(计数=6,标签=6M,步长=month,步长=backward),
dict(计数=1,标签=YTD,步骤=year,步骤=todate),
dict(计数=1,标签=1Y,步长=year,步长=backward),
dict(步骤='全部')])

我想在谷歌Colab的Bokeh做同样的事情


到目前为止,我掌握的代码是:

将熊猫作为pd导入
将numpy作为np导入
从bokeh.plotting导入图形,输出\ U笔记本,显示
从bokeh.models导入线性轴、范围1D、段、图例
从bokeh.models.formatters导入DigitalTickFormatter、DatetimeTickFormatter
从bokeh.paletes导入类别20
输出_笔记本()
def初始图表(名称):
#工具选择:
TOOLS=“平移、xwheel\u缩放、框缩放、十字线、撤消、重做、重置、保存”
p=图形(x轴类型=“日期时间”,工具=工具,
标题(名称)
p、 添加布局(图例(单击“隐藏”,方向为水平,间距为20),“下方”)
p、 调整大小\u模式='scale\u both'
返回p
def初始价格和体积图表(p,df):
红色=类别20[7][6]
绿色=类别20[5][4]
inc=测向关闭>测向打开
dec=测向打开>测向关闭
w=12*60*60*1000#半天(毫秒)
p、 x_范围=范围1d(测向索引[0],测向索引[-1])
p、 xaxis[0]。格式化程序=DatetimeTickFormatter(月=“%b%Y”,天=“%d%b%Y”)
p、 xaxis.axis_标签='Date'
p、 xaxis.major_标签_方向=3.1415/4
p、 xaxis.ticker.desired_num_ticks=40
#左y轴
low,high=df.low.min(),df.high.max()
p、 y_范围=范围1D(低*0.9,高*1.1)
p、 yaxis.axis_标签='Price'
p、 yaxis[0]。格式化程序=数字格式化程序(format=“0,0.00”)
p、 分段(df.index,df.High,df.index,df.Low,color=GREEN,legend_label='Candlestick')
p、 vbar(方向索引[inc]、w、方向打开[inc]、方向关闭[inc],
填充颜色=绿色,线条颜色=绿色,图例标签=‘烛台’)
p、 vbar(方向索引[dec],w,方向打开[dec],方向关闭[dec],
填充颜色=红色,线条颜色=红色,图例标签=‘烛台’)
#右y轴
p、 额外的_y_ranges.update({'two':Range1d(0,1.1*df.Volume.max())})
p、 添加布局(线性轴(y轴范围,轴标签,卷),右)
p、 yaxis[1]。格式化程序=数字格式化程序(format=“0a”)
p、 vbar(测向索引[inc],w,测向卷[inc],[0]*inc.sum(),alpha=0.5,level='underlay',
填充颜色=绿色,线条颜色=绿色,
图例\u标签='Volume',y\u范围\u名称='two')
p、 vbar(方向索引[dec],w,方向体积[dec],[0]*dec.sum(),alpha=0.5,level='underlay',
填充颜色=红色,线条颜色=红色,
图例\u标签='Volume',y\u范围\u名称='two')
返回p