Select 散景图中的文字

Select text in Bokeh plot

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

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)

结果是

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

有什么方法可以在散景图中使用浏览器搜索功能吗?

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

目前在Boken中没有办法做到这一点,因为它渲染到一个HTML5 canvas对象,所以浏览器只看到渲染的最终结果。如果您愿意使用 Bokeh 的姊妹库 HoloViews,它同时具有 Bokeh 和 SVG 后端。当通过该 SVG 后端呈现时,您的浏览器将可以访问所有文本元素。

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

另请注意,"having all individual plot elements accessible to the browser" 和 "plotting a lot of data points" 是相互冲突的目标。 HTML5 canvas 后端非常适合绘制大量数据(使用数据着色器更是如此),部分原因是 因为 它只将最终绘图图像暴露给浏览器。如果您想向浏览器公开绘图的详细信息(例如通过 SVG 后端),如果您的绘图变得更大(更多数据)或更复杂,与 HTML5 canvas 后端。