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实现端口复用实例代码
Jul 03 Python
在Python的Django框架中为代码添加注释的方法
Jul 16 Python
python 采集中文乱码问题的完美解决方法
Sep 27 Python
Python File readlines() 使用方法
Mar 19 Python
新年快乐! python实现绚烂的烟花绽放效果
Jan 30 Python
Python AutoCAD 系统设置的实现方法
Apr 01 Python
Python中实现输入一个整数的案例
May 03 Python
pytorch查看模型weight与grad方式
Jun 24 Python
基于Python的一个自动录入表格的小程序
Aug 05 Python
Python通过递归函数输出嵌套列表元素
Oct 15 Python
Python爬虫模拟登陆哔哩哔哩(bilibili)并突破点选验证码功能
Dec 21 Python
Anaconda配置各版本Pytorch的实现
Aug 07 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强制文件下载而非在浏览器打开的自定义函数分享
2014/05/08 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
2016/04/14 PHP
简单解决微信文章图片防盗链问题
2016/12/17 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
js中直接声明一个对象的方法
2014/08/10 Javascript
利用a标签自动解析URL分析网址实例
2014/10/20 Javascript
jquery 构造函数在表单提交过程中修改数据
2015/05/25 Javascript
JavaScript文本框脚本编写的注意事项
2016/01/25 Javascript
使用Object.defineProperty实现简单的js双向绑定
2016/04/15 Javascript
jQuery插件制作的实例教程
2016/05/16 Javascript
jQuery实现点击查看大图并以弹框的形式居中
2016/08/08 Javascript
jQuery实现的选择商品飞入文本框动画效果完整实例
2016/08/10 Javascript
简单模拟node.js中require的加载机制
2016/10/27 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
2020/08/27 Javascript
整理关于Bootstrap警示框的慕课笔记
2017/03/29 Javascript
限时抢购-倒计时的完整实例(分享)
2017/09/17 Javascript
微信小程序自定义底部弹出框
2020/11/16 Javascript
JavaScript实现数组全排列、去重及求最大值算法示例
2018/07/30 Javascript
fetch 如何实现请求数据
2018/12/20 Javascript
深入理解es6块级作用域的使用
2019/03/28 Javascript
JavaScript遍历查找数组中最大值与最小值的方法示例
2019/05/24 Javascript
vuex vue简单使用知识点总结
2019/08/29 Javascript
vue 项目引入echarts 添加点击事件操作
2020/09/09 Javascript
[28:07]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第二场 12.13
2020/12/17 DOTA
Python3中详解fabfile的编写
2018/06/24 Python
python 实现从高分辨图像上抠取图像块
2020/01/02 Python
tensorflow指定CPU与GPU运算的方法实现
2020/04/21 Python
校园报刊亭创业计划书
2014/01/02 职场文书
两年的个人工作自我评价
2014/01/10 职场文书
会计专业个人自我鉴定
2014/03/21 职场文书
马智宇婚礼主持词
2014/03/22 职场文书
地球物理学专业推荐信
2014/09/08 职场文书
机关党员三严三实心得体会
2014/10/13 职场文书
党的群众路线调研报告
2014/11/03 职场文书
党的群众路线教育实践活动心得体会(医院)
2014/11/03 职场文书
儿童诗两首教学反思
2016/02/23 职场文书