时间:2021-05-23
mplcursors包也可以为matplotlib提供交互式的数据光标(弹出式注释框),它的灵感来源于mpldatacursor包,可以认为是基于mpldatacursor包的二次开发。
相对于mpldatacursor包,mplcursors包最大的特点就是提供了一些相对底层的API,这样功能实现更加灵活。
mplcursors包的基本应用方法与mpldatacursor包类似,直接应用cursor函数即可。
mpldatacursor包中自定义功能主要通过向datacursor函数传递实参实现。
mplcursors包中的cursor函数对标mpldatacursor包中的datacursor函数,但是在参数上发生了变化,保留了artists、hover、bindings、multiple、highlight等类似参数。
mplcursors包增加Selection对象(底层为namedtuple)表示选择的数据元素的属性。
当选中某个数据点时,可以通过添加(add)或删除(remove)事件触发、注册回调函数实现功能,回调函数只有一个参数,及选择的数据点。
在注册回调函数时,mplcursors包支持使用装饰器。
下面以修改显示文本信息为例对比下mpldatacursor与mplcursors的不同实现方式。
mplcursors实现方式一
import matplotlib.pyplot as pltimport numpy as npimport mplcursorsax=plt.gca()lines = ax.plot(range(3), range(3), "o")labels = ["a", "b", "c"]cursor = mplcursors.cursor(lines)cursor.connect( "add", lambda sel: sel.annotation.set_text(labels[sel.target.index]))plt.show()mplcursors实现方式二
import matplotlib.pyplot as pltimport numpy as npimport mplcursorsax=plt.gca()lines = ax.plot(range(3), range(3), "o")labels = ["a", "b", "c"]cursor = mplcursors.cursor(lines)@cursor.connect("add")def on_add(sel): sel.annotation.set_text(labels[sel.target.index])plt.show()mplcursors包实现的功能与mpldatacursor包非常相似。相对而言mplcursors包的API更加灵活,通过connect函数或者装饰器自定义属性耦合性更弱,便于实现绘图与数据光标实现的分离。
https://mplcursors.readthedocs.io/en/stable/
https://github.com/anntzer/mplcursors
到此这篇关于matplotlib交互式数据光标实现(mplcursors)的文章就介绍到这了,更多相关matplotlib交互式光标内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文研究的主要是python+matplotlib实现动态绘制图片(交互式绘图)的相关内容,具体介绍和实现代码如下所示。 最近在研究动态障碍物避障算法,在Py
Matplotlib是一个Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。通过Matplotlib,开发者可以仅需要几行
Python画图主要用到matplotlib这个库。Matplotlib是一个Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的
Matplotlib是一个Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。通过Matplotlib,开发者可以仅需要几行
方式一交互式编程交互式编程不需要创建脚本文件,是通过Python解释器的交互模式进来编写代码。linux上你只需要在命令行中输入Python命令即可启动交互式编