赞
踩
最近在学习python的可视化,在展示文字信息时,偶然看到词云这种可视化方式,觉得很有意思。
刚好快过年啦,快了用词云图来拜年。
先来看下什么是词云图
这是一张从微信朋友圈中爬下来的好友的地理位置,然后生成的词云图。
python生成词云的方法,可以借助两个包:pyecharts、wordclound,这两个包都可以实现词云功能,两种方法实现起来都比较简单
安装pyecharts,pyecharts包中的WordCloud模块,可以用来生成词云
pip install pyecharts
示例
from pyecharts import WordCloud
attr = ['深圳','广州','上海','西安','北京']
values = [80,20,10,50,5]#设置词的权重
wc = WordCloud(width = 800,height = 600)
wc.add('',attr,values,word_size_range = [20,100])
wc.render(r'wordcloud.html')
结果
安装wordcloud
pip install wordcloud
from wordcloud import WordCloud
text = u'gis,arcgis,map,webgis,webgl,opengl,openlayers,leaflet,postgis,qgis'
wc = WordCloud(
background_color = 'white',
max_words = 200,
min_font_size = 15,
max_font_size = 50,
width = 400
)
wc.generate(text)
wc.to_file('gis.png')
将上面第二段代码中,text的内容改为中文,
text = u'恭喜发财,新年快乐,大吉大利,平平安安,阖家团圆,身体安康,五福临门,早生贵子,吉祥如意,财源广进'
居然报错
ValueError: We need at least 1 word to plot a word cloud, got 0.
于是在字符串前面加上’u’,声明字符串是unicode编码,这次没报错,但生成的图为乱码,
经查是因为wordcloud默认的字体导致,WordCloud支持指定通过字体路径设置字体,参数为font_path,可以在系统文件夹中找一个中文字体来设置
更新后的代码为:
from wordcloud import WordCloud
text = u'恭喜发财,新年快乐,大吉大利,平平安安,阖家团圆,身体安康,五福临门,早生贵子,吉祥如意,财源广进,天长地久,生意兴隆,岁岁平安,诸事顺利,笑口常开'
wc = WordCloud(
background_color = 'white',
max_words = 200,
min_font_size = 15,
max_font_size = 50,
width = 400,
font_path = r'C:\Windows\Fonts\simhei.ttf'
)
wc.generate(text)
wc.to_file('happynewyear.png')
# img = wc.to_image()
# img.show()
这里要用到其它几个包:matplotlib、numpy、PIL等
from wordcloud import WordCloud import matplotlib.pyplot as plt from PIL import Image import numpy as np text = u'恭喜发财,新年快乐,大吉大利,平平安安,阖家团圆,身体安康,五福临门,早生贵子,吉祥如意,财源广进,天长地久,生意兴隆,岁岁平安,诸事顺利,笑口常开' alice_mask = np.array(Image.open('alice.png')) wc = WordCloud( background_color = 'white', max_words = 200, min_font_size = 15, max_font_size = 50, width = 400, font_path = r'C:\Windows\Fonts\simhei.ttf' ) wc.generate(text) plt.imshow(wc,interpolation='bilinear') plt.axis('off') plt.figure() plt.show(alice_mask,cmap = plt.cm.gray, interpolation = 'bilinear') plt.axis('off') plt.show()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。