赞
踩
相信大家经常看到一些非常炫酷的词云图,就是用大小不一的词语来组成一个图像。
网络上有为词云图进行定义:词云图由词汇组成类似云的彩色图形,用于展示大量文本数据。例如,制作用户画像,对用户进行聚类,实现精细化营销。
而用python,如何进行词云图的绘制呢,接下来我将附上我今年参加比赛进行人物画像分析部分的词云图,及其相关代码,一起来看一看吧!
本文使用了一些比较高级的方法,不再是普通的绘制词云图,而是使用图片遮罩,即从右边的图片里提取颜色,在相应的位置作出词云图,如左图所示
- #安装需要使用的相关的包
- from PIL import Image
- import numpy as np
-
- from wordcloud import WordCloud
- from wordcloud import ImageColorGenerator
- import matplotlib.pyplot as plt
接下来,我们将准备好文本,读入系统,随后你就可以看到你的文本会被系统自动分割成词语
- filename = "04.txt"#将文本命名
- with open(filename) as f:
- mytext4= f.read()
-
- mytext4
在上述代码中,我们安装了ImageColorGenerator,它是一个提取图片色彩的作用,这可以帮助我们创建与图像颜色匹配的词云图,也就是说,使用我们自己上传的彩色图像作为蒙版,将其颜色作为彩色映射,下面的代码就是进行这个操作
- character_mask = np.array(Image.open('222.jpeg'))
- image_colors = ImageColorGenerator(character_mask)
-
既然之前的源文本和色彩遮罩都已经设置好了,那么接下来就要对绘制的内容进行设置啦。下述代码是利用WordCloud对我们的词云图进行参数设置,具体对应内容如下:
background_color:背景颜色
font_path:字体(大家一定要根据自己电脑的系统设置格式,macOS和windows或许有不同)
relative_scaling:和字体大小的关联性
prefer_horizontal:表示在水平如果不合适,就旋转为垂直方向,该值越大,表示水平的词语越多
mask=character_mask:我们一开始设置的颜色遮罩
generate(mytext4):我们选定的绘制词云图的文本
其他参数大家根据英文名称也可以大致看出来,建议大家可以更具需求,多修改修改参数数值试一试,会有不同的发现,也可以更好的理解这些参数的意义,绘制出最合适的词云图
- wordcloud = WordCloud(background_color='white',font_path='PingFang.ttc', height=400,
- width=800,scale=20,prefer_horizontal=0.9999,max_words=800,max_font_size=80,min_font_size=4,relative_scaling=0.3,
- mask=character_mask
- ).generate(mytext4)
- plt.figure(figsize=[12, 10])
- plt.imshow(wordcloud.recolor(color_func= image_colors), alpha=1)
- plt.axis('off')
-
- plt.savefig('图20.jpg', dpi=600, bbox_inches='tight', quality=95)
- plt.show()
使用matplotlib.pyplot即可绘制出词云图,并将其保存在指定的位置里,命名为'图20.jpg',最后plt.show()就可以显示该词云图啦
当然如果大家觉得画出来的图有点单调,只能看出一个人形的话,我当时的操作是,和原图进行一个叠底,效果如下:
当然,这是我当时论文的需求,所以我这样操作了一下,感觉图片会更好看,最终做成什么效果还是看大家的需要。这篇文章就到这里啦,感谢您的阅读!
文中图片来源:XUEFEI(公众号、小红书)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。