今天尝试做了用wordcloud模块来生成词云,我找了一些易烊千玺唱过的歌来进行处理,先看一下效果图:
首先要进行wordcloud的安装,作为一个新手这个安装我花了很长时间,直接pip安装会报错,
我的解决方法是访问下面的网址,根据你的电脑和py版本下载对应的whl文件
https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud
下载完成后,把whl文件放在pip路径下,输入下面的代码,记住代码的whl文件名一定是适合你的文件名,然后
pip install wordcloud-1.5.0-cp35-cp35m-win_amd64.whl
运行成功后再用一样的方法安装下面的几个模块
全部安装完毕后就可以开始敲代码了。
先要确认做成词云的文本,我是直接在网上找的易烊千玺唱过的歌。然后找一张想要的图片,让词云以图片为背景输出
代码如下:
#导入库 import matplotlib.pyplot as plt from wordcloud import WordCloud,ImageColorGenerator from scipy.misc import imread
进行中文编码时我之前用utf-8报错就改用gbk了,如果出现同样的问题可以尝试用gbk
默认背景图为长方形的,效果如下:
1 #1.读入txt文本数据 2 text = open('yang.txt','r',encoding='gbk').read() 3 print(text) 4 #读取背景图 5 coloring = imread('易烊千玺.jpg') 6 #生成词云图 7 wc = WordCloud( 8 #设置字体,不指定会出现乱码 9 font_path='C:WindowsFontssimkai.ttf', 10 #设置背景色 11 background_color = 'white', 12 #设置字体大小 13 max_font_size=50, 14 min_font_size=10, 15 ).generate(text)#把文本添加进去 16 #保存词云 17 wc.to_file('wordcloud.png') 18 #显示词云 19 plt.figure('yang') 20 #以图片的形式显示词云 21 plt.imshow(wc) 22 #关闭图像坐标系 23 plt.axis("off") 24 plt.show()
给词云加上背景图并按照背景颜色输出:
1 #读入txt文本数据 2 text = open('yang.txt','r',encoding='gbk').read() 3 print(text) 4 #读取背景图 5 coloring = imread('易烊千玺.jpg') 6 #生成词云图 7 wc = WordCloud( 8 #设置字体,不指定会出现乱码 9 font_path='C:WindowsFontssimkai.ttf', 10 #设置背景色 11 background_color = 'white', 12 #设置字体大小 13 max_font_size=50, 14 min_font_size=10, 15 mask =coloring#设置形状 16 ).generate(text)#把文本添加进去 17 image_colors = ImageColorGenerator(coloring)#引入图片的颜色 18 #保存词云 19 # wc.to_file('wordcloud.png') 20 new_wc = wc.recolor(color_func=image_colors) 21 new_wc.to_file('wordcloud2.png')#保存图片色 22 #显示词云 23 plt.figure('yang') 24 #以图片的形式显示词云 25 # plt.imshow(wc) 26 plt.imshow(new_wc) 27 #关闭图像坐标系 28 plt.axis("off") 29 plt.show()
上面是完整代码,有兴趣的可以尝试做一下~