来源:王飞,小编有所改动

先看一下效果吧,小编随意从网上找了两篇文章,关于爱情的一篇文章用的心形,关于母爱的一篇文章用的热气球形。

是否感叹到这种文字云图之美?那么,就赶快动手生成自己所写的文字的云图吧。

安装、导入模块

文字云需要用到两个模块,分别是:jieba 和 wordcloud,一般安装方法 pip install jieba/wordcloud 会报错,无法安装,不知道你的运气如何?

解决方法是,半自动安装,先下载文件,然后安装(有点类似之前梦幻西游手动下补丁的感觉)。

jieba:官网https://pypi.python.org/pypi/jieba/,下载然后解压,cmd进入解压后的路径,运行 python setup.py install即可。

wordcloud:http://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud 下方找到wordcloud的下载链接,下载对应的whl文件,下载后进入存储该文件的路径,执行“pip install wordcloud-1.3.2-cp36-cp36m-win_amd64.whl”就OK。

另外,小编采用的是Python2.7版本的,如果安装了VCForPython27,可以直接pip install jieba/wordcloud来完成安装。

同时,小编在尝试的时候装scipy包(用于读取背景图像绘制不同形状的文字云图)比较困难,因为依赖很多,最终小编是通过下载exe文件来进行安装的。不知道幸运的你是否会遇到同样的问题?

10行代码生成文字云图

至于生成的思路,就比较简单了,先运用jieba分词对文章进行分词,同时读取背景的图片(用于绘制不同形状的文字图云),然后通过WordCloud生成文字图云并用画图工具进行展示。只有10行代码,精妙的文字云图油然而生。

# coding:utf-8#分词模块importjieba#画图模块importmatplotlib.pyplotasplt#文字云模块fromwordcloudimportWordCloud#路径模块fromosimportpath#这个是读取背景图片fromscipy.miscimportimread#找到当前路径d = path.dirname('.')#源文件路径设置word_path = path.join(d,'wordcloud.txt')#读取文件内容word_content = open(word_path,'r').read()#设置背景图片mask_img = imread(path.join(d,'heart.jpg'))#进行分词,好简单word_cut = jieba.cut(word_content)#把分词用空格连起来word_cut_join =" ".join(word_cut)wc = WordCloud(font_path='msyh.ttf',#设置字体max_words=50,#词云显示的最大词数mask=mask_img,#设置背景图片background_color='white',#背景颜色,白色好看).generate(word_cut_join)#还可以设置大小 width=2000,height=800,# max_font_size=80,min_font_size=16plt.imshow(wc)#去掉坐标轴plt.axis("off")#生成图片plt.show()

乱码解决方法

刚开始的时候,文字云那一步没有设置字体,直接用WordCloud().gengerate(word_cut_join),发现生成的是乱码,网上搜索找到解决方法,是wordcloud模块本身没有汉字字体,怎么办呢?把电脑中的默认的字体文件拷贝过来一份就可以了。

把 C:\Windows\Fonts 中的某种字体文件(.TTF文件)复制到当前工程路径即可,如代码中所示。

是否想生成专属自己的文字云图?那就赶紧尝试一下吧。

看完本文有收获?请转发分享给更多人

关注「Python那些事」,提升Python技能

python中wordcloud函数不同形状云图_10行Python代码生成任意形状的文字云图相关推荐

  1. python中format函数用法简书_从Python安装到语法基础,这才是初学者都能懂的爬虫教程...

    Python和PyCharm的安装:学会Python和PyCharm的安装方法 变量和字符串:学会使用变量和字符串的基本用法 函数与控制语句:学会Python循环.判断语句.循环语句和函数的使用 Py ...

  2. Python中get()函数用法【详解】——Python系列学习笔记

    get()简介 Python 字典 get() 函数返回指定键的值,如果值不在字典中返回默认值. get()方法介绍 dict_n.get(key, default = None) key: 要设置默 ...

  3. python中匿名函数的作用_什么是Python中的匿名函数

    匿名函数 lambda x , y : x+y 1.匿名的目的就是要没有名字,给匿名函数赋给一个名字是没有意义的. 2.匿名函数的参数规则.作用域关系与有名函数是一样的. 3.匿名函数的函数体通常应该 ...

  4. python中factor函数_左手用R右手Python系列——因子变量与分类重编码

    原标题:左手用R右手Python系列--因子变量与分类重编码 欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习.问答.求职,一站式搞定! 对商业 ...

  5. python中write函数_第9.7节 Python使用write函数写入文件内容

    一.语法 write(data) data为要写入的数据,可以为字符串str类型,也可以是bytes类型. 返回值为实际写入的数据数,在写入数据为str类型时,该数据为实际写入的UNIOCODE字符数 ...

  6. python中timeit函数_一日一技:Python中的timeit方法

    timeit()方法 python中的timeit()方法, 它用于获取代码的执行时间.该库将代码语句运行一百万次,并提供从集合中花费的最短时间.这是一种有用的方法,有助于检查代码的性能. 语法如下: ...

  7. python中float函数作用_解析要在Python中浮动的字符串(float()函数)

    给定一个字符串值(包含浮点值),我们必须在Python中将其转换为浮点值. 要将字符串值转换为float,我们使用float()功能. Python float() 功能 float()functio ...

  8. python中strip函数_让你整明白python strip函数妙用

    以下为作者学习python时所做的学习笔记,用浅显的语言展示给大家,希望大家多多提交自己的意见.有问题的朋友也可以留言,看到会回复大家. 声明:s为字符串,str为要删除的字符序列 s.strip(s ...

  9. python中getrandbits函数用法_python random - 刘江的python教程

    random 阅读: 8288 评论:1 random模块用于生成伪随机数. 真正意义上的随机数(或者随机事件)是按照实验过程中表现的分布概率随机产生的,其结果是不可预测的.而计算机中的随机数是所谓的 ...

  10. Python中定义函数的关键字是什么?一起来学习下吧

    python中定义函数的关键字是def. Python使用def关键字开始函数定义,紧接着是函数名,括号内部为函数的参数,内部为函数的具体功能实现代码,如果想要函数有返回值, 在expressions ...

最新文章

  1. 深掘市场 开拓机遇 西部数据将亮相2014年北京安博会
  2. 掘金健康大数据 需突破多重挑战
  3. 【MOSS】SPListItems操作
  4. 高端服务器CPU详细图解
  5. 使用cocoaPods一键集成第三方登录(新浪微博,qq,微信)
  6. 使用Spring和Hibernate进行集成测试有多酷
  7. GoldenGate Logdump基本使用
  8. vue传值到后端_Vue.js快速入门就从这儿开始特别是后端程序员
  9. 谷歌地图插件Mapsed.js
  10. c语言终极面试宝典 pdf,C语言终极面试--编程
  11. 《南溪的目标检测学习笔记》——DCN(DCNv2)的学习笔记
  12. C语言求二阶矩阵最小值,C语言科学计算入门之矩阵乘法的相关计算
  13. 腾讯云服务器安装redis、mysql
  14. C语言字符意思 char,c语言中char* 代表什么
  15. 斯坦福cs224n-2021 assignment1-探索词向量—词共现矩阵—SVD(奇异值分解)
  16. 毕设学习笔记(1):经典DV-Hop算法(MATLAB)
  17. [摘抄]给终身学习者的建议
  18. linux下was怎么卸载_WAS 6.1简单卸载方法
  19. ABAP SY-系统值
  20. MySQL查询最近7天数据

热门文章

  1. 20200716每日一句
  2. unity read files 从ini文件
  3. c++ python 计算100以内的素数
  4. Atitit velocity 模板引擎使用法 目录 1.1. 1.4 Context 1 1.1.1. 1.4.1 Context 基本概念 1 1.2. .3不同模式下使用velocity 1
  5. Atitit 函数式编程与命令行语言的区别与优缺点 目录 1. 常见的函数式语言 2 1.1. 命令行 bat 2 1.2. Sql h5 css 正则表达式 2 1.3. 工作流语言 anno注
  6. Atitit 软件与开发的未来趋势 attilax总结 1.1. Sdx软件重构世界 软件定义未来 1 1.2. 《软件和信息技术服务业发展规划(2016-2020年)》( 2 1.3. Iot物联
  7. Atitit.  Exception in thread main java.lang.Error: Unresolved compilation problem:
  8. Atitit.HTTP 代理原理及实现 正向代理与反向代理attilax总结
  9. Atitit.跨语言 java c#.net php js常用的codec encode算法api 兼容性  应该内置到语言里面
  10. Atitit.异常机制的设计原理