matplotlib和seaborn无法显示中文
时间: 2025-06-20 08:08:08 浏览: 20
### 解决 Matplotlib 和 Seaborn 图表中中文显示问题
#### 配置 Matplotlib 支持中文
要使 Matplotlib 正确显示中文,需调整其字体设置以使用支持中文的字体。具体做法如下:
1. **安装中文字体**
可通过系统包管理器或手动下载并安装适合系统的中文字体文件。
2. **修改 Matplotlib 字体配置**
```python
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] # 设置黑体为默认字体
plt.rcParams['axes.unicode_minus']=False # 解决负号'-'显示为方块的问题
```
上述代码片段设置了 `rcParams` 参数中的 `'font.sans-serif'` 列表,指定了 SimHei (即黑体)作为无衬线字体选项之一;同时关闭了 Unicode 减号处理,防止可能出现的符号渲染异常[^1]。
#### 处理 Seaborn 中文乱码现象
由于 Seaborn 基于 Matplotlib 构建,在某些情况下会重写部分样式设定,这可能导致即使已经解决了 Matplotlib 的中文显示问题后,Seaborn 输出仍然存在乱码情况。针对此状况可采取以下措施:
- 在导入 seaborn 后立即执行相同或者类似的 rcParam 调整语句;
- 或者利用 seaborn 自带的主题定制功能来确保所选主题不会干扰到之前定义好的全局参数。
```python
import seaborn as sns
sns.set(font="SimHei", font_scale=1.0) # 设定全局使用的字体名称及大小缩放比例
```
这段代码展示了如何调用 `set()` 方法来自定义整个绘图环境下的字体属性,从而保证无论何时创建新的图形对象都能继承这些预设值[^2]。
#### 示例代码展示完整的解决方案
```python
# 导入必要的库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 对matplotlib做基础配置
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 如果需要也可以在这里对seaborn做一些额外的初始化工作
sns.set(style="whitegrid", palette="muted", font='SimHei')
# 测试数据集准备
tips = sns.load_dataset("tips")
# 绘制箱形图测试是否能正常显示中文标题和坐标轴标签
ax = sns.boxplot(x="day", y="total_bill", data=tips)
ax.set_title('不同日子的小费金额分布')
ax.set_xlabel('星期几')
ax.set_ylabel('总账单额');
```
该段脚本综合运用了前面提到的技术要点,并提供了一个简单的案例用于验证最终效果。当一切配置妥当时,应当能够看到带有清晰汉字标注的结果图像被成功呈现出来[^3]。
阅读全文
相关推荐


















