六、数据可视化—Wordcloud词云(爬虫及数据可视化)

六、数据可视化—Wordcloud词云(爬虫及数据可视化)

也是一个应用程序
http://amueller.github.io/word_cloud/

Wordcloud词云,在一些知乎,论坛等有这样一些东西,要么做封面,要么做讲解,进行分析,看起来有极客风的

分享一些可用于的词云的图标如下
https://blog.csdn.net/zhuxiao5/article/details/107096681
https://fontawesome.dashgame.com/

有遮罩的词云,可以通过文字与轮廓合成一个有图像的词云,也可以根据图片自身的私彩,生成词云的

还可以使用图标穿插

使用定制颜色

可以使用中文,形成分布

自己精简,通过图片的遮罩,形成自己词云的效果

需要安装jieba库,当使用中文的时候,中文分词工具
matplotlib库
Wordcloud 库可能装不上,安装失败,使用另外的方法进行安装,离线安装

使用校园网,发现可以安装Wordcloud,若安不上,可以使用离线模式
先升级pip 再离线安装

http://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud
在下方的连接上,有非常多的关于python的扩展包
http://www.lfd.uci.edu/~gohlke/pythonlibs/

在这里插入图片描述

至此Wordcloud安装完成后

#-*- codeing = utf-8 -*- 
#@Time : 2020/11/27 14:17
#@Author : 招财进宝
#@File : testCloud.py
#@Software: PyCharmimport  jieba                               #分词(将一个句子分成很多个词语)
from matplotlib import pyplot as plt        #绘图,数据可视化,点状图、柱状图等科学绘图,和echarts不同,不是直接用于网站,而是生成图片
from wordcloud import WordCloud             #词云,形成有遮罩效果的
from PIL import Image               #用来做图像处理的(官方默认)
import numpy as np                  #矩阵运算
import sqlite3                      #数据库#准备词云所需的文字(值准备了字)
#先有词,即从数据库中得到词
con = sqlite3.connect('movie.db')
cur = con.cursor()
#看要做那个词云,字太多,估计也显示不出来多少
sql = 'select instroduction from movie250'          #注意拼写是否有误
data = cur.execute(sql)
text = ''
for item in data:text = text +item[0]       #此处是将其连接成一个字符串#print(item[0])
#print(text)                    #此处是一个字符串了

希望让人自由风华绝代一部美国近现代史怪蜀黍和小萝莉不得不说的故事失去的才是永恒的 最美的谎言最好的宫崎骏,最好的久石让 拯救一个人,就是拯救整个世界诺兰给了我们一场无法盗取的梦永远都不能忘记你所爱的人每个人都要走一条自己坚定了的路,就算是粉身碎骨 爱是一种力量,让我们超越时空感知它的存在如果再也不能见到你,祝你早安,午安,晚安英俊版憨豆,高情商版谢耳朵小瓦力,大人生天籁

#关闭
cur.close()
con.close()#词云是按照词来进行统计的,这个使用jieba自动进行词频统计
cut = jieba.cut(text)   #将一个字符串进行分割
#print(cut)              #返回cut是一个对象<generator object Tokenizer.cut at 0x000002644AAECF48>
#' '.join(cut)  以指定字符串空格‘ ’作为分隔符,将 cut 中所有的元素(的字符串表示)合并为一个新的字符串
string = ' '.join(cut)         #此处将其对象cut变成字符串,可在下方显示
print(string)                   #此时可以打印如下

希望 让 人 自由 风华绝代 一部 美国 近现代史 怪 蜀黍 和 小萝莉 不得不 说 的 故事 失去 的 才 是 永恒 的 最美 的 谎言 最好 的 宫崎骏 , 最好 的 久 石 让 拯救 一个 人 , 就是 拯救 整个 世界 诺兰 给 了 我们 一场 无法 盗取 的 梦 永远 都 不能 …

#可以自己找图建议轮廓清晰,后面要是白色背景

在这里插入图片描述
在这里插入图片描述

img = Image.open(r'.\static\assets\img\tree.jpg')   #打开遮罩图片
img_arry = np.array(img)        #将图片转换为数组,有了数组即可做词云的封装了
wc = WordCloud(background_color='white',   #背景必须是白色mask = img_arry,            #传入遮罩的图片,必须是数组font_path = "STXINGKA.TTF"  #设置字体,(字体如何找,可以在C:/windows/Fonts中找到名字)
)
#
wc.generate_from_text(string)         #从哪个文本生成wc,这个文本必须是切好的词

在这里插入图片描述

注意要使用中文的字体,否则下方显示图片上,会显示不出中文

#绘制图片
fig = plt.figure(1)             #1表示第一个位置绘制
plt.imshow(wc)                  #按照wc词云的规格显示
plt.axis('off')                 #是否显示坐标轴,不显示(单一图片)
plt.show()			#显示生成的词云图片

显示结果如下
在这里插入图片描述

#plt.show()                      #显示生成的词云图片(在保存的时候,此处要注释)
plt.savefig(r'.\static\assets\img\treeWord.jpg',dpi=500)      #输出词云图片到文件,默认清晰度是400,这里设置500可能有点高

保存的图片如下:
在这里插入图片描述

所有的源代码如下

#-*- codeing = utf-8 -*- 
#@Time : 2020/11/27 14:17
#@Author : 招财进宝
#@File : testCloud.py
#@Software: PyCharmimport  jieba                               #分词(将一个句子分成很多个词语)
from matplotlib import pyplot as plt        #绘图,数据可视化,点状图、柱状图等科学绘图,和echarts不同,不是直接用于网站,而是生成图片
from wordcloud import WordCloud             #词云,形成有遮罩效果的
from PIL import Image               #用来做图像处理的(官方默认)
import numpy as np                  #矩阵运算
import sqlite3                      #数据库#准备词云所需的文字(值准备了字)
#先有词,即从数据库中得到词
con = sqlite3.connect('movie.db')
cur = con.cursor()
#看要做那个词云,字太多,估计也显示不出来多少
sql = 'select instroduction from movie250'          #注意拼写是否有误
data = cur.execute(sql)
text = ''
for item in data:text = text +item[0]       #此处是将其连接成一个字符串#print(item[0])
#print(text)                    #此处是一个字符串了
#关闭
cur.close()
con.close()#分词
#词云是按照词来进行统计的,这个使用jieba自动进行词频统计
cut = jieba.cut(text)   #将一个字符串进行分割
#print(cut)              #返回cut是一个对象<generator object Tokenizer.cut at 0x000002644AAECF48>
string = ' '.join(cut)         #此处将其对象cut变成字符串,可在下方显示,#' '.join(cut)  以指定字符串空格‘ ’作为分隔符,将 cut 中所有的元素(的字符串表示)合并为一个新的字符串
#print(string)                   #此时可以打印如下
print(len(string))              #5589个词,要对这些词进行统计#可以自己找图建议轮廓清晰
img = Image.open(r'.\static\assets\img\tree.jpg')   #打开遮罩图片
img_arry = np.array(img)        #将图片转换为数组,有了数组即可做词云的封装了
wc = WordCloud(background_color='white',   #背景必须是白色mask = img_arry,            #传入遮罩的图片,必须是数组font_path = "STXINGKA.TTF"  #设置字体,(字体如何找,可以在C:/windows/Fonts中找到名字)
)
#
wc.generate_from_text(string)         #从哪个文本生成wc,这个文本必须是切好的词#绘制图片
fig = plt.figure(1)             #1表示第一个位置绘制
plt.imshow(wc)                  #按照wc词云的规格显示
plt.axis('off')                 #是否显示坐标轴,不显示(单一图片)
#plt.show()                      #显示生成的词云图片
plt.savefig(r'.\static\assets\img\treeWord.jpg',dpi=400)      #输出词云图片到文件,默认清晰度是400,这里设置500可能有点高

有关WordCloud的配置如下,具体可以看相关课件

WordCloud个参数的含义: 
font_path : string #字体路径,需要展现什么字体就把该字体路径+后缀名写上,如:font_path 
= '黑体.ttf' 
width : int (default=400) #输出的画布宽度,默认为400像素 
height : int (default=200) #输出的画布高度,默认为200像素 
prefer_horizontal : flfloat (default=0.90) #词语水平方向排版出现的频率,默认 0.9 (所以词语垂 
直方向排版出现频率为 0.1 ) 
mask : nd-array or None (default=None) #如果参数为空,则使用二维遮罩绘制词云。如果 
mask 非空,设置的宽高值将被忽略,遮罩形状被 mask 取代。除全白(#FFFFFF)的部分将不会 
绘制,其余部分会用于绘制词云。如:bg_pic = imread('读取一张图片.png'),背景图片的画布一 
定要设置为白色(#FFFFFF),然后显示的形状为不是白色的其他颜色。可以用ps工具将自己要 
显示的形状复制到一个纯白色的画布上再保存,就ok了。 
scale : flfloat (default=1) #按照比例进行放大画布,如设置为1.5,则长和宽都是原来画布的1.5倍 
min_font_size : int (default=4) #显示的最小的字体大小 
font_step : int (default=1) #字体步长,如果步长大于1,会加快运算但是可能导致结果出现较大 
的误差 
max_words : number (default=200) #要显示的词的最大个数 
stopwords : set of strings or None #设置需要屏蔽的词,如果为空,则使用内置的STOPWORDS 
background_color : color value (default=”black”) #背景颜色,如background_color='white',背 
景颜色为白色 
max_font_size : int or None (default=None) #显示的最大的字体大小 
mode : string (default=”RGB”) #当参数为“RGBA”并且background_color不为空时,背景为透明 
relative_scaling : flfloat (default=.5) #词频和字体大小的关联性 
color_func : callable, default=None #生成新颜色的函数,如果为空,则使用 self.color_func 
regexp : string or None (optional) #使用正则表达式分隔输入的文本 
collocations : bool, default=True #是否包括两个词的搭配 
colormap : string or matplotlib colormap, default=”viridis” #给每个单词随机分配颜色,若指定 
color_func,则忽略该方法 
random_state : int or None #为每个单词返回一个PIL颜色 
fig = plt.figure(1) #新建一个名叫 Figure1的画图窗口 
plt.imshow(wc) #显示图片,同时也显示其格式 
plt.axis('off') # 是否显示x轴、y轴下标 
#plt.show() #显示生成合成图片 
plt.savefig(path+'\\new.png',dpi=500) #保存合成图片,dpi是设定分辨率,默认为400
fifit_words(frequencies) #根据词频生成词云 
generate(text) #根据文本生成词云 
generate_from_frequencies(frequencies[, ...]) #根据词频生成词云 
generate_from_text(text) #根据文本生成词云 
process_text(text) #将长文本分词并去除屏蔽词(此处指英语,中文分词还是需要自己用别的库 
先行实现,使用上面的 fifit_words(frequencies) ) 
recolor([random_state, color_func, colormap]) #对现有输出重新着色。重新上色会比重新生成 
整个词云快很多 
to_array() #转化为 numpy array 
to_fifile(fifilename) #输出到文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/42217.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ | Leetcode C++题解之第223题矩形面积

题目&#xff1a; 题解&#xff1a; class Solution { public:int computeArea(int ax1, int ay1, int ax2, int ay2, int bx1, int by1, int bx2, int by2) {int area1 (ax2 - ax1) * (ay2 - ay1), area2 (bx2 - bx1) * (by2 - by1);int overlapWidth min(ax2, bx2) - max…

实战Qt开发WordBN笔记软件#01 搭建开发环境:VS2019+Qt6.5+CMake+Git

01 背景 【WordBN字远笔记】是天恩软件工作室开发的一款免费笔记软件&#xff1b;WordBN基于VS2019、Qt6.5开发&#xff0c;使用Qt Quick&#xff08;QML&#xff09;开发语言。 本课程将以【WordBN字远笔记】的界面为实战基础&#xff0c;详细介绍如何基于Qt/QML开发语言&am…

WPF 表格控件斑马线使用

这里用ListView为案例。 如图效果&#xff1a; 主要思路&#xff1a; 用AlternationCount属性来设置需要使用斑马线的条数&#xff0c;就是说几行一换色&#xff0c;也可以理解为需要几种颜色&#xff0c; 然后再样式模板中&#xff0c;写触发器属性ItemsControl.Alternatio…

明明已经安装了python中的某个库,但是还是报错ModuleNotFoundError: No module named ‘sklearn‘

问题&#xff1a; 明明已经安装了python中的某个库&#xff0c;但是还是报错ModuleNotFoundError: No module named sklearn 解决方法&#xff1a; 卸载重新安装一下即可 pip uninstall scikit-learn pip install scikit-learn 成功解决&#xff01;&#xff01;&#xff…

《Windows API每日一练》9.1 资源-图标

本节讲述图标、鼠标指针位图、字符串资源表、自定义资源的添加和应用。 本节必须掌握的知识点&#xff1a; 图标 第56练&#xff1a;ICON图标资源 鼠标指针位图 字符串资源表 自定义资源 第57练&#xff1a;字符串资源表和自定义资源 9.1.1 图标 在 Windows 窗口编程中&…

知识付费系统3.0整站源码知识付费网课平台网创资源付费带自动采集同步插件

程序说明&#xff1a; 1.修复更新到最新版本 2.自动采集插件重写 3.关闭采集授权域名直接对接 4.更新插件主动请求同步资源 5.带自动采集插件 原始功能 支持分类替换 将主站同步过来的文章分类进行替换 支持自定义文章作者&#xff08;选择多个作者则同步到的文章作者将会随机分…

java中==和equals()的区别探究

目录 一、Object对象 二、 三、String类的equals()方法 四、示例 4.1直接定义两个相同的值比较 4.2直接定义两个值不同的字符串进行比较 4.3直接定义一个字符串和new一个字符串进行比较&#xff08;两者值相同&#xff09; 4.4直接定义一个字符串和new一个字符串进行…

Halcon Ean13 一维码读取

一 EAN码介绍 1 EAN码定义: EAN码是国际物品编码协会制定的一种商品用条码&#xff0c;通用于全世界。EAN码符号有标准版&#xff08;EAN-13&#xff09;和缩短版&#xff08;EAN-8&#xff09;两种。标准版表示13位数字&#xff0c;又称为EAN13码&#xff0c;缩短版表示8位数…

VScode免密链接ubuntu

Ubuntu 下载&#xff1a; sudo apt-get install openssh-serverps -e | grep sshd参考IP &#xff1a; ifconfig VScode配置 重新尝试连接&#xff0c;输入的密码是虚拟机用户密码 免密链接 Windows生成公钥 1、打开CMD 2、输入命令ssh-keygen 3、连续回车确认即可生成 …

正态、威布尔、指数分布、伽马分布、对数正态分布介绍

目录 正态、威布尔、指数分布、3.1 概念介绍概率密度函数&#xff08;PDF&#xff09;累积分布函数&#xff08;CDF&#xff09;性质应用 3.2 参数及绘图参数概率密度函数&#xff08;PDF&#xff09;累积分布函数&#xff08;CDF&#xff09;绘图图像解读 3.3 指数分布拟合代码…

第11章 规划过程组(二)(11.10制订进度计划)

第11章 规划过程组&#xff08;二&#xff09;11.10制订进度计划&#xff0c;在第三版教材第395~397页&#xff1b;文字图片音频方式 第一个知识点&#xff1a;定义及作用 分析活动顺序、持续时间、资源需求和进度制约因素&#xff0c;创建项目进度模型&#xff0c;从而落实项目…

Docker定时清理

一、循环调度执行 1、检查cron状态 systemctl status crond 2、创建要执行的shell脚本 vim /home/cleanup_docker.sh #! /bin/bash # 清理临时文件 echo $(date "%H:%M:%S") "执行docker清理命令..." docker system prune -af-a 清理包括未使用的镜像 …

Android EditText+ListPopupWindow实现可编辑的下拉列表

Android EditTextListPopupWindow实现可编辑的下拉列表 &#x1f4d6;1. 可编辑的下拉列表✅步骤一&#xff1a;准备视图✅步骤二&#xff1a;封装显示方法✅步骤三&#xff1a;获取视图并监听 &#x1f4d6;2. 扩展上下箭头✅步骤一&#xff1a;准备上下箭头icon图标✅步骤二&…

Redisson分布式锁、可重入锁

介绍Redisson 什么是 Redisson&#xff1f;来自于官网上的描述内容如下&#xff01; Redisson 是一个在 Redis 的基础上实现的 Java 驻内存数据网格客户端&#xff08;In-Memory Data Grid&#xff09;。它不仅提供了一系列的 redis 常用数据结构命令服务&#xff0c;还提供了…

北森锐途人才竞聘盘点管理测评:高管领导力六大评判标准深度解析万达商管中国绿发等

北森锐途人才管理测评&#xff1a;高管领导力评判标准深度解析 在企业高管的盘点与竞聘测评领域&#xff0c;众多管理人才面临评估自身领导力的挑战。面对能力卓越、职级显赫的同僚&#xff0c;许多管理者感到缺乏一套权威且专业的评价体系。然而&#xff0c;无论是天赋异禀的领…

vue+cesium之加载天地图影像底图与注记

目录 1.创建地图容器2.叠加天地图影像底图与矢量注记 关键代码3.示例效果图 Cesium是默认加载了微软公司的Bing地图&#xff0c;并提供了BingMapslmageryProvider类来加载Bing地图。也就是说&#xff0c;在创建Viewer时&#xff0c;如果不指定lmageryProvider类就默认加载Bing地…

2024年7月2日~2024年7月8日周报

目录 一、前言 二、完成情况 2.1 吴恩达机器学习系列课程 2.1.1 分类问题 2.1.2 假说表示 2.1.3 判定边界 2.2 学习数学表达式 2.3 论文写作情况 2.3.1 题目选取 2.3.2 摘要 2.3.3 关键词 2.3.4 引言部分 2.3.4 文献综述部分 三、下周计划 3.1 存在的问题 3.2 …

C语言之数据在内存中的存储(1),整形与大小端字节序

目录 前言 一、整形数据在内存中的存储 二、大小端字节序 三、大小端字节序的判断 四、字符型数据在内存中的存储 总结 前言 本文主要讲述整型包括字符型是如何在内存中存储的&#xff0c;涉及到大小端字节序这一概念&#xff0c;还有如何判断大小端&#xff0c;希望对大…

2、需求工具 - 编程实战工具系列文章

需求分析工具 笔者对于需求分析工具的应用&#xff0c;主要是思维导图软件和Word。思维导图用来理清需要的需求功能&#xff0c;而Word用来记录每个需求功能的实际内容。 对于思维导图软件&#xff0c;笔者用过几个&#xff0c;但是有些需要注册码&#xff0c;有些需要费用&…

谷粒商城学习-09-配置Docker阿里云镜像加速及各种docker问题记录

文章目录 一&#xff0c;配置Docker阿里云镜像加速二&#xff0c;Docker安装过程中的几个问题1&#xff0c;安装报错&#xff1a;Could not resolve host: mirrorlist.centos.org; Unknown error1.1 检测虚拟机网络1.2 重设yum源 2&#xff0c;报错&#xff1a;Could not fetch…