python + wordcloud实现任意形状标签云
来源:互联网 发布:java手机短信接口 编辑:程序博客网 时间:2024/05/22 05:25
公司最新App——AirOh已经上线三个多月,积累了首批原始用户。后台分别对用户和功能进行了统计分析,得到了丰富的数据结果。除了常规的表格、曲线、柱状图及污染热图等展示形式,亦对数据进行标签化处理,得到了非常有意思的展现形式。结果如下:
纯文字标签云
图片叠加效果标签云
从两张图的对比来看,标签云的效果比表格形象,用户更加容易理解,并带有一些小心思的创新。
目前,python + wordcloud实现标签云效果的教程很多,但由于机子的配置等一些问题,还是趟了一些坑,做下记录,供查询。
简要流程
系统配置:Ubuntu 14.04, Python 2.7
安装python插件
- sudo apt-get install python-tk
注意:一定要提前安装该插件,不然会出现报错
错误:wordcloud no display name and no $DISPLAY environment variable
主要原因是matplotlib插件中plt.imshow(wordcloud)中默认backend设置为Agg,而改GUI无法加载图片, 修改/etc/matplotlibrc
backend : TkAgg
- sudo apt-get install python-numpy
- sudo apt-get install python-matplotlib
运行事例代码
- 这里就不赘述,直接拷贝一段我试验过的一段代码
from wordcloud import WordCloudimport PILimport matplotlibimport matplotlib.pyplot as pltimport numpy as np###Note:Following 3 lines are for the problem of Chinese Font display###from pylab import mplmpl.rcParams['font.sans-serif'] = ['SimHei']mpl.rcParams['axes.unicode_minus'] = Falsedef wordcloudplot(txt):###Note:一定要加上以下三行代码。最早把这三行注释掉,ubuntu系统缺少matplotlib支持中文字体生成的标签云中文显示为口,查了很多材料,都没有明确说明这个问题最好加上这三行,或者自己添加为自己喜欢的字体!!!### path='msyh.ttf' path=unicode(path, 'utf8').encode('gb18030') alice_mask = np.array(PIL.Image.open('air.jpg')) wordcloud = WordCloud(font_path=path, background_color="white", margin=5, width=1800, height=800, mask=alice_mask, max_words=2000, max_font_size=60, random_state=42) #wordcloud = wordcloud.generate(txt) wordcloud = wordcloud.fit_words(txt) wordcloud.to_file('output.png') plt.imshow(wordcloud) plt.axis("off") plt.show()def main(): a=[] f=open(r'android.txt','r').readlines() for line in f: tempArr = line.strip()split(" ") tempArr[0] = tempArr[0].decode("utf-8") tempArr[1] = int(tempArr[1]) a.append(tempArr) wordcloudplot(a)if __name__=='__main__': main()
Note:
wordcloud支持两种标签云生成方式,针对不同的txt格式,其中
generate方法输入数据格式为字符串,直接输入文本流即可,实现原理可查看方法实现txt = open("test.txt",'r').readlines()
fit_words方法输入数据,已经对数据进行了处理,比如格式为
txt = [(u'空气龙',50000),(u'出行地图',4000),(u'社区PK',609029),...]
参考链接:
- 个人网站
- 【下载】msyh.tff
- https://www.zhihu.com/question/28975391
1 0
- python + wordcloud实现任意形状标签云
- 使用python的wordcloud包实现中文标签云制作
- 实现任意形状连接关系
- Python +wordcloud 生成词云
- Python wordcloud之中文词云
- python wordcloud
- python本地版wordCloud字符云生成
- python-wordcloud模块生成词云
- python使用wordcloud创建词云
- Python实现中文词云(wordcloud),根据背景图片生成词云
- python运用jieba和wordcloud库简单实现对QQ聊天记录制作词云
- Python实现微信好友签名词云的构建(itchat、jieba、wordcloud)
- python中文分词,生成标签云,生成指定形状图片标签云
- NLP01-python的wordcloud实现中文词云小例
- python词云 wordcloud 入门
- python词云 wordcloud入门
- python wordcloud的使用
- python安装wordcloud
- Android动画-Tweened animation(补间动画)
- 小程序-利用递归判断数组是否递增
- 递归与分治策略
- TypeScript迭代器
- Struts2+Spring+Hibernate 三大框架的合并集成
- python + wordcloud实现任意形状标签云
- 随机森林算法
- Oracle笔记——限定查询和排序
- windows培训的记录
- android 第三方框架的使用
- python静态方法及类方法
- 严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderLis
- 微信小程序之仿微信漂流瓶
- html 字符实体