【1】引言
在进行hist()函数的学习进程中,了解到了subplot_mosaic()函数,在学习subplot_mosaic()函数的时候,又发现了text()和dict()函数。
经探究,text()和dict()函数有很多一起使用的场景,为此,我们就一起进行简单探究。
【2】官网教程
点击下方链接,直达官网:
https://matplotlib.org/stable/api/text_api.html#module-matplotlib.text
我们会看到关于text()函数有很多参数:
class matplotlib.text.Text(x=0, y=0, text='', *, color=None, verticalalignment='baseline', horizontalalignment='left', multialignment=None, fontproperties=None, rotation=None, linespacing=None, rotation_mode=None, usetex=None, wrap=False, transform_rotates_text=False, parse_math=None, antialiased=None, **kwargs)
实际上常用部分主要是标红的几个,text就是我们要输出的内容,x和y代表放置text的位置,**kwargs代表一些我们自定义的参数。其余参数均可以遵照默认即可。
在此理解的基础上,我们很快就可以进入一个示例进行学习,点击下方链接可以直达:
Figure size in different units — Matplotlib 3.9.2 documentation
【3】代码书写
为更好理解官网示例,首先我们写出下述代码:
import matplotlib.pyplot as plt #引入画图模块
import numpy as np #引入计算模块
kw = dict(ha="center", va="center", fontsize=2, color="darkgrey")
print(kw)
直接运行后的输出为:
图1
这里的dict()函数运行结果的确就是一个赋值的功能。
然后我们进一步,参照官网补齐下述代码。
plt.subplots(figsize=(6, 2)) #定义要画图 plt.text(0.5, 0.5, '6 inches x 2 inches', **kw) #输出text文本 plt.show() #输出图形
实际运行后发现似乎没有任何文本输出,经检查,发现原来是dict()函数里面的fontsize赋值较小,导致输出的文本较小,因此把dict()函数里面的fontsize赋值改为28,这使得完整代码为:
import matplotlib.pyplot as plt #引入画图模块
import numpy as np #引入计算模块
kw = dict(ha="center", va="center", fontsize=28, color="darkgrey") #dict()函数赋值
print(kw)
plt.subplots(figsize=(6, 2)) #定义要画图
plt.text(0.5, 0.5, '6 inches x 2 inches', **kw) #输出text文本
plt.show() #输出图形
输出图像为:
图2
由图2可见,dict()函数给fontsize的赋值在text()函数中被认可,有效控制了输出字符的大小。
【4】代码修改
在【3】中我们发现text()函数输出字符的大小可以由dict()函数提前预设,其实进一步也观察到输出字符的颜色也由dict()的color预设了。
在text()函数的官方说明中,我们曾看到color选项,这我们尝试在text()函数中再设置一次color:
plt.text(0.5, 0.5, '6 inches x 2 inches',color='g', **kw) #输出text文本
运行代码后报错:
图3
由图3可见,系统认为给text()函数输入了太多的颜色说明,因此无法绘制图像。
为此,做两个尝试,第一个是把color='g'放到**kw后,第二个是删除dict()函数中的color赋值。
首先尝试第一个:
kw = dict(ha="center", va="center", fontsize=28, color="darkgrey") #dict()函数赋值 print(kw) plt.subplots(figsize=(6, 2)) #定义要画图 plt.text(0.5, 0.5, '6 inches x 2 inches', **kw,color='g') #输出text文本
输出结果为图3。
然后尝试第二个:
kw = dict(ha="center", va="center", fontsize=28) #dict()函数赋值 print(kw) plt.subplots(figsize=(6, 2)) #定义要画图 plt.text(0.5, 0.5, '6 inches x 2 inches',color='g', **kw) #输出text文本
此时代码正常运行,输出图像为:
图4
下一步尝试修改text字符的位置,把va改为left:
kw = dict(ha="center", va="left", fontsize=28) #dict()函数赋值
这时候会发现代码无法运行,并且给出了说明:
图5
然后就把va改为top:
kw = dict(ha="center", va="top", fontsize=28) #dict()函数赋值
此时的运行输出图形为:
图6
图6表明,输出的text字符到了中偏下的位置,也就是va控制了一条水平线,text字符由水平线正中央移动到了正下方。
【6】总结
掌握了dict()和text()函数的基本用法。