散景,仅在单个轴上缩放,相应地调整另一个轴



如何使散景仅在一个轴上使用缩放并自动缩放对象,以便它们完全占用给定的空间并在可缩放轴平行线的极端点上添加一些填充,同时使空白空间超出范围?

换句话说(或者确切地说是"疯狂技能"(: 示例图。

这最广泛用于股票绘图,因此请考虑我想使用散景复制 https://www.tradingview.com/chart/?symbol=FX:XAUUSD 的缩放行为。 提前谢谢你。

仅使用"xwheel_zoom"工具缩放 X 轴:

from bokeh.plotting import figure
fig = figure(tools='xwheel_zoom', active_scroll='xwheel_zoom')

通过在第一个轴更改时调用自定义 JavaScript 事件来自动缩放另一个 (Y( 轴。在这种情况下,您将扫描可见数据并修改轴范围。就像下面的要点示例一样:https://gist.github.com/kernc/719918ada11298168efd956afc1a04a8

截至 Bokeh0.12.7,没有任何内置功能可以做到这一点。自动量程始终针对整个数据集。没有选项可以仅对根据某个其他维度的范围当前可见的数据子集进行自动量程。

扩展散景是可能的,所以可以想象你可以编写一个DataRange1d的自定义扩展子类,但这不是一件完全微不足道的事情:

http://docs.bokeh.org/en/latest/docs/user_guide/extensions.html

但是,这似乎是一个合理的功能请求,因此我鼓励您提交 GitHub 问题以讨论将此功能直接添加到核心库中:

https://github.com/bokeh/bokeh/issues

FWIW Bokeh现在ywheel_zoom以及引入的许多其他选项:https://github.com/bokeh/bokeh/pull/4841/files#diff-b846337d25cde71b26a5158abd54a002de416da396954ec636ff006a6d80da81R222

最新更新