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 相关文章推荐
教你如何在Django 1.6中正确使用 Signal
Jun 22 Python
Python用GET方法上传文件
Mar 10 Python
Python3中简单的文件操作及两个简单小实例分享
Jun 18 Python
python中将zip压缩包转为gz.tar的方法
Oct 18 Python
如何使用Python进行OCR识别图片中的文字
Apr 01 Python
用python打印1~20的整数实例讲解
Jul 01 Python
python判断一个对象是否可迭代的例子
Jul 22 Python
python如何将两张图片生成为全景图片
Mar 05 Python
浅谈Python的方法解析顺序(MRO)
Mar 05 Python
Python try except else使用详解
Jan 12 Python
Python使用protobuf序列化和反序列化的实现
May 19 Python
详解python字符串驻留技术
May 21 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
PHP4中session登录页面的应用
2008/07/25 PHP
PHP面向对象程序设计之类与反射API详解
2016/12/02 PHP
Yii Framework框架使用PHPExcel组件的方法示例
2019/07/24 PHP
JQuery Tips(3) 关于$()包装集内元素的改变
2009/12/14 Javascript
基于JQuery的列表拖动排序实现代码
2013/10/01 Javascript
遍历DOM对象内的元素属性示例代码
2014/02/08 Javascript
js实现下拉框选择要显示图片的方法
2015/02/16 Javascript
JS中call/apply、arguments、undefined/null方法详解
2016/02/15 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
利用types增强vscode中js代码提示功能详解
2017/07/07 Javascript
bootstrap3中container与container_fluid外层容器的区别讲解
2017/12/04 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
2017/12/13 Javascript
jquery使用FormData实现异步上传文件
2018/10/25 jQuery
vue组件实践之可搜索下拉框功能
2018/11/25 Javascript
详解Vue之父子组件传值
2019/04/01 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
2019/09/23 Javascript
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
python微信跳一跳游戏辅助代码解析
2018/01/29 Python
python顺序执行多个py文件的方法
2019/06/29 Python
Python实现直方图均衡基本原理解析
2019/08/08 Python
Photobook澳大利亚:制作相片书,婚礼卡,旅行相簿
2017/01/12 全球购物
NIHAOMARKET官方海外旗舰店:意大利你好华人超市
2018/01/27 全球购物
Under Armour澳大利亚官网:美国知名的高端功能性运动品牌
2018/02/22 全球购物
计算机个人求职信范例
2014/01/24 职场文书
称象教学反思
2014/02/03 职场文书
幼儿园大班评语大全
2014/04/17 职场文书
教师考核评语
2014/04/28 职场文书
工作岗位说明书模板
2014/05/09 职场文书
运动会横幅标语
2014/06/17 职场文书
班级活动总结格式
2014/08/30 职场文书
教师查摆问题及整改措施
2014/10/11 职场文书
爱牙日宣传活动总结
2015/02/05 职场文书
运动会开幕式通讯稿
2015/07/18 职场文书
2016年先进教师个人事迹材料
2016/02/26 职场文书
数据库的高级查询六:表连接查询:外连接(左外连接,右外连接,UNION关键字,连接中ON与WHERE的不同)
2021/04/05 MySQL
浅析Django接口版本控制
2021/06/26 Python