【小白的实战】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😭😭😭


结束


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

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

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


相关文章
|
18天前
|
开发框架 数据建模 中间件
Python中的装饰器:简化代码,增强功能
在Python的世界里,装饰器是那些静悄悄的幕后英雄。它们不张扬,却能默默地为函数或类增添强大的功能。本文将带你了解装饰器的魅力所在,从基础概念到实际应用,我们一步步揭开装饰器的神秘面纱。准备好了吗?让我们开始这段简洁而富有启发性的旅程吧!
26 6
|
16天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
28天前
|
IDE 数据挖掘 开发工具
Python作为一种广受欢迎的高级编程语言,以其简洁的语法和强大的功能吸引了众多初学者和专业开发者
Python作为一种广受欢迎的高级编程语言,以其简洁的语法和强大的功能吸引了众多初学者和专业开发者
36 7
|
16天前
|
小程序 开发者 Python
探索Python编程:从基础到实战
本文将引导你走进Python编程的世界,从基础语法开始,逐步深入到实战项目。我们将一起探讨如何在编程中发挥创意,解决问题,并分享一些实用的技巧和心得。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的参考。让我们一起开启Python编程的探索之旅吧!
41 10
|
20天前
|
测试技术 Python
探索Python中的装饰器:简化代码,增强功能
在Python的世界中,装饰器是那些能够为我们的代码增添魔力的小精灵。它们不仅让代码看起来更加优雅,还能在不改变原有函数定义的情况下,增加额外的功能。本文将通过生动的例子和易于理解的语言,带你领略装饰器的奥秘,从基础概念到实际应用,一起开启Python装饰器的奇妙旅程。
34 11
|
16天前
|
Python
探索Python中的装饰器:简化代码,增强功能
在Python的世界里,装饰器就像是给函数穿上了一件神奇的外套,让它们拥有了超能力。本文将通过浅显易懂的语言和生动的比喻,带你了解装饰器的基本概念、使用方法以及它们如何让你的代码变得更加简洁高效。让我们一起揭开装饰器的神秘面纱,看看它是如何在不改变函数核心逻辑的情况下,为函数增添新功能的吧!
|
25天前
|
设计模式 监控 程序员
Python中的装饰器:功能增强与代码复用的利器####
本文深入探讨了Python中装饰器的工作原理、应用场景及其在提升代码可读性、减少重复劳动方面的优势。不同于传统方法的冗长和复杂,装饰器提供了一种优雅且高效的方式来增强函数或方法的功能。通过具体实例,我们将揭示装饰器如何简化错误处理、日志记录及性能监控等常见任务,使开发者能够专注于核心业务逻辑的实现。 ####
|
26天前
|
机器人 计算机视觉 Python
Python作为一种高效、易读且功能强大的编程语言,在教育领域的应用日益广泛
Python作为一种高效、易读且功能强大的编程语言,在教育领域的应用日益广泛
42 5
|
29天前
|
开发框架 缓存 测试技术
Python中的装饰器:魔法般的功能增强
在Python编程中,装饰器是一种强大而灵活的工具,它允许开发者修改或扩展函数和类的行为。本文将深入探讨Python装饰器的工作原理,并通过实例演示如何创建和使用自定义装饰器来增强代码的功能性和可读性。我们将从基础概念讲起,逐步深入到高级应用,揭示装饰器背后的“魔法”,并展示它们在实际开发中的多种用途。
|
28天前
|
算法 Unix 数据库
Python编程入门:从基础到实战
本篇文章将带你进入Python编程的奇妙世界。我们将从最基础的概念开始,逐步深入,最后通过一个实际的项目案例,让你真正体验到Python编程的乐趣和实用性。无论你是编程新手,还是有一定基础的开发者,这篇文章都将为你提供有价值的信息和知识。让我们一起探索Python的世界吧!
下一篇
DataWorks