Python 制作词云图

2024-06-12 10:20
文章标签 python 制作 云图

本文主要是介绍Python 制作词云图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


在这里插入图片描述
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
在这里插入图片描述

  • 推荐:「stormsha的主页」👈,持续学习,不断总结,共同进步,为了踏实,做好当下事儿~

  • 专栏导航

    • Python系列: Python面试题合集,剑指大厂
    • Git系列: Git操作技巧
    • GO系列: 记录博主学习GO语言的笔记,该笔记专栏尽量写的试用所有入门GO语言的初学者
    • 数据库系列: 详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 运维系列: 总结好用的命令,高效开发
    • 算法与数据结构系列: 总结数据结构和算法,不同类型针对性训练,提升编程思维

    非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

    💖The Start💖点点关注,收藏不迷路💖

    📒文章目录

      • 词云图简介
      • 环境准备
      • 词云图的基本制作流程
        • 1. 文本数据准备
        • 2. 文本清洗
        • 3. 生成词云图
        • 4. 显示和保存词云图
        • 5. 完整代码
        • 6. 效果图
      • 技巧与最佳实践
        • 1. 词云图形状
        • 2. 词云图颜色
        • 3. 词云图字体
        • 4. 词云图布局
        • 5. 词云图的交互性


在数据可视化领域,词云图以其独特的视觉冲击力和信息传达能力,成为开发者和数据分析师展示文本数据的重要工具。本文将深入探讨如何使用 Python 制作词云图,并分享一些实用的技巧和最佳实践。

词云图简介

词云图是一种将文本数据中的关键词以不同大小、颜色和字体显示在图形中的可视化技术。关键词的字体大小通常与其在文本中出现的频率成正比,从而突出显示文本中的重要信息。

环境准备

在开始制作词云图之前,我们需要准备 Python 环境,并安装一些必要的库。主要使用的库包括 matplotlib 用于绘图,PIL 用于图像处理,以及 wordcloud 用于生成词云图。

pip install wordcloud

词云图的基本制作流程

1. 文本数据准备

首先,我们需要准备或获取文本数据。这些数据可以是网页内容、文章、评论等。例如,我们可以使用 Python 的 requests 库来获取网页内容。

import requestsurl = 'https://stormsha.blog.csdn.net/article/details/138405944/'
response = requests.get(url)
html_content = response.text

2. 文本清洗

获取文本后,需要进行清洗,去除无用的符号、停用词等,以提高词云图的质量。

import re
from wordcloud import STOPWORDS# 使用BeautifulSoup解析网页内容  
soup = BeautifulSoup(html_content, 'html.parser')  # 使用get_text()方法去除HTML标签,并将结果转换为字符串  
text = soup.get_text()  text = re.sub(r'\W+', ' ', text)
stopwords = set(STOPWORDS)
text = ' '.join([word for word in text.split() if word not in stopwords])

3. 生成词云图

使用 wordcloud 库生成词云图。我们可以自定义词云图的形状、颜色、字体等属性。

from wordcloud import WordCloudwordcloud = WordCloud(width=800, height=400, background_color='white').generate(text)

4. 显示和保存词云图

最后,使用 matplotlib 库显示和保存词云图。

import matplotlib.pyplot as pltplt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
wordcloud.to_file('word_cloud.png')

5. 完整代码

import matplotlib  
import requests  
import re  
from wordcloud import STOPWORDS, WordCloud  
import matplotlib.pyplot as plt  
from bs4 import BeautifulSoup  matplotlib.use('TkAgg')  
url = 'https://stormsha.blog.csdn.net/article/details/138405944/'  
response = requests.get(url)  
html_content = response.text  # 使用BeautifulSoup解析网页内容  
soup = BeautifulSoup(html_content, 'html.parser')  # 使用get_text()方法去除HTML标签,并将结果转换为字符串  
text = soup.get_text()  text = re.sub(r'\W+', ' ', text)  
stopwords = set(STOPWORDS)  
text = ' '.join([word for word in text.split() if word not in stopwords])  
word_cloud = WordCloud(width=800, height=400, background_color='white').generate(text)  
plt.figure(figsize=(10, 5))  
plt.imshow(word_cloud, interpolation='bilinear')  
plt.axis('off')  
plt.show()  
word_cloud.to_file('word_cloud.png')

6. 效果图

![[Figure_1.png]]

技巧与最佳实践

1. 词云图形状

默认的词云图是矩形的,但我们可以自定义词云图的形状,如使用公司 logo 或特定图形作为词云的轮廓。

from PIL import Image
image_coloring = np.array(Image.open('shape.png'))
wordcloud = WordCloud(mask=image_coloring).generate(text)

2. 词云图颜色

颜色对于词云图的视觉效果至关重要。我们可以根据文本内容或个人喜好调整颜色。

wordcloud = WordCloud(colormap='viridis').generate(text)

3. 词云图字体

选择合适的字体可以增强词云图的可读性和美观性。我们可以使用本地字体或在线字体。

wordcloud = WordCloud(font_path='path_to_font.ttf').generate(text)

4. 词云图布局

通过调整词云图的 max_font_sizemax_words 参数,我们可以控制词云图的布局和密度。

wordcloud = WordCloud(max_font_size=110, max_words=200).generate(text)

5. 词云图的交互性

为了使词云图更加生动有趣,我们可以添加交互性,如鼠标悬停显示单词频率。

from wordcloud import get_single_color_funcdef color_func(word, font_size, position, orientation, random_state=None, **kwargs):return "hsl(0, 100%, %d%%)" % (100 - (font_size / max_font_size) * 100)wordcloud = WordCloud(color_func=color_func).generate(text)

🔥🔥🔥道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

💖The End💖点点关注,收藏不迷路💖

这篇关于Python 制作词云图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1053944

相关文章

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

Python包管理工具pip的升级指南

《Python包管理工具pip的升级指南》本文全面探讨Python包管理工具pip的升级策略,从基础升级方法到高级技巧,涵盖不同操作系统环境下的最佳实践,我们将深入分析pip的工作原理,介绍多种升级方... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Python使用pip工具实现包自动更新的多种方法

《Python使用pip工具实现包自动更新的多种方法》本文深入探讨了使用Python的pip工具实现包自动更新的各种方法和技术,我们将从基础概念开始,逐步介绍手动更新方法、自动化脚本编写、结合CI/C... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核