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 相关文章推荐
通过C++学习Python
Jan 20 Python
python制作websocket服务器实例分享
Nov 20 Python
Python+OpenCV人脸检测原理及示例详解
Oct 19 Python
Python图像处理之gif动态图的解析与合成操作详解
Dec 30 Python
Python数据可视化之画图
Jan 15 Python
Python中super函数用法实例分析
Mar 18 Python
python读取Excel表格文件的方法
Sep 02 Python
python基于gevent实现并发下载器代码实例
Nov 01 Python
使用pytorch和torchtext进行文本分类的实例
Jan 08 Python
tensorflow查看ckpt各节点名称实例
Jan 21 Python
python实现一个猜拳游戏
Apr 05 Python
VScode连接远程服务器上的jupyter notebook的实现
Apr 23 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
简单的页面缓冲技术
2006/10/09 PHP
PHP遍历二维数组的代码
2011/04/22 PHP
PHP的博客ping服务代码
2012/02/04 PHP
mysql 查询指定日期时间内sql语句实现原理与代码
2012/12/16 PHP
修改Laravel5.3中的路由文件与路径
2016/08/10 PHP
php的优点总结 php有哪些优点
2019/07/19 PHP
JS 无法通过W3C验证的处理方法
2010/03/09 Javascript
文本框中,回车键触发事件的js代码[多浏览器兼容]
2010/06/07 Javascript
Dom 结点创建 基础知识
2011/10/01 Javascript
js判断样式className同时增加class或删除class
2013/01/30 Javascript
动态加载js、css等文件跨iframe实现
2014/02/24 Javascript
基于JavaScript实现轮播图代码
2016/07/14 Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
2016/11/17 Javascript
jQuery实现获取隐藏div高度的方法示例
2017/02/09 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
2017/04/13 Javascript
JS实现的加减乘除四则运算计算器示例
2017/08/09 Javascript
JavaScript编写的网页小游戏,很给力
2017/08/18 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
2018/08/08 jQuery
webpack4 从零学习常用配置(小结)
2019/05/28 Javascript
微信小程序仿今日头条导航栏滚动解析
2019/08/20 Javascript
[01:01:24]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例
2018/04/19 Python
英国版MAC彩妆品牌:Illamasqua
2018/04/18 全球购物
英国受欢迎的运动鞋和街头服装商店:Footasylum
2018/06/12 全球购物
Calphalon美国官网:美国顶级锅具品牌
2020/02/05 全球购物
面向对象编程是如何提高软件开发水平的
2014/05/06 面试题
本科生学习总结的自我评价
2013/10/02 职场文书
自荐信格式写作方法有哪些呢
2013/11/20 职场文书
酒店销售经理岗位职责
2014/01/31 职场文书
出纳试用期自我鉴定
2014/04/07 职场文书
银行柜员与客户起冲突检讨书
2014/09/27 职场文书
2014年保密工作总结
2014/11/22 职场文书
责任书格式
2015/01/29 职场文书
全国助残日活动总结
2015/05/11 职场文书
入党积极分子培养人意见
2015/06/02 职场文书
JavaGUI模仿QQ聊天功能完整版
2021/07/04 Java/Android