绘制词云需要用到第三方库wordcloud,通过配置参数可以绘制自己想要的词云形状,大小等。那我们就开始吧!
读取文本
读取想要绘制的文本信息,这里我找了一个电子书
f=open("D:/文档/高效能人士的7个习惯.doc","r",encoding="utf-8")
t=f.read()
分隔文本
需要将文本分成词语,才能绘制词云。使用第三方jieba库来分隔中文。
import jieba
w=jieba.lcut(t)
wd=" ".join(w)
需要注意wordcloud库绘制词云输入的文本必须为空格隔开的数据,这里jieba分词后获得的是逗号分隔的列表。使用" ".join(w)
修改为空格。
设置词云样式及大小
c = wordcloud.WordCloud(
width = 1000, height = 700,
background_color = "white",font_path="msyh.ttf"
)
设置宽1000,高700,背景色为白色,字体为微软雅黑,你问我为什么微软雅黑是这样色儿的,我只能告诉你在这里找:
在这里插入图片描述
然后复制想要的字体到任意目录,就能看到名字啦
[图片上传失败...(image-b42c60-1641547361910)]
c.generate(wd)
c.to_file("D:/文档/grwordcloud.png")
将文本绘制成词云后输出到指定位置,生成一个图片
拦路虎1
运行后提示wordcloud没有WordCloud对象??怎么肥事??想了想,有哪里不对,我还没下载库为啥编译器不提示我库不存在呢,检查后发现我的文件名命名成了wordcloud,和库重名了。。。起啥名不好
拦路虎2
修改文件名,下载好库文件,重启!果不其然的又出错了,这回卡在了编码上,提示utf-8不行
'utf-8' codec can't decode byte 0xc8 in position 0: invalid continuation byte
这不会啊,搜索了半天,从gbk2312改到了gb18030,都不行
没法子了,从根本解决问题吧,打开文档,点击另存为,保存为txt文件,然后选择其他编码,选择utf-8,保存。
如果发现输出全是方框,不要方
那就是你没有设置词云的默认字体,别问我为什么知道。手就是不受控制的删除了那一行,生成后全是框框。设置后就可以显示中文了。
网友评论