0
点赞
收藏
分享

微信扫一扫

最新版python wordcloud生成词云中文乱码的解决方法


最新版python wordcloud生成词云中文乱码的解决方法

文章目录

  • ​​最新版python wordcloud生成词云中文乱码的解决方法​​
  • ​​1、模块安装:​​
  • ​​生产词云的例子:​​
  • ​​在Windows找字体文件​​
  • ​​修改wordcolud.py里面的字体文件路径​​
  • ​​**找到你的wordcloud.py文件并打开**​​
  • ​​**找到如下图的第28行所示内容**​​
1、模块安装:

#  1、使用pip安装pip install wordcloud #  2、使用清华镜像安装pip install wordcloud -i https://pypi.tuna.tsinghua.edu.cn/simple

直接使用此模块发现中文时会乱码:

最新版python wordcloud生成词云中文乱码的解决方法_乱码

下面介绍两种解决方法

① 在使用的时候指定所需的字体ttf文件

wordcloud.WordCloud(font_path='myfont.ttf').generate(xxxx)

② 修改模块源码,彻底解决此问题

最新版python wordcloud生成词云中文乱码的解决方法_解决方法_02

生产词云的例子:

data = open('国家综合立体交通网规划纲要.txt', 'r', encoding='utf-8').read()
wordlist = jieba.lcut(data)
strs = ' '.join(wordlist)
# 生成词云
wc = wordcloud.WordCloud(font_path="msyh.ttc",width=1000,height=700,background_color="white",stopwords={'的','和','与'})
wc.generate(strs)
wc.to_file("词云图.png")

在Windows找字体文件

上面我们用的font_path="msyh.ttc"这个字体是存在系统变量的一个

这个变量取值的是字体,msyh表示微软雅黑,直接定位的字体目录C:\Windows\Fonts,找到微软雅黑字体,所有我们可以直接用,如果用其他的字体会出现中文乱码

原因是:wordcloud的默认字体不支持中文,我们需要设置一个中文格式的路径,通过设置字体的参数font_pathgithub来设置路径。
例如

w=wordcloud.WordCloud(width=1000,height=700,font_path="msyh.ttc",background_color="white")

我们也可以自己修改wordcloud.py文件里面的字体的只向路径

直接定位的字体目录C:\Windows\Fonts

最新版python wordcloud生成词云中文乱码的解决方法_python_03

这个里面的字体都是在系统变量里面的,我们在

w=wordcloud.WordCloud(width=1000,height=700,font_path="msyh.ttc",background_color="white")

这个里面font_path=“字体文件”可以用我们在上面C:\Windows\Fonts里面找到文件名字相同的都可以用,因为这个里面的字体文件都是在系统变量里面的,可以自己用

msyh.ttc就是在里面,所以我们可以直接用

注意有些电脑可能使font_path=“msyh.ttf”,我们要去字体文件里面找到对应的名字

修改wordcolud.py里面的字体文件路径

我们也可以把字体目录C:\Windows\Fonts里面的字体

拷贝到wordColud安装的文件夹中,文件夹路径:anaconda(python)–>lib–>site-packages–>wordcolud,如下图:

最新版python wordcloud生成词云中文乱码的解决方法_乱码_04

其中矩形框出来的是wordColud默认的字体,椭圆形框的是我们在字体目录C:\Windows\Fonts里面拷贝或者下载的字体。

b、修改wordcolud.py文件中的字体设置,打开改路径下的wordcolud.py文件,找到下图的所示的框出来的这一行(29行)

将系统的DroidSansMono.tff修改为simhei.tff即可

找到你的wordcloud.py文件并打开
找到如下图的第28行所示内容

最新版python wordcloud生成词云中文乱码的解决方法_解决方法_05

可以看到,该行末尾有一个xx.ttf 的字符串,这个就是词云默认的字体!我们要做的,就是把它换成我们需要的中文字体。

最新版python wordcloud生成词云中文乱码的解决方法_python_06


举报

相关推荐

0 条评论