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应用程序在windows下不出现cmd窗口的办法
May 29 Python
Python使用htpasswd实现基本认证授权的例子
Jun 10 Python
盘点提高 Python 代码效率的方法
Jul 03 Python
Python中使用urllib2防止302跳转的代码例子
Jul 07 Python
Python中with及contextlib的用法详解
Jun 08 Python
利用Python操作消息队列RabbitMQ的方法教程
Jul 19 Python
Python 最大概率法进行汉语切分的方法
Dec 14 Python
Pandas之Dropna滤除缺失数据的实现方法
Jun 25 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
Sep 25 Python
django 框架实现的用户注册、登录、退出功能示例
Nov 28 Python
Python3基本输入与输出操作实例分析
Feb 14 Python
Pandas的数据过滤实现
Jan 15 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边学边教》(01.开篇――准备工作)
2006/12/13 PHP
PHP 图片水印类代码
2012/08/27 PHP
解决ajax+php中文乱码的方法详解
2013/06/09 PHP
php发送post请求函数分享
2014/03/06 PHP
php5.3以后的版本连接sqlserver2000的方法
2014/07/28 PHP
基于jQuery的日期选择控件
2009/10/27 Javascript
JavaScript NaN和Infinity特殊值 [译]
2012/09/20 Javascript
禁止ajax缓存获取程序最新数据的方法
2013/11/19 Javascript
一个支持任意尺寸的图片上下左右滑动效果
2014/08/24 Javascript
JS模拟简易滚动条效果代码(附demo源码)
2016/04/05 Javascript
浅谈javascript中的事件冒泡和事件捕获
2016/12/28 Javascript
基于AngularJS的拖拽文件上传的实例代码
2017/07/15 Javascript
自定义PC微信扫码登录样式写法
2017/12/12 Javascript
vue数组对象排序的实现代码
2018/06/20 Javascript
Vue中keep-alive 实现后退不刷新并保持滚动位置
2020/03/17 Javascript
在vue中使用jsonp进行跨域请求接口操作
2020/10/29 Javascript
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
Python Socket传输文件示例
2017/01/16 Python
利用python模拟实现POST请求提交图片的方法
2017/07/25 Python
PyQt5每天必学之关闭窗口
2018/04/19 Python
python实现狄克斯特拉算法
2019/01/17 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
使用Python和百度语音识别生成视频字幕的实现
2020/04/09 Python
Python 实现自动登录+点击+滑动验证功能
2020/06/10 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
2020/06/29 Python
pytorch简介
2020/11/11 Python
Django vue前后端分离整合过程解析
2020/11/20 Python
服务行业个人求职的自我评价
2013/12/12 职场文书
财务主管的岗位职责
2013/12/30 职场文书
装修协议书范本
2014/04/21 职场文书
大二学生学年自我鉴定
2014/09/12 职场文书
2015毕业寄语大全
2015/02/26 职场文书
幼儿园保育员随笔
2015/08/14 职场文书
MongoDB orm框架的注意事项及简单使用
2021/06/20 MongoDB
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
2021/08/30 Python
Matplotlib绘制条形图的方法你知道吗
2022/03/21 Python