python作图输出中文时,无法对中文字体进行加粗

请教下经验人士,python matplotlib 作图时,调用"plt.rcParams['font.family']='Times New Roman, KaiTi'",可以同时输出楷体的中文和新罗马的英文,但是此时,通过weight设置字体加粗,好像没有效果,请问 有什么方法可以解决吗? 谢谢了

# 这个没效果吗?
plt.rcParams['font.family'] = ['Times New Roman', 'KaiTi']
plt.rcParams['font.weight'] = ['bold', 'normal']

# 那试试这样呢
plt.rcParams['font.family'] = ['Times New Roman', 'KaiTi']
plt.rcParams['font.weight'] = {'Times New Roman': 'bold', 'KaiTi': 'normal'}

# 再试试这个
plt.rcParams['font.weight']='bold'
# 改为
plt.rcParams['fontweight']='bold'。

# 都不好使的话,有没有可能是字体文件本身不支持粗体

【以下回答由 GPT 生成】

可以通过以下步骤来实现在Python中使用加粗的中文字体进行作图:

  1. 首先,确保你已经安装了所需的字体文件。如果没有安装你所需要的字体文件,可以在官方网站上下载并安装。

  2. 导入所需的库,包括matplotlib和font_manager。

  3. 使用font_manager库的findfont函数来检查字体文件的路径。比如,你可以使用以下代码来查找楷体的字体文件路径:

from matplotlib import font_manager
font_path = font_manager.findfont(fontname='KaiTi')
print(font_path)
  1. 设置字体属性。使用KaiTi字体作为fontname,并设置weight参数为'bold',可以实现加粗字体的效果。
import matplotlib.pyplot as plt

plt.rcParams['font.family'] = 'KaiTi'
plt.rcParams['font.weight'] = 'bold'
  1. 在作图时,使用中文字符串时,matplotlib会自动使用设置的字体属性进行渲染。
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.xlabel('横轴')
plt.ylabel('纵轴')
plt.title('加粗字体示例')
plt.show()

这样就可以在Python中使用加粗的楷体字体进行作图了。

如果你无法找到字体文件的路径或者无法设置加粗字体属性,你可以尝试使用其他的字体文件,或者查找其他的解决方案来达到你想要的效果。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^