gpt4 book ai didi

Python matplotlib font_manager 使用替代字体

转载 作者:行者123 更新时间:2023-12-04 16:06:58 28 4
gpt4 key购买 nike

我正在尝试在 matplotlib 中使用替代字体。通过使用 font_manager,我可以获得 xlabel、ylabel 或 title 之类的东西,但我不知道如何更改行标签上的字体

我选择“Phosphate.ttc”字体,因为它很容易识别。


import matplotlib.font_manager as fm
import matplotlib.pyplot as plt

def lineChart():
my_font = fm.FontProperties(fname='/Library/Fonts/Phosphate.ttc')
day = ('1','2','3')
line1 = (10,20,30)
line2 = (30,20,10)

fig, ax = plt.subplots()
ax.plot(day, line1, label='this goes to default font')
ax.plot(day, line2, label='this is default font too')
ax.legend(loc='upper center')
plt.title('title display correct', fontproperties=my_font)
plt.xlabel('xlabel display correct', fontproperties=my_font)
plt.ylabel('ylabel display correct', fontproperties=my_font)
plt.savefig("font_test.png")

if __name__ == '__main__':
lineChart()

是否有全局设置替代字体? (没有将其安装到 matplotlib 模块路径)

或设置行标签以使用替代字体?

操作系统:OSX
python :3.6.4
matplotlib: 2.1.1

谢谢

最佳答案

您可以在legend 命令中设置字体。将相应行更改为:

ax.legend(loc='upper center', prop=my_font)

产生这张图片:

legend with custom font

编辑:

可以通过以下方式更改刻度标签的字体(在绘图命令后添加):

for tick in ax.xaxis.get_major_ticks():
tick.label.set_fontproperties(my_font)

for tick in ax.yaxis.get_major_ticks():
tick.label.set_fontproperties(my_font)

结果是这样的:

ticks with custom font

关于Python matplotlib font_manager 使用替代字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48349367/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com