- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试创建一个绘制多个时间序列的 Bokeh 应用程序,并允许用户使用 CheckboxButtonGroup
小部件选择时间序列的一个子集。我想从 python 更改显示的图形,而不是试图在 javascript 端隐藏/取消隐藏行。我试图通过添加多行并从回调函数更改其数据源中的值来做到这一点。当我更改时间序列的内容或删除时间序列时,这工作正常,但一旦我尝试将时间序列添加到多行,我就会在 javascript 端(chrome控制台打印 Bokeh: Error handling message
).
具体来说,我有一个 pandas 数据框,其中有一个 data
列,由存储桶名称和时间戳索引:
data = pandas.DataFrame(...)
buckets = data.index.levels[0]
timestamps = data.index.levels[1]
我有一个多线图和一个控件:
plot = bokeh.plotting.Figure(x_axis_type = "datetime")
multiline = plot.multi_line(xs = [], ys = [])
bucketsControl = bokeh.models.widgets.CheckboxButtonGroup(labels = list(buckets))
我有一个更新数据源并由控件触发的回调函数:
def update(value):
xs = []
ys = []
for bucketIndex in bucketsControl.active:
bucketName = bucketsControl.labels[bucketIndex]
bucketData = data.loc[bucketName]
series = bucketData["data"]
xs.append(series.index.values)
ys.append(series.values)
multiline.data_source.data["xs"] = xs
multiline.data_source.data["ys"] = ys
bucketsControl.on_click(update)
我不确定是什么导致了这里的问题,但是当我尝试添加另一个时间序列时,我查看了 Bokeh 服务器和网络浏览器之间的网络套接字流量,并且我看到它导致两次 ModelChanged
更新:第一个将另一个列表添加到 xs
,第二个将一个列表添加到 ys
。我怀疑 BokehJS 客户端无法处理第一次更新,其中 x 系列比 y 系列多一个。
有没有办法让这个多行更新工作?或者,是否有另一种方法可以从 python 更新绘图的结构(例如,向绘图添加一个全新的行,而不是更改现有字形的数据源)?
最佳答案
因为你更新了两次数据源。您只能通过以下方式更新一次:
data = dict(xs=xs, ys=ys)
multiline.data_source.data = data
关于javascript - 如何更新多行字形的 ColumnDataSource 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34780830/
我正在尝试使用 flask 和 bokeh 构建一个网络应用程序,用户可以在其中手动对数据进行分类。现在,UI 使用自定义 javascript 回调来直观地呈现更改,但我不确定如何使用 javasc
我想根据用户从下拉菜单中选择的内容更改简单线图的数据源。 我有 2 个数据框,分别是我自己和男朋友的体重和年龄。 my_weight = [60,65,70] my_age = [21,22,25]
我正在尝试创建一个绘制多个时间序列的 Bokeh 应用程序,并允许用户使用 CheckboxButtonGroup 小部件选择时间序列的一个子集。我想从 python 更改显示的图形,而不是试图在 j
我有两个相同单位的变量,我想用 Bokeh 在同一个 x 轴上绘制。似乎 plot.multi_line 是正确的工具,但我无法从文档中找到正确的语法。我尝试了什么(从文档中收集): # df is
我是 Bokeh 的新手,并试图弄清楚 columnDataSource 的作用。它出现在很多地方,但我不确定它的目的和它是如何工作的。有人可以照亮吗?抱歉,如果这是一个愚蠢的问题... 最佳答案 C
我的问题与修改 this 有关来自 Bokeh Gallery 的示例。 我有一个矩阵 m 或原始数据,其中每一行对应于转换空间中的一对 x、y 坐标(请参阅代码的#MockData 部分)。 x,y
我想使用 ColumnDataSource 设置 Bokeh 线图( Bokeh 版本 0.12.5)的颜色。但是,对于线图,不会绘制任何内容。另一方面,如果我使用圆形渲染器,一切都会按预期进行。下面
我正在尝试使用 Bokeh 在交互式圆图中显示我的集群。我设法显示了绘图本身,但图表上的所有规范都是蓝色的。我想在 4 个集群中显示它们,因为这是一个集群分析。 这是在没有实现颜色的情况下工作的代码:
我试图避免使用 ColumnDataSource,而是将 pandas 数据框列直接传递给 Bokeh 图。 但很快我就不得不实现一个 HoverTool,它需要将数据保存在 ColumnDataSo
我一直在尝试选择要在简单的 Bokeh 线图中绘制的行。所需的结果是一个简单的线图,其中 x 轴为 Date,y 轴为 Value。使用 2 个选择小部件,我想选择 Country 和 Type。 非
我的回调有问题,我一切正常,除了图表没有更新的部分,即使当我更改 slider 时数组已更新。 import numpy as np from bokeh.io import curdoc from
我正在使用 jupyter 中的嵌入式 Bokeh 应用程序来标记时间序列的部分。假设我们必须使用以下示例数据框: Time Y Label
我在 Bokeh 中使用 pandas 数据框作为 ColumnDataSource 来绘制散点图,其中每个气泡代表一个国家/地区。在我的数据框中,有一列名为“区域”的列,用于通知每个国家/地区的区域
尝试将以下内容读入 vbar Bokeh 图表,但它不会渲染空白图形之外的任何内容。 Index | Sub Call Type | Calls |Total AHT 0 | S
我正在尝试绘制可追溯到 1998 年的大量数据。 我的代码似乎工作正常,但运行时抛出错误消息“BokehUserWarning:ColumnDataSource 的列必须具有相同的长度” 这是我的代码
Dataframes 自然带有一个索引,即我们可以将它们视为的那些行标题集。当我在 Bokeh 中构建 ColumnDataSource 以捕获该数据框中的信息以在 HoverTool 中进行绘图和注
我对 Bokeh 中的 HoverTool 有点恼火。我有一个具有多个数据“列”的 ColumnDataSource,我使用各个列在图表上绘制线条。当我将鼠标悬停在一条线上的一个点上时,我想显示该线上
我想向 ColumDataSource() 添加工具提示,以捕捉到最近的数据点。但是当使用 @x, @y 时它显示 ???而不是最接近的值。使用 $x, $y 效果很好。 下面提供了一个示例: fro
我有一个由 ColumnDataSource 驱动的 hbar 图,其中 y 轴上有分类标签,两个数字 x 轴上有分类标签。为了在 y 轴上每个标签有两组条形,我构造了两个范围 (Things1=df
我正在尝试向我的 Bokeh 图添加悬停工具提示。工具提示出现,但我试图显示的面积值显示为“???”。我正在使用 ColumnDataSource 来设置绘图源数据,并且 area 是该数据源中的有效
我是一名优秀的程序员,十分优秀!