【Python】词云之wordcloud参数全解析

news2024/11/23 21:11:42

写了一半,明天继续

目录

  • 一基础用法
  • 二、WordCloud类形参说明
    • 2.1 常用参数
      • 2.11 字体 font_path
      • 2.12 画布尺寸 width、hight
      • 2.13 比例(缩放)scale
      • 2.14 颜色 colormap
      • 2.15 颜色color_func
      • 2.16 组合频率collocations
      • 2.17 遮罩(蒙版)mask
    • 2.2 不常用参数

以该视频的弹幕文件为例,我已保存为txt文件。

【4K60FPS】周杰伦《暗号》 神级现场!The one演唱会live

一基础用法

wd = WordCloud().generate('要生成词云的的文本文件')

二、WordCloud类形参说明

通过参数可以指定词云图像的字体、大小、配色等。
总体示例:

wd_0 = WordCloud(font_path='simhei.ttf',colormap="spring",width=800,height=400,
	collocations=False,scale=5).generate(self.Read_txt())

一般来说设置上面的字体、尺寸、配色、缩放等参数就足够了。本文对WordCloud所有的形参进行说明。

2.1 常用参数

2.11 字体 font_path

 |  font_path : string
 |      Font path to the font that will be used (OTF or TTF).
 |      Defaults to DroidSansMono path on a Linux machine. If you are on
 |      another OS or don't have this font, you need to adjust this path.

设置示例:

font_path='simhei.ttf'

默认值:Linux的DroidSansMono 路径,一般windows是没有的,需要设置。

否则词云可能无法正确显示文字内容(类似于乱码),一般字体文件名为 name.ttf这种格式。
查看本机全部字体可以在:C:\Windows\Fonts路径下查看,或者从控制面板>外观和个性化>字体打开。

字体名称并不是仿宋、楷体这种,而是要在对应的字体上右键>属性,来查看其名称,如华文彩云这个字体的名称是:STCAIYUN.TTF

在这里插入图片描述

2.12 画布尺寸 width、hight

 |  width : int (default=400)
 |      Width of the canvas.
 |  
 |  height : int (default=200)
 |      Height of the canvas.

默认是400x200,单位:像素。

2.13 比例(缩放)scale

 |  scale : float (default=1)
 |      Scaling between computation and drawing. For large word-cloud images,
 |      using scale instead of larger canvas size is significantly faster, but
 |      might lead to a coarser fit for the words.

若画布设置为 400x200,若scale = 5,则词云图像的尺寸变成 2000x1000(像素)。

建议设置较小的画布尺寸,然后缩放成目标大小当然缩放系数要适当,太大也不合适

若直接将画布尺寸设置成2000x1000,虽然尺寸是一样的,但加载时间会比设置scale=5长很多.

词云的像素尺寸越大,越清晰,词频较低的字号很小的词语也能看清了。

2.14 颜色 colormap

 |  colormap : string or matplotlib colormap, default="viridis"
 |      Matplotlib colormap to randomly draw colors from for each word.
 |      Ignored if "color_func" is specified.
 |  
 |      .. versionadded: 2.0

colormap 是一个预定义的 Matplotlib colormap**。

默认值是:viridis。

一般我们使用matplotlib的colormap即可:

Matplotlib 提供了多种预定义的 colormap,如 viridis、 jet、 winter、 summer、 spring、
autumn、 cool、 hot、 gray 等

格式:

colormap = 'spring'

注:如果设置了color_func参数,则这一项失效。

2.15 颜色color_func

 |  color_func : callable, default=None
 |      Callable with parameters word, font_size, position, orientation,
 |      font_path, random_state that returns a PIL color for each word.
 |      Overwrites "colormap".
 |      See colormap for specifying a matplotlib colormap instead.
 |      To create a word cloud with a single color, use
 |      ``color_func=lambda *args, **kwargs: "white"``.
 |      The single color can also be specified using RGB code. For example
 |      ``color_func=lambda *args, **kwargs: (255,0,0)`` sets color to red.

color_func 可以是一个预定义的函数,或者是一个自定义函数,用来确定每个词的颜色。

一般我们使用colormap这个参数就够了。

color_func示例:
设置词云颜色为白色:

color_func=lambda *args, **kwargs: "white"

2.16 组合频率collocations

 |  collocations : bool, default=True
 |      Whether to include collocations (bigrams) of two words. Ignored if using
 |      generate_from_frequencies.

collocations 是一个用来控制词云图像中词语组合频率的参数。当 collocations 被设置为 True 时,wordcloud 将会考虑两个词之间的关系来计算它们的频率。

建议设置为False

对比如下:

1. collocations=True
在这里插入图片描述

2.collocations=False
在这里插入图片描述

2.17 遮罩(蒙版)mask

 |  mask : nd-array or None (default=None)
 |      If not None, gives a binary mask on where to draw words. If mask is not
 |      None, width and height will be ignored and the shape of mask will be
 |      used instead. All white (#FF or #FFFFFF) entries will be considerd
 |      "masked out" while other entries will be free to draw on. [This
 |      changed in the most recent version!]

常常用来设置词云图像的形状,如果设置了mask,将由遮罩图像的尺寸来定义词云图像的尺寸。

mask的值是一个图像的二进制数据(矩阵),可用ndarray表示。

2.2 不常用参数

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

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

相关文章

SpringBoot(57) 整合Plumelog实现日志查询

文章目录一、前言二、docker-compose一键搭建日志服务docker-compose.yml三、SpringBoot整合Plumelog1、pom.xml2、application.yml3、logback-spring.xml4、启动项目记录日志四、本文案例demo源码一、前言 Plumelog 一个简单易用的java分布式日志组件 https://gitee.com/plum…

机器学习笔记之深度信念网络(三)贪心逐层预训练算法

机器学习笔记之深度信念网络——贪心逐层预训练算法引言回顾:深度信念网络的结构表示回顾:RBM\text{RBM}RBM叠加思想贪心逐层预训练算法引言 上一节介绍了深度信念网络模型的构建思想,本节将介绍后验概率求解——贪心逐层预训练算法。 回顾…

窥探Swift源码下的Array

本文字数:6730字预计阅读时间:15 分钟用最通俗的语言,描述最难懂的技术前情提要我在之前的文章一次遍历导致的崩溃中提到了,如果有机会会把相关的Swift集合源码阅读。首先对自己的开发和知识储备会有进一步的升华,另外…

Redis -- IO多路复用及redis6的多线程

都知道redis是通过单线程io多路复用来避免并发问题的,然后在redis6的时候redis引入了多线程,这里就来详细说说IO多路复用模型以及redis的多线程。 Redis 的 I/O 多路复用模型有效的解决单线程的服务端,使用不阻塞方式处理多个 client 端请求…

optional妙用解决NullPointerException

背景 作为一个java程序员,我们在日常开发中经常会碰到一个臭名昭著空异常,所有程序员都经历过的痛点,空指针异常(NullPointerException) java8中出现的Optional是java开始迈向函数式编程的一大步,也有效的…

实验 4 图像复原与重建

目录一、实验目的二、实验例题1. 噪声模型2. 只存在噪声的滤波——空间滤波3. 退化函数建模4. 存在线性退化和噪声的滤波(1) 逆滤波(2) 最小均方误差(维纳)滤波附录一、实验目的 了解一些常用随机噪声的生成方法。掌握根据指定退化函数对图像进行退化的方法。掌握当模糊图像只…

十一、Gtk4-Instance Initialization and destruction

文本文件编辑器(tfe)的新版本将在本节和以下四节中编写。它是tfe5。与之前的版本相比,有很多变化。它们位于两个目录中,src/tfe5和src/tfetextview。 1 封装 我们将C源文件分为两部分。但就封装而言,这还不够。 tfe.c包含除Tfe TextView之…

【Linux】线程控制

目录🌈前言🌸1、Linux线程控制🍡1.1、创建线程(pthread_create)🍢1.2、通过指令查看线程PID和LWP🍧1.3、获取线程ID(pthread_self)🍨1.4、线程终止(pthread_exit/cancel)🍨1.5、线程等待(pthrea…

一文读懂PCB阻焊工艺

PCB阻焊油墨根据固化方式,阻焊油墨有感光显影型的油墨,有热固化的热固油墨,还有UV光固化的UV油墨。而根据板材分类,又有PCB硬板阻焊油墨,FPC软板阻焊油墨,还有铝基板阻焊油墨,铝基板油墨也可以用…

力扣算法(Java实现)—数组入门(11题)

文章目录1.删除排序数组中的重复项2.买卖股票的最佳时机 II3.旋转数组4.存在重复元素5.找出只出现一次的元素6.两个数组的交集7.移动零8.加一9.两数之和10.有效的数独11.旋转图像💎💎💎💎💎 更多资源链接,欢…

【手写 Vue2.x 源码】第十八篇 - 根据 render 函数,生成 vnode

一,前言 上篇,介绍了render 函数的生成,主要涉及以下两点: 使用 with 对生成的 code 进行一次包装将包装后的完整 code 字符串,通过 new Function 输出为 render 函数 本篇,根据 render 函数&#xff0c…

linux系统中QT里面的视频播放器的实现方法

大家好,今天主要和大家聊一聊,如何使用QT中视频播放器的方法。 目录 第一:视频播放器基本简介 第二:视频播放器头文件说明 第三:源文件的具体实现方法 第四:运行效果显示 第一:视频播放器基本…

ADS振铃仿真

目录 无振铃时的原理图 无振铃时的Vout和VL输出波形 ​LineCalc对微带线阻抗的计算结果 将微带线线宽Width统一由116改为130 将微带线线宽Width统一由116改为80 将微带线TL9线宽由116改为300 将微带线TL9线宽由116改为50 本文介绍了微带线线宽变化时100MHz信号的反射现象…

2023 年 15 大测试自动化趋势

在过去,软件测试只是为了发现软件产品中的错误。目标是——提高软件质量。但如今,软件测试的范围已经扩大。在软件测试方面,自动化测试一直走在前列。按照最新的测试自动化趋势,软件测试行业有望比过去十年发展得更快。 根据 Mar…

Java面向对象综合训练

Java面向对象综合训练一、文字版格斗游戏Role类测试类输出结果二、对象数组练习对象数组1商品类测试类输出结果对象数组2汽车类测试类输出结果对象数组3手机类测试类输出结果对象数组4女朋友类测试类输出结果对象数组5学生类测试类输出结果一、文字版格斗游戏 Role类 import j…

去掉 域名后面的 /#/ vue-router 和 hbuilder发布 web项目和h5项目

1. vue-router vue-router默认的路由模式是hash,我们要去掉url中的#需要将路由模式切换为history const router new VueRouter({base: test, // 如果项目项目在 域名 根目录下,则去掉这行mode: history, // 路由模式... })这样子,url中的#…

为什么ERP和项目管理的集成是必要的?

在一个企业中,传统的责任分工意味着会计人员看管资金和维持财务标准,而职能经理分配人力资源和维持技术标准。项目经理指导分配的资金和其他资源,同时努力实现项目目标。每个学科都有自己的业务规则,自己的做法,自己的…

C++ | 左值、右值、将亡值和引用的概念 | 聊聊我对它们的深入理解

文章目录前言左右值的辨析一个特殊的问题将亡值引用的深刻理解前言 这篇文章是我在探究完美转发这个语法点时,引发的相关问题思考,为了使自己的理解更深刻,故写下这篇博客 左右值的辨析 首先需要明白两个概念:类型(…

1577_AURIX_TC275_MTU中检测控制相关寄存器

全部学习汇总: GreyZhang/g_TC275: happy hacking for TC275! (github.com) 开篇介绍的功能室之前看过很多次的一个握手的功能。快速行以及快速列模式的测试中,这个行列其实是对应的存储的bit阵列信息。一个对应相应的字,另一个则对应bit序列…

【Linux】进程创建、终止、等待、替换、shell派生子进程的理解…

柴犬: 你好啊,屏幕前的大帅哥or大美女,和我一起享受美好的今天叭😃😃😃 文章目录一、进程创建1.调用fork之后,内核都做了什么?2.如何理解fork函数有两个返回值?3.如何理…