如何动态更改散景图线段线宽
How to change Bokeh figure segment line width dynamically
我有一个包含片段的图形:
p = figure(height=500, tools="pan,wheel_zoom,box_zoom,reset", x_axis_type='datetime', y_axis_location="right")
high_low_segment = p.segment(x0='time', y0='low', x1='time', y1='high', line_width=1, color='black', source=source)
(这是来自OHLC example)
我想知道如何动态更改片段的 line_width - 即当 x 比例变化时(捕获 RangesUpdate
事件) - 以相应地缩放到缩放级别。
我是散景的新手,所以我不确定是否可以直接在 Python 中使用,如果我必须连接一些 JS,或者这种方式是不可能的。
也许我应该完全重写我的数字或删除该部分并添加一个新的?
环境:
- 散景 2.4.0
- python 3.9.7
事实上,分段是实现可缩放大小矩形的错误选择。
使用具有 data
高度和宽度单位的 Rect
glyph 开箱即用。
p.rect(x='time',
y='high_low_y',
fill_color='black',
height='high_low_height',
width=20000,
line_width=0,
angle=0,
height_units='data',
width_units='data',
source=source
)
p.rect(x='time',
y='open_close_y',
fill_color='open_close_color',
height='open_close_height',
width=60000,
line_width=0,
line_color='black',
angle=0,
height_units='data',
width_units='data',
source=source
)
通过 js_on_change 或 on_change 使用一些小部件。
例如:滑块
slider = Slider(start=0, end=10, value=1, step=1, title="line width")
spinner.js_link('value', high_low_segment.glyph, 'line_width')
或 on_change
def functionname(attr, old, new):
high_low_segment.glyph.line_width = slider.value
slider = Slider(start=0, end=10, value=1, step=1, title="line width")
spinner.on_change('value', functionname)
我有一个包含片段的图形:
p = figure(height=500, tools="pan,wheel_zoom,box_zoom,reset", x_axis_type='datetime', y_axis_location="right")
high_low_segment = p.segment(x0='time', y0='low', x1='time', y1='high', line_width=1, color='black', source=source)
(这是来自OHLC example)
我想知道如何动态更改片段的 line_width - 即当 x 比例变化时(捕获 RangesUpdate
事件) - 以相应地缩放到缩放级别。
我是散景的新手,所以我不确定是否可以直接在 Python 中使用,如果我必须连接一些 JS,或者这种方式是不可能的。 也许我应该完全重写我的数字或删除该部分并添加一个新的?
环境:
- 散景 2.4.0
- python 3.9.7
事实上,分段是实现可缩放大小矩形的错误选择。
使用具有 data
高度和宽度单位的 Rect
glyph 开箱即用。
p.rect(x='time',
y='high_low_y',
fill_color='black',
height='high_low_height',
width=20000,
line_width=0,
angle=0,
height_units='data',
width_units='data',
source=source
)
p.rect(x='time',
y='open_close_y',
fill_color='open_close_color',
height='open_close_height',
width=60000,
line_width=0,
line_color='black',
angle=0,
height_units='data',
width_units='data',
source=source
)
通过 js_on_change 或 on_change 使用一些小部件。 例如:滑块
slider = Slider(start=0, end=10, value=1, step=1, title="line width")
spinner.js_link('value', high_low_segment.glyph, 'line_width')
或 on_change
def functionname(attr, old, new):
high_low_segment.glyph.line_width = slider.value
slider = Slider(start=0, end=10, value=1, step=1, title="line width")
spinner.on_change('value', functionname)