python画图不显示汉字
时间: 2025-05-30 21:42:49 浏览: 29
### 解决 Python Matplotlib 中文字符显示问题
在处理 Python 的 Matplotlib 库时,如果遇到中文字符无法正常显示或者出现乱码的情况,这通常是由于字体设置不当引起的。以下是几种有效的解决方案。
#### 方法一:通过 `FontProperties` 设置中文字体
可以利用 `matplotlib.font_manager.FontProperties` 来指定特定的中文字体文件路径或名称来加载所需的字体[^1]:
```python
from matplotlib import font_manager, rcParams
import matplotlib.pyplot as plt
fp = font_manager.FontProperties(fname='/path/to/your/chinese/font.ttf')
plt.xlabel('横坐标', fontproperties=fp)
plt.ylabel('纵坐标', fontproperties=fp)
plt.title('图表标题', fontproperties=fp)
plt.show()
```
#### 方法二:遍历并打印系统可用字体列表
为了找到合适的中文字体,可以通过下面这段代码查看当前环境中已安装的所有 TrueType 字体,并从中挑选适合的一个[^2]:
```python
from matplotlib import pyplot as plt
import matplotlib
fonts = sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])
for font in fonts:
print(font)
```
#### 方法三:编辑配置文件 `matplotlibrc`
另一种方法是在用户的 `.matplotlib/matplotlibrc` 文件里添加一行或多行关于字体族(`font.family`)和其他相关属性(比如 `axes.unicode_minus=False`)的定义[^3]:
```bash
vi ~/.matplotlib/matplotlibrc
# 添加如下内容到文件末尾
font.family : SimHei # 或者其他支持中文的字体名
axes.unicode_minus : False
```
#### 方法四:临时更改全局默认字体风格
还可以直接修改 `matplotlib.rcParams` 参数字典中的相应项,在整个会话期间生效而无需重启解释器[^4]:
```python
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimSun'] # 使用宋体作为无衬线字体
plt.rcParams['axes.unicode_minus']=False # 正常显示负号
```
以上四种方式都可以有效解决 Matplotlib 绘图过程中遇到的中文字符不显示的问题。可以根据个人喜好和具体需求选择最合适的一种来进行尝试。
阅读全文
相关推荐


















