一:wordcloud介绍

wordcloud库可以说是python非常优秀的词云展示第三方库。词云以词语为基本单位更加直观和艺术的展示文本,wordcloud库是基于numpy和pillow这两个内置库的。官网地址:wordcloud,github地址:word_cloud。

二:wordcloud安装

可以直接使用pip安装:

pip install wordcloud

我应该算是幸运的吧,我看网上一堆人都是说第一次装绝对会出错,我这次装虽然没有报错,但也有一堆warning,感觉报错的主流解法都是直接下载whl文件安装,如果安装出错的话这里推荐一个安装教程:wordcloud安装方法(Windows10)

三:wordcloud的使用

我们可以通过wordcloud方法来生成我们的词云对象。我们在定义对象的时候也能生成我们的对象的参数定义:

  • width:图像的宽度,默认为400px
  • height:图像的高度,默认为200px
  • min_font_size:最小字号,默认为4px
  • max_font_size:最大字号,默认不做限制
  • margin:画布边缘留白的空隙,默认留白空间是2px
  • font_step:字体步进,系统会根据词出现的次数来定词的大小,次数多的和次数少的之间的字号差距就是步进间隔。默认为1
  • font_path:展示字体的路径
  • prefer_horizontal: 词语水平方向排版出现的频率,默认 0.9 ,所以词语垂直方向排版出现频率为 0.1
  • scale:在字段width和height乘以的倍数,最终呈现的画布尺寸以这个结果。默认是1,此方法适合需要呈现大尺寸的画布
  • max_words:词云最大单词数量,默认为200
  • stop_words:不显示词语列表,采用集合形式:stop_words={" “,” “,” "}
  • background_color:背景颜色,默认为黑色
  • normalize_plurals:bool类型,是否去掉单词末尾的s,默认去掉
  • repeat:bool类型,单词是否重复展示,默认不重复

除了上面这些参数,wordcloud还有一个特殊的参数,就是词云的形状,wordcloud的形状我们必须引入另外一个库imageio,通过imageio我们可以将目前的图片加载成元单元。

pip install imageio

引入完成后,我们可以设置词云的形状,参数为 mask

wordcloud的一些方法:

 方法名    参数  返回值  备注
fit_words(frequencies) frequencies:dict from string to float self  根据单词及其频率生成词云

generate_from_frequencies

(frequenciesmax_font_size=None)

frequencies:dict from string to float

max_font_size:int

self
generate(text) text:string self 根据文本生成词云,是方法generate_from_text的别称。输入的文本应该是一个自然文本。若输入的是已排列好的单词,那么单词会出现两次,可以设置参数collocations=False去除此单词重复。调用process_text和genereate_from_frequences
generate_from_text(text) text:string self
process_text(text) text:string words:dict (string, int) 将一长段文本切片成单词,并去除stopwords。返回单词(words)和其出现次数的字典格式
recolor(random_state=Nonecolor_func=Nonecolormap=None)

random_state:RandomState, int, or None, default=None

color_func:function or None, default=None

colormap:string or matplotlib colormap, default=None

self  
to_array()   image:nd-array size (width, height, 3) 转换成numpy array
to_file(filename) filename:string self 保存图片文件

需要注意的是,使用generate加载词云文本时,其中txt的内容需要以空格来分隔单词,并且对于英文单词而言,如果单词长度为1-2,系统会自动过滤。

效果如下:

import wordcloud, imageio# 准备字符串
str = """If El Niños were dangerous before,they are looking to become especially destructive in the near future.
Already severe and unpredictable,recent research indicates these natural weather events are now swinging to even
greater extremes. Since humans started burning fossil fuels on an industrial scale,coral records from the past 7,
000 years indicate that heat waves,wildfires,droughts,flooding and violent storms associated with El Niño have grown
markedly worse. """# 准备词云模板
mask = imageio.imread("wordcloud/template.png")
# 实例化一个wordcloud对象
wc = wordcloud.WordCloud(width=400, height=400, min_font_size=5, max_font_size=50, font_step=2, max_words=500, mask=mask)
# 加载词云文本
wc.generate(str)
# 输出图片
wc.to_file("wordcloud/word.png")

四:wordcloud案例

题目:wordcloud 是优秀的词云展示第三方库,它以以词语为基本单位,更加直观和艺术地展示文本,请根据附件文件(校长 2018.txt、校长 2018 毕业讲话.txt),分别绘制词云彩,可自行设定背
景或背景图片。

import wordcloud, imageio# 准备字符串
f1 = open("校长2018.txt", "r+", encoding="utf-8")
f2 = open("校长2018毕业讲话.txt", "r+", encoding="utf-8")
text1 = f1.read()
text2 = f2.read()
# 准备词云模板
mask = imageio.imread("wordcloud/template.png")
# 实例化一个wordcloud对象
wc = wordcloud.WordCloud(width=400, height=400, min_font_size=5, max_font_size=50, font_step=2, max_words=500, mask=mask)
# 加载词云文本
wc.generate(text1 + text2)
# 输出图片
wc.to_file("wordcloud/word.png")print(text1+text2)
f1.close()
f2.close()

我在运行的时候发现,没有报错,但结果却是这样的:

经过查阅资料后找到原因,wordcloud默认字体是DroidSansMono.ttf,这个字体不支持中文格式,因此需要更换字体,找到wordcloud.py文件,打开后更改:


我这里是改成了微软雅黑,同时还需要把对应的字体放在wordcloud.py同目录:

然后就顺利完成了:
大家如果有兴趣了解更多相关知识,可以来我的个人网站看看:eyes++的个人空间

wordcloud绘制词云彩相关推荐

  1. python词云模糊_用Python和WordCloud绘制词云(内附让字体清晰的秘笈)

    环境及模块: Win7 64位 Python 3.6.4 WordCloud 1.5.0 Pillow 5.0.0 Jieba 0.39 目标: 绘制安徽省2018年某些科技项目的词云,直观展示热点. ...

  2. python心形词云_用Python和WordCloud绘制词云

    环境及模块: Win7 64位 Python 3.6.4 WordCloud 1.5.0 Pillow 5.0.0 Jieba 0.39 目标: 绘制安徽省2018年某些科技项目的词云,直观展示热点. ...

  3. python wordcloud mask_python通过wordcloud绘制词云

    python3下绘制定制化词云,预先安装wordcloud,准备任意一张图片eg.jpg,以及一个写有文案的txt文件. code如下: #!/user/bin/python # -*- coding ...

  4. https open api_通过bilibili_api获取弹幕+绘制词云的方法

    刚接触python 随手做一些自己感兴趣的项目,看到了一个通过bilibili_api三行代码获取弹幕的教程(vx公号:天作之程(jhtmtzzc))使用的是bilibili_api ,是2020年1 ...

  5. 介绍四种绘制词云图的方法

    公众号后台回复"图书",了解更多号主新书内容 作者:叶庭云,https://blog.csdn.net/fyfugoyfa 一.词云图 词云图是一种用来展现高频关键词的可视化表达, ...

  6. python绘制词云图转换图_(数据科学学习手札71)利用Python绘制词云图

    1 简介 词云图是文本挖掘中用来表征词频的数据可视化图像,通过它可以很直观地展现文本数据中地高频词: 图1 词云图示例 在Python中有很多可视化框架可以用来制作词云图,如pyecharts,但这些 ...

  7. 《延禧攻略》演员大起底——利用Python+bs+pyecharts分析绘制词云和玫瑰图

    最近大火的电视剧<延禧攻略>已宣告大结局,除了剧情走心,演员的那些头花啊头饰啊,戏服也都精致无比.本文利用Python抓取互联网上演员的部分数据,分析演员的姓名.星座.身高.体重和籍贯等信 ...

  8. 用python画苹果_Python爬取京东Iphone X用户评论并绘制词云

    目标爬取京东商城上iPhone X用户评论数据: 使用jieba对评论数据进行分词处理: 使用wordcloud绘制词云图. 目前京东商城只会展示商品的前100页评论,所以我们能爬取到的评论只有100 ...

  9. WordCloud 中英文词云图绘制

    摘要: 当我们手中有一篇文档,比如书籍.小说.电影剧本,若想快速了解其主要内容是什么,则可以采用绘制 WordCloud 词云图,显示主要的关键词(高频词)这种方式,非常方便.本文将介绍常见的英文和中 ...

最新文章

  1. 同洲EOC局端MAC地址修改方法
  2. Parsing error: The keyword 'const' is reservedeslint
  3. 使用分发列表过滤BGP路由
  4. 思科配置计算机ip地址子网掩码,计算机系统与网络技术IP地址 子网掩码 主机号等计算复习...
  5. 前端学习(3169):react-hello-react之对props进行限制
  6. matlab项目实例教程,matlab简明实例教程.doc
  7. 一种可提高导师寿命的有效方案
  8. c语言argc,C语言 argc和argv
  9. vba下拉框实现记忆功能_VBA | 这个二级下拉菜单挺有趣!
  10. php中百度编辑器的使用
  11. 三步建立自己的电影网站 1 (安装MacCMS10)
  12. 盘点华为系工控企业——中国A股上市公司最多的创业体系
  13. 二维码怎么做之批量制作二维码
  14. 被手机“绑架”又不能完全指望手机的柔宇科技,上市之后会是一片坦途吗?
  15. 微信小程序:工具配置 project.config.json
  16. 顺时针打印矩阵(编程题讲解)
  17. c语言程序项目任务教程 杨东芳 答案,c语言项目化教程 c语言程序设计
  18. python|安装skimage库报错:required to install pyproject.toml-based projects
  19. Zabbix-01简单导入MIB文件并测试
  20. 微服务架构及解决方案

热门文章

  1. mac安装卸载nvm
  2. QT程序“用户基本资料修改”的功能表单
  3. 合理配置线程池,corePoolSize的合理设置
  4. @DateTimeFormat注解不起作用?400?
  5. 如何做出亮闪闪的毕业设计PPT?
  6. 自动化体系平台建设 —— 全流程质量保证及改进措施
  7. 什么是电子计算机NXI并行线,并行ADC的原理是什么?流水线ADC与其它ADC有何区别?...
  8. dota选手接口 steam_Steam玩家福音 教你DOTA2导入蒸汽平台
  9. 问题 L: Daydream
  10. java2048朝代版代码_求2048朝代版的源代码?