python Matplotlib底图中鼠标滑过显示隐藏内容的实例代码


Posted in Python onJuly 31, 2019

在使用Matplotlib画图过程中,有些内容必须鼠标点击或者划过才可以显示,这个问题可以依赖于annotate(s='str' ,xy=(x,y) ,xytext=(l1,l2) ,..)这个函数,其中s 为注释文本内容 , xy 为被注释的坐标点, xytext 为注释文字的坐标位置,其他参数可自行百度哈。当鼠标滑过时候,将其设置为可见,默认情况下为隐藏。下面是一个小例子:

# -*- coding: UTF-8 -*-
import matplotlib.pyplot as plt
fig = plt.figure()
po_annotation = []
for i in range(0, 10):
  x = i
  y = x**2
  point, = plt.plot(x, y, 'o')
  annotation = plt.annotate(('x='+str(x), 'y='+str(y)), xy=(x+0.1, y+0.1), xycoords='data', xytext=(x+0.7, y+0.7),
                textcoords='data', horizontalalignment="left",
                arrowprops=dict(arrowstyle="simple",connectionstyle="arc3,rad=-0.1"),
                bbox=dict(boxstyle="round", facecolor="w",edgecolor="0.5", alpha=0.9)
                )
  annotation.set_visible(False)
  po_annotation.append([point, annotation])
def on_move(event):
  visibility_changed = False
  for point, annotation in po_annotation:
    should_be_visible = (point.contains(event)[0] == True)
    # print(point.contains(event)[0])
    if should_be_visible != annotation.get_visible():
      visibility_changed = True
      annotation.set_visible(should_be_visible)
  if visibility_changed:
    plt.draw()
on_move_id = fig.canvas.mpl_connect('motion_notify_event', on_move)
plt.show()

主要思路为:

•创建[点,注释]对的列表,默认情况下,注释不可见

•每次检测到鼠标移动时,都会注册一个函数“on_move”
•on_move函数遍历每个点和注释,如果鼠标现在位于其中一个点上,则使其关联的注释可见,如果不是,则使其不可见。

运行出来的效果为: 当鼠标滑过时,可以显示其相应坐标:

python Matplotlib底图中鼠标滑过显示隐藏内容的实例代码

总结

以上所述是小编给大家介绍的python Matplotlib底图中鼠标滑过显示隐藏内容的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Python中Continue语句的用法的举例详解
May 14 Python
Python 爬虫学习笔记之正则表达式
Sep 21 Python
Python冲顶大会 快来答题!
Jan 17 Python
Django外键(ForeignKey)操作以及related_name的作用详解
Jul 29 Python
基于Python批量生成指定尺寸缩略图代码实例
Nov 20 Python
Django 路由层URLconf的实现
Dec 30 Python
python与mysql数据库交互的实现
Jan 06 Python
新年福利来一波之Python轻松集齐五福(demo)
Jan 20 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
Mar 01 Python
python torch.utils.data.DataLoader使用方法
Apr 02 Python
Python OpenCV去除字母后面的杂线操作
Jul 05 Python
基于logstash实现日志文件同步elasticsearch
Aug 06 Python
Django上使用数据可视化利器Bokeh解析
Jul 31 #Python
Flask框架单例模式实现方法详解
Jul 31 #Python
pycharm配置当鼠标悬停时快速提示方法参数
Jul 31 #Python
详细介绍Python进度条tqdm的使用
Jul 31 #Python
处理Selenium3+python3定位鼠标悬停才显示的元素
Jul 31 #Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
Jul 31 #Python
django解决订单并发问题【推荐】
Jul 31 #Python
You might like
使ecshop模板中可引用常量的实现方法
2011/06/02 PHP
PHP将XML转数组过程详解
2013/11/13 PHP
PHP中source #N问题的解决方法
2014/01/27 PHP
php代码审计比较有意思的例子
2014/05/07 PHP
PHP 反射(Reflection)使用实例
2015/05/12 PHP
PHP中使用array函数新建一个数组
2015/11/19 PHP
PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)
2017/07/27 PHP
PHP PDOStatement::setFetchMode讲解
2019/02/03 PHP
用显卡加速,轻松把笔记本打造成取暖器的办法!
2013/04/17 Javascript
JS高级调试技巧:捕获和分析 JavaScript Error详解
2014/03/16 Javascript
JavaScript变量声明详解
2014/11/27 Javascript
JavaScript获得url查询参数的方法
2015/07/02 Javascript
js制作带有遮罩弹出层实现登录注册表单特效代码分享
2015/09/05 Javascript
javascript+HTML5自定义元素播放焦点图动画
2016/02/21 Javascript
浅谈JavaScript 标准对象
2016/06/02 Javascript
Ionic如何实现下拉刷新与上拉加载功能
2016/06/03 Javascript
JS实战篇之收缩菜单表单布局
2016/12/10 Javascript
详解angularJs模块ui-router之状态嵌套和视图嵌套
2017/04/28 Javascript
浅谈js基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题
2017/09/02 Javascript
jQuery实现表单动态添加数据并提交的方法
2018/07/19 jQuery
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
2019/09/27 Javascript
Vue使用JSEncrypt实现rsa加密及挂载方法
2020/02/07 Javascript
redux处理异步action解决方案
2020/03/22 Javascript
线程和进程的区别及Python代码实例
2015/02/04 Python
python用装饰器自动注册Tornado路由详解
2017/02/14 Python
HTML5 Canvas中使用路径描画二阶、三阶贝塞尔曲线
2015/01/01 HTML / CSS
尤妮佳moony海外旗舰店:日本殿堂级纸尿裤品牌
2018/02/23 全球购物
意大利领先的奢侈品在线时装零售商:MCLABELS
2020/10/13 全球购物
小学红领巾中秋节广播稿
2014/01/13 职场文书
汽车机电维修工求职信
2014/09/30 职场文书
总经理岗位职责
2015/02/04 职场文书
2014年个人年终总结
2015/03/09 职场文书
普通员工辞职信范文
2015/05/12 职场文书
少年犯观后感
2015/06/11 职场文书
公司管理建议书
2015/09/14 职场文书
Python办公自动化之Excel(中)
2021/05/24 Python