美文网首页想发就发每日自由写-欢迎投稿简友广场
Python程序运行matplotlib制作图标,图例无法显示中

Python程序运行matplotlib制作图标,图例无法显示中

作者: 爱吃青豆的牛肉粉 | 来源:发表于2023-03-06 08:43 被阅读0次

学习经验交流

1.问题来源

出自Python编程从入门到实践(第二版)第15章生成数据,276页

15.2.1 修改标签文字和线条粗细

原文代码为:

import matplotlib.pyplot as plt

squares = [1, 4, 9, 16, 25]

fig, ax = plt.subplots()

ax.plot(squares,linewidth=3)

# 设置图表标题并给坐标轴加上标签。

ax.set_title("平方数",fontsize=24)

ax.set_xlabel("值", fontsize=14)

ax.set_ylabel("值的平方", fontsize=14)

# 设置刻度标记的大小。

ax.tick_params(axis='both', labelsize=14)

plt.show()

我自己在运行后发现生成的图标,无法正常显示图例的中文标题,如图:

2.问题原因

经过网上资料查询,发现问题在于:书本展示的代码中设置了图表标题的属性,但没有设置中文字体,可能导致无法正常显示标题。

3.解决方法

通过以下方式,设置中文字体,解决了该问题,代码如下:

import matplotlib.pyplot as plt

#导入FontProperties模块,控制字体属性

from matplotlib.font_manager import FontProperties

#设置中文字体

font = FontProperties(fname = r"/System/Library/Fonts/PingFang.ttc", size=14)

squares = [1, 4, 9, 16, 25]

fig, ax = plt.subplots()

ax.plot(squares,linewidth=3)

# 设置图表标题并给坐标轴加上标签,指定字体对象。

ax.set_title("平方数",fontproperties=font, fontsize=24)

ax.set_xlabel("值",fontproperties=font, fontsize=14)

ax.set_ylabel("值的平方",fontproperties=font, fontsize=14)

# 设置刻度标记的大小。

ax.tick_params(axis='both', labelsize=14)

plt.show()

运行结果如图:

以上便是该问题的解决方案之一,相关代码还可以更简洁,感兴趣的可以在修改修改,也可以有其他的解决途径,遇到相似问题的小伙伴可以一起来交流指正哦。

相关文章

网友评论

    本文标题:Python程序运行matplotlib制作图标,图例无法显示中

    本文链接:https://www.haomeiwen.com/subject/mgupldtx.html