wordcloud,一个超强的 Python 库!

news2024/9/20 22:51:10

更多资料获取

📚 个人网站:ipengtao.com


大家好,今天为大家分享一个超强的 Python 库 - wordcloud。

Github地址:https://github.com/amueller/word_cloud


词云图是一种独特而引人注目的数据可视化方式,通常用于显示文本数据中的关键词,以便用户可以快速识别最频繁出现的单词。Python 中的 WordCloud 库使得创建漂亮的词云图变得非常简单。本文将深入探讨 Python WordCloud 的功能和用法,并提供详细的示例代码,以帮助大家创建自己的令人惊叹的词云图。

什么是 WordCloud?

WordCloud 是一个 Python 库,用于创建词云图,这是一种以视觉方式呈现文本数据中关键词的图形表示方法。词云图的特点是使用不同大小的字体来表示不同重要性的单词,通常情况下,出现频率较高的单词会以较大的字体显示。

词云图通常用于分析文本数据,例如新闻文章、社交媒体评论、书籍、调查回答等等。它们不仅仅是信息的可视化呈现方式,还可以用于挖掘文本数据中的趋势和主题。

安装 WordCloud

要使用 Python WordCloud,首先需要安装该库。

可以使用 pip 包管理器来安装它,打开终端并运行以下命令:

pip install wordcloud

安装完成后,就可以在 Python 中导入 WordCloud 库并开始创建词云图了。

基本用法

创建简单的词云图

看看如何使用 WordCloud 来创建一个简单的词云图。假设有一些文本数据,想要可视化其中的关键词。

以下是一个基本示例:

from wordcloud import WordCloud
import matplotlib.pyplot as plt

# 文本数据
text = "Python is an amazing programming language. It is versatile, powerful, and easy to learn."

# 创建词云图
wordcloud = WordCloud(width=800, height=400).generate(text)

# 显示词云图
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')  # 隐藏坐标轴
plt.show()

这段代码首先导入了 WordCloud 库,然后创建了一个 WordCloud 对象,传入了文本数据。最后,使用 Matplotlib 来显示词云图。

自定义词云图样式

WordCloud 可以自定义词云图的样式,包括字体、颜色、背景颜色等。

以下是一个示例,演示了如何自定义词云图的外观:

from wordcloud import WordCloud
import matplotlib.pyplot as plt

# 文本数据
text = "Python is an amazing programming language. It is versatile, powerful, and easy to learn."

# 自定义词云图样式
wordcloud = WordCloud(
    width=800, 
    height=400, 
    background_color='white',  # 背景颜色
    colormap='viridis',  # 颜色映射
    font_path='path/to/font.ttf',  # 字体文件路径
    max_words=50,  # 最大显示单词数
    stopwords={'is', 'an', 'it', 'and'},  # 停用词
).generate(text)

# 显示词云图
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()

在这个示例中,设置了背景颜色为白色,使用了 ‘viridis’ 颜色映射,指定了字体文件的路径,限制了最大显示单词数为 50,并排除了一些停用词。

从文件生成词云图

除了直接从文本数据生成词云图,WordCloud 也可以从文件中读取文本数据。

以下是一个示例:

from wordcloud import WordCloud
import matplotlib.pyplot as plt

# 从文件读取文本数据
with open('text.txt', 'r') as file:
    text = file.read()

# 创建词云图
wordcloud = WordCloud(width=800, height=400).generate(text)

# 显示词云图
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()

这个示例从名为 ‘text.txt’ 的文本文件中读取数据,然后创建词云图。

高级用法

使用掩码图像

WordCloud 还支持使用掩码图像来定义词云图的形状。可以指定一个图像文件,词云图将采用该图像的形状。

以下是一个示例:

from wordcloud import WordCloud, ImageColorGenerator
import matplotlib.pyplot as plt


from PIL import Image

# 读取掩码图像
mask = np.array(Image.open('mask.png'))

# 文本数据
text = "Python is an amazing programming language. It is versatile, powerful, and easy to learn."

# 创建词云图
wordcloud = WordCloud(
    width=800, 
    height=400, 
    mask=mask,  # 使用掩码图像
    contour_width=1, 
    contour_color='black',
).generate(text)

# 使用掩码图像的颜色
image_colors = ImageColorGenerator(mask)

# 显示词云图
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud.recolor(color_func=image_colors), interpolation='bilinear')
plt.axis('off')
plt.show()

在这个示例中,首先读取了一个掩码图像(‘mask.png’),然后使用该掩码图像创建词云图。词云图将采用掩码图像的形状,并可以使用掩码图像的颜色。

使用多个文本数据源

有时,可能需要将多个文本数据源合并为一个词云图。WordCloud 可以将多个文本数据源合并并生成词云图。

以下是一个示例:

from wordcloud import WordCloud
import matplotlib.pyplot as plt

# 文本数据1
text1 = "Python is an amazing programming language. It is versatile, powerful, and easy to learn."

# 文本数据2
text2 = "Data analysis with Python is fun and rewarding. It allows you to gain valuable insights from your data."

# 合并文本数据
text = text1 + ' ' + text2

# 创建词云图
wordcloud = WordCloud(width=800, height=400).generate(text)

# 显示词云图
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()

在这个示例中,将两个文本数据源(text1 和 text2)合并为一个,并使用合并后的文本数据生成词云图。

总结

Python WordCloud 是一个强大的工具,用于创建令人惊叹的词云图。无论是在分析文本数据、可视化关键词,还是在制作独特的数据可视化图形,WordCloud 都可以帮助大家实现这些目标。通过本文提供的示例代码和指南,现在应该已经掌握了如何使用 WordCloud 库来创建自己的词云图。


Python学习路线

在这里插入图片描述

更多资料获取

📚 个人网站:ipengtao.com

如果还想要领取更多更丰富的资料,可以点击文章下方名片,回复【优质资料】,即可获取 全方位学习资料包。

在这里插入图片描述
点击文章下方链接卡片,回复【优质资料】,可直接领取资料大礼包。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1398809.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第35集《佛法修学概要》

己四 、 精进度 分三:庚一、 精进自性。庚 二、趣入修习精进方便。 庚三、修习精进差别内容 请大家打开讲义第九十四页,我们看己四,精进度。 当我们从人天乘一个好人的阶段提升到一种菩萨道的修学,我们就要注意两个重点了。在我…

什么是内网穿透?

简介: 书面来说:内网穿透是一种网络技术,用于将内部私有网络中的服务暴露给公共网络,使得外部网络可以通过公网访问内网的服务。通常情况下,内网中的设备和服务由于位于私有网络中,无法直接通过公网IP进行…

9.1 Maven项目管理(❤❤❤❤)

9.1 Maven项目管理 1. Maven介绍2. 创建Maven项目2.1 创建2.2 结构分析3. Maven依赖管理3.1 简介3.2 设置下载镜像仓库4. 本地仓库与中央仓库5. Maven生命周期6. Maven插件技术6.1 build标签7. maven属性管理

Django从入门到精通(一)

目录 一、Django环境搭建与命令 1.1、安装 1.2、命令行 创建项目 编写代码 运行 app概念 1.3、Pycharm创建项目 1.4、虚拟环境 创建虚拟环境 - 命令行 介绍 操作 基本问题 Pycharm 项目虚拟环境 django虚拟环境【安装django最新版本】 django虚拟环境【安装指…

《软件方法》强化自测题-杂项(3)-少林足球巴别塔-不属于“软件方法建模师”考察范围

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 本套自测题不属于“软件方法建模师”考察范围。 自测链接:https://www.101test.com/cand/index?paperIdQR6CGK 1. [单选] 著名歌曲《橄榄树》(不要问我从那…

端口映射的定义、特点、场景、实例、常见问题回答(Port Mapping)

目 录 一、端口映射(Port Mapping) 二、端口映射应用场景(什么时候用到端口映射) (一)、使用端口映射的条件 (二)使用端口映射的具体场景 三、端口映射技术的特点 …

内网安全管理系统(保密管理系统)

在当今信息化的时代,企业的内网已经成为其核心资产的重要组成部分。 随着企业的快速发展和信息化程度的提升,内网安全问题日益凸显,如何保障内网的安全和机密信息的保密性,已经成为企业亟待解决的问题。 内网安全管理系统(保密管…

Docker项目部署()

1.创建文件夹tools mkdir tools 配置阿里云 Docker Yum 源 : yum install - y yum - utils device - mapper - persistent - data lvm2 yum - config - manager -- add - repo http://mirrors.aliyun.com/docker- ce/linux/centos/docker - ce.repo 更新 yum 缓存 yum makec…

大路灯和护眼台灯哪个好?2024五款大路灯推荐

家用照明发展至今,从古时的匡衡凿壁借光读书,到后面的油灯、蜡烛等照明方式,再到近代的普通白炽灯,荧光灯、LED等电致发光灯具,发展到现在,科技在进步,文明在升级,照明灯具早已不再仅…

各种Linux版本安装Docker

文章目录 一、Ubuntu 20.04.61. 网卡和DNS配置2. Docker安装 二、CentOS Linux 7.91. 网卡和DNS配置2. Docker安装 三、Alibaba Cloud Linux 31. DNS配置2. repo说明3. Docker安装 四、验证是否安装成功 一、Ubuntu 20.04.6 1. 网卡和DNS配置 /etc/netplan 找到 *.yaml 文件 …

YOLOv8全网首发:新一代高效可形变卷积DCNv4如何做二次创新?高效结合SPPF

💡💡💡本文独家改进:DCNv4更快收敛、更高速度、更高性能,与YOLOv8 SPPF高效结合 收录 YOLOv8原创自研 https://blog.csdn.net/m0_63774211/category_12511737.html?spm=1001.2014.3001.5482 💡💡💡全网独家首发创新(原创),适合paper !!! 💡💡💡…

bgp选路

完成基础配置后: 配置bgp(如r2): 全布配置与重发布完成后:全网可达 起源属性修改选路:

LeetCode 0082.删除排序链表中的重复元素 II:模拟

【LetMeFly】82.删除排序链表中的重复元素 II:模拟 力扣题目链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-list-ii/ 给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字…

2023年十款开源测试开发工具推荐(自动化、性能、造数据、流量复制)

1、AutoMeter-API 自动化测试平台 AutoMeter 是一款针对分布式服务,微服务 API 做功能和性能一体化的自动化测试平台,一站式提供发布单元,API,环境,用例,前置条件,场景,计划&#xf…

家教上门助教小程序源码,家教小程序,家教系统,家教app,家教源码

家教上门助教小程序源码,家教小程序,家教系统,家教app,家教源码 推荐使用宝塔面板Linux NginxPHPMYSQL 支持家教老师筛选 支持家教人员入住 支持购买课程 支持教学资讯 支持订单课程

剪映导入素材全是绿屏解决方案

自己导入的视频或者是使用素材库里面的素材导入,结果都是一样全都是绿屏 网上找到原因是:兼容性或者软件的问题。 结果方案 : 菜单--全局设置 全局设置--性能。 把启用硬件加速编码和启动硬件加速解码俩个复选框取消掉!重启一下…

某马头条——day06

自媒体文章上下架 使用消息队列在自媒体下架时通知文章微服务。 kafka概述 kafka环境搭建 docker pull zookeeper:3.4.14 docker run -d --name zookeeper -p 2181:2181 zookeeper:3.4.14 安装kafka docker pull wurstmeister/kafka:2.12-2.3.1 docker run -d --name kafka…

CVE-2023-46226 Apache iotdb远程代码执行漏洞

项目介绍 Apache IoTDB 是针对时间序列数据收集、存储与分析一体化的数据管理引擎。它具有体量轻、性能高、易使用的特点,完美对接 Hadoop 与 Spark 生态,适用于工业物联网应用中海量时间序列数据高速写入和复杂分析查询的需求。 项目地址 https://io…

像 Google SRE 一样 OnCall

在 Google SRE 的著作《Google运维解密》(原作名:Site Reliability Engineering: How Google Runs Production Systems)中,Google SRE 的关键成员们几乎不惜用了三个章节的篇幅描述了在 Google 他们是如何 OnCall 的。 Google SRE 实践中,有…

python--re库

目录 re库初识 re库基础使用方法 compile()函数 基本用法 正则表达式常用规则字符 match与search方法 match search match/search findall与finditer方法 使用findall()返回所有匹配项 使用findall()提取多个组的匹配 使用finditer()逐个返回Match对象 使用findi…