在散景图中选择文本

时间:2018-03-05 14:37:55

标签: python python-3.x bokeh

我希望能够在我的散景图中搜索特定的单词。说我有一个非常简单的情节:

import numpy as np
from bokeh.plotting import figure, show, output_file

x = np.linspace(0, 4*np.pi, 100)
y = np.sin(x)

TOOLS = "pan,wheel_zoom,box_zoom,reset,save,box_select"

p1 = figure(title="Some sample title", tools=TOOLS)
p1.circle(x,y, legend="sin(x)")

output_file("legend.html", title="legend.py example")
show(p1)

结果是

enter image description here

我希望能够使用[ctrl + f]或[cmd + f]在浏览器中搜索文本。有没有办法做到这一点?我希望能够搜索标题和/或标签,因此在这种情况下,示例查询将是{sample,title,1,0.5}之一。当然这个例子是假设的,但我认为这足以说明这个问题。

有没有办法在Bokeh图中使用浏览器搜索功能?

2 个答案:

答案 0 :(得分:1)

没有办法做到这一点。散景图不是文本DOM元素,所有内容都在HTML栅格画布上呈现,浏览器仅将其视为RGBA像素的矩形区域。

答案 1 :(得分:1)

目前没有办法在Boken中执行此操作,因为它呈现为HTML5画布对象,因此浏览器只能看到渲染的最终结果。如果你愿意使用Bokeh的姊妹库HoloViews,那么它有一个Bokeh和SVG后端。通过该SVG后端渲染时,您的浏览器将可以访问所有文本元素。

为了帮助评估绘图库以确定它们是否适合您的目的,您正在寻找的基本上是SVG后端。通常,在每个库的文档中很容易找到支持的后端列表。

另请注意,“浏览器可以访问所有单独的绘图元素”和“绘制大量数据点”是相互冲突的目标。 HTML5画布后端非常适合绘制大量数据(对数据着色器更是如此)部分,因为它只会将最终的绘图图像暴露给浏览器。如果你想将你的绘图细节暴露给浏览器(例如通过SVG后端),那么与HTML5相比,如果你的图表变得更大(更多数据)或更复杂,你应该会在某些时候看到性能下降画布后端。