作者:小灰辉 Python编程吧
相信大家对Python生成词云图再熟悉不过了,今天说说作为新手的我都踩到了哪些坑!
Wordcloud是基于Python开发的词云图生成库,功能强大并使用简单,但wordcloud默认是不支持显示中文的,文本里的中文会被显示成方框。
代码如下:
-
import matplotlib.pyplot as plt
-
from wordcloud import
WordCloud
-
import jieba
-
filenema = open(r"5000条数据整合.txt",encoding='utf-8').read()
-
wordlist_after_jieba = jieba.cut(filenema,cut_all=True)
-
wl_space_split =
" ".join(wordlist_after_jieba)
-
my_wordcloud =
WordCloud().generate(wl_space_split)
-
plt.imshow(my_wordcloud)#绘制图片
-
plt.axis("off")#消除坐标轴
-
plt.show()#显示词云图
-
my_wordcloud.to_file('词云图.png')#保存图片
运行结果:
查了材料才发现及原因是wordcloud默认字体不支持中文,那就好办了,应该我们每个人的电脑里应该都有这样一个路径:
C:WindowsFonts
,里面含有了许多的字体,而wordcloud类初始化函数有个设置字体的参数:fontpath即字体的路径,把支持中文字体的路径传给「font_fath」,接下来进行代码的修改及测试。
修改后的代码如下:
-
import matplotlib.pyplot as plt
-
from wordcloud import
WordCloud
-
import jieba
-
filenema = open(r"5000条数据整合.txt",encoding='utf-8').read()
-
wordlist_after_jieba = jieba.cut(filenema,cut_all=True)
-
wl_space_split =
" ".join(wordlist_after_jieba)
-
font = r'C:WindowsFontssimfang.ttf'#设置中文字体,否则词云图可能不显示中文
-
my_wordcloud =
WordCloud(font_path=font).generate(wl_space_split)
-
plt.imshow(my_wordcloud)#绘制图片
-
plt.axis("off")#消除坐标轴
-
plt.show()#显示词云图
-
my_wordcloud.to_file('词云图.png')#保存图片
运行结果:
不难发现,相对第一个程序我们在第9行多了设置中文字体的路径代码,以及第10行的WordCloud()中添加了字体设置,最终成功显示了我们想要的词云图。
Python风口,一起编程吧!
微信扫一扫
关注该公众号
版权声明:本文为weixin_35475608原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。