用WordCloud绘制词云

文章目录

初步认识

wordcloud是词云绘图模块,封装了WordCloud词云类,是词云的基本载体。在新建一个词云之后,通过generate装载用以生成词云的字符串,最后用to_file把词云图保存到文件中,例如

python 复制代码
from wordcloud import WordCloud

w = WordCloud()
txt = "tinycool cool tiny Python WordCloud word cloud word not world"
w.generate(txt)
w.to_file("pywordcloud.png")

效果如下

基本参数

仅就这张图像来说,我们能感受到的特性大概有

  • 词云图的宽度、高度
  • 背景颜色,文字颜色
  • 字体
  • 单词长度,单词个数

这些特性可受到下列参数调控

参数 说明 备注
font_path 字体文件路径 otf或ttf文件
width 词云宽度 默认400
height 词云高度 默认200
min_font_size 最小文字尺寸 默认4
max_font_size 最大文字尺寸 默认为图像高度
relative_scaling 词频对尺寸的影响 默认"auto"
font_step 字体步长 默认1
max_words 最大单词数 默认200
min_word_length 最短单词长度 默认0
background_color 背景色 默认"black"
mode 颜色格式 默认RGB
colormap 颜色映射
repeat 是否重复单词 默认False

下面对这些参数稍作更改,并

python 复制代码
# txt即本文前面所有文字,因为太多就不写了
txt = r'''
'''
dct = dict(width=600, height=300,
    font_path = r"C:\Windows\Fonts\simhei.ttf",
    min_font_size = 10,
    max_font_size = 100,
    max_words = 20,
    min_word_length = 2,
    background_color = "white",
    colormap = "jet")

w = WordCloud(**dct)
w.generate(txt)
w.to_file("pywordcloud.png")

效果如下,由于最多只显示20个单词,而且尺寸最小是10,最大100,所以不太好看。

掩模参数

所谓掩模,就是词云组成的图案,主要由以下参数调控。

参数 说明 备注
mask 掩模数组 默认None
contour_width 掩模宽度 默认为0
contour_color 掩模颜色 默认"black"

掩模数组由0和1构成,词云只在掩模数组为1的位置显示。下面画一个椭圆作为掩模数组,椭圆圆周的方程为

( x − 300 ) 2 28 0 2 + ( y − 150 ) 2 14 0 2 = 1 \frac{(x-300)^2}{280^2}+\frac{(y-150)^2}{140^2}=1 2802(x−300)2+1402(y−150)2=1

x = 300 ± 28 0 2 − ( 2 y − 300 ) 2 x = 300\pm\sqrt{280^2-(2y-300)^2} x=300±2802−(2y−300)2

python 复制代码
import numpy as np
y, x = np.indices([300,600])
delta = np.sqrt(280**2-(2*y-300)**2)
mask = (x<300+delta) & (x>300-delta)
mask = (1-mask)*254+1

w = WordCloud( mask = mask, contour_width=100,
    font_path = r"C:\Windows\Fonts\simhei.ttf")
w.generate(txt)
w.to_file("pywordcloud.png")

效果如下

相关推荐
循环过三天几秒前
3.1、Python-列表
python·算法
青青草原羊村懒大王7 分钟前
python基础知识三
开发语言·python
傻啦嘿哟9 分钟前
Python高效实现Word转HTML:从基础到进阶的全流程方案
人工智能·python·tensorflow
wu_jing_sheng01 小时前
深度学习入门:揭开神经网络的神秘面纱(附PyTorch实战)
python
Ace_31750887761 小时前
淘宝店铺全量商品接口实战:分类穿透采集与增量同步的技术方案
大数据·数据库·python
LeonDL1682 小时前
基于YOLO11深度学习的电动车头盔检测系统【Python源码+Pyqt5界面+数据集+安装使用教程+训练代码】【附下载链接】
人工智能·python·深度学习·pyqt5·yolo数据集·电动车头盔检测系统·yolo11深度学习
wxin_VXbishe3 小时前
springboot在线课堂教学辅助系统-计算机毕业设计源码07741
java·c++·spring boot·python·spring·django·php
程序员三藏4 小时前
使用Docker和Selenium构建自动化测试环境
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
CaracalTiger4 小时前
本地部署 Stable Diffusion3.5!cpolar让远程访问很简单!
java·linux·运维·开发语言·python·微信·stable diffusion
api_180079054605 小时前
【技术教程】Python/Node.js 调用拼多多商品详情 API 示例详解
大数据·开发语言·python·数据挖掘·node.js