matplotlib 画图中文显示为方框
时间: 2023-10-29 21:57:50 浏览: 294
要解决Matplotlib画图中文显示为方框的问题,可以采取以下方法:
方法一:使用字体设置
您可以使用Matplotlib的字体设置功能来解决中文显示为方框的问题。首先,您需要确定您所使用的字体文件路径,在Python中执行以下代码可以找到Matplotlib的安装路径:
```python
import matplotlib
matplotlib.matplotlib_fname()
```
执行上述代码后,您将获得Matplotlib的安装路径。接下来,您可以将以下代码添加到您的绘图脚本中,用于设置字体:
```python
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] #指定中文字体
plt.rcParams['axes.unicode_minus'] = False #解决负号'-'显示为方块的问题
```
这里使用了'SimHei'字体作为中文字体,您也可以根据需要选择其他中文字体。添加了这些代码后,再执行绘图代码,就会发现中文可以正确显示了。
方法二:使用系统字体
如果您希望使用系统已经安装的字体来显示中文,可以使用以下代码将系统字体设置为Matplotlib的默认字体:
```python
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=14) #指定系统字体文件路径和字体大小
plt.rcParams['font.family'] = font.get_name() #设置系统字体为Matplotlib的默认字体
plt.rcParams['axes.unicode_minus'] = False #解决负号'-'显示为方块的问题
```
这里使用了宋体字体文件'simsun.ttc'作为系统字体,您可以根据自己的系统和需求选择其他字体。添加了这些代码后,再执行绘图代码,中文应该可以正确显示了。
需要注意的是,以上方法仅适用于Matplotlib版本2.2及以上。如果您使用的是较旧版本的Matplotlib,可以考虑升级到最新版本以获得更好的中文支持。
Matplotlib官方文档: https://matplotlib.org/stable/tutorials/introductory/usage.html#sphx-glr-tutorials-introductory-usage-py
Stack Overflow: https://stackoverflow.com/questions/18000793/matplotlib-showing-boxes-instead-of-chinese-characters
CSDN博客: https://blog.csdn.net/guotianqing/article/details/96331857
阅读全文