Python使用wordcloud词云库——中文乱码

当使用Python的wordcloud库生成词云时,若处理中文会出现乱码。原因是默认字体DroidSansMono不支持中文。解决方案包括:在代码中指定支持中文的ttf字体文件,如simfang.ttf,或者直接替换wordcloud.py中的FONT_PATH路径。通过这两种方法,可以成功生成中文词云。
  1. Python使用wordcloud词云库代码如下:
from wordcloud import WordCloud  # 词云库
import matplotlib.pyplot as plt  # 数学绘图库

#读数据
with open("F:\\英文.txt", "r", encoding='utf-8') as f:
    text = f.read()

wc1 = WordCloud(
    background_color="white",
    width=1000,
    height=860,
    scale=20,
    margin=2)
wc2 = wc1.generate(text)

plt.imshow(wc2)
plt.axis("off")
plt.savefig('F:\\词云.jpg', dpi=600, bbox_inches='tight')
plt.show()

  1. 如果此时是英文,那么生成的词云为:
    在这里插入图片描述
    文件夹也会有存储的’词云.jpg’:
    在这里插入图片描述

  2. 如果将英文换成中文,显示效果如下:
    在这里插入图片描述

  3. 中文乱码原因:WordCloud词云库初始化函数中的默认字体文件DroidSansMono不支持中文
    在这里插入图片描述

在这里插入图片描述
5. 怎么做:

  • 在当前运行的py代码文件中,修改此次运行的字体文件
  • 直接修改wordcloud.py的FONT_PATH。替换成可以支持中文的ttf文件

无论是哪一种,都需要下载支持中文的ttf,百度simfang.ttf直接下载就好。
(1)修改当前运行词云的py文件
在这里插入图片描述
(2)直接替换默认ttf文件
将下载的simfang.ttf文件放置到和wordcolud.py相同路径下,然后修改wordcolud.py的FONT_PATH路径即可
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值