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基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

Python+PyQt5实现多屏幕协同播放功能

《Python+PyQt5实现多屏幕协同播放功能》在现代会议展示、数字广告、展览展示等场景中,多屏幕协同播放已成为刚需,下面我们就来看看如何利用Python和PyQt5开发一套功能强大的跨屏播控系统吧... 目录一、项目概述:突破传统播放限制二、核心技术解析2.1 多屏管理机制2.2 播放引擎设计2.3 专

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

在C#中调用Python代码的两种实现方式

《在C#中调用Python代码的两种实现方式》:本文主要介绍在C#中调用Python代码的两种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#调用python代码的方式1. 使用 Python.NET2. 使用外部进程调用 Python 脚本总结C#调

Python下载Pandas包的步骤

《Python下载Pandas包的步骤》:本文主要介绍Python下载Pandas包的步骤,在python中安装pandas库,我采取的方法是用PIP的方法在Python目标位置进行安装,本文给大... 目录安装步骤1、首先找到我们安装python的目录2、使用命令行到Python安装目录下3、我们回到Py