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 控制语句
Nov 03 Python
Python中字典的setdefault()方法教程
Feb 07 Python
python使用正则表达式替换匹配成功的组
Nov 17 Python
python去掉空白行的多种实现代码
Mar 19 Python
浅析Python 中几种字符串格式化方法及其比较
Jul 02 Python
python GUI图形化编程wxpython的使用
Jul 19 Python
python3获取url文件大小示例代码
Sep 18 Python
Python selenium的基本使用方法分析
Dec 21 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
Jul 28 Python
python 检测图片是否有马赛克
Dec 01 Python
Python3中的tuple函数知识点讲解
Jan 03 Python
python3使用diagrams绘制架构图的步骤
Apr 08 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的核心Zend
2006/09/05 PHP
PHP安装问题
2006/10/09 PHP
php中HTTP_REFERER函数用法实例
2014/11/21 PHP
PHP中4种常用的抓取网络数据方法
2015/06/04 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
2017/02/04 PHP
浅谈thinkphp5 instance 的简单实现
2017/07/30 PHP
Laravel框架Blade模板简介及模板继承用法分析
2019/12/03 PHP
SuperSlide2实现图片滚动特效
2014/06/20 Javascript
JS清除选择内容的方法
2015/01/29 Javascript
JS实现向表格中动态添加行的方法
2015/03/30 Javascript
JS实现仿QQ效果的三级竖向菜单
2015/09/25 Javascript
详解JavaScript中的自定义事件编写
2016/05/10 Javascript
JS使用cookie设置样式的方法
2016/06/30 Javascript
JavaScript制作简单的框选图表
2017/05/15 Javascript
利用原生js实现html5小游戏之打砖块(附源码)
2018/01/03 Javascript
详解使用Next.js构建服务端渲染应用
2018/07/10 Javascript
iview form清除校验状态的实现
2019/09/19 Javascript
js刷新页面location.reload()用法详解
2019/12/09 Javascript
[48:24]完美世界DOTA2联赛循环赛LBZS vs Forest 第一场 10月30日
2020/10/31 DOTA
python继承和抽象类的实现方法
2015/01/14 Python
python简单实现计算过期时间的方法
2015/06/09 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
2019/08/15 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
2020/05/22 Python
HTML5 UTF-8 中文乱码的解决方法
2013/11/18 HTML / CSS
德国最大的设计师鞋网上商店:Budapester
2017/12/07 全球购物
加拿大品牌鞋包连锁店:Little Burgundy
2021/02/28 全球购物
施工资料员岗位职责
2014/01/06 职场文书
学习自我鉴定
2014/02/01 职场文书
小班幼儿评语大全
2014/04/30 职场文书
青春飞扬演讲稿
2014/09/11 职场文书
2015关爱留守儿童工作总结
2014/12/12 职场文书
学习与创新自我评价
2015/03/09 职场文书
隐形的翅膀观后感
2015/06/10 职场文书
2016大一新生军训感言
2015/12/08 职场文书
mysql脏页是什么
2021/07/26 MySQL
TS 类型收窄教程示例详解
2022/09/23 Javascript