赞
踩
做出的词云图如下
在应用python词云前,需要一些必要的准备工作
第一,我们需要知道python词云是什么?
python词云是用字体的大小展示数据应用次数多少的工具,字体越大,代表着数据应用次数越多,反之亦然。
下面图片大家感受一下
在数据分析中,我们常用词云来分析群众对一个事物的印象
比如第一张图片中,对西安的印象第一眼最明显的就是西安和兵马俑,用词云将数据可视化能够使数据更加直观明显
第二,我们要预先下载python的一些模块
词云模块 wordcloud
作图模块 matplotlib
图像处理模块 scipy
第三,我们需要准备大量的数据,我的数据如下
抓取的猫眼评分top100的电影
然后开始写代码做词云
附上代码块
import pymysql
from wordcloud import WordCloud,ImageColorGenerator#词云模块
import matplotlib.pyplot as plt#作图模块
from scipy.misc import imread#图像处理模块
#处理中文乱码问题
plt.rcParams['font.sans-serif']=['SimHei']#设置默认字体
plt.rcParams['axes.unicode_minus']=False#解决保存图像显示的方格问题
#连接数据
conn=pymysql.connect(host='localhost',user='root',passwd='123456',db='movie',charset='utf8')
cursor=conn.cursor()
sql='select actor from maoyan'
cursor.execute(sql)
actor_list=cursor.fetchall()
print(actor_list)#元组形式
#数据分列
actor_name_list=[item[0] for item in actor_list]
print(actor_name_list)
#join函数
actor_text=','.join(actor_name_list)
print(actor_text)
#设置背景图片
coloring=imread('girl.png')
#定义字体
font='C:\Windows\Fonts\simkai.ttf'
#WordCloud()实例化词云
#generate()输入词云文本
my_wordcloud=WordCloud(font_path=font,max_font_size=400,background_color='black',mask=coloring).generate(actor_text)
#显示词云图
plt.imshow(my_wordcloud)
#不显示坐标轴
plt.axis('off')
#显示
plt.show()
需要注意的地方在于数据格式的处理
数据的处理有三个层次
第一个层次是actor_list
actor_list是从数据库直接查询出来的数据,可以看出该数据并非标准的元组格式(有两个括号)
所以我们要对actor_list进行初步处理,将其变为标准化的数组或者元组
用列表生成器actor_name_list=[item[0] for item in actor_list]
actor_name_list的图片
而词云所需要的数据是需要纯文本的数据
这时候需要利用用join函数
Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
join函数的例子
然后我们用join函数处理actor_name_list
actor_text=(‘,’).join(actor_name_list)
actor_text就是词云所需要的数据啦
还有一个特别需要注意的地方是下面的代码块每次词云分析的时候都需要带上,为了避免中文乱码的措施
#处理中文乱码问题
plt.rcParams['font.sans-serif']=['SimHei']#设置默认字体
plt.rcParams['axes.unicode_minus']=False#解决保存图像显示的方格问题
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。