Matplotlib画图——修改中文字体为宋体,英文字体为新罗马

文章介绍了如何在Python的matplotlib库中通过导入自定义.ttf字体文件,解决字体混显问题,并提供了详细步骤,包括添加字体、配置参数和调整画图细节如刻度线方向和边框宽度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里直接使用一个合成好的.ttf文件来对全局字体进行修改:

文件下载地址在文末。

下载完成后,在代码中导入字体文件即可完成修改

from matplotlib import font_manager

# 导入文件
font_path = r"你的.ttf文件路径"
font_manager.fontManager.addfont(font_path)
prop = font_manager.FontProperties(fname=font_path)

设置config的相关参数

config = {
    "font.family": 'sans-serif',  # 使用无衬线体
    "font.sans-serif": prop.get_name(),  # 设置字体
    "font.size": 14,			 # 字号,大家自行调节
    'axes.unicode_minus': False  # 处理负号,即-号
}
plt.rcParams.update(config)

最后结果如图所示:

参考地址:完美解决Python的matplotlib库中英文字体混显问题 - 知乎 (zhihu.com)

里面有详细的文件合成方法,以及合成好的文件下载地址,感谢大佬分享!

补充部分画图操作(毕业论文要求):

1、刻度线朝内

    'xtick.direction': 'in',  # 设置坐标轴刻度线朝内
    'ytick.direction': 'in'

2、边框磅数设为1

bwith = 1 #边框宽度设置为1
ax = plt.gca()#获取边框
#设置边框
ax.spines['bottom'].set_linewidth(bwith)#图框下边
ax.spines['left'].set_linewidth(bwith)#图框左边
ax.spines['top'].set_linewidth(bwith)#图框上边
ax.spines['right'].set_linewidth(bwith)#图框右边

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值