python词云分析top100电影的演员分布

做出的词云图如下
这里写图片描述
在应用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#解决保存图像显示的方格问题
  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值