词云图作为一种分析热度的可视化图,在数据分析占据重要地位,只一眼就可以看出某个事物的重要性。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制作词云图相关推荐

  1. 数据可视化之利用Python制作词云图

    制作词云图 一.词云图介绍 二.wordcloud方法 二. stylecloud方法 一.词云图介绍 词云图可以看作是文本数据的视觉表示,由词汇组成类似云的彩色图形.相对其它诸多用来显示数值数据的图 ...

  2. 关键词分词工具_快图制作工具 | 如何制作词云图?

    点击蓝字关注我们 如何制作词云图?    首先,我们需要对"词云"有个简单的概念. "词云"这个概念最先由美国西北大学新闻学副教授.新媒体专业主任里奇·戈登(R ...

  3. e分钟带你利用Python制作词云图

    随着大数据时代的来临,数据分析与可视化,显得越来越重要,今天给小伙伴们带来一种最常见的数据可视化图形-词云图的制作方法. 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语 ...

  4. Python制作词云图根据蒙板图像确定形状和文字颜色

    问题描述:制作词云图,根据蒙板图像确定词云图形状,根据蒙板图像中像素的颜色确定词云图中相同位置上文字的颜色. 阅读原文

  5. python处理数据集并制作词云图

    python处理数据集并制作词云图 处理数据 使用自定义词典 去掉停用词 词频统计 绘制词云图+美化 1.处理数据 这里是老师给的新闻数据集,里面有5个类别的新闻数据,我以cars这一类为例. 将cs ...

  6. 爬取指定网页并制作词云图

    利用python中的库和函数设计一个爬取读书网中"软件与程序设计"栏的程序,并对其书名制作词云图,下载其书封面存储到本地文件中. 构建多个函数分别进行网页的请求,html的获取,所 ...

  7. 爬取B站弹幕制作词云图

    大家好,我是天空之城,今天给大家带来,爬取B站弹幕制作词云图. 以下内容部分来自公众号数据分析与统计学之美,号主是大牛,有需要的加他. 首先打开一个b站视频https://www.bilibili.c ...

  8. wordcloud制作词云图

    wordcloud制作词云图 wordcloud 中文方框问题 jieba(分词) jieba库分词的三种模式 wordcloud WordCloud(font_path=None, width=40 ...

  9. python画统计图代码_python读取excel某列内容制作词云图并用条形图统计词频

    有的时候我们把数据整理收集整理到excel中,那么要把excel中的某列文本数据制作词云图怎么做呢? 从最简单的说起. 最简单的词云图就是这种,英文的,不读取文件,不指定背景形状图片,不指定字体. # ...

最新文章

  1. gometalinter代码检查
  2. String类的intern()
  3. 实现IButtonControl接口时, PerformClick()方法的代码怎么写,请高手指导!
  4. Perspective Mockups mac(PS透视模型动作插件)支持ps2021
  5. Debian8 Linux上安装SSH服务器并配置sshd_config文件启用root ssh登录
  6. ESXi日志分析网站第五版v5.4
  7. Vue - ElementUI中循环渲染表格,控制字段的显示与隐藏 v-if与v-for同时使用
  8. java web部署文档_javaweb项目实施部署文档
  9. 行内块元素(HTML、CSS)
  10. 动态获取数据表或临时表列名
  11. 梯度边缘检测 matlab,梯度边缘检测matlab
  12. 【记录】AutoMapper Project To OrderBy Skip Take 正确写法
  13. 大数据Hadoop学习文章汇总
  14. 手机麦克风声音太大_让手机麦克风声音变大的软件
  15. SDS(Spoken Dialogue System) 对话系统
  16. 水星m313 v5 的DMZ主机问题
  17. 限流——漏桶算法和令牌桶算法的区别
  18. 【实战】爬虫实战-pixabay图片存储mysql
  19. Linux Glibc幽灵漏洞紧急修补方案【转】
  20. Java:判断外面天气,如果下雨,男性带黑色雨伞,女性带红色雨伞;如果晴天,如果高于温度30度,男性戴墨镜,女性涂防晒霜(控制选择结构if、if else语句及其嵌套结构)

热门文章

  1. WordPress 网站怎么做会员中心功能【会员中心】
  2. 阿里的“无用”和“有用”
  3. 《具体数学》部分习题解答4
  4. Java——匿名内部类
  5. 谈谈 Spring 中的 NoSuchBeanDefinitionException
  6. Python是信奥的基础吗,学习信奥要不要先学python
  7. 2016山东计算机春考试题型,2016年山东省春季高考技能考试信息技术类专业考试样题...
  8. vue使用CKEditor4编辑器
  9. 电脑开机卡顿解决方法
  10. 斜杠,双斜杠,反斜杠与双反斜杠