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中的日志模块logging
Jun 19 Python
python 链接和操作 memcache方法
Mar 04 Python
Python利用flask sqlalchemy实现分页效果
Aug 02 Python
对python 操作solr索引数据的实例详解
Dec 07 Python
python实现一个简单的udp通信的示例代码
Feb 01 Python
Pandas中resample方法详解
Jul 02 Python
python实现微信自动回复机器人功能
Jul 11 Python
Pandas0.25来了千万别错过这10大好用的新功能
Aug 07 Python
Django 实现前端图片压缩功能的方法
Aug 07 Python
Django项目创建到启动详解(最全最详细)
Sep 07 Python
python中Array和DataFrame相互转换的实例讲解
Feb 03 Python
Python竟然能剪辑视频
May 25 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
追求程序速度,而不是编程的速度
2008/04/23 PHP
基于simple_html_dom的使用小结
2013/07/01 PHP
smarty的section嵌套循环用法示例
2016/05/28 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
2020/02/11 PHP
Thinkphp5框架异常处理操作实例分析
2020/06/03 PHP
jQuery 下拉列表 二级联动插件分享
2012/03/29 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
node.js中的fs.close方法使用说明
2014/12/17 Javascript
基于JavaScript创建动态Dom
2015/12/08 Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
2016/05/12 Javascript
JQuery组件基于Bootstrap的DropDownList(完整版)
2016/07/05 Javascript
jQuery实现立体式数字滚动条增加效果
2016/12/21 Javascript
jQuery插件扩展操作入门示例
2017/01/16 Javascript
浅谈 vue 中的 watcher
2017/12/04 Javascript
微信小程序实现倒计时调用相机自动拍照功能
2018/06/10 Javascript
vue-cli的build的文件夹下没有dev-server.js文件配置mock数据的方法
2019/04/17 Javascript
jquery实现简单自动轮播图效果
2020/07/29 jQuery
Vue中引入svg图标的两种方式
2021/01/14 Vue.js
python局域网ip扫描示例分享
2014/04/03 Python
python 使用sys.stdin和fileinput读入标准输入的方法
2018/10/17 Python
详解Django admin高级用法
2019/11/06 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
2020/05/22 Python
浅谈python量化 双均线策略(金叉死叉)
2020/06/03 Python
HTML5 实现一个访问本地文件的实例
2012/12/13 HTML / CSS
英国家用电器购物网站:Hughes
2018/02/23 全球购物
FitFlop美国官网:英国符合人体工学的鞋类品牌
2018/10/05 全球购物
面向对象编程OOP的优点
2013/01/22 面试题
工程预算与管理应届生求职信
2013/10/06 职场文书
告诉你怎样写创业计划书
2014/01/27 职场文书
2014年团员学习十八大思想汇报
2014/09/13 职场文书
财务部岗位职责
2015/02/03 职场文书
材料采购员岗位职责
2015/04/03 职场文书
上下班时间调整通知
2015/04/23 职场文书
高中语文教学反思范文
2016/02/16 职场文书
企业转让协议书(范文2篇)
2019/08/15 职场文书
俄罗斯十大城市人口排名,第三首都仅排第六,第二是北方首都
2022/03/20 杂记