python 显示中文_Python生成词云图(绕坑)

b9c20ce0afc46abf954b1d6f4d70917c.png

作者:小灰辉 Python编程吧

60942b6f532e6fdd72db618c26c2e80e.png


相信大家对Python生成词云图再熟悉不过了,今天说说作为新手的我都踩到了哪些坑!


Wordcloud是基于Python开发的词云图生成库,功能强大并使用简单,但wordcloud默认是不支持显示中文的,文本里的中文会被显示成方框。

代码如下:

  1. import matplotlib.pyplot as plt
  2. from wordcloud import WordCloud
  3. import jieba
  4. filenema = open(r"5000条数据整合.txt",encoding='utf-8').read()
  5. wordlist_after_jieba = jieba.cut(filenema,cut_all=True)
  6. wl_space_split = " ".join(wordlist_after_jieba)
  7. my_wordcloud = WordCloud().generate(wl_space_split)
  8. plt.imshow(my_wordcloud)#绘制图片
  9. plt.axis("off")#消除坐标轴
  10. plt.show()#显示词云图
  11. my_wordcloud.to_file('词云图.png')#保存图片

运行结果:

c2d6782a08e36964a5f16c6ead314ab6.png


查了材料才发现及原因是wordcloud默认字体不支持中文,那就好办了,应该我们每个人的电脑里应该都有这样一个路径:C:WindowsFonts,里面含有了许多的字体,而wordcloud类初始化函数有个设置字体的参数:fontpath即字体的路径,把支持中文字体的路径传给「font_fath」,接下来进行代码的修改及测试。

d21a59dd49152820b88f2cbd883cf7b9.png

修改后的代码如下:

  1. import matplotlib.pyplot as plt
  2. from wordcloud import WordCloud
  3. import jieba
  4. filenema = open(r"5000条数据整合.txt",encoding='utf-8').read()
  5. wordlist_after_jieba = jieba.cut(filenema,cut_all=True)
  6. wl_space_split = " ".join(wordlist_after_jieba)
  7. font = r'C:WindowsFontssimfang.ttf'#设置中文字体,否则词云图可能不显示中文
  8. my_wordcloud = WordCloud(font_path=font).generate(wl_space_split)
  9. plt.imshow(my_wordcloud)#绘制图片
  10. plt.axis("off")#消除坐标轴
  11. plt.show()#显示词云图
  12. my_wordcloud.to_file('词云图.png')#保存图片


运行结果:

55dc737fc04538f94da6830f2b87b621.png


不难发现,相对第一个程序我们在第9行多了设置中文字体的路径代码,以及第10行的WordCloud()中添加了字体设置,最终成功显示了我们想要的词云图。

Python风口,一起编程吧!

49e18e495f1e5794070f3f67d631c6a7.png

v2-4caa21f9cf40099af5e299053fe8c5fc_b.bmp

微信扫一扫
关注该公众号

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值