【问题标题】:Changing Axis Range with Datepicker使用 Datepicker 更改轴范围
【发布时间】:2018-02-22 21:33:26
【问题描述】:

我在 x 轴上有一个带有日期时间值的图,并希望使用 datepicker 小部件更改范围。但是“cb_obj.value”有一个问题,不能直接用于 f.x_range.start 。 我找到了一个类似的question,已经解决了。但是,我仍然很难从回调对象调整/转换我的值,特别是因为这必须在 Java 中完成。或者,我错了吗?

import numpy as np
from bokeh.models import CustomJS, DatePicker, TextInput, ColumnDataSource
from bokeh.layouts import row, layout
from bokeh.plotting import output_file, show, figure
from datetime import datetime, timedelta

output_file("DatePicker.html")

# Figure
f=figure(x_axis_type='datetime')

# Datetime
date_time = [datetime(2017,1,1) + timedelta(days=x) for x in range(0,365)]

# ColumnDataSource
source = ColumnDataSource(dict(datetime=date_time, parameter=np.random.rand(365)))

# Line for plot
f.line(x='datetime',y='parameter',line_color='black',source=source)

# Callback
callbackPlot= CustomJS(args=dict(f=f), code="""
    var a = cb_obj.value;
    f.x_range.start = a;
""")

# Datepicker
DatepickerPlot = DatePicker(
    title="Start:", name="StartDate",  value=date_time[0])
DatepickerPlot.js_on_change('value', callbackPlot)

# Show 
show(layout(row(DatepickerPlot, f)))

除此之外,是否还有其他选项可以在不使用 CustomJS/Java 的情况下在 Bokeh 中制作带有回调的独立 HTML 文件?

【问题讨论】:

    标签: java python datepicker bokeh


    【解决方案1】:

    cb_obj.value是字符串,f.x_range.start需要数字,改一下

    f.x_range.start = a;
    

    f.x_range.start = Date.parse(a);
    

    【讨论】:

      猜你喜欢
      • 2018-03-19
      • 1970-01-01
      • 1970-01-01
      • 2015-11-29
      • 2021-10-29
      • 2017-08-02
      • 2015-09-14
      • 1970-01-01
      • 2016-02-26
      相关资源
      最近更新 更多