Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 波基流轴_Python_Bokeh - Fatal编程技术网

Python 波基流轴

Python 波基流轴,python,bokeh,Python,Bokeh,当我在Bokeh服务器上使用Bokeh Stream时,我从一个空的ColumnDataSource开始-但是,这会带来一个问题,因为图形生成时没有轴标签,尽管绘图中的数据正在更新,但在绘图时轴保持不变。看来解决这个问题的办法是有一个固定的x_范围和y_范围-然而,因为它不断地流,我不希望它是固定的 我想解决办法是更新范围,但我不知道如何做到这一点 我目前的代码如下: source_ios = ColumnDataSource({'Date': [], 'Vol': []}) source_gp

当我在Bokeh服务器上使用Bokeh Stream时,我从一个空的ColumnDataSource开始-但是,这会带来一个问题,因为图形生成时没有轴标签,尽管绘图中的数据正在更新,但在绘图时轴保持不变。看来解决这个问题的办法是有一个固定的x_范围和y_范围-然而,因为它不断地流,我不希望它是固定的

我想解决办法是更新范围,但我不知道如何做到这一点

我目前的代码如下:

source_ios = ColumnDataSource({'Date': [], 'Vol': []})
source_gp = ColumnDataSource({'Date': [], 'Vol': []})

ios = figure(toolbar_location=None, x_axis_type='datetime',plot_width=800, plot_height=250)

ios.circle(x='Date',y='Vol', fill_color="pink",line_color=None, fill_alpha=0.05, size=20, source=source_ios)

def update():
    MAU_ios = pd.read_csv('myapp/data/pplus_ios_data.csv')
    MAU_ios['Date'] = pd.to_datetime(MAU_ios['Date'])
    MAU_ios['Vol'] = MAU_ios.Vol.astype(int)

    new_MAU_ios = {'Date':MAU_ios['Date'], 'Vol':MAU_ios['Vol']}
    source_ios.stream(new_MAU_ios)

curdoc().add_periodic_callback(update, 8000)

curdoc().add_root(ios
图表如下所示,可以看出轴不会自动更新


如果您事先没有创建axis+标签,则需要添加一些带有
min\u边框的填充物
figure()
properties

from bokeh.io import curdoc
from bokeh.plotting import figure
from bokeh.models import ColumnDataSource
from random import random

source_ios = ColumnDataSource({'Date': [], 'Vol': []})

ios = figure(toolbar_location=None,plot_width=800, plot_height=250)
ios.xaxis.axis_label = 'Date'
ios.yaxis.axis_label = 'Vol'
ios.min_border_left = 50
ios.min_border_bottom = 50

ios.circle(x='Date',y='Vol',color="pink", size=20, source=source_ios)

i=0
def update():
    global i
    new_MAU_ios = {'Date':range(i,i+10),'Vol':[random() for j in range(10)]}
    source_ios.stream(new_MAU_ios)
    i+=10

curdoc().add_periodic_callback(update, 8000)

curdoc().add_root(ios)