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爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
May 25 Python
Python unittest模块用法实例分析
May 25 Python
Flask之flask-script模块使用
Jul 26 Python
对Python3 序列解包详解
Feb 16 Python
Python 监测文件是否更新的方法
Jun 10 Python
python简单实现矩阵的乘,加,转置和逆运算示例
Jul 10 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
Aug 10 Python
python2和python3实现在图片上加汉字的方法
Aug 22 Python
python在OpenCV里实现投影变换效果
Aug 30 Python
Tensorflow读取并输出已保存模型的权重数值方式
Jan 04 Python
10张动图学会python循环与递归问题
Feb 06 Python
Python Flask实现进度条
May 11 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实现学生管理系统
2020/03/21 PHP
Laravel ORM 数据model操作教程
2019/10/21 PHP
用ADODB.Stream转换
2007/01/22 Javascript
js常用代码段收集
2011/10/28 Javascript
JQuery中$.ajax()方法参数详解及应用
2013/12/12 Javascript
纯javascript制作日历控件
2015/07/17 Javascript
vue.js学习笔记之绑定style样式和class列表
2016/10/31 Javascript
分享十三个最佳JavaScript数据网格库
2017/04/07 Javascript
VUE页面中加载外部HTML的示例代码
2017/09/20 Javascript
五步轻松实现JavaScript HTML时钟效果
2020/03/25 Javascript
详解NODEJS的http实现
2018/01/04 NodeJs
详解webpack的proxyTable无效的解决方案
2018/06/15 Javascript
angular的输入和输出的使用方法
2018/09/22 Javascript
解决layui-open关闭自身窗口的问题
2019/09/10 Javascript
Python实现注册登录系统
2017/08/08 Python
Python标准库之itertools库的使用方法
2017/09/07 Python
python实现堆和索引堆的代码示例
2018/03/19 Python
python调用接口的4种方式代码实例
2019/11/19 Python
对tensorflow中cifar-10文档的Read操作详解
2020/02/10 Python
python字符串的index和find的区别详解
2020/06/20 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
python matplotlib绘制三维图的示例
2020/09/24 Python
Html5百叶窗效果的示例代码
2017/12/11 HTML / CSS
Lampegiganten丹麦:欧洲领先的照明网上商店
2018/04/25 全球购物
西班牙床垫网上商店:Colchones.es
2018/05/06 全球购物
面向对象设计的原则是什么
2013/02/13 面试题
小加工厂管理制度
2014/01/21 职场文书
股权转让意向书
2014/04/01 职场文书
品质口号大全
2014/06/17 职场文书
幽默自我介绍演讲稿
2014/08/21 职场文书
镇创先争优活动总结
2014/08/28 职场文书
银行催款通知书
2015/04/17 职场文书
行政介绍信范文
2015/05/04 职场文书
MySQL锁机制
2021/04/05 MySQL
Python万能模板案例之matplotlib绘制甘特图
2022/04/13 Python
Elasticsearch 数据类型及管理
2022/04/19 Python