Bokeh:鼠标移动或单击的 CustomJS 回调

2024-04-07

我想根据当前鼠标位置更新绘图数据。

我的目标是这样的交互幂函数图 http://bokeh.pydata.org/en/0.10.0/docs/user_guide/interaction.html#customjs-for-widgets,但不是从滑块中获取指数,而是将指数设为鼠标光标的当前 x 值(在绘图坐标空间中,而不是显示坐标中)。

如果无法获得 onMouseMove 回调,onClick 也可以。但是,我不想单击特定的图形(然后我可以使用 TapTool),但点击图中的任意位置就足够了。


您可以使用 HoverTool 和 CustomJS,如下面的代码示例所示。此示例绘制从光标位置到 (1,1) 点的直线。打开 JavaScript 控制台时,您可以在移动鼠标时看到 x 和 y 的值。

from bokeh.plotting import figure,show, ColumnDataSource
from bokeh.models import CustomJS, HoverTool
import numpy as np

s = ColumnDataSource(data = dict(x=[0,1],y=[0,1])) #points of the line
callback = CustomJS(args=dict(s=s), code="""
        var geometry = cb_data['geometry'];
        var x_data = geometry.x; // current mouse x position in plot coordinates
        var y_data = geometry.y; // current mouse y position in plot coordinates
        console.log("(x,y)=" + x_data+","+y_data); //monitors values in Javascript console
        var x = s.get('data')['x'];
        var y = s.get('data')['y'];
        x[0] = x_data;
        y[0] = y_data;
        s.trigger('change');
    """)
hover_tool = HoverTool(callback=callback)
p = figure(x_range=(0,1), y_range=(0,1), tools= [hover_tool,
                        "crosshair,box_zoom,wheel_zoom,pan,reset"])
p.line(x='x',y='y',source=s)
show(p)

JavaScript 控制台的输出:

...
VM615:7 (x,y)=0.37494791666666666,0.37447916666666664
VM615:7 (x,y)=0.37494791666666666,0.37114583333333334
VM615:7 (x,y)=0.37161458333333336,0.37114583333333334
VM615:7 (x,y)=0.38828125,0.37114583333333334
VM615:7 (x,y)=0.43161458333333336,0.3878125
VM615:7 (x,y)=0.7216145833333333,0.4878125
...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Bokeh:鼠标移动或单击的 CustomJS 回调 的相关文章

随机推荐

  • 打开第二个 fancybox 在另一个 fancybox 中!

    嘿 我的花式盒子遇到了麻烦 我正在一个 fancybox 中启动一个表单 一般是通过fancybox以iframe方式打开 因为它是作为其他域的小部件启动的 在此 iframe 中 我打开第二个 fancybox 来显示验证错误 所有这一切
  • 展开方案中的函数

    Goal 实施unfold仅使用两个参数的函数 论据 第一个参数是 f 它接受某种类型 I 的初始值并返回 nil 或两个元素的 cons 对 这两个元素中的第一个是某种类型 A 的列表中的下一个元素 下一个初始值又是某些类型 I 第二个参
  • 我如何编写一个 SQL 查询来检查列是否为零,它将更新它,如果不是,它将移动到下一列?

    详细地说 我目前正在构建一个应用程序 让人们创建帐户并登录 他们提供的信息已保存到我的数据库中 我的数据库仅包含一张保存用户信息的表 每一行都是一个用户 这是一张可以让您更好地了解的图片 前六列包含用户信息 但是 在我的应用程序中 用户有一
  • Ruby:尝试获取哈希数组上的枚举器时,nil:NilClass 的未定义方法“[]”

    我正在尝试循环哈希数组 当我到达获取枚举器以开始循环的位置时 出现以下错误 undefined method for nil NilClass 我的代码如下所示 def extraireAttributs attributsParam cl
  • 如何使用 vim 的 :sh 命令来获取我的 bashrc?

    每当我使用 sh 在 vi m 中启动 shell 时 它都不会获取我的 bashrc 文件 我怎样才能让它自动执行此操作 See help shell http vimdoc sourceforge net htmldoc options
  • 期间发生内部错误:“更新 Maven 依赖项”

    每当我运行 eclipse 时 我都会收到以下消息 An internal error occurred during Updating Maven Dependencies Lorg codehaus plexus archiver ja
  • 快速向 AVPlayer 添加自定义控件

    我正在尝试创建一个表格视图 以便能够播放视频 我可以使用 AVPlayer 和图层来做到这一点 我想在视频视图底部添加带有滑块的自定义播放和暂停按钮 AVPlayerController 内置有这些控件 我如何在 AVPlayer 中实现这
  • 将报告 (RDLC) 设置为横向打印和 A4

    有没有办法将 RDLC 报告设置为始终横向并始终使用 A4 而无需每次通过打印对话框手动执行此操作 我已经在这个问题上呆了几个小时了 谷歌搜索后什么也没有出现 事实上 有没有办法跳过打印对话框本身 TIA 您当然可以避免打印对话框并直接打印
  • 使用 CursorAdapter 正确实现更改 ListView 数据

    我有一个通过 CursorAdapter 填充的 ListView 我让我的用户能够更改列表中的数据 例如 用户可以将一行标记为未读 数据是消息 假设我的用户将一行标记为未读 正确的实现是否会将数据库中的行标记为已读 然后重新查询游标 正确
  • 动态创建具有不同亮度的颜色

    我有一种颜色 我只在运行时知道 我想使用这种颜色创建两种新颜色 一种非常明亮 一种不明亮 为了澄清一下 假设我的颜色是红色 我想创建 浅红色 颜色和 深红色 颜色的十六进制值 我该怎么做呢 我的代码是使用 GWT 用 Ja va 编写的 将
  • Microsoft JScript 运行时错误:“jQuery”未定义

    我是 ASP MVC 3 菜鸟 正在学习音乐商店教程http www asp net mvc tutorials mvc music store mvc music store part 5 http www asp net mvc tut
  • 将 posixlt 作为新列添加到数据框中

    我正在创建一些随机数 data lt matrix runif 10 0 1 ncol 2 dataframe lt data frame data gt dataframe X1 X2 1 0 7981783 0 13233858 2 0
  • 事务范围的持久性上下文和扩展持久性上下文有什么区别?

    事务范围的持久性上下文和扩展持久性上下文有什么区别 差异在JSR 220 http jcp org aboutJava communityprocess final jsr220 index htmlEnterprise JavaBeans
  • Kubernetes 网络插件

    我已经使用 calico 网络插件安装了 3 个节点的 Kubernetes 集群 出于某种原因 我决定完全删除 kubernetes 并使用不同的网络插件重新安装它 Flannel 一切看起来都很好 直到我尝试部署我的第一个容器 kube
  • 尝试使用 unixODBC/FreeTDS 连接到 PHP 中的 MS SQL Server 时出现 iODBC 错误

    我正在尝试从 Mac 上的 PHP 连接到远程 MS SQL Server 数据库 最终在 Ubuntu 服务器上 使用 FreeTDS 和 unixODBC 但即使我似乎已正确设置所有内容 我仍收到 iODBC 错误 并且我 我不知道如何
  • 在 iOS 3.0 上运行 iOS4 内置的应用程序,为什么一切都很大?

    我的背景和图标都很大 就像放大了 2 倍一样 有什么想法吗 检查应用程序中的图像 应该有两组图像 其中一组为双分辨率且后缀为 2x 如果只有一组并且它们看起来很大 那么开发人员很可能从未打算在不运行 iOS4 的设备上运行该应用程序 这看起
  • Angularjs - ng-model 未定义

    我正在构建一个相当复杂的指令 其中我需要访问模板中特定元素上的 ng model 该元素包含在 ng if 指令中 我有一个plunker http plnkr co edit bQSIZE6gik36UkJkvTM0 p preview下
  • 如何在android中的ble中每5秒更新一次电池电量

    在下面的编码中 我得到了一定百分比的电池电量 但我想调用通知特性 以便每 5 到 10 秒更新一次电池百分比 所以请帮助我 以下是我的设备控制活动 在此我编码如下 private final BroadcastReceiver mGattU
  • 从列表中创建字典

    所以我创建了一个这样的列表 list line strip for line in open file txt r 这是我的清单的一个片段 1 2 2 3 2 3 4 3 1 3 4 5 4 2 1 4 4 8 3 5 2 5 7 15 1
  • Bokeh:鼠标移动或单击的 CustomJS 回调

    我想根据当前鼠标位置更新绘图数据 我的目标是这样的交互幂函数图 http bokeh pydata org en 0 10 0 docs user guide interaction html customjs for widgets 但不