当前位置:   article > 正文

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

需要注意的地方在于数据格式的处理
数据的处理有三个层次
第一个层次是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#解决保存图像显示的方格问题
  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/301522?site
推荐阅读
相关标签
  

闽ICP备14008679号