1. 简介
matplotlib是Python中常用的绘图库之一,它提供了丰富的绘图功能。在matplotlib中,默认的字体是英文的,中文显示会出现乱码的问题。为了解决这个问题,我们需要修改matplotlib的默认字体。
2. 查找默认字体
要修改matplotlib的默认字体,首先需要知道当前默认的字体是什么。我们可以使用以下代码来查找默认字体:
import matplotlib.pyplot as plt
# 获取默认字体
default_font = plt.rcParams['font.sans-serif'][:]
print("默认字体:", default_font)
运行上述代码,我们可以得到默认字体的列表。
3. 安装中文字体
要显示中文,我们需要在系统中安装中文字体。以Windows系统为例,我们可以在网上下载一些常用的中文字体文件,然后将它们安装到系统中。
在安装完中文字体后,我们可以使用以下代码来查找已安装的中文字体:
from matplotlib.font_manager import fontManager
# 获取系统中所有已安装的字体
fonts = set([f.name for f in fontManager.ttflist])
print("已安装的字体:", fonts)
运行上述代码,我们可以得到已安装的字体列表,其中包括中文字体。
4. 修改默认字体
为了修改默认字体,我们需要找到一个合适的中文字体,并将其设置为matplotlib的默认字体。我们可以使用以下代码来修改默认字体:
import matplotlib.pyplot as plt
# 设置新的默认字体
plt.rcParams['font.sans-serif'] = ['SimHei'] # 将SimHei设置为默认字体
plt.rcParams['axes.unicode_minus'] = False # 解决负号显示为方块的问题
运行上述代码,我们就将"SImHei"字体设置为了matplotlib的默认字体。如果需要使用其他的中文字体,可以将对应的字体名称替换成想要使用的字体。
5. 示例
下面我们通过一个示例来演示如何修改默认字体:
import matplotlib.pyplot as plt
# 设置新的默认字体
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 生成数据
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# 绘制折线图
plt.plot(x, y)
# 添加标题和坐标轴标签
plt.title("折线图示例")
plt.xlabel("X轴")
plt.ylabel("Y轴")
# 显示图形
plt.show()
运行上述代码,我们可以看到生成的折线图中,标题和坐标轴标签的字体已经变成了中文。
6. 结论
通过以上步骤,我们成功修改了matplotlib的默认字体,并实现了中文显示。在实际应用中,根据需要选择合适的中文字体,并根据上述方法进行修改即可。