首页 > 编程语言 >最新版python wordcloud生成词云中文乱码的解决方法

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

时间:2022-11-13 11:32:06浏览次数:51  
标签:文件 font python 乱码 wordcloud msyh 字体 词云 最新版


最新版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


标签:文件,font,python,乱码,wordcloud,msyh,字体,词云,最新版
From: https://blog.51cto.com/u_15870497/5847716

相关文章

  • python输出带颜色字符串
     字体颜色print('\033[1;30m%s\033[0m'%("*"*116))print('\033[1;31m%s\033[0m'%("*"*116))print('\033[1;32m%s\033[0m'%("*"*116))print('\033[1;34m%s\033......
  • python pip手动安装
    pip官网:https://pypi.org/project/pip/     #切换到下载的包目录下pythonsetup.pyinstall ......
  • python检测网络连接状态的四种方法
    第一种importsocketipaddress=socket.gethostbyname(socket.gethostname())ifipaddress=='127.0.0.1':returnFalseelse:returnTrue缺......
  • redis的数据类型和python操作redis
    一redis的五种数据类型类型string(字符串类型)hash(哈希类型)list(列表类型)set(无序集合)zset(有序集合)说明是Redis中最为基础的数据存储类型,它在Redis中是二进......
  • python的getattr()方法,理解
    fromCNN_Datasets.R_AimportdatasetsDataset=getattr(datasets,args.data_name)#这里的getattr()方法#csdn解释#getattr(object,name[,default])......
  • python winpcap
    fromwinpcapyimportWinPcapDevicesfromwinpcapyimportWinPcapUtilsimportdpktimporttimeimportdatetime#list_device=WinPcapDevices.list_devices()......
  • python-pillow图像处理
    一、图像处理pillow是pythonimaginglibrary的简称。常见的尺寸/格式/色彩/旋转等处理。引用是为fromPILimportImage。PIL库安装目录在/Library/Frameworks/Python.fr......
  • HMM算法python实现
    基础介绍,后5项为基础5元素Q=['q0','q1','q2','q3']#状态集合States,共N种状态V=['v0','v1']#观测集合Observatio......
  • python监听串口双方收发消息内容
    使用说明使用VSPD建立一组虚拟串口查看MCU的端口号与波特率并修改python程序配置,运行即可看到双方收发的效果通过串口助手连接到虚拟串口并向其发送消息即Python显示......
  • python的垃圾回收机制
    python对内存回收引用几个概念计数器:当python程序运行时,会根据数据类型的不同找到相对应的结构体,根据结构体中的字段来进行创建相关的数据。然后将对象添加到refchain双向......