Python 词云图:wordcloud库的使用

简介: Python 词云图:wordcloud库。安装,使用,常用函数方法,配置对象参数,蒙版,配色集。水浒传词云图代码实例。
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。
🍎个人主页: 小嗷犬的博客
🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。
🥭本文内容:Python 词云图:wordcloud库的使用

@TOC


1.wordcloud库的安装

wordcloud库是 Python 中一个优秀的第三方词云展示函数库,它可以通过文本来生成词云图,需要通过 pip指令安装:
pip install wordcloud

wordcloud库把词云当作一个WordCloud对象

  • wordcloud.WordCloud()代表一个文本对应的词云
  • 可以根据文本中词语出现的频率等参数绘制词云
  • 绘制词云的形状、尺寸和颜色都可以设定

2.wordcloud库的使用

2.1 常用函数方法

wordcloud中的常用函数方法见下表,其中 wWordCloud对象:
函数 描述
wordcloud.WordCloud() 根据参数配置词云图对象
w.generate(txt) 向WordCloud对象中加载文本txt(会根据空格分词)
w.to_file(filename) 将词云输出为图像文件,.png或.jpg格式

2.2 WordCloud对象常用配置参数

WordCloud对象常用配置参数如下:
参数 描述
width 指定词云对象生成图片的宽度,默认400像素
height 指定词云对象生成图片的高度,默认200像素
min_font_size 指定词云中字体的最小字号,默认4号
max_font_size 指定词云中字体的最大字号,根据高度自动调节
font_step 指定词云中字体字号的步进间隔,默认为1
font_path 指定字体文件的路径,默认None
max_words 指定词云显示的最大单词数量,默认200
stopwords 指定词云的排除词列表,即不显示的单词列表
mask 指定词云形状,默认为长方形,需要引用imread()函数
background_color 指定词云图片的背景颜色,默认为黑色
colormap 指定词云文字的配色集,默认为'viridis'

2.3 配色集

常用配色集如下:

配色集1
配色集2
配色集3
配色集4
配色集5
配色集6
配色集7


3.生成词云图

结合之前的博客: Python 中文分词:jieba库的使用,我们可以尝试生成第一张词云图了:
import jieba
import wordcloud
from imageio import imread
# 排除词库
excludes = {
    '两个', '一个', '只见', '如何', '那里', '说道', '这里', '出来', '这个', '今日', '便是', '问道',
    '起来', '甚么', '因此', '却是', '我们', '正是', '三个', '如此', '且说', '不知', '不是', '只是',
    '次日', '不曾', '不得', '一面', '看时', '不敢', '如今', '来到', '当下', '原来', '喝道', '只得',
    '里面', '大喜', '一齐', '商议', '那个', '公人', '将来', '前面', '那厮', '城中', '下山', '不见',
    '怎地', '上山', '随即', '不要'
}
# 读入水浒传,分词,并以空格连接
txt = open("Documents/《水浒传》.txt", "r", encoding='utf-8').read()
words = jieba.lcut(txt)
txt0 = ''
for i in words:
    if len(i) > 1:
        txt0 += ' '
        txt0 += i
txt0.replace('宋江道', '宋江')  # 纠正错误分词
mk = imread('皮卡丘.jpg')  # 设置蒙版为皮卡丘
w = wordcloud.WordCloud(
    width=1920,
    height=1080,  # 设置图片长宽为1080p
    background_color='white',  # 设置背景颜色为白色
    font_path='C://Windows//Fonts/msyh.ttc',  # 设置字体为微软雅黑
    max_words=300,  # 设置词汇最大数量为300
    stopwords=excludes,  # 设置排除词库
    mask=mk,  # 设置蒙版
    colormap='magma'  # 设置配色集为magma
)
w.generate(txt0)
w.to_file('img.png')
生成结果:
词云图
借助 wordcloud库,我们可以绘制出很多各式各样的词云图,快去动手尝试一下吧!
目录
相关文章
|
1天前
|
Python
Python 内置正则表达式库re的使用
正则表达式是记录文本规则的代码,用于查找和处理符合特定规则的字符串。在Python中,常通过原生字符串`r'string'`表示。使用`re.compile()`创建正则对象,便于多次使用。匹配字符串有`match()`(从开头匹配)、`search()`(搜索首个匹配)和`findall()`(找所有匹配)。替换字符串用`sub()`,分割字符串则用`split()`。
15 3
|
1天前
|
数据可视化 数据挖掘 数据处理
Altair:Python数据可视化库的魅力之旅
Altair:Python数据可视化库的魅力之旅
11 0
|
1天前
|
SQL 关系型数据库 数据库连接
使用 Python 访问数据库的基本方法
【5月更文挑战第12天】在Python中操作数据库涉及安装数据库驱动(如mysql-connector-python, psycopg2, pymongo)、连接数据库、执行查询/更新、处理结果集及关闭连接。使用ORM(如SQLAlchemy)可简化操作。通过上下文管理器(with语句)能更好地管理资源和错误。注意根据实际需求处理事务、错误和安全性,例如使用SSL连接。
18 2
|
1天前
|
XML 前端开发 数据格式
BeautifulSoup 是一个 Python 库,用于从 HTML 和 XML 文件中提取数据
【5月更文挑战第10天】BeautifulSoup 是 Python 的一个库,用于解析 HTML 和 XML 文件,即使在格式不规范的情况下也能有效工作。通过创建 BeautifulSoup 对象并使用方法如 find_all 和 get,可以方便地提取和查找文档中的信息。以下是一段示例代码,展示如何安装库、解析 HTML 数据以及打印段落、链接和特定类名的元素。BeautifulSoup 还支持更复杂的查询和文档修改功能。
21 1
|
1天前
Python---random库
Python---random库
5 1
|
1天前
|
SQL 开发框架 .NET
Python---time库
Python---time库
9 2
Python---time库
|
1天前
|
数据采集 数据可视化 数据挖掘
利用Python和Pandas库优化数据分析流程
在当今数据驱动的时代,数据分析已成为企业和个人决策的重要依据。Python作为一种强大且易于上手的编程语言,配合Pandas这一功能丰富的数据处理库,极大地简化了数据分析的流程。本文将探讨如何利用Python和Pandas库进行高效的数据清洗、转换、聚合以及可视化,从而优化数据分析的流程,提高数据分析的效率和准确性。
|
1天前
|
Java Python
Python 内置库 多线程threading使用讲解
本文介绍Python中的线程基础。首先展示了单线程的基本使用,然后通过`threading`模块创建并运行多线程。示例中创建了两个线程执行不同任务,并使用`active_count()`和`enumerate()`检查线程状态。接着讨论了守护线程,主线程默认等待所有子线程完成,但可设置子线程为守护线程使其随主线程一同结束。`join()`方法用于主线程阻塞等待子线程执行完毕,而线程池能有效管理线程,减少频繁创建的开销,Python提供`ThreadPoolExecutor`进行线程池操作。最后提到了GIL(全局解释器锁),它是CPython的机制,限制了多线程并行执行的能力,可能导致性能下降。
12 1
|
1天前
|
机器学习/深度学习 数据挖掘 PyTorch
10个非常有用的Python库,你知道几个?
这些库覆盖了数据科学、机器学习、Web开发和其他领域,使Python成为一个多用途的编程语言。它们在各种项目和领域中都非常有用。
17 2
|
1天前
|
JSON 监控 调度
局域网管理软件的自动化任务调度:Python 中的 APScheduler 库的应用
使用 Python 的 APScheduler 库可简化局域网管理中的自动化任务调度。APScheduler 是一个轻量级定时任务调度库,支持多种触发方式如间隔、时间、日期和 Cron 表达式。示例代码展示了如何创建每 10 秒执行一次的定时任务。在局域网管理场景中,可以利用 APScheduler 定期监控设备状态,当设备离线时自动提交数据到网站,提升管理效率。
25 0