Matplotlib库学习之text(函数)
一、简介
ax.text
是 Matplotlib 中用于在指定的坐标位置添加文本的函数。它可以用于标注图中的特定点,或添加说明和标签等信息,是图形可视化中一个重要的工具。
二、语法和参数
语法
ax.text(x, y, s, fontdict=None, withdash=<deprecated>, **kwargs)
参数
-
x, y: 必选参数,表示文本的 x 和 y 坐标。
-
s: 必选参数,表示要显示的文本内容。
-
fontdict: 可选,字典类型,用于设置文本的字体属性,如字体大小、颜色等。
-
withdash: 已弃用,不建议使用。
-
kwargs: 可选,其他可选参数用于进一步自定义文本的显示效果。
常用的
kwargs
参数包括:- fontsize: 字体大小,可以是整数或字符串。
- color: 文本颜色,可以是字符串或 RGB/HEX 值。
- rotation: 旋转角度,单位为度。
- ha: 水平对齐方式,如
'center'
,'left'
,'right'
。 - va: 垂直对齐方式,如
'center'
,'top'
,'bottom'
。 - bbox: 用于设置文本周围的边框属性,接受字典类型。
- boxstyle: 控制边框的形状和样式。常见的值有:
'square'
: 矩形边框。'circle'
: 圆形边框。'round'
: 带圆角的矩形边框。'larrow'
,'rarrow'
,'darrow'
: 分别是左、右、双向箭头形状。'round4'
: 圆角矩形,圆角半径比'round'
大。
- facecolor: 设置文本框的背景颜色,可以是字符串或 RGB/HEX 值。
- edgecolor: 设置文本框的边框颜色,可以是字符串或 RGB/HEX 值。
- linewidth: 设置边框的宽度,值为一个数字。
- linestyle: 设置边框的线条样式,常见的值有
'solid'
,'dashed'
,'dashdot'
,'dotted'
。 - alpha: 设置透明度,值为 0 到 1 之间的浮点数。值越小,透明度越高。
- pad: 控制文本与边框之间的填充(间距),值为一个数字,单位是点(points)。
- capstyle: 设置边框的端点样式。常见值有
'butt'
,'round'
,'projecting'
。 - joinstyle: 设置边框连接处的样式。常见值有
'miter'
,'round'
,'bevel'
。
- boxstyle: 控制边框的形状和样式。常见的值有:
返回值
返回一个 Text
对象,表示添加到图形中的文本。
三、实例
3.1 在图中添加简单文本
import matplotlib.pyplot as plt
# 创建图形
fig, ax = plt.subplots()
# 添加数据点
ax.plot([1, 2, 3, 4], [10, 20, 25, 30], marker='o')
# 在图中添加文本
ax.text(2, 20, s="Point (2, 20)", fontsize=12, color='blue')
# 显示图形
plt.show()
输出:
显示一张折线图,其中在点 (2, 20) 处显示文本 "Point (2, 20)",文本为蓝色,字体大小为12。
3.2 添加带背景框的文本
import matplotlib.pyplot as plt
# 创建图形
fig, ax = plt.subplots()
# 添加数据点
ax.plot([1, 2, 3, 4], [10, 20, 25, 30], marker='o')
# 在图中添加带背景框的文本
ax.text(3, 25, "Point (3, 25)", fontsize=14, color='white', bbox=dict(facecolor='red', alpha=0.5))
# 显示图形
plt.show()
输出:
显示一张折线图,其中在点 (3, 25) 处显示文本 "Point (3, 25)",文本为白色,背景框为红色,透明度为0.5。
3.3 旋转和对齐文本
import matplotlib.pyplot as plt
# 创建图形
fig, ax = plt.subplots()
# 添加数据点
ax.plot([1, 2, 3, 4], [10, 20, 25, 30], marker='o')
# 在图中添加旋转和对齐的文本
ax.text(1, 10, "Point (1, 10)", fontsize=12, rotation=45, ha='right', va='bottom', color='green')
# 显示图形
plt.show()
输出:
显示一张折线图,其中在点 (1, 10) 处显示文本 "Point (1, 10)",文本旋转45度,水平对齐为右对齐,垂直对齐为底部对齐,文本颜色为绿色。
四、注意事项
ax.text
的x
和y
坐标是相对于数据坐标系的,而不是相对于图形的绝对位置。- 当使用
bbox
参数设置文本背景时,可以通过字典中的facecolor
和alpha
来控制背景颜色和透明度。 - 可以使用
fontsize
来控制文本的大小,rotation
来控制文本的旋转角度,以适应不同的可视化需求。