这里工作的例子希望你可以把它:)
from os.path import dirname, join
import pandas as pd
from bokeh.layouts import row, widgetbox
from bokeh.models import ColumnDataSource, CustomJS
from bokeh.models.widgets import DateRangeSlider,DatePicker,DateFormatter, DataTable, TableColumn, NumberFormatter
from bokeh.io import curdoc
from datetime import datetime,date
import datetime
df = pd.read_csv(join(dirname(__file__), 'test.csv'))
df['dat'] = pd.to_datetime(df['date'])
source = ColumnDataSource(data=dict())
def update():
current = df[(df['dat'] >= pd.to_datetime(slider.value[0])) & (df['dat'] <= pd.to_datetime(slider.value[1]))]
source.data = {
'opens' : current.open,
'dates' : current.date,
}
slider = DateRangeSlider(title="Date Range: ", start=date(2010, 1, 1), end=date.today(), value=(date(2017, 9, 7),date.today()), step=1)
slider.on_change('value', lambda attr, old, new: update())
columns = [
TableColumn(field="dates", title="Date" ,formatter=DateFormatter()),
TableColumn(field="opens", title="open"),
data_table = DataTable(source=source, columns=columns, width=800)
controls = widgetbox(slider)
table = widgetbox(data_table)
curdoc().add_root(row(controls, table))
update()
这里是使用背景虚化的服务filename.py的的test.csv文件
date,open
951868800000,102
951955200000,100.5
952041600000,107.25
952300800000,109.94
952387200000,106
952473600000,103
952560000000,106.5
952646400000,107.62
952905600000,104
952992000000,107.75
953078400000,107.5
953164800000,109
953251200000,108.25
953510400000,110
953596800000,112.81
953683200000,114.5
953769600000,115.87
953856000000,115.37
954115200000,125
954201600000,125.75
954288000000,122.31
954374400000,118.87
954460800000,122.62
954720000000,120
954806400000,121.5
954892800000,120.5
954979200000,123.5
955065600000,123.5
955324800000,124.75
955411200000,121.62
955497600000,119.62
955584000000,112.5
955670400000,109.81
955929600000,103.87
956016000000,112.25
运行代码数据
当我从0到s_val时,你只是单独替换每个y [i],所以没有任何变化。 – Seb
@Seb,任何想法如何实现它.. – MoChen
在你的文章中,你说“我想改变我的Y值基于滑块输入。”,你到底想要你的Y值改变? – Seb