下面是完美解决Pycharm中matplotlib画图中文乱码问题的攻略。
问题描述
当我们在Pycharm中使用matplotlib进行画图时,如果涉及到中文字符,很容易出现乱码的问题。这让我们在阅读和展示代码的过程中感到十分不便,因此需要解决它。
解决方法
方法一、导入matplotlib的字体库
我们可以使用以下代码导入 matplotlib 的字体库:
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
这段代码主要是使用了 rcParams
对 matplotlib 进行设置。其中,font.sans-serif
的值设定为 'SimHei'
,这是指定中文显示的字体,axes.unicode_minus
的值设为 False
,则可以正常显示负号。这样一来,我们就可以正常显示中文了。
下面是一个绘图的示例代码:
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
x = [1, 2, 3, 4, 5]
y = [4, 8, 5, 7, 6]
plt.plot(x, y)
plt.title('这里是中文标题')
plt.show()
方法二、手动添加字体
这种方法的思路是手动添加中文字体到 matplotlib。由于 matplotlib 默认的字体库中没有中文字体,因此我们需要将中文字体手动添加进去。
以下是具体的操作步骤:
-
首先,在电脑的字体目录中找到一种中文字体,比如
simhei.ttf
。 -
找到 Python 的安装目录,比如
C:\Python37
。 -
在 Python 的安装目录中找到
Lib\site-packages\matplotlib\mpl-data\fonts\ttf
目录。 -
将找到的中文字体复制到该目录下。
-
在使用 matplotlib 的时候,指定中文字体的名称,比如:
```
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"C:\Python37\Lib\site-packages\matplotlib\mpl-data\fonts\ttf\simhei.ttf") #指定SimHei字体
plt.title('这里是中文标题', fontproperties=font) #使用该字体输出中文
```
下面是一个绘图的示例代码:
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"C:\Python37\Lib\site-packages\matplotlib\mpl-data\fonts\ttf\simhei.ttf")
x = [1, 2, 3, 4, 5]
y = [4, 8, 5, 7, 6]
plt.plot(x, y)
plt.title('这里是中文标题', fontproperties=font)
plt.show()
总结
以上两种方法都可以方便地解决 Pycharm 中 matplotlib 画图中文乱码的问题。当然,也可以在需要显示中文的地方直接使用 Unicode 编码进行输出,但是这种方法比较繁琐,不够便捷。因此,建议使用上述方法来解决这个问题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:完美解决Pycharm中matplotlib画图中文乱码问题 - Python技术站