制作词云图

  • 一.词云图介绍
  • 二.wordcloud方法
  • 二. stylecloud方法

一.词云图介绍

词云图可以看作是文本数据的视觉表示,由词汇组成类似云的彩色图形。相对其它诸多用来显示数值数据的图表,词云图的独特之处在于,可以展示大量文本数据。文本数据中每个词的重要性以字体大小或颜色显示,因此词云可以很好地表明每个单词在特定文本体中被提及的频率(即词频分布),通过使用不同的颜色和大小来表示不同级别的相对显着性。

词云图的应用相当广泛,诸如电影-视频-微博-网易云-淘宝-知乎等评论分析、书籍-报告-商品信息-疫情舆论等文本分析,使用词云图能使数据信息的表达一目了然。





本文主要介绍两种制作词云图的方法,分别是 wordcloud 和 stylecloud 。当然,首先别忘了安装代码中用到的库。

pip  install  wordcloud
pip  install  wordcloud

二.wordcloud方法

wordcloud是制作词云图最常用的工具,上手简单,操作方便,关键在于了解各个参数用法。额,参数貌似有点多(⊙o⊙)…

不过也不要怕,并不是每个参数都需要自己设置,我们可以根据自己的需要个性化设置。下面就以《少年中国说》作为文本进行代码示例:

import matplotlib.pyplot as plt #数据可视化
import jieba #词语切割
import wordcloud #分词
from wordcloud import WordCloud,ImageColorGenerator,STOPWORDS #词云,颜色生成器,停止词
import numpy as np #科学计算
from PIL import Image #处理图片def ciyun():with open('少年中国说.txt','r',encoding='gbk') as f:  #打开新的文本转码为gbktextfile= f.read()  #读取文本内容wordlist = jieba.lcut(textfile)#切割词语space_list = ' '.join(wordlist) #空格链接词语#print(space_list)backgroud = np.array(Image.open('test1.jpg')) wc = WordCloud(width=1400, height=2200,background_color='white',mode='RGB', mask=backgroud, #添加蒙版,生成指定形状的词云,并且词云图的颜色可从蒙版里提取max_words=500,stopwords=STOPWORDS.add('老年人'),#内置的屏蔽词,并添加自己设置的词语font_path='C:\Windows\Fonts\STZHONGS.ttf',max_font_size=150,relative_scaling=0.6, #设置字体大小与词频的关联程度为0.4random_state=50, scale=2 ).generate(space_list)         image_color = ImageColorGenerator(backgroud)#设置生成词云的颜色,如去掉这两行则字体为默认颜色wc.recolor(color_func=image_color)plt.imshow(wc) #显示词云plt.axis('off') #关闭x,y轴plt.show()#显示wc.to_file('test1_ciyun.jpg') #保存词云图def main():ciyun()
if __name__ == '__main__':main()

值得注意的是当我们制作中文词云图时,一是需要指定显示的中文字体的英文名称,C盘里的中文字体名称有一些为汉字,此时可以将该字体复制到桌面就可看到中文字体的英文名称;二是禁(停)用词stopwords 的设置。

分词时需要去除助词、介词、连词、语气词及标点符号等一些没有实际意义的词语,这些停用词可以从网上自行下载。除此之外,还需要自定义一个停用词表,用以去除那些在文本中没有实际意义的词语,比如:最终、因为、一切、经历等。这里小笨聪给大家一个思路:

def read_stopword(fpath):# 读取中文停用词表with open(fpath, 'r', encoding='utf-8') as file:stopword = file.readlines()return [word.replace('\n', '') for word in stopword]
#加载多个停用词表
path = 'E:\WeChatPublicNumber\python\词云图\stopwords'
# 前两个停用词表是网上下载的,第三个是自己设置的
name_list = ['中文停用词.txt', '哈工大停用词.txt', 'stopword.txt']
stop_word = []
for fname in name_list:stop_word += read_stopword(os.path.join(path, fname))
stop_word = set(stop_word)

那么我们看一下词云图效果:

整体来看还说的过去,制作带有蒙版背景的词云图需要注意蒙版的选取,尽量选择主题部分和周围区域区分明显的图片,并且主题颜色可以丰富明亮一些,这样的词云图才会美观一些。

二. stylecloud方法

stylecloud 是一个 Python 包,它基于流行的 wordcloud 包,并添加了一些有用的功能,从而创建出独特的词云。stylecloud 具备以下特点:

  • 支持高级调色板(通过 palettable 实现)
  • 为词云提供(任意大小)的图标形状(通过 Font Awesome 5.11.2 获得)
  • 为调色板提供直接梯度 支持读取文本文件,或预生成的 CSV 文件(包含单词和数字)
  • 提供命令行接口

styleword 制作词云主要利用gen_stylecloud() 方法,上述几个特点体现在该方法的参数里。

仍然以《少年中国说》为文本内容进行代码示例:

import jieba
import stylecloud
def ciyun():with open('少年中国说.txt','r',encoding='gbk') as f:word_list = jieba.cut(f.read())result = " ".join(word_list) #分词用空格隔开        stylecloud.gen_stylecloud(text=result, # 上面分词的结果作为文本传给text参数size=512,font_path='msyh.ttc', # 字体设置palette='cartocolors.qualitative.Pastel_7', # 调色方案选取,从palettable里选择gradient='horizontal', # 渐变色方向选了垂直方向icon_name='fab fa-weixin',  # 蒙版选取,从Font Awesome里选output_name='test_ciyun.png') # 输出词云图
def main():ciyun()
if __name__ == '__main__':main()


看一下效果,比 wordcloud 的效果更美观。主要原因在于 stylecloud 中的两个重要参数的选取,即蒙版选择 icon_name 和 调色方案选择 palette*。它的蒙版是用 Font Awesome 5 的图标组成的,而 Font Awesome 的图标多达几千种。它的调色方案是从 palettable 选取的。

Font Awesome 网站:
https://fa5.dashgame.com/#/%E5%9B%BE%E6%A0%87
palettable 网站:
https://jiffyclub.github.io/palettable/

当然,制作词云图方法不止上面两种,比如用 Pyecharts 制作,另外也有很多网站不需要任何编程就能快速制作词云图。具体用哪种看自己喜好,但别忘了使用词云图的初衷是为了更好地展示你的数据。

以上就是利用 Python 制作词云图的内容,
微信公众号"学编程的金融客"后台回复 “ 词云图” 即可获取源码和图片。

欢迎关注微信公众号:学编程的金融客,作者:小笨聪

数据可视化之利用Python制作词云图相关推荐

  1. 利用python制作词云图,分词,提取关键词

    利用python制作词云图保姆及教程 前言 一.环境配置 1.要有python的运行环境 2.需要导入jieba ,wordcloud等模块 pip install jieba pip install ...

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

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

  3. 【数据可视化】利用WordCloud制作词云

    利用wordcloud制作词云 1.jieba分词 链接:https://github.com/fxsjy/jieba "结巴"中文分词是一个使用起来非常方便的 Python 中文 ...

  4. plt图片输出 python_利用Python制作词云,wordcloud神器你值得拥有

    相信许多人都看到过下面这样的词云图,词云图是一种很好的可视化工具,其作用主要是为了文本数据的视觉表示,既酷炫又能突出重点. 关于词云图的制作,网上能够搜集到很多的教程,许多都是利用了专用的工具,这些工 ...

  5. 对爬取的电影《唐人街探案3》豆瓣短评做文本分析,并利用stylecloud制作词云图

    上一节,我们爬取了豆瓣上电影<唐人街探案3>的评论,并将评论保存成了txt文档,爬虫过程可参考:爬取某瓣上电影<唐人街探案3>的评论 本节,我们将对电影短评做文本分析,并利用s ...

  6. 数据可视化:利用Python和Echarts制作“用户消费行为分析”可视化大屏

    数据可视化:利用Python和Echarts制作"用户消费行为分析"可视化大屏 前言 实验目的: 准备工作: 一.创建项目: 二.建立数据库连接获取数据: 三.页面布局: 四.下载 ...

  7. 利用python制作漂亮的词云图_利用python制作词云,wordcloud神器你值得拥有

    相信许多人都看到过下面这样的词云图,词云图是一种很好的可视化工具,其作用主要是为了文本数据的视觉表示,既酷炫又能突出重点. 关于词云图的制作,网上能够搜集到很多的教程,许多都是利用了专用的工具,这些工 ...

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

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

  9. 【数据可视化】使用pyecharts制作词云

    pyecharts: Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可.而 Python 是一门富有表达力的语言,很适合用于数据处理.当数据分析 ...

最新文章

  1. SQL_Server_2005_日期和时间函数(描述及实例)
  2. Java消息服务JMS详解
  3. 找工作壹個月以来的感受
  4. 【Java源码分析】LinkedList源码分析
  5. Ubuntu15.04 网站服务器环境搭建,php/html/css等学习环境搭建教程
  6. maven中使用junit老是找不到包
  7. thief book怎么用_战略管理工具箱--30个好用的战略管理好工具
  8. select函数_SQL高级功能:窗口函数
  9. 【新年礼物】阿里资深p8教你学习Web全栈架构师!
  10. C#代码中背后进行的值拷贝
  11. CSS兼容性问题总结及解决方法
  12. 使用c++实现一个FTP客户端(一)
  13. OptiX OSN3500
  14. 遗传算法(二 )——通用框架
  15. python如何计数while循环次数_While循环计数
  16. 医保种类及医疗保险待遇
  17. iOS 开源图形库 Core Plot 使用教程
  18. Unexpected token o in JSON at position 1报错
  19. 【技美百人计划】图形 4.2 SSAO算法 屏幕空间环境光遮蔽(&HBAO)
  20. 数据挖掘中易犯的10大错误

热门文章

  1. 如果有不限额度,稳定的Facebook广告账号,你也能爆单?!
  2. Visual Studio 20周年,我和VS不得不说的故事(内含福利)
  3. 有限扩散集团凝聚模型(DLCA)第三讲:流动水流中的凝聚模拟(1)
  4. 毕业设计怎么做--看这里
  5. Matlab中pickic_MATLAB的数字基带传输系统
  6. 视觉设计和平面设计的区别,看完之后你就明白了
  7. Redo Log介绍
  8. Vim snippet 小技巧
  9. uniapp 使用vue3 (第二篇 全局方法)
  10. 解决连接数据库Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错问题