Python绘制词云:解决可视化词云工具不完美之处
最近看到了可视化的词云,并且发现网上有很多这样的工具。然而,这些工具都不是很完美,有的不支持中文,有的对中文词频的统计很不合理,有的不支持自定义形状,所有的工具都不能自定义颜色。基于此,我在网上进行了查找,最终决定用 Python 来绘制词云。

先上python
词云图
需要模板
pip install jieba pip install wordcloud
登录后复制
还需要 Python 的另外两个东西,对于这两个东西我也不是很了解,是借鉴百度写上去的。
pip install scipy pip install matplotlib
登录后复制
由于使用 ubuntu 系统,所以不像使用 windows 那样麻烦,也不会出现那么多报错。
看到好多人在制作自己的词云,你是否有一丝丝的激动呢?如果有激动,那就赶紧去做吧,因为冲动才是第一创造力。
jieba是一款很恨很好用的中文分词模板
jeiba中文文档
Wordcloud 没有中文文档,不过我们可以进行猜测。如果英文不好,我们可以通过查看源代码来猜测。
先把我全部代码贡献上来
#-*-coding:utf-8—-*-
import jieba.analyse
导入 WordCloud 和 ImageColorGenerator 模块,它们来自 wordcloud 库。
from scipy.misc import imread
导入 matplotlib.pyplot 并将其重命名为 plt 。
class wc:
初始化自身,传入文本文件 txt_file、图像文件 img_file 和字体文件 font_file 。
打开文件 txt_file ,并以只读模式('r')将其赋值给 self.f 。
self.txt = self.f.read()
self.f.close()
self.txt 经过 jieba.analyse.extract_tags 且 topK 为 100 后得到了 self.tags。
#topK说白了就是返回几个关键词
将分词链接起来,并加上空格,因为英文是靠空格来分词的,即把 self.tags 中的元素用空格连接起来,代码为 ''.join(self.tags) 。
self.img = imread(img_file)
self.wc 等于 WordCloud ,其中 font_path 为 font_file ,background_color 为白色 ,max_words 为 100 ,mask 为 self.img ,max_font_size 为 80 。
###直接在这里进行猜###
字体文件路径由#font_path 来指示,由于 wordcloud 自带的字体无法支持中文,所以我们需要指定一个字体文件,不然输出的图片就全是框框。
默认情况下颜色是黑色,而我将其设置成了白色。
#max_words最大显示的词数
#mask 背景图片
#max_font_size 最大字体字号
self.word_cloud 被生成了,生成它的是 self.wc ,而生成的对象是 self.text 。
def show_wc(self):
ImageColorGenerator(self.img)赋值给了#img_color
plt 展示了 self.word_cloud
可以通过 plt.imshow 来实现让图片颜色与字体颜色相同的效果,这里使用的是 self.wc.recolor 方法,并且设置了 color_func 为 img_color 。
plt.axis("off")
plt.show()
if name=='main':
mywc 等于对“sanwen.txt”进行某种操作并生成“out.png”和“font.ttc”。
mywc.show_wc()
登录后复制
使用 wc.recolor,其参数为 color_func=img_color
« 上一篇
硬盘分区数据更改,dos下看不见硬盘的解决办法
下一篇 »
PHP获取客户端IP方法与猫修改IP操作详解