wordcloud Python中的词云库
Python中的词云库是一个非常流行的文本可视化工具,可以将文本中的关键词以词云形式呈现。本篇文章将详细讲解Python中的词云库的使用和API以及代码注释。
- 安装词云库
安装词云库的方式很简单,只需要在命令行中使用pip命令即可。具体命令如下所示:
pip install wordcloud
- 导入词云库
导入词云库的方式也很简单,只需要在Python代码中添加下面这行代码即可:
from wordcloud import WordCloud
这样,我们就可以在后面的代码中使用词云库了。
- 构建词云
要构建词云,首先需要准备一个文本文件。这里我们使用一个名为example.txt的文本文件作为例子。文件内容如下所示:
Python is great
I love coding in Python
Python is awesome
I am a Python developer
接下来,我们需要读取这个文本文件,并使用词云库生成词云。代码如下所示:
# 导入必要的库
from wordcloud import WordCloud
import matplotlib.pyplot as plt# 读取文本文件
with open('example.txt', 'r') as f:text = f.read()# 生成词云
wordcloud = WordCloud().generate(text)# 显示词云图像
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
代码解释:
- 第2行:导入必要的库。
- 第4行:使用with语句读取文本文件。with语句可以自动管理文件的打开和关闭,并且在with语句中打开的文件一旦使用结束,就会自动关闭。
- 第8行:使用WordCloud类生成词云。这里使用默认参数构建WordCloud对象,因此生成的是一张简单的词云图。
- 第11~13行:显示词云图像。使用plt.imshow()函数显示词云;使用plt.axis()函数和参数’off’隐藏坐标轴;使用plt.show()函数显示图像。
- 设定词云参数
WordCloud类有很多参数可以调整,以生成不同风格的词云。下面是一些常见的参数:
- font_path:字体文件路径。
- width:词云图像的宽度。
- height:词云图像的高度。
- background_color:词云图像的背景颜色。
- mode:指定词云的排列方式。
下面是构建词云时使用一些参数的示例代码:
# 导入必要的库
from wordcloud import WordCloud
import matplotlib.pyplot as plt# 读取文本文件
with open('example.txt', 'r') as f:text = f.read()# 设定词云参数
params = {'font_path': 'font.ttf','width': 800,'height': 600,'background_color': 'white','mode': 'RGBA'
}# 生成词云
wordcloud = WordCloud(**params).generate(text)# 显示词云图像
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
代码解释:
- 第8~13行:定义词云参数,存储在一个字典中。这里设定字体文件为当前目录下的font.ttf;词云图像的宽度为800像素,高度为600像素;词云的背景颜色为白色,排列方式采用RGBA模式。
- 第16行:生成词云对象,通过词云参数传递给WordCloud类。
- 第19~21行:同上。
- 词云形状
在词云图像中,我们可以使用自定义的形状来限制词云中词汇的分布。下面展示了如何使用一个心形的形状来生成词云。首先,我们需要用一个心形图片来生成形状。代码如下所示:
# 导入必要的库
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt# 读取图片并处理为灰度图像
image = Image.open('heart.png')
image = image.convert('L')
image = np.array(image)# 显示图片
plt.imshow(image, cmap=plt.cm.gray, interpolation='bilinear')
plt.axis('off')
plt.show()
代码解释:
- 第2~6行:导入必要的库以及图片处理。
- 第8行:使用Image类读取图片。
- 第9行:将图片转换为灰度图像。
- 第10行:将图像转换为Numpy数组。
- 第13~15行:显示图片,使用plt.imshow()函数显示图片,使用参数cmap=plt.cm.gray指定为灰度图像;使用plt.axis()函数和参数’off’隐藏坐标轴;使用plt.show()函数显示图像。
在有了自定义形状图片之后,我们就可以使用WordCloud类的mask参数指定将要使用的形状图片。使用自定义形状的词云代码如下所示:
# 导入必要的库
from wordcloud import WordCloud
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt# 读取文本文件
with open('example.txt', 'r') as f:text = f.read()# 读取自定义形状图片
mask = np.array(Image.open('heart.png').convert('L'))# 设定词云参数
params = {'font_path': 'font.ttf','width': 800,'height': 600,'background_color': 'white','mode': 'RGBA','mask': mask
}# 生成词云
wordcloud = WordCloud(**params).generate(text)# 显示词云图像
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
代码解释:
- 第2~9行:同前面的示例。
- 第12~15行:使用Image类读取自定义形状图片,并转换为灰度图像和Numpy数组。
- 第18~25行:同前面的示例。
- 第28行:使用WordCloud类的mask参数指定自定义形状图片为词云形状。
- 结语
这篇文章介绍了Python中词云库的基本使用方法和常见API,以及使用注释的代码示例。当然,以上的示例代码仅是最基础的使用方式,更多高级用法需要大家自行去探索。希望这篇文章能够帮助初学者们快速上手使用词云库。
相关文章:
wordcloud Python中的词云库
Python中的词云库是一个非常流行的文本可视化工具,可以将文本中的关键词以词云形式呈现。本篇文章将详细讲解Python中的词云库的使用和API以及代码注释。 安装词云库 安装词云库的方式很简单,只需要在命令行中使用pip命令即可。具体命令如下所示&#…...
直播间讨论区需要WebSocket,简单了解下
由于 http 存在一个明显的弊端(消息只能有客户端推送到服务器端,而服务器端不能主动推送到客户端),导致如果服务器如果有连续的变化,这时只能使用轮询,而轮询效率过低,并不适合。于是 WebSocket…...
2024年天津高职升本科考试将于11月开始报名
2024年天津高职升本科考试文化课网上报名及其现场确认将于11月下旬开始 2023年11月1日,天津招考资讯官方网站发布了本月(11月)报名事项安排,将进行下列考试项目网上报名工作,2024年备考天津专升本的考生可以看到2024年…...
linux mysql 创建数据库并配置用户远程管理
要在Linux上创建MySQL数据库并配置用户以实现远程管理,您可以执行以下步骤: 1. 登录到MySQL服务器: 在您的Linux终端中,使用以下命令登录到MySQL服务器。您需要提供MySQL服务器的用户名和密码。 mysql -u root -p 输入密码后&a…...
pppoe拨号案例
R3服务端 interface LoopBack0 ip address 1.1.1.1 255.255.255.255 aaa local-user test password cipher admin local-user test service-type ppp ip pool test network 100.0.0.0 mask 255.255.255.0 interface Virtual-Template0 ppp authentication-mode chap remote …...
基于STM32C8T6的智能蓝牙小车控制设计
**单片机设计介绍,1655基于STM32C8T6的智能蓝牙小车控制设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计五、 程序文档 六、 结论七、 文章目录 一 概要 基于STM32C8T6的智能蓝牙小车控制设计是基于STM32微控制器和蓝牙模块开发的一种小型智能车辆控制系统…...
P3983 赛斯石(赛后强化版),背包
题目背景 白露横江,水光接天,纵一苇之所如,凌万顷之茫然。——苏轼真程海洋近来需要进购大批赛斯石,你或许会问,什么是赛斯石? 首先我们来了解一下赛斯,赛斯是一个重量单位,我们用…...
系统架构设计师历年真题案例知识点汇总
常见的软件质量属性有多种,例如性能(Performance)、可用性(Availability)、可靠性(Reliability)、健壮性(Robustness)、安全性(Security)、可修改性(Modification)、可变性(Changeability)、易用…...
缓存击穿只会逻辑过期 OR 互斥锁?深入思考 == 鹤立鸡群
网上但凡看得见的文章,大部分在说缓存穿透时都是无脑分布式锁 / 逻辑过期,分布式锁一点问题都没有么?逻辑过期一点问题都没有么?还能不能再进一步优化? 在聊聊缓存击穿的双重判定锁之前,我们将按照循循渐进…...
从 Seq2Seq 到 Attention:彻底改变序列建模
探究Attention机制和意力的起源。 简介 在这篇博文[1]中,将讨论注意力机制的起源,然后介绍第一篇将注意力用于神经机器翻译的论文。由于上下文压缩、短期记忆限制和偏差,具有 2 个 RNN 的 Seq2Seq 模型失败了。该模型的 BLEU 分数随着序列长度…...
手机通讯类、ip查询、智能核验、生活常用API接口推荐
手机通讯类 手机号码归属地:提供三大运营商的手机号码归属地查询。 空号检测:通过手机号码查询其在网活跃度,返回包括空号、停机等状态。 手机在网状态:支持传入三大运营商的号码,查询手机号在网状态,返…...
1.6 基本安全设计准则
思维导图: 1.6 基本安全设计准则笔记 目标:理解和遵循一套广泛认可的安全设计准则,以指导保护机制的开发。 主要准则: 机制的经济性:安全机制应设计得简单、短小,便于测试和验证,减少漏洞和降…...
图扑 HT for Web 手机端运维管理系统
随着信息技术的快速发展,网络技术的应用涉及到人们生活的方方面面。其中,手机运维管理系统可提供数字化、智能化的方式,帮助企业和组织管理监控企业的 IT 环境,提高运维效率、降低维护成本、增强安全性、提升服务质量,…...
LiveGBS流媒体平台GB/T28181常见问题-国标级联海康国标级联大华国标级联华为等,配置了国标级联, 上级看不到通道该怎么办?
LiveGBS常见问题-国标级联海康国标级联大华国标级联华为等,配置了国标级联, 上级看不到通道该怎么办? 1、如何配置国标级联2、上级看不到通道排查2.1、是否共享通道2.3、通道编号是否满足上级要求 3、如何抓包分析4、搭建GB28181视频直播平台 1、如何配置国标级联 …...
数字频带传输——二进制数字调制及MATLAB仿真
文章目录 前言一、OOK1、表达式2、功率谱密度3、调制框图 二、2PSK1、表达式2、功率谱密度 三、2FSK1、表达式 四、MATLAB 仿真1、MATLAB 源码2、仿真及结果①、输入信号及频谱图②、2ASK 调制③、2PSK 调制④、2FSK 调制⑤、随机相位 2FSK 调制 五、资源自取 前言 数字频带信…...
Bitdu 150万美元投资MSG:Web3合作典范催动极致交易体验
在Web3时代,如何一键把握DEX领域的机遇,是摆在一众中心化交易所面前的难题。 近期,新锐加密资产交易所Bitdu向MsgSender(MSG)投资150万美元,引起了专业的交易者们的关注。大家普遍认为,这一事件…...
CentOS一键部署Docker
Docker官网:https://www.docker.com/ CentOS(7.6) Docker(18.06.1)一键安装脚本 #!/bin/bash echo "1、安装依赖..." yum -y install gcc yum -y install gcc-c##验证gcc版本 gcc -vecho "2、卸载老…...
Centos虚拟机安装配置与MobaXterm工具及Linux常用命令
目录 一、Centos操作系统 1.1 Centos介绍 1.2 Centos虚拟机安装 1.3 配置centos的镜像 1.4 虚拟机开机初始设置 1.4.1 查看网络配置 1.4.2 编辑网络配置 二、MobaXterm工具 2.1 MobaXterm介绍 2.2 MobaXterm安装 2.3 切换国内源 三、Linux常用命令和模式 3.1 查看网络配置 …...
springboot医院绩效考核系统源码
医院绩效考核系统是一种以人力资源管理为基础,选用适合医院组织机构属性的绩效理论和方法,基于医院战略目标,构建全方位的绩效考评体系,在科学、合理的绩效管理体系基础上,采用科学管理的方法,如平衡计分卡…...
Java--枚举类型
Java中枚举类型可以取代一般的常量定义方式,可以将常量封装在类或接口中;枚举类型本质上还是以类的形式存在的,枚举类型继承于java.lang.Enum类,定义一个枚举类型时,每一个枚举类型成员都可以看做是枚举类型的一个实例…...
王杨安企cms:批量3000个游戏下载指定链接导入方法!
我只做游戏下载站和其他管道项目,今天就简单讲解一下如何用安企cms下载站模板,批量导入几千个游戏指定下载链接!其他老站长一般都是用api接口,但是接口对于入门的新手有难度,我也是入门级的新手,所以只说入…...
鸣潮自动化助手终极指南:3大核心功能解放你的双手
鸣潮自动化助手终极指南:3大核心功能解放你的双手 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸 一键日常 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves 还在为《鸣潮》中重复…...
【AI Agent工程实战系列①】Agent系统为什么比你想的难十倍
Demo Agent和生产级Agent:本质区别在哪里 绝大多数Agent教程展示的是这样的系统: 用户输入 → LLM思考 → 选择工具 → 工具执行 → 返回结果这个流程在happy path(正常路径)上工作得很好。教程里的例子永远是: 用户问题清晰、意图明确 工具总是返回正确结果 任务在3-5步…...
如何快速上手Azure Kinect Sensor SDK:面向开发者的完整深度相机开发工具包教程
如何快速上手Azure Kinect Sensor SDK:面向开发者的完整深度相机开发工具包教程 【免费下载链接】Azure-Kinect-Sensor-SDK A cross platform (Linux and Windows) user mode SDK to read data from your Azure Kinect device. 项目地址: https://gitcode.com/gh_…...
4个高效配置技巧:如何快速上手p5.js-web-editor项目开发
4个高效配置技巧:如何快速上手p5.js-web-editor项目开发 【免费下载链接】p5.js-web-editor The p5.js Editor is a website for creating p5.js sketches, with a focus on making coding accessible and inclusive for artists, designers, educators, beginners,…...
如何在电脑上玩手游:Scrcpy Mask终极指南与实战技巧
如何在电脑上玩手游:Scrcpy Mask终极指南与实战技巧 【免费下载链接】scrcpy-mask A Scrcpy client in Rust, Bevy and React, aimed at providing mouse and key mapping to control Android device, similar to a game emulator 项目地址: https://gitcode.com/…...
3步掌握BilibiliDown:高效下载B站视频的完整解决方案
3步掌握BilibiliDown:高效下载B站视频的完整解决方案 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi…...
Vue项目里用ECharts GL 4.8.0搞个炫酷的3D中国地图(带自动轮播和自定义悬浮框)
Vue 3 ECharts GL 4.8.0 打造企业级3D地理可视化组件 最近在数据大屏项目中遇到一个需求:需要在管理后台展示动态3D中国地图,要求支持省区轮播、数据钻取和定制化悬浮框。经过多次迭代,我总结出一套高可复用的解决方案,今天就把核…...
小心数据被‘卷’没!玩转24C02页写时必须搞懂的地址翻转与边界检查
小心数据被‘卷’没!玩转24C02页写时必须搞懂的地址翻转与边界检查 在嵌入式开发中,I2C EEPROM存储器的使用频率极高,而24C02作为经典型号,其页写功能既能提升效率又暗藏风险。许多开发者都曾遭遇过这样的噩梦:明明写入…...
3个理由告诉你为什么华硕路由器需要AdGuard Home守护你的家庭网络
3个理由告诉你为什么华硕路由器需要AdGuard Home守护你的家庭网络 【免费下载链接】Asuswrt-Merlin-AdGuardHome-Installer The Official Installer of AdGuardHome for Asuswrt-Merlin 项目地址: https://gitcode.com/gh_mirrors/as/Asuswrt-Merlin-AdGuardHome-Installer …...
