简介
mplcursors
包也可以为matplotlib
提供交互式的数据光标(弹出式注释框),它的灵感来源于mpldatacursor
包,可以认为是基于mpldatacursor
包的二次开发。
相对于mpldatacursor
包,mplcursors
包最大的特点就是提供了一些相对底层的API,这样功能实现更加灵活。
安装
pip install mplcursors
基本应用
mplcursors
包的基本应用方法与mpldatacursor
包类似,直接应用cursor
函数即可。
基本操作方法
- 鼠标左键单击图表数据元素时会弹出文本框显示最近的数据元素的坐标值。
- 鼠标右键单击文本框取消显示数据光标。
- 按d键时切换显示\关闭数据光标。
案例源码
import matplotlib.pyplot as plt import numpy as np import mplcursors data = np.outer(range(10), range(1, 5)) fig, ax = plt.subplots() lines = ax.plot(data) ax.set_title("Click somewhere on a line.\nRight-click to deselect.\n" "Annotations can be dragged.") mplcursors.cursor(lines) # or just mplcursors.cursor() plt.show()
mplcursors自定义应用
mpldatacursor
包中自定义功能主要通过向datacursor
函数传递实参实现。
mplcursors
包中的cursor
函数对标mpldatacursor
包中的datacursor
函数,但是在参数上发生了变化,保留了artists
、hover
、bindings
、multiple
、highlight
等类似参数。
mplcursors
包增加Selection
对象(底层为namedtuple
)表示选择的数据元素的属性。
当选中某个数据点时,可以通过添加(add
)或删除(remove
)事件触发、注册回调函数实现功能,回调函数只有一个参数,及选择的数据点。
在注册回调函数时,mplcursors
包支持使用装饰器。
mpldatacursor与mplcursors API对比
下面以修改显示文本信息为例对比下mpldatacursor
与mplcursors
的不同实现方式。
mpldatacursor实现方式
import matplotlib.pyplot as plt import numpy as np from mpldatacursor import datacursor ax=plt.gca() labels = ["a", "b", "c"] for i in range(3): ax.plot(i, i,'o', label=labels[i]) datacursor(formatter='{label}'.format) plt.show()
mplcursors
实现方式一
import matplotlib.pyplot as plt import numpy as np import mplcursors ax=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 plt import numpy as np import mplcursors ax=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
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]