pyecharts制作词云图
词云图作为一种分析热度的可视化图,在数据分析占据重要地位,只一眼就可以看出某个事物的重要性。pyecharts和WordCloud都是比较方便的可视化库,当遇上词云图,会有怎样的火花呢?我们来期待一下。
1.pyecharts
1.导入包
首先保证自己电脑安装上了pyecharts包,关于包的安装就不多说,来来去去就那几种方法,网上已经说的太多了。
from pyecharts.charts import WordCloud
2.数据准备
用pyecharts画词云时,待分析数据中的每一个词为应该为(word,value)的元组形式,所有词组成一个列表。其中,word为我们需要在词云图中显示的词汇,value是对应的频率。在实现操作中,我将word和value分别形成列表进行输入,结果发现参数个数错误,而使用(word,value)的形式就正确。
word=[("数学分析",0.9),("高等代数",0.9),("近世代数",0.6),("计算机网络",0.8),("现代密码学",0.5),("c程序设计",0.8),("数据结构与算法",0.9),("泛函分析",0.8),("机器学习实战",1.0),("数据挖掘导论",0.9)]
3.词云图生成
pyecharts中,主要使用add()函数来生成并设置词云图:
mywordcloud=WordCloud()
#shape词云图轮廓,有’circle’, ‘cardioid’, ‘diamond’, ‘triangleforward’, ‘triangle’, ‘pentagon’, ‘star’可选
mywordcloud.add("",word,shape='star')
#生成html文件
mywordcloud.render("1.html")
运行程序,得到
是不是很简单,总结一下,用pyecharts生成词云图:
优点:
当鼠标在html文件里面拖动到某个词,会出现对应的频率,方便查看;
使用简单,用户只需要构建好自己的(word,values);
提供7种不同的词轮廓,只需要简单设置.缺点:
没有词云填充图片功能,也就是整个词云的轮廓为所给图片的形状;
当所给的是一段文字,需要整理成需要的(word,values),比较复杂.
2.WordCloud
WordCloud虽然没有pyecharts那么简单,但是其制作词云图的功能更强大,可以制作任意形状的词云图,在举例子之前,我们先来看看主要的配置参数:(部分引用于wordcloud参数)
> 这里是引用font_path : string #字体路径,默认状态是只支持英文,如果是中文需要展现什么字体就把该字体路径+后缀名写上,如:font_path = '黑体.ttf'
width :int #画布宽度,默认为400像素
height :int #画布高度,默认为200像素
scale: float#水平排版出现的概率,默认0.9,垂直排版概率0.1
mask:nd-array or None (default=None) #当读取图片为背景时,背景色一定要设置成白色
min_font_size : int (default=4) #最小字体
max_font_size : int or None #一般不设置最好,不然会很小
font_step : int (default=1) #字体步长,如果步长大于1,会加快运算但是可能导致结果出现较大的误差
max_words : number (default=200) #要显示的词的最大个数
stopwords : set of strings or None #使用时需要从wordcloud中导入STOPWORDS,设置需要屏蔽的词
background_color : color value (default=”black”) #背景颜色
random_state : int or None #为每个单词返回一个PIL颜色
mode : string (default=”RGB”) #当参数为“RGBA”并且background_color不为空时,背景为透明
relative_scaling : float (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,则忽略该方法#重要函数
fit_words(frequencies) #根据词频生成词云
generate(text) #根据文本生成词云
generate_from_frequencies(frequencies[, ...]) #根据词频生成词云
generate_from_text(text) #根据文本生成词云
process_text(text) #将长文本分词并去除屏蔽词(此处指英语,中文分词还是需要自己用别的库先行实现,使用上面的 fit_words(frequencies) )
recolor([random_state, color_func, colormap]) #对现有输出重新着色。重新上色会比重新生成整个词云快很多
to_array() #转化为 numpy array
to_file(filename) #输出到文件
下面我以从微博上"Alex是大叔"关于12星座运势的语句,部分如下图
太阳或上升双子座:任何人都怕斤斤计较的人,你在本周很可能就会遇到这种人,或者自己变成这种人,如果你遇到了斤斤计较的人,拿出你打太极的本领,迂回过去,自己就会安全过关。但如果你变成了一个斤斤计较的人,你很可能会把一件原本很不错的事情给搞砸,甚至可能会改变别人本来对你的美好印象。这周随着满月发生在你的人际关系宫位,可能会有某个合作敲定下来或者是被人抢走(也可能是取消了、打水漂了),在本周一到周四中午之前你就会知道这个消息,也许可能是你追问获得的。
我们运用wordcloud来制作词云图。背景图片为
from wordcloud import WordCloud,STOPWORDS
from PIL import Image
import matplotlib.pyplot as plt
import jieba
import numpy as npcontent=open("1.txt","r",encoding="utf-8").read()
tag=jieba.cut(content)
#一定要用空格将关键字串起来
text=" ".join(tag)
#读入背景图片
image=np.array(Image.open("pikaqiu.jpg"))
#设置不显示的词,停顿词
sw=set(STOPWORDS)
sw.add("不好")
sw.add("失落")#生成词云对象
wc=WordCloud(font_path=r'C:\Users\lixue\Desktop\simhei.ttf',#指定词云的形状mask=image,#背景颜色background_color="white",scale=0.9,random_state=20)
#生成词云图片
wc=wc.generate(text)
#显示词云图片
plt.imshow(wc)
plt.axis("off")
plt.show()
#保存图片
wc.to_file("new_love.png")
值得注意的是,在上述代码中,因为我使用的是PIL包,所以读取图片之后要进行转换,如果不用numpy,直接用下面的语句
image=Image.open("pikaqiu.jpg")
程序会报错:
观察最前面的参数mask,属于nd-array or None 类型,所以我们必须将Image.open(“pikaqiu.jpg”)之后的结果转为array类型,才能保证程序的正常运行。下图为生成的词云图
不过如果采用另外一个包scipy,就不用进行数据转换了。将
image=np.array(Image.open("pikaqiu.jpg"))
换成
image=imread("pikaqiu.jpg"))
同时导入包
from scipy.misc import imread
两种方法各取所需,关于参数配置,有时间的各位可以好好研究一样,如何取到合适的值,让生成的词云图更加美观。喜欢的点个赞吧。
pyecharts制作词云图相关推荐
- 数据可视化之利用Python制作词云图
制作词云图 一.词云图介绍 二.wordcloud方法 二. stylecloud方法 一.词云图介绍 词云图可以看作是文本数据的视觉表示,由词汇组成类似云的彩色图形.相对其它诸多用来显示数值数据的图 ...
- 关键词分词工具_快图制作工具 | 如何制作词云图?
点击蓝字关注我们 如何制作词云图? 首先,我们需要对"词云"有个简单的概念. "词云"这个概念最先由美国西北大学新闻学副教授.新媒体专业主任里奇·戈登(R ...
- e分钟带你利用Python制作词云图
随着大数据时代的来临,数据分析与可视化,显得越来越重要,今天给小伙伴们带来一种最常见的数据可视化图形-词云图的制作方法. 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语 ...
- Python制作词云图根据蒙板图像确定形状和文字颜色
问题描述:制作词云图,根据蒙板图像确定词云图形状,根据蒙板图像中像素的颜色确定词云图中相同位置上文字的颜色. 阅读原文
- python处理数据集并制作词云图
python处理数据集并制作词云图 处理数据 使用自定义词典 去掉停用词 词频统计 绘制词云图+美化 1.处理数据 这里是老师给的新闻数据集,里面有5个类别的新闻数据,我以cars这一类为例. 将cs ...
- 爬取指定网页并制作词云图
利用python中的库和函数设计一个爬取读书网中"软件与程序设计"栏的程序,并对其书名制作词云图,下载其书封面存储到本地文件中. 构建多个函数分别进行网页的请求,html的获取,所 ...
- 爬取B站弹幕制作词云图
大家好,我是天空之城,今天给大家带来,爬取B站弹幕制作词云图. 以下内容部分来自公众号数据分析与统计学之美,号主是大牛,有需要的加他. 首先打开一个b站视频https://www.bilibili.c ...
- wordcloud制作词云图
wordcloud制作词云图 wordcloud 中文方框问题 jieba(分词) jieba库分词的三种模式 wordcloud WordCloud(font_path=None, width=40 ...
- python画统计图代码_python读取excel某列内容制作词云图并用条形图统计词频
有的时候我们把数据整理收集整理到excel中,那么要把excel中的某列文本数据制作词云图怎么做呢? 从最简单的说起. 最简单的词云图就是这种,英文的,不读取文件,不指定背景形状图片,不指定字体. # ...
最新文章
- gometalinter代码检查
- String类的intern()
- 实现IButtonControl接口时, PerformClick()方法的代码怎么写,请高手指导!
- Perspective Mockups mac(PS透视模型动作插件)支持ps2021
- Debian8 Linux上安装SSH服务器并配置sshd_config文件启用root ssh登录
- ESXi日志分析网站第五版v5.4
- Vue - ElementUI中循环渲染表格,控制字段的显示与隐藏 v-if与v-for同时使用
- java web部署文档_javaweb项目实施部署文档
- 行内块元素(HTML、CSS)
- 动态获取数据表或临时表列名
- 梯度边缘检测 matlab,梯度边缘检测matlab
- 【记录】AutoMapper Project To OrderBy Skip Take 正确写法
- 大数据Hadoop学习文章汇总
- 手机麦克风声音太大_让手机麦克风声音变大的软件
- SDS(Spoken Dialogue System) 对话系统
- 水星m313 v5 的DMZ主机问题
- 限流——漏桶算法和令牌桶算法的区别
- 【实战】爬虫实战-pixabay图片存储mysql
- Linux Glibc幽灵漏洞紧急修补方案【转】
- Java:判断外面天气,如果下雨,男性带黑色雨伞,女性带红色雨伞;如果晴天,如果高于温度30度,男性戴墨镜,女性涂防晒霜(控制选择结构if、if else语句及其嵌套结构)