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

  • Post author:
  • Post category: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

微信扫一扫

关注该公众号



版权声明:本文为weixin_35475608原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。