【小白的实战】Python实用功能——分分钟就学会的词云图(下)

简介: 接上期,我们算是可以自己完成一张看起来还不错的词云图了。

image.png

接上期,我们算是可以自己完成一张看起来还不错的词云图了。

没错,仅仅只是看上去不错

image.png

细看你会发现,Harry、Ron、Hermione等人名占用了非常大的画幅。词也是排列得很杂。要有实际意义得话,恐怕这样一副词云图还不能让人满意。

况且我们是自己做的词云图,如果不能随心所欲自己设置一些参数,自己调整出想要得效果,那实在没必要花这么大功夫

今天我们就来一期进阶实战,和大家一起康康我们还能怎么调整词云图。


实战开始


一、回到开发页面


相信有部分小伙伴已经在做完第一幅图之后把jupyter关掉了吧?我们开始下一次实战的第一步当然是回到之前的页面,进入上次打代码的状态啦~

有人说,这么小儿科的东西也算第一步? 你是不是在水字数?

显然不是,这一步对第一次尝试jupyter的朋友来说至关重要。

别忘了这里是小白的实战,事无巨细是我们的原则。没基础的人的确会在这一步卡住,而网上没有相关资料可以带ta过关。不信你接着看:


首先,jupyetr编辑产生的ipynb文件是没法直接点开进入的

image.png

看,直接点会默认打开一个你的集成式开发环境,比如我的是Vscode,你要下一些依赖和编译器啥的才可以运行,这点我暂时也不懂

我们需要像一开始打开jupyter那样从任务栏或者快捷方式打开。

image.png

然后找到我们之前编辑的ipynb文件,点击打开。

image.png

打开就可以直接接着下去写代码了吗?当然不是。 你关闭jupyter内核之后变量的值都会丢失。你现在的f,w这些变量都不是之前值了,物是人非事事休啊。

如果你直接运行最后一串代码想要输出些什么,就会出现报错

image.png

同理,你如果打好了新的代码也一样运行不了。咱们要针对选定的代码cell再运行一次,来获取变量。在这里我们可以发现每一步几乎都是必要的,一环扣一环,所有我们直接全部运行一遍。

image.png

接下来,才是今天的开始


二、StopWords筛选词语


我们之前的问题是什么?

无意义词语太多

词语横七竖八的,太密密麻麻了

……

一个一个来。首先无意义词语像大家耳熟能详的Harry啥的当然不用再出现啦,我们可以屏蔽掉吗?

显然是可以的,wordcloud提供了stopwords参数在WordCloud函数里,可以把你想要屏蔽的传入,就ok了

开始实战:

image.png

咱们在之前编辑的函数里面加上这个参数,用列表的方式把屏蔽词传入。再把这个cell和后面的一通运行。没报错。

image.png

回到桌面一看,我大为震惊。

啥情况?咋屏蔽了几个人名,出来这么多无意义的词呀,and of the都来了

难道我要自己一个个输入这些词把他们屏蔽?那为啥之前没设置stopwords的时候反而没有呢?

一通搜索,发现原来这是wordcloud自带的stopwords在默默奉献。

image.png

如图,这么一长串已经给你准备好了。事实上我们只需要再往里添加我们需要的屏蔽词就行了。

image.png

重新运行,没有报错。到桌面查看新的词云图

image.png

GOOD!达到了我们一开始的目的。接下来我随手再添一些屏蔽词。再用max_words参数限制一下词数,避免太密密麻麻(用法和stopwords一样,如图)

image.png

image.png

差不多,这张图我们可以看出,邓布利多是除了主角三人团出场率最高的,Know经常用,数字中最常出现的是one(可能跟英语一些用法有关,比如one day ,I'm the one who...)……尽情解读吧。


三、如果词云有形状的话……


没错,劲爆内容来啦。wordcloud允许自定义形状,你需要一张只表示形状的纯色图(直接搜就能搜到),比如这个

image.png

剪影图自然是最好的。

不过要读图,我们需要安装一个别的依赖。名叫imageio安装方法一样,直接pip install imageio就行

image.png

这里我已经装好了。直接import imageio

image.png

接下来用imageio.imread把图片传给mask变量,之后是用WordCloud的mask参数设置图片形状的:

image.png

还记得怎么设置文件路径吗?别忘了前面加r取消转义符哦

image.png

把mask参数传入。mask=mask。输出!

image.png

怎么回事……为啥是这样?他把外壳用词语套起来了……

猜测jpg文件无法让imageio发现图片实体,我们需要一个背景透明的png图片,除了主体都是透明的

还能怎么办?打开PS啊

这里稍微跳几步,由于篇幅我们就不带大家装ps了……

image.png

点击“选择”里的“色彩范围”,选中中间黑色部分,复制到新图层后删除背景(因为背景不透明),选择反选,然后delete删掉就行【速通PS】

image.png

完成,导出就行。记得导出png格式的。

修改代码中的相关量后润一下代码

image.png

看来我们的猜想是对的……

只是……

大家下次自己做,还是找一张清晰度高且简单的图片吧……555😭😭😭


结束


那么我们的词云实战英文版就到这里完结了,要不是官方只允许分上中下三篇我能写出一部韩剧(不是)。

正经地说,因为实际上做起来,一件简单的事真地也会有许多需要注意的点,零零散散写进文章,就是千字文了

希望大家之后都能写出细节上完美的代码~加油!


目录
打赏
0
0
0
0
1
分享
相关文章
1688平台开放接口实战:如何通过API获取店铺所有商品数据(Python示列)
本文介绍如何通过1688开放平台API接口获取店铺所有商品,涵盖准备工作、接口调用及Python代码实现,适用于商品同步与数据监控场景。
Python深浅拷贝全解析:从原理到实战的避坑指南
在Python开发中,深浅拷贝是处理对象复制的关键概念。直接赋值仅复制引用,修改副本会影响原始数据。浅拷贝(如切片、copy方法)创建新容器但共享嵌套对象,适用于单层结构或需共享子对象的场景;而深拷贝(copy.deepcopy)递归复制所有层级,确保完全独立,适合嵌套结构或多线程环境。本文详解二者原理、实现方式及性能考量,帮助开发者根据实际需求选择合适的拷贝策略,避免数据污染与性能浪费。
39 1
Python办公自动化实战:手把手教你打造智能邮件发送工具
本文介绍如何使用Python的smtplib和email库构建智能邮件系统,支持图文混排、多附件及多收件人邮件自动发送。通过实战案例与代码详解,帮助读者快速实现办公场景中的邮件自动化需求。
54 0
Python文件操作的"保险箱":with语句深度实战指南
本文深入解析Python中`with`语句的原理与高级应用,通过“保险箱”类比,形象展示资源管理机制。从上下文管理协议到实战场景,涵盖文件、数据库、网络等多种资源的高效安全处理方式,助你写出更优雅、可靠的代码。
39 1
|
13天前
|
Python 办公实战:用 python-docx 自动生成 Word 文档
本文详解如何使用 python-docx 库实现 Word 文档自动化生成,涵盖环境搭建、文档创建、格式设置、表格与图片处理、模板填充、批量生成及性能优化等实战技巧,助你高效完成办公场景中的文档自动化任务。
269 1
|
14天前
|
汇率查询API实战指南:通过Python调用获取多国汇率信息
本文介绍如何通过 Python 快速集成多币种汇率查询接口,实现实时获取全球主要货币汇率数据。适用于跨境电商价格换算、国际贸易结算等场景,帮助提升用户体验并规避汇率波动风险。
154 0
汇率查询API实战指南:通过Python调用获取多国汇率信息
Python爬虫动态IP代理报错全解析:从问题定位到实战优化
本文详解爬虫代理设置常见报错场景及解决方案,涵盖IP失效、403封禁、性能瓶颈等问题,提供动态IP代理的12种核心处理方案及完整代码实现,助力提升爬虫系统稳定性。
38 0
【Python】300行代码实现crontab定时器功能 【上】
熟悉Linux的都知道在Linux下有一个crontab的定时任务,可以很方便的进行各种定时、计划任务的执行。有时候写代码也需要用到定时器业务,因此我使用Python实现了一个类似的定时器模块,可以很方便的做定时业务,使用例子如下:
502 0
【Python】300行代码实现crontab定时器功能 【上】
使用python实现一个文件搜索功能,类似于Everything功能
一般人日常总是会将一些片段信息记录到文件中,放到电脑硬盘上。等过段时间,可能就不知道放到哪里了,电脑上文件夹太多。 找文件一般都会借助于搜索软件,比如Everything软件就很强大,输入名称,就能全局查找文件;
596 0

热门文章

最新文章

推荐镜像

更多
登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问