【问题标题】:Plotting candlestick and volume candels in Bokeh在 Bokeh 中绘制烛台和体积蜡烛
【发布时间】:2021-02-28 18:00:57
【问题描述】:

我使用散景绘制了烛台。现在我想在同一张图表中绘制体积蜡烛? 我如何做到这一点。我正在从 csv 读取数据,这些数据具有开盘价、高盘价、低盘价、收盘价和成交量。

【问题讨论】:

    标签: python pandas-bokeh


    【解决方案1】:

    这是candlestick 官方文档示例的扩展。

    如果您还没有数据,请先运行此 sn-p。

    import bokeh
    bokeh.sampledata.download()
    

    如果数据可用,您可以像以前一样创建烛台。 使用 gridplot 函数,您可以将第一个图形与第二个图形连接起来。

    from math import pi
    
    import pandas as pd
    
    from bokeh.plotting import figure, output_notebook, show
    from bokeh.layouts import gridplot
    from bokeh.sampledata.stocks import MSFT
    
    output_notebook()
    
    df = pd.DataFrame(MSFT)[:50]
    df["date"] = pd.to_datetime(df["date"])
    
    inc = df.close > df.open
    dec = df.open > df.close
    w = 12*60*60*1000 # half day in ms
    
    TOOLS = "pan,wheel_zoom,box_zoom,reset,save"
    
    p1 = figure(x_axis_type="datetime", tools=TOOLS, plot_width=700, plot_height=300, title = "MSFT Candlestick with Volume")
    p1.xaxis.visible = False
    p1.xaxis.major_label_orientation = pi/4
    p1.grid.grid_line_alpha=0.3
    
    p1.segment(df.date, df.high, df.date, df.low, color="black")
    p1.vbar(df.date[inc], w, df.open[inc], df.close[inc], fill_color="#D5E1DD", line_color="black")
    p1.vbar(df.date[dec], w, df.open[dec], df.close[dec], fill_color="#F2583E", line_color="black")
    
    p2 = figure(x_axis_type="datetime", tools="", toolbar_location=None, plot_width=700, plot_height=200, x_range=p1.x_range)
    p2.xaxis.major_label_orientation = pi/4
    p2.grid.grid_line_alpha=0.3
    p2.vbar(df.date, w, df.volume, [0]*df.shape[0])
    
    show(gridplot([[p1],[p2]]))
    

    为了稍微改变一下外观,图 1 的 x 轴使用 p1.xaxis.visible = False 是不可见的,并且没有为图 2 定义标题。 要将这两个数字链接在一起,将图 1 的 x_range 传递给图二 unsing x_range=p1.x_range

    输出是这样的:

    【讨论】:

    • 如何将交易量叠加在价格图表之上,类似于 TradingView 的做法?
    • 这个post 回答你的问题了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-28
    • 1970-01-01
    • 2018-12-16
    • 1970-01-01
    • 2022-11-10
    相关资源
    最近更新 更多