访问全息视图中的bokeh(图)参数

2024-04-20 04:08:15 发布

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

最初,为了使用holoviews的decimate操作,我坚持使用holoviews,但是我在调整holoviews中的bokeh输出时遇到了一些限制:

要在纯bokeh中实现“链接平移”,需要在bokeh中共享e.g.x_range参数bokeh.plotting.figure公司.图形对象

# create a new plot 
s1 = figure(plot_width=250, plot_height=250)

# create a new plot and share only one range 
s2 = figure(plot_width=250, plot_height=250, x_range=s1.x_range)

完整示例: https://docs.bokeh.org/en/latest/docs/user_guide/interaction/linking.html#userguide-interaction-linking

我如何访问和操作全息视图创建的bokeh图形?

我想直接在holoviews中实现链接平移。 原因是,为了在不同范围的图中保持交互性。在

我知道,holoviews选项axiswise=True可以完美地自动调整不同的范围,但似乎不能仅为单个轴(例如y轴)定义,同时保持x轴上的链接平移交互。在

我怎样才能做到这一点?非常感谢你!在


Tags: 图形docsnewplot链接createbokehrange
1条回答
网友
1楼 · 发布于 2024-04-20 04:08:15

这个问题有几种不同的答案。让我们从最直接的解决方法开始吧,你要做的是链接一个轴而不是另一个轴。这最容易通过给维度起不同的名称来实现,例如,只需将其中一个维度命名为默认的“x”或“y”:

hv.Curve([1, 2, 3], 'x', 'y') + hv.Curve([1, 2, 3], 'x', 'y2')

准确地说,在这种情况下,轴的“标识”由尺寸名称、标签和单位决定。这使得表示相同数量的轴很容易共享。如果您真的需要,您甚至可以给它们不同的名称/标签/单位,然后用xlabel/ylabel选项覆盖显示的标签。在

现在要回答你的答案的更字面的版本,HoloViews在后台生成bokeh模型,然后将它们呈现到屏幕上。可以定义钩子,这些钩子可以在渲染bokeh绘图表示法之前对其进行修改。我当然不会推荐这种方法,但您可以实现与之前的解决方案相同的效果,如:

^{pr2}$

最后,我们可以使链接更明确,如果你喜欢这种方法,我建议你提交一个问题,要求它包括在内。在HoloViews 1.11中引入了所谓的Links,我们可以很容易地添加一个RangeLink,如下所示:

^{3}$

相关问题 更多 >