3.6 Python 数据可视化——添加注释文本

注释文本是图表的重要组成部分,它能够对图形进行简短描述,有助于用户理解图表。
注释文本按注释对象的不同主要分为指向型注释文本和无指向型注释文本,其中指向型注释
文本一般是针对图表某一部分的特定说明,无指向型注释文本一般是针对图表整体的特定说
明。下面将介绍添加指向型注释文本和无指向型注释文本的方法。
3.6.1 添加指向型注释文本
指向型注释文本是指通过指示箭头的注释方式对绘图区域的图形进行解释的文本,它一
般使用线条连接说明点和箭头指向的注释文字。pyplot 模块中提供了 annotate() 函数为图表添
加指向型注释文本,该函数的语法格式如下所示 :
annotate(s, xy, * args, ** kwargs)
该函数常用参数的含义如下。
·s :表示注释文本的内容。
·xy :表示被注释的点的坐标位置,接收元组(x,y)。
·xytext :表示注释文本所在的坐标位置,接收元组(x,y)。
·xycoords :表示 xy 的坐标系统,默认值为“data”,代表与折线图使用相同的坐标系统。
·arrowprops :表示指示箭头的属性字典。
·bbox :表示注释文本的边框属性字典。
arrowprops 参数接收一个包含若干键的字典,通过向字典中添加键值对来控制箭头的显
示。常见的控制箭头的键包括 width、headwidth、headlength、shrink、arrowstyle 等,其中键
arrowstyle 代表箭头的类型,该键对应的值及对应的类型如图 3-14 所示。

在 3.5.2 节绘制的正弦和余弦曲线图中添加指向型注释文本,增加的代码如下。

# 添加指向型注释文本
plt.annotate(" 最小值 ",
        xy=(-np.pi / 2, -1.0),
        xytext=(-(np.pi / 2), -0.5),
        arrowprops=dict(arrowstyle="->"))
运行程序,效果如图 3-15 所示。
3.6.2 添加无指向型注释文本
无指向型注释文本是指仅使用文字的注释方式对绘图区域的图形进行说明的文本。
pyplot 模块中提供了 text() 函数为图表添加无指向型注释文本,该函数的语法格式如下
所示 :
text(x, y, s, fontdict=None, withdash=<deprecated parameter>, ** kwargs)
该函数常用参数的含义如下。
·x, y :表示注释文本的位置。
·s :表示注释文本的内容。
·fontdict :表示控制字体的字典。
·bbox :表示注释文本的边框属性字典。
·horizontalalignment 或 ha :表示水平对齐的方式,可以取值为 center、right 或 left。
·verticalalignment 或 va :表示垂直对齐的方式,可以取值为 center、top、bottom、baseline
或 center_baseline。
在 3.6.1 节绘制的正弦和余弦曲线图中添加无指向型注释文本,增加的代码如下。
# 添加无指向型注释文本
plt.text(3.10, 0.10, "y=sin(x)", bbox=dict(alpha=0.2))
运行程序,效果如图 3-16 所示。
多学一招:matplotlib编写数学表达式
matplotlib 中自带 mathtext 引擎,通过该引擎可以自动识别使用 annotate() 或 text() 函数传
入的数学字符串,并解析成对应的数学表达式。数学字符串有固定的格式,它要求字符串以
美元符号“ $ ”为首尾字符,且首尾字符中间为数学表达式,基本格式如下所示 :
'$ 数学表达式 $'
为保证字符串中的所有字符能以字面的形式显示,数学字符串需要配合“r”使用。下面
是使用 matplotlib 编写的一个简单的数学字符串 :
r'$\alpha > \beta$'
以上字符串中“\alpha”和“\beta”对应常见的小写希腊字母 α β ,其对应的数学表达
式如下 :
α > β
此外,“\alpha”和“\beta”的后面还可以增加上标和下标,其中上标使用符号“^”表示,
下标使用符号“_”表示。例如,将 α 的下标设为 i 、将 β 的下标设为 i 的示例如下 :
r'$\alpha_i > \beta_i$'
以上示例对应的数学表达式如下 :
α i > β i
matplotlib 中使用“ \frac{}{}”可以编写分数形式的数字字符串, “\frac”后面的两个大
括号分别代表分数的分子和分母,示例代码如下 :
r'$\frac{3}{4}$'
以上示例对应的数学表达式如下 :

3 /4

此外,还可以编写分数嵌套的数学字符串,代码如下 :
r'$\frac{5 - \frac{1}{x}}{4}$'
以上示例对应的数学表达式如下 :
5 1
x
4

猜你喜欢

转载自blog.csdn.net/qq_43416206/article/details/132262929