- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我玩 Bokeh 已经有一段时间了,现在我想创建交互式绘图并将它们在线嵌入(例如,在 WordPress 帖子中)。
然而,即使我花了一些时间审查和测试 Bokeh 网站示例中的代码,我也很难理解 curdoc() 的确切用途。为了创建带有小部件的 Bokeh 应用程序似乎是必要的,但是从我在资源中找到的内容来看,我不太了解它。
最佳答案
一些术语是有序的。当您创建 Bokeh 图时,它由许多较小的对象组成,例如字形、范围、数据源、工具等。图本身基本上是所有这些其他对象的容器。所有这些对象,包括绘图,都称为模型。其他模型是布局之类的东西(例如 row
和 column
)以及 Bokeh 内置的小部件(例如 Slider
或 Select
)。
对于 Python 端的这些模型中的每一个,都有一个相应的 JavaScript 对象来实际实现该模型,并在浏览器中完成所有用于绘图或交互的工作。 Bokeh 的工作方式是它可以自动将一组 Python 模型转换为一堆 JSON,然后 BokehJS 可以从中重构所有相应的 JS 对象。
文档是 Bokeh 模型的集合。它是最小的“序列化单元”。也就是说,将单个 Python 模型转换为 JSON(如 Plot
)通常没有意义,因为该对象可能引用许多其他对象(如轴或字形等)。 Bokeh 文档中的模型都可以以一种有意义的方式一起转换为 JSON。
无论您是制作独立文档(例如使用 output_file
),还是在 Bokeh 服务器上创建 Bokeh 应用程序,上述所有内容都适用。对于 Bokeh 应用程序,应用程序代码本身实际上只是修改文档的秘诀。因此,每当创建 Bokeh 应用 session 时(即,每当用户打开 Bokeh 服务器上的 Bokeh 应用的 URL 时),一个新的空白 Document
为其创建,并运行应用程序代码,其中新的 Document
该 session 可用 curdoc()
.然后应用程序代码可以向该文档添加内容(例如,使用 curdoc().add_root(...)
并且一旦应用程序代码完成,“完成的”文档就会转换为 JSON 并发送到 BokehJS 以显示给用户。
最后一点要提到的是,Bokeh 服务器的主要目的是确保以这种方式创建的 Bokeh 文档与用户在浏览器中的 View 自动保持同步。如果用户滑动 slider ,则会更新 Slider
浏览器中 JS 文档中的模型,它也会自动更新 Bokeh 服务器中 Python 文档中的 python Slider 对象。应用程序可以对此做出响应,并进行其他更改(例如更新 Python 数据源),这会导致 JS 数据源也更新(从而使绘图发生更改)。这种自动双向同步为 Bokeh 服务器提供了所有复杂的交互功能。
关于bokeh - curdoc() 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40558417/
我用 bokeh.plotting.Figure.line 画了下面的图。我如何添加垂直引用线来强调 Feb/14 的一个点? 这是另一个情节。这是 bokeh.charts.Bar。我想添加水平指南
我使用 python 在 Bokeh 中创建了一个散点图。我想创建一个小部件,允许用户更改散点图中点的颜色。有没有简单的方法可以做到这一点?我找到了一个基于 JQuery 的颜色选择器小部件 ( ht
我有一个 bokeh 应用程序,我可以在其中读取各种文件(6 到 12 个)并生成 DataTable 来比较几个不同的变量。 所以我有一个生成 DataTable 的循环,将它们添加到列表中,然后最
典型的 Bokeh 散点图可能如下所示: 其中 x 和 y 限制均为 [0,1]。如何删除轴上 0 之前并延伸到 1 之外的额外空间?这样最终图的左角为坐标 (0,0),左上角和右下角分别为 (0,1
我正在尝试创建一个 Bokeh 图,它允许我通过单击复选框来切换图中线条的可见性。 我开始尝试对复选框组使用 js 回调,但不幸的是,实际上并没有为复选框组实现 js 回调。 任何人都可以提出另一种方
例如,我有 button = Button(label="0", type="success") 选择此按钮后,我想将标签更改为“1”,反之亦然。有没有简单的方法来实现这一目标? 编辑: RadioB
我团队中的一些人,包括我自己,发现在 Bokeh 散点图中使用 circle 非常令人迷惑。方法,对于图中数据的初始自动缩放拟合,我们可以为我们的数据拨入合理的大小,例如使用 plot.circle(
所以我想做的是一个带有线条和圆圈的简单图形 http://docs.bokeh.org/en/latest/docs/quickstart.html#getting-started 但带有在鼠标悬停在
考虑一个垂直堆积条形图,其中每一列都由多个条形(段)组成。是否可以在每个段上添加工具提示?目前,相同的工具提示附加到组成该列的所有段。 from bokeh.core.properties impor
In[21]: from bokeh.charts import Bar, output_file, show In[22]: dict = {'sec': {u'A': 10, u'B': 20}}
在 Bokeh 中实现树形图需要什么?类似于这个 DS 示例的东西会很好—— http://bl.ocks.org/robschmuecker/7880033 我只是想可视化一个数据结构,所以只需要平
我了解如何指定在 Bokeh 中显示的特定刻度,但我的问题是是否有一种方法可以分配特定的标签来显示与位置。例如 plot.xaxis[0].ticker=FixedTicker(ticks=[0,1]
有什么方法可以为图例添加标题,例如左侧为当前图例,右侧为带有标题的图例。这个特殊的图例被放置在情节之外,所以我不知道是否可以用文本字形来伪造它。 最佳答案 从最新版本的 Bokeh (1.2) 开始,
问题:我的 python 应用程序启动了一个 Bokeh 服务器,如本文所述: http://matthewrocklin.com/blog/work/2017/06/28/simple-bokeh-
我正在使用 Bokeh 图制作折线图,我想标记实际的点(用线穿过它们),而不是仅仅标记线本身。我怎样才能做到这一点?我浏览了文档和用户指南,但似乎找不到答案。谢谢! 最佳答案 假设您正在使用 boke
我将一个 Bokeh Figure 实例作为输入传递给另一个函数,我需要在那里修改它的源代码。 不知道该怎么做! 这就是我创建图形实例的方式: source = ColumnDataSource({'
据我所知,我可以通过设置 responsive=True 来使 Bokeh 图响应 div 的宽度。然而,我感兴趣的是让 Bokeh 图只在一定程度上做出响应。有没有一种方法可以让我设置 Bokeh
我有一个 Bokeh 服务器应用程序。我想在命令行上传递自定义选项: bokeh serve /path/to/script.py --my-option foo 这可能吗? Bokeh 会以某种方式
我有一个图,它使用来自一些原始数据的值(在 0-20 的 x/y 范围内),以及一些导致一些相当大的 x/y 值(例如 -1000 到 1000+)的最小化数据。因此,我所做的绘图需要我手动单击缩放以
在Web应用程序中,我想让用户使用bokeh的漂亮的框/套索选择工具来选择绘制图像中的感兴趣区域。我想接收选定的像素,以便在python中进行进一步的操作。 对于散点图,这类似于gallery,很容易
我是一名优秀的程序员,十分优秀!