所需的Python第三方模块:

wordcloud、imageio、jieba与matplotlib

安装命令如:pip install wordcloud

1号词云:(四行代码上手)

# 导入词云制作第三方库wordcloud
import wordcloud# 创建词云对象,赋值给w,现在w就表示了一个词云对象
w = wordcloud.WordCloud()# 调用词云对象的generate方法,将文本传入
w.generate('and that government of the people, by the people, for the people, shall not perish from the earth.')# 将生成的词云保存为output1.png图片文件,保存出到当前文件夹中
w.to_file('output1.png')

运行完成之后,在代码所在的文件夹,就会出现output1.png图片文件。可以看出,wordcloud自动将and that by the not from等废话词组过滤掉,并且把出现次数最多的people大号显示。wordcloud库会非常智能地按空格进行分词及词频统计,出现次数多的词就大。

2号词云:(配置词云参数)

import wordcloud# 构建词云对象w,设置词云图片宽、高、字体、背景颜色等参数
w = wordcloud.WordCloud(width=1000,height=700,background_color='white',font_path='msyh.ttc')w.generate('从明天起,做一个幸福的人。喂马、劈柴,周游世界。从明天起,关心粮食和蔬菜。我有一所房子,面朝大海,春暖花开')w.to_file('output2.png')

常用参数

width:词云图片宽度,默认400像素;

height:词云图片高度,默认200像素;

background_color:词云图片的背景颜色,默认为黑色;

font_step:字号增大的步进间隔,默认1号;

font_path:指定字体路径 默认None,对于中文可用font_path='msyh.ttc';

mini_font_size:最小字号,默认4号;

max_font_size:最大字号,根据高度自动调节;

max_words:最大词数,默认200;

stopwords:不显示的词语,stop_words={'曹操','孔明'};

scale:默认值1,值越大,图像密度越大越清晰;

prefer_horizontal:默认值0.90,浮点数类型。表示在水平如果不合适,就旋转为垂直方向,水平放置的词数占0.9;

relative_scaling:默认值0.5,浮点型。设定按词频倒序排列,上一个词相对下一位词的大小倍数。有如下取值:“0”表示大小标准只参考频率排名,“1”如果词频是2倍,大小也是2倍;

mask 指定词云形状图片,默认为矩形。

# 也就是说,我们可以这样来构建词云对象w,其中的参数均为常用参数的默认值,供我们自定义:
w = wordcloud.WordCloud(      width=400,height=200,background_color='black',font_path=None, font_step=1,min_font_size=4,max_font_size=None,max_words=200,stopwords={},scale=1,prefer_horizontal=0.9,relative_scaling=0.5,mask=None) 

3号词云:(从外部文件读入文本)

import wordcloud# 从外部.txt文件中读取大段文本,存入变量txt中
f = open('马克思主义.txt')
txt = f.read()# 构建词云对象w,设置词云图片宽、高、字体、背景颜色等参数
w = wordcloud.WordCloud(width=1000,height=700,background_color='white',font_path='msyh.ttc')# 将txt变量传入w的generate()方法,给词云输入文字
w.generate(txt)# 将词云图片导出到当前文件夹
w.to_file('output3.png')

中文分词第三方模块jieba

小试牛刀

import jieba
textlist = jieba.lcut('动力学和电磁学')
string = " ".join(textlist)
print(textlist)
print(string)
['动力学', '和', '电磁学']
动力学 和 电磁学

以上代码将一句完整的中文字符串转换成了以空格分隔的词组成的字符串,而后者是绘制词云时generate()方法要求传入的参数。

常用方法

精确模式(最常用,只会这个就行):每个字只用一遍,不存在冗余词汇。jieba.lcut('动力学和电磁学')

全模式:把每个字可能形成的词汇都提取出来,存在冗余。jieba.lcut('动力学和电磁学',cut_all=True)

搜索引擎模式:将全模式分词的结果从短到长排列好。jieba.lcut_for_search('动力学和电磁学')

以下命令演示了三种分词模式及结果,精确模式是最常用的。

import jieba
textlist1 = jieba.lcut('动力学和电磁学')
textlist2 = jieba.lcut('动力学和电磁学',cut_all=True)
textlist3 = jieba.lcut_for_search('动力学和电磁学')
print(textlist1)
print(textlist2)
print(textlist3)
['动力学', '和', '电磁学']
['动力', '动力学', '力学', '和', '电磁', '电磁学', '磁学']
['动力', '力学', '动力学', '和', '电磁', '磁学', '电磁学']

4号词云:(中文分词)

# 导入词云制作库wordcloud和中文分词库jieba
import jieba
import wordcloud# 构建并配置词云对象w
w = wordcloud.WordCloud(width=1000,height=700,background_color='white',font_path='msyh.ttc')# 调用jieba的lcut()方法对原始文本进行中文分词,得到string
txt = '同济大学(Tongji University),简称“同济”,是中华人民共和国教育部直属,由教育部、国家海洋局和上海市共建的全国重点大学,历史悠久、声誉卓著,是国家“双一流”、“211工程”、“985工程”重点建设高校,也是收生标准最严格的中国大学之一'
txtlist = jieba.lcut(txt)
string = " ".join(txtlist)# 将string变量传入w的generate()方法,给词云输入文字
w.generate(string)# 将词云图片导出到当前文件夹
w.to_file('output4.png')

高级词云:绘制指定形状的词云

通过以下代码读入外部词云形状图片(需要先pip install imageio安装imageio)

import imageio
mk = imageio.imread("picture.png")
w = wordcloud.WordCloud(mask=mk)

5号词云:(中国地图形状)

中国地图原图:

加scale参数为15的效果:

不加scale参数的效果,稍显模糊:

6号词云:(勾勒轮廓线)

# 导入词云制作库wordcloud
import wordcloud# 将外部文件包含的文本保存在string变量中
string = open('hamlet.txt').read()# 导入imageio库中的imread函数,并用这个函数读取本地图片,作为词云形状图片
import imageio
mk = imageio.imread("alice.png")# 构建词云对象w,注意增加参数contour_width和contour_color设置轮廓宽度和颜色
w = wordcloud.WordCloud(background_color="white",mask=mk,contour_width=1,contour_color='steelblue')# # 将string变量传入w的generate()方法,给词云输入文字
w.generate(string)# 将词云图片导出到当前文件夹
w.to_file('output6.png')

原图:

效果图:

7号词云:(按模板填色)

# 导入绘图库matplotlib和词云制作库wordcloud
import matplotlib.pyplot as plt
from wordcloud import WordCloud,ImageColorGenerator# 将外部文件包含的文本保存在text变量中
text = open('alice.txt').read()# 导入imageio库中的imread函数,并用这个函数读取本地图片alice_color.png,作为词云形状图片
import imageio
mk = imageio.imread("alice_color.png")# 构建词云对象w
wc = WordCloud(background_color="white",mask=mk,)
# 将text字符串变量传入w的generate()方法,给词云输入文字
wc.generate(text)# 调用wordcloud库中的ImageColorGenerator()函数,提取模板图片各部分的颜色
image_colors = ImageColorGenerator(mk)# 显示原生词云图、按模板图片颜色的词云图和模板图片,按左、中、右显示
fig, axes = plt.subplots(1, 3)
# 最左边的图片显示原生词云图
axes[0].imshow(wc)
# 中间的图片显示按模板图片颜色生成的词云图,采用双线性插值的方法显示颜色
axes[1].imshow(wc.recolor(color_func=image_colors), interpolation="bilinear")
# 右边的图片显示模板图片
axes[2].imshow(mk, cmap=plt.cm.gray)
for ax in axes:ax.set_axis_off()
plt.show()# 给词云对象按模板图片的颜色重新上色
wc_color = wc.recolor(color_func=image_colors)# 将词云图片导出到当前文件夹
wc_color.to_file('output7.png')

按模板颜色生成的词云图:

词云可视化——四行代码轻松上手相关推荐

  1. 词云可视化:四行Python代码轻松上手到精通

    词云可视化:四行Python代码轻松上手到精通 文章目录 词云可视化:四行Python代码轻松上手到精通 本课概要 关于本课程 `粉丝答疑交流QQ群:953712961` `微信赞赏码` 不需要写代码 ...

  2. 数据代码分享|PYTHON用NLP自然语言处理LSTM神经网络TWITTER推特灾难文本数据、词云可视化...

    全文下载链接:http://tecdat.cn/?p=28877 作者:Yunfan Zhang Twitter是一家美国社交网络及微博客服务的网站,致力于服务公众对话.迄今为止,Twitter的日活 ...

  3. 下c语言实现wc_用 Python 实现词云可视化

    词云是一种非常漂亮的可视化展示方式,正所谓一图胜过千言万语,词云在之前的项目中我也有过很多的使用,可能对于我来说,一种很好的自我介绍方式就是词云吧,就像下面这样的: 个人觉还是会比枯燥的文字语言描述性 ...

  4. D3临摹作业_分词与词云可视化(西安交大国家艺术基金数据可视化培训第28天)

    第十二章  分词与词云可视化 第一节 词云图 概念:一种富文本信息可视化技术,通过布局算法用文字大小表示词频,辅以多种颜色,直观的反映词组重要性差异,展示文本关键摘要信息.完整的词云分析包括:分词.词 ...

  5. wordcloud词云可视化

    安装: pip install wordcloud(有时会有VC++ 14缺失的问题) 解决方案: 在github下载wordcloud的包(https://github.com/amueller/w ...

  6. 酷炫多彩的个性化词云可视化

    词云可视化可以说是基本上所有做文本分析相关任务的同学都不陌生的东西了,市面上也有几款不错的词云可视化模块,我用的最多的还是大名鼎鼎的wodcloud,相信绝大多数的人用的也是这一款词云可视化模块,官方 ...

  7. R语言对耐克NIKEID新浪微博数据K均值(K-MEANS)聚类文本挖掘和词云可视化

    全文链接:http://tecdat.cn/?p=31048 2009年8月,新浪微博(micro-blog)开始服务,随后各家微博服务在国内得到广泛传播和应用"(点击文末"阅读原 ...

  8. 手把手:R语言文本挖掘和词云可视化实践

    互联网时代,大量的新闻信息.网络交互.舆情信息以文本形式存储在数据库中,如何利用数据分析和文本挖掘的算法,将海量文本的价值挖掘出来,成为我们团队近期的一个研究方向,本案例就是我们的一个初步尝试.飞信群 ...

  9. 文本数据的词云可视化

    1.使用python实现文本数据的词云可视化,阐述词云原理,数据源可以自行选定: 2.实现文本数据的one-hot编码.Bag-of-word模型,将过程阐述清楚,数据源可以自行选定: 词云可视化 随 ...

最新文章

  1. hdu 2516 FIB博弈模型
  2. java去掉字符串中前后空格函数_JAVA中去掉字符串空格各种方法详解
  3. Scala父类和父特质的执行顺序
  4. U-Boot 之二 详解使用 eclipse + J-Link 进行编译及在线调试
  5. 单应性矩阵和仿射变换_单应矩阵 基本矩阵 本质矩阵的区别与联系
  6. OpenGL simpleclear简单刷背景的实例
  7. CodeForces - 125C Hobbits' Party(思维+构造)
  8. tensorflow中的Supervisor
  9. 华软计算机网络技术,[计算机硬件及网络]计算机网络技术专业自评报告华软.doc...
  10. python发红包实现
  11. 30 年间,软件开发行业为何 Bug 纷飞?
  12. 这本书,值2000亿!
  13. ping 丢包 网络摄像头_Ping丢包故障案例
  14. [成功] vscode使用微软编译器 vs编译器
  15. 计算机旅游网站毕业论文,旅游网站的设计与实现(毕业论文)
  16. 纯js手写一个element的弹窗,方便修改自己想要的样式
  17. php gd绘制图片,PHP-用GD绘制图形
  18. 如何下载风云卫星数据?
  19. 调用excel加载项实现多元回归方程求解
  20. python正态分布函数_数学之美_正态分布(Python代码)

热门文章

  1. snidel 2014春夏新品 纱质长半裙
  2. 阳光保险港交所上市:年营收1200亿 市值超600亿港元
  3. 微电网经济调度(风、光、柴油机、蓄电池、电网交互)(Matlab代码实现)
  4. 机器学习:深度信念网络(DBN)原理和实现
  5. 常用天气预报和资料网址
  6. KubeCon 2021中国大会
  7. gmap mysql cachet,MySQL的缓存(Query Cache)
  8. 推荐 16 个优秀的 Vue 开源项目
  9. 25. 获取员工其当前的薪水比其manager当前薪水还高的相关信息
  10. java解析xlsx表格,写入xlsx表格实例