Python-Matplotlib绘图教程之Annotations

声明:

  1. 翻译自官方文档
  2. 并非直译
  3. 在一些官方代码中去掉了不重要的部分

Annotations

Annotation,意为“注释”。本文将依照matplotlib官方文档,摘取Annotation章节中的常用部分,结合实例予以介绍。

Annotation基础

matplotlib中的text()函数可以在坐标轴(Axes)中的指定位置添加文字。文字一般是用来解释图形的,在matplotlib中annotate()经常和text()结合使用,注释中既包括标注(如指示箭头),又包括文字,如下图所示。因此,在添加一个注释时,我们至少考虑两点:

  • 标注的位置 xy,是一个二维元组,形如(2, 3)。
  • 文字的位置 xytext,是一个二维元组。

Annotation Basic

import numpy as np
import matplotlib.pyplot as plt

fig, ax = plt.subplots()
t = np.arange(0., 5., 0.01)
s = np.cos(2 * np.pi * t)
ax.plot(t, s, lw=2)  # lw表示线条宽度

ax.annotate('local max', xy=(2, 1), 
             xytext=(3, 1.5), 
             arrowprops={facecolor: 'black'})

ax.set_ylim(-2, 2)
plt.show()

在上面的例子中,xyxytext的坐标系被称为data coordinate,这是xy默认的参考系(参数是xycoords),而xytext的参考系(参数是textcoords)默认与xy相同。坐标系参数值如下表:

参数值坐标系
‘figure points’以图片为坐标系,左下角数值低
‘figure pixels’同上,区别是points和pixels,实际看不出什么差距
‘figure fraction’以图片为坐标系,数值是图片大小的比例,(0, 0)表示坐下,(1, 1)表示右上
‘axes points’以坐标轴为参考系,…
‘axes pixels’以坐标轴为参考系, …
‘axes fraction以坐标轴为参考系, …
‘data’使用坐标轴上的数据点,常用!例如上图中标注位置(2, 1)对应横坐标值为2,纵坐标值为1

例如,我们将文字的参考系改为axes fraction的,即:

ax.annotate('local max', xy=(3, 1), 
             xycoords='data', xytext=(0.8, 0.95),
             textcoords='axes fraction', 
             arrowprops=dict(facecolor='black'))

正如上面例子所示,用参数arrowprops来设置标注箭头的属性,该参数的值是一个字典(字典的键是属性名,值是属性值),相关属性如下表所示:

属性名介绍
width箭头的宽度
frac箭头长度的比例
headwidth箭头头部的宽度
shrink标注位置到文字的比例
**kwargs等等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值