词云生成库wordcloud详解(二):wordcloud.py模块结构、生成颜色接口

Python爬取微博文本:从情感分析到词云可视化的完整实战 自然语言处理技术正在成为洞察社交媒体舆情的重要工具,其中情感分析和词云可视化是两种最具直观表现力的方法。情感分析通过将文本转化为概率特征,利用分类模型判定情绪倾向,帮助我们从海量评论中提炼公众态度;词云则通过字体大小呈现词频分布,让文本主题一目了然。这类技术广泛应用于舆情监控、品牌口碑分析和市场调研。基于Python爬虫采集目标用户的微博公开数据,结合SnowNLP进行情感打分、jieba分词处理,最后使用wordcloud生成词云,是一条完整且易上手的实践链路。本文以教育领域微博文本为例,串联数据采集、清 阅读详情

当前wordcloud版本:1.81

wordcloud.py模块结构

wordcloud.py模块是wordcloud包主要模块。

wordcloud.py模块结构如下,包括:
变量:FILE、FONT_PATH、STOPWORDS
类:WordCloud、IntegralOccupancyMap、colormap_color_func
函数: random_color_func和 get_single_color_func
其中WordCloud类、 STOPWORDS变量、 random_color_func函数、 get_single_color_func函数暴露到了wordcloud包的命名空间。

在这里插入图片描述

  • FILE:获取模块的物理路径。
  • FONT_PATH:获取默认字体的物理路径。
  • STOPWORDS:将默认的停用词表转换为集合对象(set)。
  • WordCloud:生成词云图的主接口。
  • random_color_func:默认颜色生成方式,根据HSL色彩模式随机生成颜色,其中hue为固定值80%,lumination为固定值50%。
  • get_single_color_func:返回一个返回值为RGB颜色的函数,颜色转换依靠PIL.ImageColor类和内置库colorsys。
  • colormap_color_func:通过matplotlib颜色映射表生成一个返回值为PIL(Pillow)`支持的RGB颜色字符串的函数。
  • IntegralOccupancyMap:根据文本词频和背景图构造积分占据栅格地图,对图像进行布局。

random_color_func解读

random_color_func功能为根据HSL色彩模式随机生成颜色,其中hue为固定值80%,lumination为固定值50%。
函数的签名为:random_color_func(word=None, font_size=None, position=None, orientation=None, font_path=None, random_state=None)
参数word, font_size, position, orientation都将被忽略。
random_state用于生成随机数字。取值为random.Random对象或None,默认值为None,直接使用random.Random()

案例:演示random_color_func的功能

from wordcloud import random_color_func


# 调用函数随机生成颜色,返回值为PIL(Pillow)支持的hsl颜色字符串
color=random_color_func()
print(color)

输出为:hsl(206, 80%, 50%)

源码

def random_color_func(word=None, font_size=None, position=None,
                      orientation=None, font_path=None, random_state=None):
    if random_state is None:
        random_state = Random()
    return "hsl(%d, 80%%, 50%%)" % random_state.randint(0, 255)

colormap_color_func解读

colormap_color_func类的功能为通过matplotlib颜色映射表生成一个返回值为PIL(Pillow)支持的RGB颜色的函数。
colormap_color_func类的签名为class colormap_color_func(colormap)
该类只定义了两个类,构造方法__init__和调用方法__call__。

构造方法__init__

构造方法签名为def __init__(self, colormap)。

参数为 colormap:matplotlib色彩映射表的名称。字符串。必备参数。

根据源码self.colormap = plt.cm.get_cmap(colormap)可知,colormap为matplotlib.colors.Colormap实例。

调用方法__call__

调用方法签名为def __call__(self, word, font_size, position, orientation, random_state=None, **kwargs)。

参数word, font_size, position, orientation都将被忽略。

random_state用于生成随机数字。取值为random.Random对象或None,默认值为None,直接使用random.Random()

案例:演示colormap_color_func类的功能
import numpy as np
from PIL import ImageColor
import matplotlib.pyplot as plt
from wordcloud.wordcloud import colormap_color_func


# 根据colormap构造函数
color_func=colormap_color_func("autumn")
# 调用函数随机生成颜色,返回值为PIL(Pillow)支持的RGB字符串
color=color_func(word=None,font_size=None,font_path=None,position=None,orientation=None)
print(color)
# 将字符串转换为RGB三元组
color_rgb=ImageColor.getrgb(color)
# 显示最终颜色
plt.subplot(facecolor=np.array(color_rgb)/255)

输出为颜色为autumn颜色映射表中的一个随机颜色。
在这里插入图片描述

源码
class colormap_color_func(object):

    def __init__(self, colormap):
        import matplotlib.pyplot as plt
        self.colormap = plt.cm.get_cmap(colormap)

    def __call__(self, word, font_size, position, orientation,
                 random_state=None, **kwargs):
        if random_state is None:
            random_state = Random()
        r, g, b, _ = np.maximum(0, 255 * np.array(self.colormap(
            random_state.uniform(0, 1))))
        return "rgb({:.0f}, {:.0f}, {:.0f})".format(r, g, b)

get_single_color_func解读

get_single_color_func的功能为返回一个返回值为RGB颜色的函数。

get_single_color_func函数的签名为def get_single_color_func(color)。
参数为color取值为PIL(Pillow)支持的颜色字符串。
返回值为一个返回值为PIL(Pillow)支持的RGB颜色字符串。

颜色转换依靠PIL.ImageColor类和内置库colorsys。转换过程如下:
先通过PIL.ImageColor类将color参数转换为RGB模式颜色值。
然后再通过colorsys模块将其转换为HSV模式颜色值。
再构造single_color_func函数(功能类似于random_color_func),该函数将HSV模式颜色值转换为RGB模式颜色值,其中H和S分量保持不变,V分量(明度)取值为[0.2-1]之间的随机值。
最后返回single_color_func函数。

案例:演示get_single_color_func功能

from PIL import ImageColor
import matplotlib.pyplot as plt
from wordcloud import get_single_color_func

# 调用函数生成颜色
color=get_single_color_func('#ff0000')
# 输出随机生成的颜色
print(color())
# 将字符串转换为RGB三元组
color_rgb=ImageColor.getrgb(color())
# 显示对比输入颜色和最终颜色
plt.subplot(211,facecolor='#ff0000')
plt.subplot(212,facecolor=np.array(color_rgb)/255)

输出为:

rgb(107, 0, 0)

在这里插入图片描述

源码

def get_single_color_func(color):

    old_r, old_g, old_b = ImageColor.getrgb(color)
    rgb_max = 255.
    h, s, v = colorsys.rgb_to_hsv(old_r / rgb_max, old_g / rgb_max,
                                  old_b / rgb_max)

    def single_color_func(word=None, font_size=None, position=None,
                          orientation=None, font_path=None, random_state=None):
        if random_state is None:
            random_state = Random()
        r, g, b = colorsys.hsv_to_rgb(h, s, random_state.uniform(0.2, 1))
        return 'rgb({:.0f}, {:.0f}, {:.0f})'.format(r * rgb_max, g * rgb_max,
                                                    b * rgb_max)
    return single_color_func
B站弹幕评论爬取实战:从接口解析到词云可视化全流程 在内容运营与用户行为分析中,弹幕和评论是洞察视频反馈的核心数据源。弹幕捕捉观看时的即时情绪,评论沉淀深度观点,二者结合可还原完整的用户反应曲线。爬虫技术是获取这些数据的常用手段,其原理基于B站公开的API接口:通过视频BV号解析出cid,进而请求弹幕XML接口与评论JSONP接口。工程实践中需重点处理评论接口的游标分页、请求频率控制等反爬机制,并借助jieba分词对中文文本进行清洗与关键词提取,最终利用WordCloud生成直观的词云图。该方案适用于用户评论分析、热点追踪及内容运营决策,帮助数据分析师快速掌 阅读详情

相关推荐

Python豆瓣评论情感分析与词云制作全流程详解

文本挖掘与情感分析是自然语言处理中的基础技术,广泛应用于舆情监控、用户反馈分析和市场口碑研判等场景。其核心原理在于对非结构化文本进行分词、清洗、特征提取与情感量化,进而将文本转化为可解释的信号。本文以豆瓣电影短评为例,系统介绍基于Python的工程实践路径:采用Selenium模拟登录获取Cookie后抓取评论,借助jieba分词与停用词过滤完成文本预处理,通过TF-IDF或TextRank提取关键词,并利用SnowNLP对评论文本进行情感打分,最终使用wordcloud库将词频与情感结果可视化。文章同时覆

weixin_29075633的博客 342

wordcloud生成词云图(含形状、颜色设置)

一、导入和主要方法 1、导入wordcloud包 一班生成词云图之后还要显示出来,所以还会用到matplotlib 如果要设置mask蒙版,还需要从imageio导入imread()函数 如果需要设置词云中字体的颜色,还会用到matplotlib中的colors import wordcloud import matplotlib.pyplot as plt from imageio import imread from matplotlib import colors 2、主要方法 wc = wordc

坚果的刻薄 5万+

B站弹幕分析实战:Python爬虫、情感挖掘与词云可视化

数据分析场景中,用户生成内容(UGC)的弹幕文本蕴含了丰富的观看情绪与兴趣热点。弹幕作为一种短文本数据,天然带有时间轴属性,能够反映视频内容在不同阶段的观众反应。通过Python爬虫技术获取B站弹幕数据,结合jieba分词、情感分析与词频统计,可以将零散的弹幕转化为可量化的指标,如弹幕密度曲线、情感极性分布。利用词云可视化呈现高频关键词,帮助内容创作者复盘视频节奏、运营人员评估用户反馈,也是文本挖掘与数据可视化入门的高质量实践。本文从弹幕采集的接口原理出发,逐步讲解如何构建完整分析流水线,并针对中文分词、情

weixin_29054245的博客 266

WordCloud colormap 配色集及自定义配色

瞎折腾系列 咳咳, 无耻狗贼又抄来了一篇博文 参考链接: https://towardsdatascience.com/how-to-create-beautiful-word-clouds-in-python-cfcf85141214 https://matplotlib.org/stable/tutorials/colors/colormaps.html https://blog.csdn.net/qq_34604224/article/details/121391890 https://www..

geekqian的博客 8212

反向代理的隐形陷阱:为何你的HTTPS请求会降级为HTTP?

本文深入探讨了Nginx反向代理中HTTPS降级为HTTP的隐形陷阱及其安全风险,分析了五大降级诱因,包括协议信息丢失、重定向配置错误等,并提供了完整的防御性配置方案和实战指南,帮助开发者确保Web应用的安全性。

kotlin6android的博客 453

Altium Designer 16来自原理图/PCB的各种报错 (持续更新):

NO1.Nets with only one pin: 根本原因: 在BGA的原理图绘制时,我一般习惯拉出该元件的所有IO的网络,这方便利于我开发其他款板卡。同样也会因为不同板卡的需求不同而造成有些IO并没有使用到,也就是整个原理图中only one pin。 解决方案: 鼠标右键工程文件>工程参数>下图圈中的选项将“错误”更改为“警告/不报告” ...

优快云@猿谷攻城狮 1万+

Python wordcloud 如何修改云图字体颜色

目录 传入colormap 传入color_func 单颜色函数 自定义颜色函数 传入colormap 这种方式只需在WordCloud初始化时传入colormap即可 wc=wordcloud.WordCloud(font_path=r"C:\Windows\Fonts\simhei.ttf",#字体路径 colormap="spring") ...

LaeHa的博客 1万+

手把手教你用Matlab为PMSM电流环设计2P2Z补偿器(附与PI对比)

本文详细介绍了如何使用Matlab的controlSystemDesigner工具为永磁同步电机(PMSM)电流环设计2P2Z补偿器,并与传统PI控制器进行性能对比。通过频域分析和时域仿真,展示了2P2Z补偿器在提升带宽、减少超调等方面的优势,为高性能伺服驱动和精密运动控制提供了实用解决方案。

weixin_42551227的博客 379

WordCloud词云图去除停用词的正确方法

前言之前我们已经学习了如何使用wordcloud制作英文和中文词云,今天我们接着讲解,在实际制作词云中,有很多词是没有展示出的意义的,例如我,他等主语,那如何不显示这些词了,这就涉及到停用...

罗罗攀 2万+

Linux系统安装AutoDockTools、AutoGrid和AutoDock并实现分子对接(详细讲解)

linux系统为centos7.0 按照下面操作安装AutoDockTools(MGLTools) 1. 下载安装包,链接(https://ccsb.scripps.edu/mgltools/downloads/),我的linux系统是64位,下载红色标记源代码,拷贝入linux目标文件夹下。 2. shell终端进行安装: 1. 终端进入安装包所在文件夹,并获取root权限;赋予代码安装权限; cd /home/... #目标文件夹,根据目标程序文件位置进行更改 su #获

carlos_zhao的博客 1万+

OpenClaw-遇到的问题-Health check failed: gateway closed (1006 abnormal closure (no close frame)): no clos

OpenClaw网关服务安装成功但运行异常,显示健康检查失败(错误代码1006)。系统提供了Web控制界面(http://127.0.0.1:18789/)和带令牌的安全访问链接。文档建议参考故障排除指南,并提供了可选应用扩展功能(包括移动端支持)。注意运行本地代理存在安全风险,建议加固系统配置。若需启用网络搜索功能,需配置Brave搜索API密钥。安装完成后会自动打开仪表盘,需保持浏览器标签页以控制OpenClaw服务。

直到世界的尽头 1万+

词云生成库wordcloud详解(三):IntegralOccupancyMap类——词云布局机制

当前wordcloud版本:1.81 词云绘制需求 在绘制词云时大概有以下需求: 词与词之间相互不重叠。 尽可能填充满整个空间,词与词之间间隙比较小。 空间可能按照某张图片布局,即所有词要布局在图片的轮廓内。 词绘制时可能要求随机位置、随机颜色。 词的绘制的尺寸可能跟词的一些特征相关。 根据词的特征控制词绘制位置、颜色、尺寸比较容易实现。 有效利用布局空间,避免词重叠可能需要图像处理的一些知识。 wordcloud词云布局机制——积分图 根据wordcloud源码可知,wordcloud模块中的Inte

mighty13的专栏 3万+

【U-Net 数据集制作】如何制作自己的图像分割数据集?(标注与格式转换),图像分割数据集制作与转换神器

在前面的课程中,我们像搭积木一样手写了 U-Net 的网络架构。很多同学迫不及待地想把自己的图片喂进网络开始“炼丹”。但是,深度学习界有一句名言:“数据决定了模型的上限,而网络结构只是在逼近这个上限。用标注工具标出来的是 JSON 文件,怎么变成 U-Net 需要的黑白掩码(Mask)图?为什么我的 Mask 肉眼看是黑白的,一放进 PyTorch 训练就报?如何快速按 8:2 的比例把几千张图片和标签划分成训练集和验证集?

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 195

词云生成库WordCloud详解(一):概述、ImageColorGenerator类

当前wordcloud版本:1.81 项目地址:https://github.com/amueller/word_cloud API、案例地址:https://amueller.github.io/word_cloud/ wordcloud简介 wordcloud是一款轻量级的Python词云生成库,在Python数据分析领域使用率比较高。 注意:wordcloud默认支持自动生成英文词云,如果使用中文词云,需要使用中文分词器(比如jieba)和中文字体。 wordcloud依赖的第三方库主要有numpy、

mighty13的专栏 3万+

《QGIS空间数据处理与高级制图》【目录】

《QGIS空间数据处理与高级制图》是一本面向GIS技术人员和学生的进阶手册,重点提升数据处理效率和专业制图标准化水平。全书涵盖空间数据预处理、矢量编辑、栅格处理、坐标系统应用和符号化设计等核心内容。书中详细介绍了批量数据转换、拓扑检查、遥感影像处理、自定义坐标系创建等实用技能,并提供了模型构建器和PyQGIS脚本实现自动化操作。通过大量实战案例和问题排查指南,帮助读者从基础使用进阶到专业应用,适合测绘、规划、环保等行业的GIS从业者参考使用。

LuckyHanMo的博客 374

OpenCV实例(八)车牌字符识别技术(三)汉字识别

相较于数字和英文字符的识别,汽车牌照中的汉字字符识别的难度更大,主要原因有以下4个方面:(1)字符笔画因切分误差导致非笔画或笔画流失。(2)汽车牌照被污染导致字符上出现污垢。(3)采集所得车辆图像分辨率低导致多笔画的汉字较难分辨。(4)车辆图像采集时所受光照影响的差异导致笔画较淡。综合汉字识别时的这些难点来看,很难被直接提取的是字符的局部特征。笔画作为最重要的特征而仅存在于汉字中,这由先验知识可知。一旦捺、横、竖、撇这些笔画特征被提取到,对于汉字字符识别的工作就完成了许多。

小幽余生不加糖 1650

WordCloud for Python API 参考全解:WordCloud 类、ImageColorGenerator 与颜色函数的完整指南

本文基于仓库 [doc/references.rst](https://link.gitcode.com/i/ca23c0c8f38cb9d88ea3e77363ae0609) 所定义的 API Reference 骨架展开,系统讲解 word_cloud 项目"所有功能都封装在 `WordCloud` 类中"这一核心设计:包括 `WordCloud` 的完整构造参数、文本处理与布局生成流程、图像

gitblog_00734的博客 384

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

VidBee 视频下载工具:无需命令行,三分钟存下整个播放列表

视频只能在线看、想存却存不了?VidBee 视频下载工具免费开源,基于 yt-dlp 引擎支持 YouTube、TikTok、Bilibili 等 1000+ 站点,粘贴链接就能开始。适合想把视频存到本地离线看、或整理成资料库的人。 ## 先跑起来:三分钟启动 VidBee 视频下载 ```bash git clone https://gitcode.com/GitHub_Trending/v

gitblog_00917的博客 872

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Python学习七文件和数据格式化

文件和数据的格式化 文件的使用 文件的展现形态:文本文件和二进制文件 文本文件: 由单一特定的编码组成的文件。如utf-8编码 由于存在编码,也被看成是存储着的长字符串 例如.txt、.py文件 二进制文件:有0.1组成 文件的打开和关闭 绝对路径:从根目录开始 相对路径:从程序所在的地方开始查找。 打开模式 文件内容的读取 size表示的是字节 文件的写入 自动轨迹绘制 需求...

weixin_43328816的博客 568

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

7 Python文件和数据格式化

文件和数据格式化 一、文件的使用 1.文件类型 ①文件是数据的抽象和集合 -文件是存储在辅助存储器上的数据序列 -文件是数据存储的一种形式 -文件的展现形态:文本文件和二进制文件(存储形式都是二进制) ②文本文件:由单一特定编码组成的文件,如.txt、.py ③二进制文件:没有统一字符编码,如.png、.avi 2.文件的打开和关闭 1.文件的打开 ①D:\PYE\f.txt 表示为:“D:/PYE/f.txt"或"D:\PYE\f.txt” ②文件的打开模式 ‘r’:只读模式,若文件不存在,返回Fil

TS_Meredih_H的博客 474

Python+Flask构建动漫数据可视化系统实战

数据可视化是现代数据分析的重要技术手段,通过将抽象数据转化为直观图表,帮助开发者快速洞察数据规律。Python生态中的Flask框架因其轻量级特性,成为构建Web可视化系统的首选工具。结合ECharts等前端图表库,开发者可以轻松实现动态交互式数据展示。在动漫产业数据分析场景中,这种技术组合能高效处理评分数据、用户行为等结构化信息,通过折线图、词云等形式展现作品热度趋势和标签分布。典型实现方案包含数据采集、清洗存储、可视化呈现三个核心环节,其中Pandas用于数据处理,SQLAlchemy管理数据库交互,配

386

Python语法基础(U.7)-文件和数据格式化

7 文件和数据格式化 7.1 文件的使用 7.2 实例11:自动轨迹绘制 7.3 一维数据的格式化和处理 7.4 二维数据的格式化和处理 7.5 模块6:wordcloud库的使用 7.6 实例12:政府工作报告词云 7.1 文件的使用 文件类型,文件的打开和关闭,文件内容的读取,数据的文件写入; 7.1.1 文件类型 文件是数据的抽象和集合:存储在辅助存储器上的数据序列;数据存储的一种形式;有文本文件和二进制文件; 文本文件:由单一特定编码组成的文件,如UTF-8编码;存储着的长字符串;例如:.

LuckSugar 613

【2023】某python语言程序设计跟学第七周内容

本文讲解了文件使用,一二维数据格式化,wordcloud库和两个实例:自动轨迹绘制和词云

皮皮的博客 2151

用python写的好玩的小程序,简单的python有趣小程序

第三方库PyInstaller库的使用(见名知意,将.py文件转化成无需源代码的可执行文件,可在Windows、Linux、Mac OS X上执行)若要生成动态二维码,非常简单,选择一张.gif图片传递给上述代码的picture参数,再将save_name的值改成后缀为.gif即可。控制边长,范围是1到40,数字越大边长越大,默认边长是取决于你输入的信息的长度和使用的纠错等级。调节图片的对比度,1.0 表示原始图片,更小的值表示更低对比度,更大反之。使产生的图片由黑白变为彩色的。

阿发狗伪原创 217

word_cloud版本迭代史:v1.0到最新版功能对比

你还在为生成高质量词云图片而烦恼吗?从基础文本可视化到复杂自定义样式,word_cloud库通过持续迭代已成为Python生态中最受欢迎的词云生成工具之一。本文将带你全面了解从v1.0到最新版(v1.9.1)的核心功能演进,读完你将能够: - 掌握各版本标志性功能差异 - 了解关键API变更历史 - 学会根据需求选择合适版本 - 正确引用不同版本的特性文档 ## 版本迭代概览 word_clo...

gitblog_01095的博客 854

Pyecharts中文词云生成完全指南:从分词清洗到HTML可视化实战

文本可视化是将大量非结构化文本转化为可读信息的重要手段,而词云图作为其中最直观的形式之一,能帮助读者快速抓住文档的核心主题。其生成过程涉及中文分词、停用词过滤、词频统计等基础环节,每一步都会直接影响最终呈现效果。Pyecharts作为Python生态中的可视化库,结合jieba分词,能够直接在本地生成可交互的HTML页面,兼顾数据安全与展示效率。本文梳理了从原始文本到词云输出的完整链路,并针对中文乱码、资源加载失败、高频词干扰等实际问题给出了排查思路,适合需要在数据分析或报告中快速产出可视化结果的工程实践者

weixin_34034670的博客 536
上一篇: 词云生成库WordCloud详解(一):概述、ImageColorGenerator类
下一篇: 词云生成库wordcloud详解(三):IntegralOccupancyMap类——词云布局机制
mighty13
博客等级 码龄23年 728粉丝 438原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值