几种“词云”制作工具效果评测
前言


在线交互式制作:图悦词云

http://www.picdata.cn/picdata/index.php#
就像上图一样,不用注册不用登陆,把文本粘贴进去就出来词云了,但是可选择的样式较少而且有水印,并且也不支持更多的参数调整。
主观评分:60分|能满足基本的词云制作
在线交互式制作:微思词云

下一位选手是微思词云
https://wis-ai.com/wordcloud
在线交互式制作:花火词云

http://hanabi.data-viz.cn/visualisation
Python制作:pyecharts

https://pyecharts.org/#/zh-cn/basic_charts?id=wordcloud%ef%bc%9a%e8%af%8d%e4%ba%91%e5%9b%be
data = [
("生活资源", "999"),
("供热管理", "888"),
("供气质量", "777"),
("生活用水管理", "688"),
("一次供水问题", "588"),
("交通运输", "516"),
("城市交通", "515"),
("环境保护", "483"),
("房地产管理", "462"),
("城乡建设", "449"),
("社会保障与福利", "429"),
......
]
当然这里的数字并不一定需要是频率,也可以是权重等数据。所以如果需要绘制词云的数据恰好是这种计算好的数据,尝试使用 pyecharts 吧。
主观评分75分|好看但也有一定限制
Python制作:wordcloud

现在登场的就是Python中制作词云最常用的wordcloud,说到wordcloud就不得不介绍jieba分词了,简单来说流程就是传一个txt进去,jieba分词得到结果后再传给wordcloud制作词云,同时支持比Pyecharts更多的自定义设置
from wordcloud import WordCloud
import matplotlib.pyplot as plt #绘制图像的模块
import jieba #jieba分词
path_txt='music.txt'
f = open(path_txt,'r',encoding='UTF-8').read()
# 结巴分词,生成字符串,wordcloud无法直接生成正确的中文词云
cut_text = " ".join(jieba.cut(f))
wordcloud = WordCloud(
#设置字体,不然会出现口字乱码,文字的路径是电脑的字体一般路径,可以换成别的
font_path="msyh.ttc",
#设置了背景,宽高
background_color="white",width=1000,height=1000).generate(cut_text)
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off")
plt.show()
从代码和词云效果来看,wordcloud由于支持修改的参数更多,所以也就需要更多的测试不同效果下的图片来找到适合这组数据最优的词云,比如我的这图看着就没有pyecharts生成的舒服,当然只要自己调整好了,就可以保存为一个脚本以后直接使用即可。
主观评分80分|使用最多的词云库
Python制作:stylecloud

最后介绍一个由wordcloud优化而来的库stylecloud,也需要搭配jieba分词使用,但是代码更加简介,生成的词云也更加美观,比如还是刚刚的文本,使用下面的代码即可
def jieba_cloud(file_name):
with open(file_name,'r',encoding='utf8') as f:
word_list = jieba.cut(f.read())
result = " ".join(word_list) #分词用 隔开
#制作中文云词
gen_stylecloud(text=result,font_path='msyh.ttc',output_name=file_name.split('.')[0] + '.png') #必须加中文字体,否则格式错误
if __name__ == "__main__":
file_name = 'music.txt'
jieba_cloud(file_name)
可以看到,在不添加任何配置项默认生成的词云比wordcloud更清爽一点,并且也支持更改颜色、背景、风格等。
主观评分85分|简单操作能画出好看的词云
结束语

以上就是一些绘制词云图的方法,你用过哪些?你又pick哪一款。当然绘制词云的方法远不止这些,如果你有生成词云更简单、更好看的方法,可以在留言中分享。不过虽然词云图很酷炫,但并不是所有数据都适合用词云图显示,例如数据量太少时很难布局出好看的词云图,此时就需要考虑其他的图表了。
如果文章对你有帮助,欢迎转发/点赞/收藏~
_往期文章推荐_