首页  > 教育解读  > plt怎么显示汉字

plt怎么显示汉字

2025-05-23 17:14:05
雨夜思念
雨夜思念已认证

雨夜思念为您分享以下优质知识

要在 `matplotlib` 中正确显示汉字,可通过以下两种方式实现:

一、全局设置字体

通过修改全局参数 `font.sans-serif` 和 `axes.unicode_minus`,可使所有图表元素(如标题、坐标轴标签)显示中文。

```python

import matplotlib.pyplot as plt

import numpy as np

设置中文字体为黑体

plt.rcParams['font.sans-serif'] = ['SimHei']

解决负号显示为方块的问题

plt.rcParams['axes.unicode_minus'] = False

示例数据

x = np.linspace(-2, 2, 100)

plt.plot(x, x, label='一次函数')

plt.plot(x, x 2, label='二次函数')

plt.plot(x, x 3, label='三次函数')

添加标签和标题

plt.xlabel('x轴')

plt.ylabel('y轴')

plt.title('函数图像示例')

显示图例

plt.legend()

显示图形

plt.show()

```

注意事项:

1. 若系统中未安装黑体,需先安装该字体或选择其他支持中文的字体(如宋体 `SimSun`、Arial Unicode MS 等);

2. 修改 `font.sans-serif` 时,需将字体名称用英文括起来,并用逗号分隔。

二、局部设置字体(针对单个图表)

使用 `fontproperties` 参数为特定元素(如标题、坐标轴标签)指定字体。

```python

import matplotlib.pyplot as plt

import numpy as np

from matplotlib.font_manager import FontProperties

示例数据

x = np.linspace(-2, 2, 100)

plt.plot(x, x, label='一次函数')

plt.plot(x, x 2, label='二次函数')

plt.plot(x, x 3, label='三次函数')

创建标题属性

title_font = FontProperties(fname="/path/to/your/font.ttf") 替换为字体文件路径

plt.title("函数图像示例", fontproperties=title_font)

添加坐标轴标签

plt.xlabel('x轴', fontproperties=title_font)

plt.ylabel('y轴', fontproperties=title_font)

显示图例

plt.legend()

显示图形

plt.show()

```

注意事项:

1. 需指定系统中存在的字体文件路径(如 `SimHei.ttf`),不同系统路径可能不同;

2. 此方法仅影响当前图表,关闭后需重新设置。

三、系统级配置(适用于所有用户)

若需永久解决字体问题,可修改 `matplotlibrc` 配置文件。

Windows:

- 路径:`%Python_Home%Libsite-packagesmatplotlibmpl-datamatplotlibrc`

- 修改内容:

```

font.family: AR PL UMing CN, SimHei, sans-serif

axes.unicode_minus: False

```

- 示例:在 `font.sans-serif` 行添加 `AR PL UMing CN`(宋体)和 `SimHei`(黑体)。

macOS:

- 编辑 `matplotlibrc` 文件(路径可通过 `matplotlib.matplotlib_fname()` 获取)

- 修改内容:

```

font.family: Arial Unicode MS, sans-serif

axes.unicode_minus: False

```

- 示例:在 `font.sans-serif` 行添加 `Arial Unicode MS`。

四、补充说明

若使用 Jupyter Notebook,建议在代码开头添加:

```python

%matplotlib inline

```

或者设置配置文件:

```python

import matplotlib

matplotlib.rcParams['font.sans-serif'] = ['SimHei']

matplotlib.rcParams['axes.unicode_minus'] = False

```

部分字体(如 `SimHei`)可能受系统字体缓存影响,修改后需重启 Python 或 Jupyter Notebook。

通过以上方法,可灵活实现图表中汉字的显示。