如何在散景中使用 `OpenURL` 打开绝对 url?
How can I open an absolute url using `OpenURL` in bokeh?
我有以下代码,它在 (1.0, 1.0) 处绘制了一个点。我希望能够点击这个点打开浏览器到指定的url
属性指定的页面:
from bokeh.plotting import figure
from bokeh.io import curdoc
from bokeh.models import ColumnDataSource, TapTool, OpenURL
import pandas as pd
df = pd.DataFrame({"x": [1.0], "y": [1.0], "url": ["https://www.google.com"]})
datasource = ColumnDataSource(df)
fig = figure(
title='test',
plot_width=600,
plot_height=600,
tools=('pan, wheel_zoom, reset, tap')
)
p = fig.select(type=TapTool)
p.callback = OpenURL(url="@url")
fig.circle(
'x',
'y',
source=datasource,
line_alpha=0.6,
fill_alpha=0.6,
size=10
)
curdoc().add_root(fig)
然而,当我 运行 应用程序并单击该点时,一个新选项卡打开 http://localhost:5006/https%3A%2F%2Fwww.google.com
这似乎表明散景想要打开 URL 相对于龙卷风服务器.我怎样才能简单地打开绝对 URL 而不是相对 URL?
这是当前版本中的错误:
https://github.com/bokeh/bokeh/issues/11182
现在你必须降级,或者等待下一个 2.3.2 版本。
(或者您也可以使用普通的 CustomJS
并构建您自己对 window.open
的调用)
我有以下代码,它在 (1.0, 1.0) 处绘制了一个点。我希望能够点击这个点打开浏览器到指定的url
属性指定的页面:
from bokeh.plotting import figure
from bokeh.io import curdoc
from bokeh.models import ColumnDataSource, TapTool, OpenURL
import pandas as pd
df = pd.DataFrame({"x": [1.0], "y": [1.0], "url": ["https://www.google.com"]})
datasource = ColumnDataSource(df)
fig = figure(
title='test',
plot_width=600,
plot_height=600,
tools=('pan, wheel_zoom, reset, tap')
)
p = fig.select(type=TapTool)
p.callback = OpenURL(url="@url")
fig.circle(
'x',
'y',
source=datasource,
line_alpha=0.6,
fill_alpha=0.6,
size=10
)
curdoc().add_root(fig)
然而,当我 运行 应用程序并单击该点时,一个新选项卡打开 http://localhost:5006/https%3A%2F%2Fwww.google.com
这似乎表明散景想要打开 URL 相对于龙卷风服务器.我怎样才能简单地打开绝对 URL 而不是相对 URL?
这是当前版本中的错误:
https://github.com/bokeh/bokeh/issues/11182
现在你必须降级,或者等待下一个 2.3.2 版本。
(或者您也可以使用普通的 CustomJS
并构建您自己对 window.open
的调用)