当前位置:   article > 正文

解决jupyter以及windows系统中pycharm编译器画图的中文乱码问题大全_jupyter打开后乱码怎么办

jupyter打开后乱码怎么办

一、jupyter环境下中文乱码问题解决

我们在jupyter的notebook中使用matplotlib画图的时候,经常性的会遇见一些中文乱码显示□的情况,如下所示:
在这里插入图片描述
在此,网上给出的方法大多是以下的解决方法:

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']  #解决中文显示乱码问题
plt.rcParams['axes.unicode_minus']=False  #解决坐标轴负数的负号显示问题
  • 1
  • 2
  • 3
  • 4

但是,我们发现有时候按照上面的步骤进行后,依然还是中文乱码~

这时候就需要我们思考一下,为什么根据网上的方法依然解决不了这个问题。

其实,很有可能是因为我们没有SimHei或者你设置的其它字体,这时候我们有两种选择,一种是下载你所没有的字体,放到你的字体库中,第二种方法是使用你所拥有的字体。

那么问题这时候又来了,怎么查看自己所有用的字体呢?博主给出以下代码解决。

import matplotlib
a=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])
for i in a:
	print(i)
  • 1
  • 2
  • 3
  • 4

运行结果如下:
在这里插入图片描述
以上就是我们已经拥有的字体。这时候我们只需要将拥有的字体名称与‘SimHei’或者你设置的没有的字体替换即可。

替换之后我们可以发现,现在中文乱码就消失了。
在这里插入图片描述
这里最后再给出其它两种方法:
方法一:

import matplotlib
font = {
‘family’:‘SimHei’,
‘weight’:‘bold’,
‘size’:12
}
matplotlib.rc(“font”, **font)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

方法二:

from matplotlib import pyplot as plt
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=14)
x = [1,2,3,4]
y = [3,2,1,3]
plt.plot(x,y)
plt.xlabel(“x轴标签”,fontproperties=font)
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

虽然方法多多,但是一般我们最常用的便是我刚开始讲解的方法,而且非常有效。

二、windows系统pycharm编译器画图中文乱码问题解决

简单的方法和jupyter的解决方法一致。

这里再给出一种一劳永逸的解决方法,具体如下:

首先输入以下代码,获得我们的matplotlib安装路径:

import matplotlib
print(matplotlib.matplotlib_fname()) #将会获得matplotlib包所在文件夹
  • 1
  • 2

我的安装路径是:D:\Anaconda\lib\site-packages\matplotlib\mpl-data\matplotlibrc

我的是Anaconda环境,当然python环境操作是一样的。

然后进入C:\Windows\Fonts中,找到简体字(黑体常规),然后复制它。
在这里插入图片描述

然后进入我们通过上面代码输出的matplotlib安装路径中,按照我的是D:\Anaconda\Lib\site-packages\matplotlib\mpl-data\fonts\ttf。有的人可能直接在D:\Anaconda\Lib\site-packages\matplotlib\mpl-data\fonts目录下就有。最后我们只需要粘贴我们赋值的SimHei字体即可。
在这里插入图片描述
最后,我们进入到D:\Anaconda\lib\site-packages\matplotlib\mpl-data\matplotlibrc中,即:
在这里插入图片描述
这里采用记事本打开方式即可。
在这里插入图片描述
找到#font.family:在这里我已经取消了#的注释,然后我们在下面加一行font.family: simhei,或者向我一样取消font.family: sans-serif的注释,然后再下面的font.sans-serif:里面加一个SimHei。

在这里插入图片描述
这时候中文乱码问题就彻底解决了~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/387560
推荐阅读
相关标签
  

闽ICP备14008679号