包含制表符时,散景显示为空白



我正在用散景制作一个OHLC图示例,这是我最初开始工作的。现在我正在尝试在单独的列中使用 DateRangeSlider 设置它,但我无法显示任何内容。

我知道当前的代码实际上并没有连接日期范围滑块来更改日期,这很好。我只是希望它正确显示。

我觉得问题出现在代码的选项卡部分。

我一直在编辑代码,我得到的当前错误代码是:

运行应用程序处理程序时出错 :期望列表(实例(面板((的一个元素,得到 seq 带有无效项目 [图(id='1005', ...(]

代码如下:

#import libraries
import pandas as pd
import numpy as np
from bokeh.io import curdoc
from bokeh.plotting import show,figure, output_file
from bokeh.models import HoverTool, ColumnDataSource
from bokeh.models.widgets import DateRangeSlider, Tabs, Panel
from bokeh.layouts import layout, column, row, WidgetBox
df = pd.read_csv("adbe.csv", parse_dates = ["Date"])
def OHLC_tab(df):
    #output_file("stockOHLChistory.html")
    start_date = df["Date"].min()
    end_date = df["Date"].max()
    #add to the DF
    df["Change"] = (df["Close"] / df["Open"] - 1) * 100
    df["Change"] = df["Change"].apply(lambda x: str(round(x,2)) + "%")
    #convert dates to sequence
    seqs = np.arange(df.shape[0])
    df["seq"] = pd.Series(seqs)
    #convert dates for hover
    df["Date"] = pd.to_datetime(df["Date"])
    df["displaydate"] = df["Date"].apply(lambda x: x.strftime('%m/%d'))
    def make_plot():
        active_dates = df.Date.between(start_date, end_date)
        inc = df.Close > df.Open
        dec = df.Open > df.Close
        print(list(df.columns))
        sourceInc=ColumnDataSource(df[inc])
        sourceDec=ColumnDataSource(df[dec])
        w = 18 * 60 * 60 * 1000
        p = figure(plot_height = 500, plot_width = 600, 
                   x_axis_type = "datetime", 
                   sizing_mode = 'scale_both')
        hover = HoverTool(names = ['upbars', 'downbars'],
                          tooltips = [("Date: ", "@displaydate"),
                                     ("Open: ", "@Open"),
                                     ("Close: ", "@Close"),
                                     ("Change: ","@Change")])
        p.add_tools(hover)
        p.vbar('Date', w, 'Open', 'Close', source = sourceInc, 
               fill_color = "green", line_color = "green", name = 'upbars')
        p.vbar('Date', w, 'Open', 'Close', source = sourceDec, 
               fill_color = "red", line_color = "red", name = 'downbars')
        p.segment(df.Date[inc], df.High[inc], df.Date[inc], 
                  df.Low[inc], color = "green")
        p.segment(df.Date[dec], df.High[dec], df.Date[dec], 
                  df.Low[dec], color = "red")
        p = style(p)
        print(p.title.text)
        return p
    def style(p):
        p.title.text = "Stock History"
        p.xaxis.axis_label = "Date"
        p.yaxis.axis_label = "Price"
        return p
    date_select = DateRangeSlider(start = start_date, end = end_date, step = 1,
                                  title = "Date Range", width = 250)
    p = make_plot()
    p = style(p)
    controls = WidgetBox(date_select)
    layout = row(controls, p)
    tab1 = Panel(child = layout, title = "History")
    return p
tab = OHLC_tab(df)
tabs = Tabs(tabs = [tab])
curdoc().title = "Does this work?"
curdoc().add_root(tabs)
print(curdoc().title)

您的OHLC_tab函数返回的是绘图,而不是您可能想要的选项卡的Panel

def OHLC_tab(df):
    ...
    return tab1

最新更新