Matplotlib绘制文本

1年前 (2024-04-27)
Matplotlib 支持广泛的文本格式,比如 TTF 页面语言、Unicode 字符等。这是因为 Matplotlib 内置了 matplotlib.font_manager 字体管理器,它是一个实现了跨平台,并符 W3C 字体查找算法的字体。

TTF(TrueType Font) 是苹果公司和微软公司作开发的页面描述语言,用来描述字符的轮廓,结了光栅技术和矢量技术的优点。

用户可以对文本属性进行控制,比如字体大小、粗细、位置和颜色等。

与此同时,Matplotlib 也支持绘制 TeX 包含的数学符号。TeX 是一套功能强大、十分灵活的排版语言,它可以用来绘制文本、符号、数学表达式等。通过下表中的方法可以绘制出相应的内容:

text

在绘图区域的任意位置添加文本。

annotate

在绘图区域的任意位置添加带有可选箭头的注释。

xlabel

在绘图区域的 x 轴上添加标签。

ylabel

在绘图区域的 y 轴上添加标签。

title

为绘图区域添加标题。

figtext

在画布的任意位置添加文本。

suptitle

为画布中添加标题。


Matplotlib 使用pyplot模块中的 text() 函数绘制文本,函数的语法格式如下:

plt.text(x, y, string, weight="bold", color="b")

参数说明如下:

  • x: 注释文本内容所在位置的横坐标;

  • y:注释文本内容所在位置的纵坐标;

  • string:注释文本内容;

  • weight:注释文本内容的粗细风格;


下面使用 text() 函数会创建一个文本对象。示例如下:

import matplotlib.pyplot as plt

plt.rcParams["font.sans-serif"]=["SimHei"] #设置字体

plt.rcParams["axes.unicode_minus"]=False #正常显示负号

fig = plt.figure()

#添加绘图区域

ax = fig.add_axes([0,0,1,1])

#设置格式

ax.set_title('axes title')

ax.set_xlabel('xlabel')

ax.set_ylabel('ylabel')

# 3,8 表示x,y的坐标点;style设置字体样式为斜体;bbox用来设置盒子的属性,比如背景色

ax.text(3, 8, 'C语言中网网,编程爱好者都喜欢的网站', style='italic',bbox = {'facecolor': 'yellow'},fontsize=15)

#绘制数学表达式,用$符包裹

ax.text(2, 6, r'an equation: $E = mc^2$', fontsize = 15)

#添加文字,并设置样式

ax.text(4, 0.05, '网址:c.biancheng网站站点" rel="nofollow" />

 

python matplotlib文本绘制

图1:Matplotlib文本绘图