python图表宋体
时间: 2025-07-04 18:44:43 浏览: 13
### 如何在 Python Matplotlib 中设置图表字体为宋体
为了使 Matplotlib 支持中文并设置字体为宋体,可以通过修改 `rcParams` 参数或者指定字体文件的方式完成。以下是具体实现方式:
#### 方法一:通过全局配置设置字体
可以在代码开头引入 Matplotlib 并调整其默认字体样式。
```python
import matplotlib.pyplot as plt
from matplotlib import rcParams
# 设置全局字体为宋体
rcParams['font.sans-serif'] = ['SimSun']
rcParams['axes.unicode_minus'] = False # 解决负号 '-' 显示异常的问题
plt.figure(figsize=(6, 4))
plt.plot([1, 2, 3], [4, 5, 6])
plt.title('测试标题', fontsize=16) # 使用宋体作为标题字体
plt.xlabel('X 轴标签') # X轴标签也采用宋体
plt.ylabel('Y 轴标签') # Y轴标签同样使用宋体
plt.show()
```
上述代码设置了全局字体为宋体,并解决了可能出现的特殊字符显示问题[^1]。
---
#### 方法二:手动加载字体文件
如果需要更精确地控制使用的字体版本,可以直接导入 `.ttf` 字体文件。
```python
from matplotlib.font_manager import FontProperties
import matplotlib.pyplot as plt
# 加载本地 SimSun.ttc 字体文件
font_path = 'C:/Windows/Fonts/SimSun.ttf' # 替换为你实际的字体路径
font = FontProperties(fname=font_path)
plt.figure(figsize=(6, 4))
plt.plot([1, 2, 3], [4, 5, 6])
plt.title('测试标题', fontproperties=font, fontsize=16)
plt.xlabel('X 轴标签', fontproperties=font)
plt.ylabel('Y 轴标签', fontproperties=font)
plt.xticks(fontproperties=font) # 设置刻度字体
plt.yticks(fontproperties=font)
plt.show()
```
这种方法允许用户自定义字体来源,尤其适用于某些特定场合下无法依赖系统自带字体的情况。
---
#### 英文字体配合设置
当图表中既有中文又有英文时,可分别设定两种语言对应的字体族。例如让中文保持宋体而英文切换至 Times New Roman:
```python
import matplotlib.pyplot as plt
from matplotlib import rcParams
rcParams['font.family'] = 'serif'
rcParams['font.serif'] = ['Times New Roman']
rcParams['font.sans-serif'] = ['SimSun']
plt.figure(figsize=(8, 5))
plt.plot([0, 1], [0, 1], label='Line')
plt.legend(prop={'family': 'Times New Roman'})
plt.title('中英混排示例\nExample of Chinese and English Mixed Display', fontsize=16)
plt.text(0.5, 0.7, '这是一个例子 This is an example.', fontsize=14)
plt.show()
```
此段脚本展示了如何在同一张图里协调不同语种间的视觉效果。
---
#### 注意事项
- 如果遇到错误提示类似于 “Font family [‘sans-serif’] not found”,则表明当前环境中缺少所指明的字体资源[^2]。
- 推荐先确认目标机器上已存在所需的 TrueType 或 OpenType 格式的字体文件再执行相应操作。
阅读全文
相关推荐



















