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 strip()函数 介绍
May 24 Python
python中使用smtplib和email模块发送邮件实例
Apr 22 Python
python smtplib模块发送SSL/TLS安全邮件实例
Apr 08 Python
解读Python中degrees()方法的使用
May 18 Python
python实现支付宝当面付(扫码支付)功能
May 30 Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
Jun 27 Python
Django框架HttpRequest对象用法实例分析
Nov 01 Python
PyTorch 普通卷积和空洞卷积实例
Jan 07 Python
浅谈python之自动化运维(Paramiko)
Jan 31 Python
浅谈pytorch中的BN层的注意事项
Jun 23 Python
python 实现表情识别
Nov 21 Python
python 实现超级玛丽游戏
Nov 25 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
php中static静态变量的使用方法详解
2010/06/04 PHP
ThinkPHP实现批量删除数据的代码实例
2014/07/02 PHP
ThinkPHP3.2.2的插件控制器功能
2015/03/05 PHP
PHP 中TP5 Request 请求对象的实例详解
2017/07/31 PHP
Laravel 前端资源配置教程
2019/10/18 PHP
jQuery对象与DOM对象之间的转换方法
2010/04/15 Javascript
得到jQuery detach()后节点中的某个值实现代码
2013/02/05 Javascript
使用GruntJS链接与压缩多个JavaScript文件过程详解
2013/08/02 Javascript
红米手机抢购的js代码
2014/03/10 Javascript
JS+CSS实现可拖拽的漂亮圆角特效弹出层完整实例
2015/02/13 Javascript
JS实现转动随机数抽奖特效代码
2020/04/16 Javascript
jQuery UI插件实现百度提词器效果
2016/11/21 Javascript
JavaScript中localStorage对象存储方式实例分析
2017/01/12 Javascript
在node.js中怎么屏蔽掉favicon.ico的请求
2017/03/01 Javascript
js时间查询插件使用详解
2017/04/07 Javascript
vue.js做一个简单的编辑菜谱功能
2018/05/08 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
2018/07/05 Javascript
浅谈Webpack4 Tree Shaking 终极优化指南
2019/11/18 Javascript
[03:03]2014DOTA2国际邀请赛 EG战队专访
2014/07/12 DOTA
[47:46]完美世界DOTA2联赛 Magma vs GXR 第三场 11.07
2020/11/10 DOTA
用Python的Django框架完成视频处理任务的教程
2015/04/02 Python
浅谈Python中copy()方法的使用
2015/05/21 Python
python+selenium+autoit实现文件上传功能
2017/08/23 Python
python实现定时自动备份文件到其他主机的实例代码
2018/02/23 Python
python生成以及打开json、csv和txt文件的实例
2018/11/16 Python
Python 面试中 8 个必考问题
2018/11/16 Python
python3 写一个WAV音频文件播放器的代码
2019/09/27 Python
python中@property和property函数常见使用方法示例
2019/10/21 Python
Tensorflow tf.tile()的用法实例分析
2020/05/22 Python
一文读懂python Scrapy爬虫框架
2021/02/24 Python
捷克汽车配件和工具销售网站:TorriaCars
2018/02/26 全球购物
sleep()方法和wait()方法的区别是什么
2012/11/17 面试题
保卫科工作岗位职责
2014/03/01 职场文书
《赶海》教学反思
2014/04/20 职场文书
美丽心灵观后感
2015/06/01 职场文书
导游词之湖州-太湖
2019/10/11 职场文书