小编use*_*037的帖子

Python,散景:如何更改日期时间轴的范围

我想使用按钮设置日期时间轴的范围。然而,命令

f.x_range = Range1d(start=start_date, end=end_date)
Run Code Online (Sandbox Code Playgroud)

不起作用。单击按钮时什么也没有发生。无论是在运行 Bokeh 服务器的终端窗口中,还是在 Chrome 网络浏览器的控制台输出中,我都没有收到任何错误。

您可以在下面找到完整的代码。我很感激任何建议。

谢谢,

朱利安

# Import libraries
from bokeh.io import curdoc
from bokeh.models import ColumnDataSource, DatetimeTickFormatter, Select, Range1d
from bokeh.models.widgets import Button
from bokeh.layouts import layout
from bokeh.plotting import figure
from datetime import datetime, timedelta
from math import radians


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

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

# Create ColumnDataSource
source = ColumnDataSource(dict(datetime=date_time,parameter=range(0,365)))

# Create Line
f.line(x='datetime',y='parameter',color='olive',line_color='black',source=source)

# Update xaxis function …
Run Code Online (Sandbox Code Playgroud)

python datetime axis range bokeh

5
推荐指数
1
解决办法
7215
查看次数

Python,Bokeh:如何关闭轴的自动更新

我遇到了Bokeh服务器流图的奇怪的自动更新行为。本质上,使用流图可以自动更新轴范围。手动更改范围时,新范围仅会保留直到再次更新数据。此时,轴范围也将更新。

可以通过使用任何平移或缩放工具来“关闭”此行为。例如,如果缩小图,则轴范围不再自动更新,并且手动更改的范围被锁定。

但是,使用“重置”工具后,旧的行为将再次被激活。

下面的代码显示了行为。启动脚本,然后单击按钮。y轴范围更改为0:50。数据更新后,范围跳回到其原始设置。但是,如果平移绘图,然后单击按钮,则范围将保持在0:50,直到您单击“重置”为止。

我现在想知道单击按钮后如何打开自动范围更新

# Import libraries
from bokeh.io import curdoc
from bokeh.models import ColumnDataSource, Range1d, LinearAxis
from bokeh.models.widgets import Button
from bokeh.layouts import layout
from bokeh.plotting import figure
from random import randrange


# Create figure
f=figure()

# Create ColumnDataSource
source = ColumnDataSource(dict(x=[],y=[]))

# Create Line
f.line(x='x',y='y',source=source)

def update_all():
    new_data=dict(x=[randrange(1,10)],y=[randrange(1,10)])
    source.stream(new_data,rollover=15)

# Update axis function
def update_axis():
    f.y_range.start = 0 
    f.y_range.end   = 50

# Create Button
button = Button(label='Set Axis')

# Update axis range on click
button.on_click(update_axis) …
Run Code Online (Sandbox Code Playgroud)

python streaming auto-update bokeh

5
推荐指数
1
解决办法
857
查看次数

Bokeh,Python:如何更新额外轴的范围

我想创建一个带有2个y轴的绘图,其范围在按钮点击时更新.该脚本将在Bokeh服务器上运行.请注意,在下面的代码中,通过更改f.y_range.start/end来更新主y轴.但是,对于辅助y轴,这是不可能的.我尝试了另外两个命令,即

f.extra_y_ranges.update({"y2Range": Range1d(start=0, end=50)})
Run Code Online (Sandbox Code Playgroud)

f.extra_y_ranges.update = {"y2Range": Range1d(start=0, end=50)}
Run Code Online (Sandbox Code Playgroud)

但它们都不起作用.

这里提出了类似的问题:散景:如何改变额外的轴可见度

# Import libraries
from bokeh.io import curdoc
from bokeh.models import ColumnDataSource, Range1d, LinearAxis
from bokeh.models.widgets import Button
from bokeh.layouts import layout
from bokeh.plotting import figure


# Create figure
f=figure()

# Create ColumnDataSource
source = ColumnDataSource(dict(x=range(0,100),y=range(0,100)))

# Create Line
f.line(x='x',y='y',source=source)
f.extra_y_ranges = {"y2Range": Range1d(start=0, end=100)}
f.add_layout(LinearAxis(y_range_name='y2Range'), 'left')

# Update axis function
def update_axis():
    f.y_range.start = 0 
    f.y_range.end   = 50

# Create Button
button = Button(label='Set Axis')

# Update …
Run Code Online (Sandbox Code Playgroud)

python multiple-axes bokeh

3
推荐指数
1
解决办法
2875
查看次数

标签 统计

bokeh ×3

python ×3

auto-update ×1

axis ×1

datetime ×1

multiple-axes ×1

range ×1

streaming ×1