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的Django中django-userena组件的简单使用教程
May 30 Python
Python实现二维有序数组查找的方法
Apr 27 Python
基础的十进制按位运算总结与在Python中的计算示例
Jun 28 Python
Python字典实现简单的三级菜单(实例讲解)
Jul 31 Python
python中的插值 scipy-interp的实现代码
Jul 23 Python
Python 实现子类获取父类的类成员方法
Jan 11 Python
Python 读取串口数据,动态绘图的示例
Jul 02 Python
关于python字符串方法分类详解
Aug 20 Python
基于python实现蓝牙通信代码实例
Nov 19 Python
python实现人脸签到系统
Apr 13 Python
python爬虫实现POST request payload形式的请求
Apr 30 Python
Python如何转换字符串大小写
Jun 04 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
详解ThinkPHP3.2.3验证码显示、刷新、校验
2016/12/29 PHP
PHP性能测试工具xhprof安装与使用方法详解
2018/04/29 PHP
ThinkPHP实现的rsa非对称加密类示例
2018/05/29 PHP
详解json在php中的应用
2018/09/30 PHP
jQuery 操作XML入门
2008/12/25 Javascript
JavaScript 脚本将当地时间转换成其它时区
2009/03/19 Javascript
JS弹出窗口代码大全(详细整理)
2012/12/21 Javascript
微信小程序开发探究
2016/12/27 Javascript
vue2.0实战之基础入门(1)
2017/03/27 Javascript
JS实现利用两个队列表示一个栈的方法
2017/12/13 Javascript
聊聊JS动画库 Velocity.js的使用
2018/03/13 Javascript
在NPM发布自己造的轮子的方法步骤
2019/03/09 Javascript
Javascript的this详解
2019/03/23 Javascript
vue渲染方式render和template的区别
2020/06/05 Javascript
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
让python 3支持mysqldb的解决方法
2017/02/14 Python
利用python对Excel中的特定数据提取并写入新表的方法
2018/06/14 Python
Django学习笔记之为Model添加Action
2019/04/30 Python
python 缺失值处理的方法(Imputation)
2019/07/02 Python
css3简单练习实现遨游浏览器logo的绘制
2013/01/30 HTML / CSS
关于CSS Tooltips(鼠标经过时显示)的效果
2013/04/10 HTML / CSS
html5理解head_动力节点Java学院整理
2017/07/13 HTML / CSS
HTML5中Canvas与SVG的画图原理比较
2013/01/16 HTML / CSS
地球上最先进的胡子和头发修剪器:Bevel
2018/01/23 全球购物
戴尔英国翻新电脑和电子产品:Dell UK Refurbished Computers
2019/07/30 全球购物
几个Linux面试题笔试题
2016/08/01 面试题
参观监狱心得体会
2014/01/02 职场文书
怎样写好自我评价呢?
2014/02/16 职场文书
促销活动方案模板
2014/02/24 职场文书
出纳试用期自我鉴定
2014/04/07 职场文书
城管执法人员纪律作风整顿思想汇报
2014/09/13 职场文书
圆明园纪录片观后感
2015/06/03 职场文书
《没有任何借口》读后感:完美的执行能力
2020/01/07 职场文书
JavaScript实现淘宝商品图切换效果
2021/04/29 Javascript
实例讲解Python中sys.argv[]的用法
2021/06/03 Python
码云(gitee)通过git自动同步到阿里云服务器
2022/12/24 Servers