手把手教你使用Python打造绚丽的词云图
一、词云的运用
设计到的模块:wordcloud
编辑器:sublime text 3
编译器:Python 3.6
1.下载安装wordcloud模块
pip install wordcloud
2.导入模块并初始化词云对象
下面我们打开它的帮助文档看看它的使用方法:
可以看到这个类就是词云初始化的主要类,下面都是它的初始化参数,所以我们要使用它:
import wordcloud wc=wordcloud.WordCloud(font_path=r'C:\Windows\Fonts\华康少女文字简W5.ttc',width=200,height=100) #初始化
这里为了使得生成的词云图更好看,所以我加入了华康少女字体,这个字体不是系统自带的,得下载。下载好后把它放到window 字体文件夹中。
3.加入文本到词云中
使用初始化的对象来调用文本生成器,我们从帮助函数中可以得出它有两个生成器函数。
这两个生成器函数差不多,而且意思相近,这里不做过多讨论,我们来看下它的使用方法:
wc.generate('任性的90后boy')
这样就从文本中生成词云了。
4.显示词云对象
生成之后,我们需要把它显示出来,那怎么办呢?如图所示:
由此可以看出它有四种生成方式,即为:数组,文件,html,图片。我们随机选择一种,就选文件。
wg.to_file('gf.jpg')
这样就生成了一个以刚才的文本为主的华康少女字体的词云图了,是不是很简单了?别着急,还有大菜。
5.显示词云背景
我们从上幅图片可以看出,字体和图片的颜色都很让人揪心,那么有没有方法改变它们呢?答案当然是有的。
我们可以通过设置词云的背景颜色来改变词云背景:
wordcloud.WordCloud(font_path=r'C:\Windows\Fonts\华康少女文字简W5.ttc',width=200,height=100,background_color="gray")
这样我们可以将背景颜色改为灰色,要是改变字体颜色该怎么办呢?由刚才的帮助文档,我们可以看出有个颜色
生成器类ImageColorGenerator,它负责专门定义我们喜欢的颜色方案,而且它还可以随时修改,不过要在初始化后使用color_func函数进行回调才行,因为ImageColorGenerator传入的是一个图片数组,所以我们需要用到一个可以将图片转化为数组的模块numpy,今天我们只讲它的一个方法,下面我们来看下:
from wordcloud import ImageColorGenerator from wordcloud import WordCloud as wc from PIL import Image import numpy as n ff=open('OSI.txt','r',encoding='utf-8').read() #导入文本文件并读取内容 bg=n.array(Image.open('g.png')) #将图片以数组形式输出 #注意如果背景图片是png,那么模式必须是RGBA,因为png图片支持透明度设置,设置背景图片,背景颜色必须是白色 w=wc(font_path=r'C:\Windows\Fonts\华康少女文字简W5.ttc',mode='RGBA',mask=bg,repeat=True,background_color='#FFFFFF') wg=w.generate(ff) #嵌入文本 ig=ImageColorGenerator(bg) #图片颜色导入 wg.recolor(color_func=ig) #重新设置词云图颜色 wg.to_file('gf.png') #保存图片
可以看到,最后图片里文字的颜色和引用的图片颜色一样:
除此之外WordCloud还有很多优秀的方法,比如:
mask='' #设置背景图片 font_path='C:\Windows\Fonts\STZHONGS.TTF' #解决中文无法输出的尴尬 max_words=5 #设置单词显示最多的数目 stopwords='' #设置停用词 如果为空,则使用内置的STOPWORDS方法 max_font_size=4 #设置字体最大值 int类型 random_state=1 #设置有多少种配色方案 int类型 mode:'RGB' #当参数为“RGBA”并且背景颜色不为空时,背景为透明。 color_func # 生成新颜色的回调函数 scale #按比例放大画布 类型为float colormap # 给每个词随机分配颜色,若指定color_func,则忽略该方法。 repeat=True #如果文本太少无法充满整个照片导致效果不明显就用这个
6.选择性输出
不知道大家注意到没有,这里有一个停用词设置,它就是stopwords,它就是限制某些字不能输出在词云上,不过必须使用wordcloud内置的STOPWORDS方法才可以,下面我们来看下:
因为它只涉及到英文的分词限制,于是我们先选择个英文单词,就选择频率比较高的control:
sd=STOPWORDS.add('Control') #添加Control为禁用词
然后我们在给初始化时的wordcloud添加一个属性stopwords属性:
wc(font_path=r'C:\Windows\Fonts\华康少女文字简W5.ttc',mode='RGBA',mask=bg,width=500,height=300 repeat=True,stopwords=sd,background_color='#FFFFFF')
可以看到我们的Control没了,这就是词云的神奇之处。
二、词云拓展
在这里,小编还要教大家解锁一个词云的新方式,那就是它不光是一个图片生成神器,还是一个看图,制图,图表生成神器,因为它与PIL ,matplotlib完美的契合在一起,使得它可以随心所欲的调用这两个模块的功能,不信的话,你可以随我来看看:
可以看到基本上都是pillow的方法,而且还有matplotlib 和random以及os的方法,可以说是很全了。
im=wordcloud.wordcloud.Image.open('q.jpg') im.show()
这样基本上你就可以打开一个词云生成的图片了,相信很多小伙伴还没解锁这一知识吧,哈哈哈。
三、总结
通过对词云的学习,可以使我们很直观的了解到文本中的数据的占比情况,其实它就是比较简单的数据分析。
以上是手把手教你使用Python打造绚丽的词云图的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

C语言中没有内置求和函数,需自行编写。可通过遍历数组并累加元素实现求和:循环版本:使用for循环和数组长度计算求和。指针版本:使用指针指向数组元素,通过自增指针遍历高效求和。动态分配数组版本:动态分配数组并自行管理内存,确保释放已分配内存以防止内存泄漏。

Python和JavaScript开发者的薪资没有绝对的高低,具体取决于技能和行业需求。1.Python在数据科学和机器学习领域可能薪资更高。2.JavaScript在前端和全栈开发中需求大,薪资也可观。3.影响因素包括经验、地理位置、公司规模和特定技能。

distinct 和 distinguish 虽都与区分有关,但用法不同:distinct(形容词)描述事物本身的独特性,用于强调事物之间的差异;distinguish(动词)表示区分行为或能力,用于描述辨别过程。在编程中,distinct 常用于表示集合中元素的唯一性,如去重操作;distinguish 则体现在算法或函数的设计中,如区分奇数和偶数。优化时,distinct 操作应选择合适的算法和数据结构,而 distinguish 操作应优化区分逻辑效率,并注意编写清晰可读的代码。

H5页面需要持续维护,这是因为代码漏洞、浏览器兼容性、性能优化、安全更新和用户体验提升等因素。有效维护的方法包括建立完善的测试体系、使用版本控制工具、定期监控页面性能、收集用户反馈和制定维护计划。

!x 的理解!x 是 C 语言中的逻辑非运算符,对 x 的值进行布尔取反,即真变假,假变真。但要注意,C 语言中真假由数值而非布尔类型表示,非零视为真,只有 0 才视为假。因此,!x 对负数的处理与正数相同,都视为真。

C语言中没有内置的sum函数用于求和,但可以通过以下方法实现:使用循环逐个累加元素;使用指针逐个访问并累加元素;对于大数据量,考虑并行计算。

如何在爬虫时获取58同城工作页面的动态数据?在使用爬虫工具爬取58同城的某个工作页面时,可能会遇到这样�...

PS“正在载入”问题是由资源访问或处理问题引起的:硬盘读取速度慢或有坏道:使用CrystalDiskInfo检查硬盘健康状况并更换有问题的硬盘。内存不足:升级内存以满足PS对高分辨率图片和复杂图层处理的需求。显卡驱动程序过时或损坏:更新驱动程序以优化PS和显卡之间的通信。文件路径过长或文件名有特殊字符:使用简短的路径和避免使用特殊字符。PS自身问题:重新安装或修复PS安装程序。
