Matplotlib中正确显示中文的四种方式
时间: 2023-12-04 18:05:43 浏览: 75
在 Matplotlib 中正确显示中文有以下四种方式:
1. 使用系统自带的字体:可以通过设置 rc 参数来使用系统自带的字体,例如:
```python
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体为黑体
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
```
2. 使用指定的字体:可以将字体文件下载到本地,然后通过设置 rc 参数来使用指定的字体,例如:
```python
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = ['Arial Unicode MS'] # 指定字体为 Arial Unicode MS
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
```
3. 使用第三方库:例如使用 matplotlib.font_manager 库来加载字体文件,然后设置 rc 参数使用指定的字体,例如:
```python
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
font = FontProperties(fname='/Library/Fonts/Songti.ttc') # 加载宋体字体文件
plt.rcParams['font.family'] = font.get_name()
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
```
4. 使用 LaTeX 公式:可以使用 LaTeX 公式来显示中文,需要先安装 LaTeX 环境,并在代码中使用 LaTeX 公式语法,例如:
```python
import matplotlib.pyplot as plt
plt.rcParams['text.usetex'] = True # 启用 LaTeX 公式
plt.rcParams['text.latex.preamble'] = r'\usepackage{CJKutf8}' # 加载 CJKutf8 包
plt.rcParams['font.family'] = 'serif' # 指定字体为 serif
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
fig, ax = plt.subplots()
ax.text(0.5, 0.5, r'\begin{CJK}{UTF8}{gbsn}中文测试\end{CJK}', ha='center', va='center', fontsize=20)
plt.show()
```
阅读全文