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之编写类之一创建实例
Oct 11 Python
使用IPython来操作Docker容器的入门指引
Apr 08 Python
Python最基本的数据类型以及对元组的介绍
Apr 14 Python
简单介绍Python中的struct模块
Apr 28 Python
python基础之包的导入和__init__.py的介绍
Jan 08 Python
python做量化投资系列之比特币初始配置
Jan 23 Python
Sanic框架路由用法实例分析
Jul 16 Python
详解Pycharm出现out of memory的终极解决方法
Mar 03 Python
Python 实现国产SM3加密算法的示例代码
Sep 21 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
Nov 05 Python
python解包概念及实例
Feb 17 Python
Python 统计序列中元素的出现频度
Apr 26 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
第十三节 对象串行化 [13]
2006/10/09 PHP
php中jpgraph类库的使用介绍
2013/08/08 PHP
19个Android常用工具类汇总
2014/12/30 PHP
PHP生成条形码大揭秘
2015/09/24 PHP
PHP获取文件扩展名的4种方法
2015/11/24 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
2018/05/23 PHP
php工具型代码之印章抠图
2018/07/18 PHP
JS操作XML中DTD介绍及使用方法分析
2019/07/04 PHP
JS Timing
2007/04/21 Javascript
javascript 表单规则集合对象
2009/07/21 Javascript
详解JS函数重载
2014/12/04 Javascript
JavaScript的Date()方法使用详解
2015/06/09 Javascript
JavaScript中Window对象的属性及事件
2015/12/25 Javascript
学习使用jquery iScroll.js移动端滚动条插件
2020/03/24 Javascript
论JavaScript模块化编程
2016/03/07 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
JavaScript基础之AJAX简单的小demo
2017/01/29 Javascript
谈谈JS中的!!
2017/12/07 Javascript
nodejs简单实现TCP服务器端和客户端的聊天功能示例
2018/01/04 NodeJs
Vue父子组件之间的通信实例详解
2018/09/28 Javascript
详解使用WebPack搭建React开发环境
2019/08/06 Javascript
[01:09]2014DOTA2国际邀请赛 TI4西雅图DOTA2 中国美女coser加油助威
2014/07/20 DOTA
python爬虫爬取某站上海租房图片
2018/02/04 Python
Python使用matplotlib绘制余弦的散点图示例
2018/03/14 Python
django Serializer序列化使用方法详解
2018/10/16 Python
Python获取数据库数据并保存在excel表格中的方法
2019/06/12 Python
python 实现查询Neo4j多节点的多层关系
2019/12/23 Python
Python while循环使用else语句代码实例
2020/02/07 Python
Pycharm自动添加文件头注释和函数注释参数的方法
2020/10/23 Python
临床医学专业学生的自我评价分享
2013/11/21 职场文书
大学活动邀请函
2014/01/28 职场文书
数控技术应用个人求职信范文
2014/02/03 职场文书
新闻简讯格式及范文
2015/07/22 职场文书
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
2022/04/09 MySQL
详解SQL的窗口函数
2022/04/21 Oracle
Python matplotlib绘制条形统计图 处理多个实验多组观测值
2022/04/21 Python