matplotlib 设置标注方向_在matplotlib中用箭头和文字来标记重要的点

在matplotlib中,可以通过以下几种函数在图中添加箭头和文字标记

1. text,用于添加文字

2. arrow,用于添加箭头

3. annotate,支持同时添加文字和箭头

下面看下具体的用法

1.text

text函数通过指定xy轴坐标,以及对应的文字来实现文字标记的功能,基本用法如下

>>> import matplotlib.pyplot as plt

>>> plt.plot([1,2,3,4])

>>> plt.axhline(2)

>>> plt.axvline(2)

>>> plt.text(x=2, y=2, s='text')

>>> plt.show()

输出结果如下

为了更好的看出文字和坐标的关系,我在图中添加了水平和垂直方向的辅助线, 可以看到,文字的左下角对应的是我们提供的坐标,这个和R语言中默认的文字中心为点的坐标不一样。

文字和坐标的对齐方式可以通过以下两个参数进行调整

1. horizontalalignment, 简写为ha, 取值为left, center, right三者中的一种

2. verticalalignment,简写为va,取值为top, center, bottom,baseline, center_baseline中的一种

用法如下

>>> plt.plot([1,2,3,4])

>>> plt.axhline(2)

>>> plt.axvline(2)

>>> plt.text(x=2, y=2, s='text', ha='center',va='bottom')

>>> plt.show()

输出结果如下

对于文字的颜色,大小,字体等常用属性,可以通过以下几个文字的通用参数进行设置

1. color, 文字的颜色

2. fontsize, 文字的大小

3. fontfamily, 字体

用法如下

>>> import matplotlib.pyplot as plt

>>> plt.plot([1,2,3,4])

>>> plt.axhline(2)

>>> plt.axvline(2)

>>> plt.text(x=2, y=2, s='text', color='red', fontsize=12, fontfamily='fantasy')

>>> plt.show()

输出结果如下

在matplotlib中,还可以通过bbox参数对文字的边框进行设置,该参数的取值为一个dict, 常用的key包括facecolor, edgecolor, boxstyle等,基本用法如下

>>> import matplotlib.pyplot as plt

>>> plt.plot([1,2,3,4])

>>> plt.axhline(2)

>>> plt.axvline(2)

>>> plt.text(x=2, y=2, s='text', bbox=dict(facecolor='white',boxstyle='circle'))

>>> plt.show()

输出结果如下

boxstyle有多种取值,更多的信息请查看官方的API文档。

2. arrow

arrow函数通过指定起始点的xy轴坐标和相对起始点的偏移量dx和dy来指定一个箭头标记,基本用法如下

>>> plt.plot([1,2,3,4])

>>> plt.arrow(x=1, y=1, dx=1.5, dy=1.5)

输出结果如下

控制箭头形状的常见参数如下

1. width, 指定整个箭头的宽度,默认值为0.001

2. head_width, 箭头头部的宽度,默认值为3*width

3. head_length,箭头头部的长度,默认值为1.5*head_width

4. shape, 箭头的样式,默认值为full, 取值范围包括full,left,right

箭头的线条样式,颜色等属性则可以通过以下几个通用参数来设置

1. linestyle,线条的样式

2. facecolor, 箭头的填充色

3. edgecolor,箭头的边框颜色

基本用法如下

>>> plt.plot([1,2,3,4])

>>> plt.arrow(x=1, y=1, dx=1.5, dy=1.5,width=0.001, head_width=0.1,fc='red')

输出结果如下

3. annotate

annotate既可以只提供文字标记,也可以同时提供文字和箭头两种标记,基本用法如下

>>> plt.plot([1,2,3,4])

>>> plt.axhline(2)

>>> plt.axvline(2)

>>> plt.annotate(s='text', xy=(2,2))

>>> plt.show()

输出结果如下

可以看到,上述代码的效果和text函数的效果是相同的,而text函数中的一些属性在annotate中也是可以使用的,比如ha,va,bbox等参数。

在annotate函数中,可以通过xytext和textcoords参数来控制文字的位置,常见用法如下

>>> plt.plot([1,2,3,4])

>>> plt.axhline(2)

>>> plt.axvline(2)

>>> plt.annotate(text='text', xy=(2,2), xytext=(0,5), textcoords='offset points')

>>> plt.show()

输出结果如下

textcoords取值为offset points时,xytext的值为text相对xy坐标的偏移量,通过这种方式,可以灵活设置文字的位置。

除了添加文字,该函数也支持添加箭头,基本用法如下

>>> plt.plot([1,2,3,4])

>>> plt.axhline(2)

>>> plt.axvline(2)

>>> plt.annotate('text', (2,2), xytext=(20, 30),textcoords='offset points', arrowprops=dict(facecolor='black', shrink=0.05))

>>> plt.show()

输出结果如下

通过arrowprops参数来指定箭头的属性,该参数的值为dict,其中影响箭头样式核心参数为arrowstyle,不同arrowstyle取值对应的箭头样式 如下

最后来看一个上述参数相互结合的例子

>>> plt.plot([1,2,3,4])

>>> plt.axhline(2)

>>> plt.axvline(2)

>>> plt.annotate('text', (2,2), bbox=dict(boxstyle='round', fc='0.8'), xytext=(20, 30),textcoords='offset points', arrowprops=dict(facecolor='black', shrink=0.05))

>>> plt.show()

输出结果如下

在matplotlib中,添加文字和箭头的方式有多种,可以根据需要灵活选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/506772.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++ map 初始化_如何调整Linux内核启动中的驱动初始化顺序?

如何调整Linux内核启动中的驱动初始化顺序?【问题】此处我要实现的是将芯片的ID用于网卡MAC地址,网卡驱动是enc28j60_init。但是,读取芯片ID的函数,在as352x_afe_init模块中,所以要先初始化as352x_afe_init。此处&…

mysql group_concat去重_mysql 数据库group_concat函数的一些用法

对于group_contact函数一般懂一点sql的人来说,并不算太陌生,它主要配合group by 使用,起着分组时,将涉及行的相应的字段串联成一个字段如下表a:我们按照type分类,并将对应的名称按逗号分隔保存为一个names字…

mysql 征途_MySQL数据库

MySQL数据库数据库管理系统数据库管理系统是一种大型软件。常见的关系型数据库管理系统:OracleDB2SQL Server:现在用得少了SQL Lite:用于手机端MySQL:目前不要下载最新的8.0,下载5.7版本的。MySQL数据库安装步骤略&…

jeecmsv9导入mysql详细步骤_jeecms v9.3数据库导入

8# 发表于:2019-02-15 14:55:31 IP:27.220.*.*[Err] 1067 - Invalid default value for login_time[Err] ## Source for table jc_api_user_login#CREATE TABLE jc_api_user_login (id bigint(20) NOT NULL AUTO_INCREMENT,session_key varchar(100) DEFAULT COMMENT sesssio…

mysql 5.5 查询_mysql5.5数据库优化--定位慢查询

什么是慢查询mysql记录下查询超过指定时间的语句,被称为“慢查询”;启动慢查询日志1.查询是否把索引的SQL记录到慢查询日志中SHOW VARIABLES LIKE log_queries_%2.将查询到的值若为OFF,表示没有记录,就开启记录SET GLOBAL log_que…

svn mysql认证_SVN基于MySQL认证

SVN的简介和工作原理Subversion(简称svn)是近几年崛起的版本管理软件,是cvs的接班人,目前绝大多数开源软件都使用svn作为代码版本管理软件。Subversion支持linux和windows,但是普通应用在Linux上。SVN主要是通过两种方式来工作:即…

mysql账户dpzs_MySQL添加授权的用户命令实际操作

我们今天是要和大家一起探讨的是MySQL添加授权的用户命令 ,我前两天在相关网站看见MySQL添加授权的用户命令的资料,觉得挺好,就拿出来供大家分享。希望会给你带来一些帮助在此方面。 1.新建用户。 登录MySQL MySQL -u root -p 密码 创建用户 …

mysql游标的概述_MySQL游标简介

mysql> delimiter //mysql>mysql> create procedure test1()-> begin-> declare l_add_bonus1 int default 1000;-> declare l_add_bonus2 int default 500;-> declare l_empno int;-> declare l_sal,l_bonus decimal(15,2);->-> -- 游标结束的标…

mysql odbc.ini_关于unixodbc中odbc.ini和odbcinst.ini的介绍

关于unixodbc中odbc.ini和odbcinst.ini的介绍unixODBC without the GUIOreverything you wanted to know about odbcinst but were afraid to askPurposeA lot of people are using unixODBC but for a number of reasons are not building the GUI configuration and testing …

mysql range代表什么意思_MySQL数据表range分区例子

某些行业数据量的增长速度极快,随着数据库中数据量的急速膨胀,数据库的插入和查询效率越来越低。此时,除了程序代码和查询语句外,还得在数据库的结构上做点更改;在一个主读辅写的数据库中,当数据表数据超过…

mysql 日期类型比价_MySQL 日期时间类型怎么选?

构建数据库写程序避免不了使用日期和时间,对于数据库来说,有多种日期时间字段可供选择,如 timestamp 和 datetime 以及使用 int 来存储 unix timestamp。不仅新手,包括一些有经验的程序员还是比较迷茫,究竟我该用哪种类…

怎么才能点一下excel中的超链接就显示出图片?_Excel如何批量建立超链接,搭建工作台...

本篇是“建立工作导航”第3讲如果您错过了前两篇:点墨楼:高效秘技!用EXCEL制作导航页和日志表管理日常工作​zhuanlan.zhihu.com点墨楼:批量提取文件名,快速建立EXCEL工作台文件路径​zhuanlan.zhihu.com为了提高工作效…

全局修改elementui message 右边弹出_ElementUI 只允许 $message 提示一次

场景:在某个API接口中调用了ElementUI的Message方法,在加了loading的情况下,多次请求会重复调用Message方法。Message时间长会重叠,时间段看不清提示内容,很烦~~~~这波是…

mysql 存树 闭包表_关系型数据库树形关系存储-闭包表

前言在关系型数据库中,有一种逻辑关系比较难处理,这种就是树形结构。目前有很多主流的处理方案,比如说直接在业务表中存储上一级id,这样就可以用递归查询SQL的形式找到某一节点的父节点,子节点,或者兄弟节点…

很大的.xls 文件导入sqlserver2005导入不全_python3 接口测试数据驱动之操作 excel 文件...

python3 接口测试数据驱动之操作 excel 文件1.4 操作 excel 文件Python 中一般使用 xlrd 库来读取 Excel 文件, xlrd 库是 Python 的第三方库。1.4.1 xlrd 库安装Xlrd 库跟其他第三方库一样,都是通过 pip install xlrd 命令来安装。安装成功之后,在 C:Py…

label y 训练集测试集x_训练集、测试集 train_test_split

训练集 & 测试集如果拿所有原始数据来训练,存在的问题:模型很差无法调整;真实环境难以拿到真实 label;所以将数据区分为 训练数据 和 测试数据(train test split);将训练数据来训练模型;然后用测试数据…

php mysql练手_ThinkPHP5练手Demo实战

最近有个朋友有个小需求,刚好有时间,也刚好准备研究一下tp5,听说tp5规范了,而且更傻瓜化了。便做了这个论坛的小Demo,开源出来玩玩,改天做两个模版。说句实话,TP5模型层,数据库层真的…

php web mysql数据库_使用php从web访问mysql

php提供多种操作数据库的方案:mysql扩展、mysqli扩展、PDO等。mysql扩展是伴随着php的产生而产生的,随着mysql数据库的发展mysql扩展不能够支持mysql数据库的一些新的特性如预加载功能,mysqli扩展应运而生,重新梳理了php对mysql数…

ubuntu 12.04 mysql_ubuntu12.04 安装和卸载mysql

1:登录系统,安装之前最好先,apt-get update否则会出现找不到安装文件得错误提示2:安装MySQL服务器以及客户端apt-get install mysql-server mysql-client安装得过程中会提示你输入root得密码。3:安装完成以后默认mysql…

oracle实验六杨艳华_oracle实验报告总结

Oracle 实验报告 姓名 学院: 年级: 班级: 指导老师: 实验一 了解 ...学期 Oracle 数据库应用技术 实验报告 选课序号: 班级: 学号: 姓名: 指导教师: 成绩: 史金余 2017 年月日 目录 1.实验目的 ... 学期Oracle 数据库应用......学期 Oracle 数据库应用技术实验报告 选课序号: 班…