下面是详细讲解“在matplotlib的图中设置中文标签的方法”的完整攻略:
1. 安装字体文件
matplotlib默认不支持中文显示,因此需要先安装中文字体。
一般来说,可以到中文字体下载站中下载适用于自己操作系统的字体文件(一般为ttf格式),然后将字体文件复制到matplotlib字体目录下。
在Windows系统下的matplotlib字体目录为C:\Windows\Fonts
,在Linux系统下的matplotlib字体目录为/usr/share/fonts/truetype/
。
例如,我将“Adobe 宋体 Std L”字体安装在Linux系统下/usr/share/fonts/truetype/adobe/
目录下。
2. 修改matplotlib的配置文件
在matplotlib的默认配置中,字体名称和字体样式(如粗体、斜体等)的参数被指定为英文名,因此需要在配置文件中修改字体名称参数的默认值,将其中的英文名称改为对应的中文名称。
通过以下步骤可以编辑matplotlib配置文件:
- 执行以下命令打开matplotlib配置文件:
$ sudo vim /etc/matplotlibrc
- 在打开的文件中找到
font.family
和font.serif
,将它们的值改为对应的中文字体名称。
如将font.family
的值改为sans-serif
,并将font.serif
的值改为Adobe Ming Std L
。
3. 示例一:在散点图中添加中文标签
下面是一段代码,在matplotlib生成的散点图中添加中文标签:
import matplotlib.pyplot as plt
import numpy as np
# 设置中文字体
plt.rcParams['font.sans-serif'] = ['Adobe Ming Std L']
# 设置字体大小
plt.rcParams['font.size']=10
# 模拟数据
N=50
x=np.random.rand(N)
y=np.random.rand(N)
colors=np.random.rand(N)
# 在散点图中添加中文标签
plt.scatter(x,y,c=colors)
for i in range(N):
plt.annotate('中文标签',
xy=(x[i], y[i]), # 标注点的位置
xytext=(10,10), # 标注文本的位置偏移量
textcoords='offset points', # 标注文本的坐标基准
ha='center', # 文本基准线的位置
va='bottom') # 文本的垂直对齐方式
# 显示图形
plt.show()
其中,plt.annotate()
函数可以用来添加文字注释。
4. 示例二:在柱形图中添加中文标签
下面是一段代码,在matplotlib生成的柱形图中添加中文标签:
import matplotlib.pyplot as plt
# 设置中文字体
plt.rcParams['font.sans-serif'] = ['Adobe Ming Std L']
# 设置字体大小
plt.rcParams['font.size']=10
# 模拟数据
x=['A','B','C','D','E']
y=[3,7,5,9,12]
# 绘制柱形图
plt.bar(x,y)
# 在柱形图中添加中文标签
for i in range(len(x)):
plt.text(x[i],y[i]+0.1,'%d'%y[i],ha='center',va='bottom')
plt.text(x[i],-0.5,x[i],ha='center',va='top')
# 显示图形
plt.show()
其中,plt.text()
函数可以用来添加文本标签,通过它实现在柱形图上添加中文标签。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在matplotlib的图中设置中文标签的方法 - Python技术站