目录
一、词云的运用" >一、词云的运用
1.下载安装wordcloud模块" >1.下载安装wordcloud模块
2.导入模块并初始化词云对象" >2.导入模块并初始化词云对象
3.加入文本到词云中" >3.加入文本到词云中
4.显示词云对象" >4.显示词云对象
5.显示词云背景" >5.显示词云背景
6.选择性输出
" >6.选择性输出
二、词云拓展" >二、词云拓展
三、总结" >三、总结
首页 后端开发 Python教程 手把手教你使用Python打造绚丽的词云图

手把手教你使用Python打造绚丽的词云图

Jul 25, 2023 pm 03:22 PM
python 词云图

一、词云的运用

设计到的模块:wordcloud

编辑器:sublime text 3

编译器:Python 3.6

1.下载安装wordcloud模块

pip install wordcloud
登录后复制

2.导入模块并初始化词云对象

下面我们打开它的帮助文档看看它的使用方法:

手把手教你使用Python打造绚丽的词云图

可以看到这个类就是词云初始化的主要类,下面都是它的初始化参数,所以我们要使用它:

import wordcloud
wc=wordcloud.WordCloud(font_path=r'C:\Windows\Fonts\华康少女文字简W5.ttc',width=200,height=100) #初始化
登录后复制

这里为了使得生成的词云图更好看,所以我加入了华康少女字体,这个字体不是系统自带的,得下载。下载好后把它放到window 字体文件夹中。


3.加入文本到词云中

使用初始化的对象来调用文本生成器,我们从帮助函数中可以得出它有两个生成器函数。

手把手教你使用Python打造绚丽的词云图

这两个生成器函数差不多,而且意思相近,这里不做过多讨论,我们来看下它的使用方法:

wc.generate('任性的90后boy')
登录后复制

这样就从文本中生成词云了。


4.显示词云对象

生成之后,我们需要把它显示出来,那怎么办呢?如图所示:

手把手教你使用Python打造绚丽的词云图

由此可以看出它有四种生成方式,即为:数组,文件,html,图片。我们随机选择一种,就选文件。

wg.to_file('gf.jpg')
登录后复制

手把手教你使用Python打造绚丽的词云图

这样就生成了一个以刚才的文本为主的华康少女字体的词云图了,是不是很简单了?别着急,还有大菜。


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') #保存图片
登录后复制

可以看到,最后图片里文字的颜色和引用的图片颜色一样:

手把手教你使用Python打造绚丽的词云图

手把手教你使用Python打造绚丽的词云图

此之外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')
登录后复制

手把手教你使用Python打造绚丽的词云图

可以看到我们的Control没了,这就是词云的神奇之处。


二、词云拓展

在这里,小编还要教大家解锁一个词云的新方式,那就是它不光是一个图片生成神器,还是一个看图,制图,图表生成神器,因为它与PIL ,matplotlib完美的契合在一起,使得它可以随心所欲的调用这两个模块的功能,不信的话,你可以随我来看看:

手把手教你使用Python打造绚丽的词云图

可以看到基本上都是pillow的方法,而且还有matplotlib 和random以及os的方法,可以说是很全了。

im=wordcloud.wordcloud.Image.open('q.jpg')
im.show()
登录后复制

这样基本上你就可以打开一个词云生成的图片了,相信很多小伙伴还没解锁这一知识吧,哈哈哈。


三、总结

通过对词云的学习,可以使我们很直观的了解到文本中的数据的占比情况,其实它就是比较简单的数据分析。

以上是手把手教你使用Python打造绚丽的词云图的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

C语言 sum 的作用是什么? C语言 sum 的作用是什么? Apr 03, 2025 pm 02:21 PM

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

谁得到更多的Python或JavaScript? 谁得到更多的Python或JavaScript? Apr 04, 2025 am 12:09 AM

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

distinctIdistinguish有关系吗 distinctIdistinguish有关系吗 Apr 03, 2025 pm 10:30 PM

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

H5页面制作是否需要持续维护 H5页面制作是否需要持续维护 Apr 05, 2025 pm 11:27 PM

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

如何理解 C 语言中的 !x? 如何理解 C 语言中的 !x? Apr 03, 2025 pm 02:33 PM

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

C语言中 sum 是什么意思? C语言中 sum 是什么意思? Apr 03, 2025 pm 02:36 PM

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

如何获取58同城工作页面上的实时申请和浏览人数数据? 如何获取58同城工作页面上的实时申请和浏览人数数据? Apr 05, 2025 am 08:06 AM

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

PS一直显示正在载入是什么原因? PS一直显示正在载入是什么原因? Apr 06, 2025 pm 06:39 PM

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

See all articles