Bokeh:在轴刻度标签中使用HTML?

2024-04-27 16:19:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我对波基很陌生。我试图在我的一个绘图上有可点击的链接,更精确地说是在x轴上(在滴答上)。

我的问题是:是否可以在勾选标签中使用HTML代码,例如用超文本链接替换文本?

以Bokeh文档中的一个示例为例,下面是我天真的尝试(替换其中一个标签,从^{{cd1>}到^{cd2>}):

from bokeh.io import show, output_file
from bokeh.models import ColumnDataSource
from bokeh.palettes import Spectral6
from bokeh.plotting import figure

output_file("bar_colors.html")

fruits = ['<a>Apples</a>', 'Pears', 'Nectarines', 'Plums', 'Grapes', 'Strawberries']
counts = [5, 3, 4, 2, 4, 6]

source = ColumnDataSource(data=dict(fruits=fruits, counts=counts, color=Spectral6))

p = figure(x_range=fruits, y_range=(0,9), plot_height=350, title="Fruit Counts",
           toolbar_location=None, tools="")

p.vbar(x='fruits', top='counts', width=0.9, color='color', legend="fruits", source=source)

p.xgrid.grid_line_color = None
p.legend.orientation = "horizontal"
p.legend.location = "top_center"

show(p)

正如您所猜测的,它会在我已经^{cd2>}以文本形式写入的打印中产生结果。。。

我应该如何继续有一个适当的超文本链接?


Tags: from文本importsourceoutput链接showbokeh
1条回答
网友
1楼 · 发布于 2024-04-27 16:19:25

简单的回答是不行,Bokeh是在HTML画布上呈现的,这是一个低级的位图绘制区域。HTML画布不直接支持其上的任何DOM类型元素(例如超链接)。在

可能有几种方法可以解决这个问题:

  • Bokeh is extensible您可以创建一个以完全不同的方式呈现记号的自定义扩展,即绝对地将实际div定位在画布顶部,而不是发出画布绘图命令。这需要大量的簿记和精确的定位。我不会把它描述为琐碎的,并且可能需要一些来回的迭代才能工作,所以public mailing list将是讨论这种可能性的更好的地方。

  • 有一个相关的开放问题^{}: Add support for click events on categorical axes。如果实现了这一点,它将提供类似的功能(但没有实际的超链接)。这个想法有可能扩展到包括任何记号标签,而不仅仅是分类标签。最好在GitHub链接中提供关于这个潜在特性的反馈。

相关问题 更多 >