1.首先需要下载中文字体,推荐simsun,即宋体,地址如下
https://www.freefonts.io/download/simsun/
2.下载完要把字体文件放进字体目录,具体方法如下;
a.创建字体目录:sudo mkdir -p /usr/share/fonts/truetype/custom
b.复制字体文件到目录:sudo cp /path/to/simhei.ttf /usr/share/fonts/truetype/custom/
c.更新字体缓存:sudo fc-cache -f -v
d.验证是否安装成功:fc-list | grep SimHei
出现上面这个表示安装成功。
3.在Python程序中指定使用字体
#引入相关包
from matplotlib.font_manager import FontProperties
import sys
import io
# 设置标准输出为 UTF-8 编码
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
# 加载宋体字体
font_path = '/usr/share/fonts/truetype/SimSun/SIMSUN.ttf'
font = FontProperties(fname=font_path, size=12)
4.完整代码如下所示:
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
import sys
import io
# 设置标准输出为 UTF-8 编码
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
# 数据准备
categories = ['arc_star', 'efast', 'ours']
values = [10390728, 2334119, 2719488]
# 加载宋体字体
font_path = '/usr/share/fonts/truetype/SimSun/SIMSUN.ttf'
font = FontProperties(fname=font_path, size=12)
# 创建条形图,并指定颜色和宽度
bars = plt.bar(categories, values, color=['red', 'green', 'blue'], width=0.5)
# 在每个柱子上标注数值
for bar in bars:
yval = bar.get_height()
plt.text(bar.get_x() + bar.get_width()/2, yval, round(yval, 1), ha='center', va='bottom', fontproperties=font)
# 添加标题和轴标签
plt.title('总角点数量对比', fontproperties=font)
plt.xlabel('算法', fontproperties=font)
plt.ylabel('角点数量', fontproperties=font)
# 显示图表
plt.show()