Python词云的正确实现方法实例
作者:运维汪 发布时间:2021-08-05 10:53:41
标签:python,词云
一、相关模块
jieba:中文分词
wordcloud :Python词云库
imageio:读取图形数据
安装:
pip install jieba
pip install wordcloud
pip install imageio
二、wordcloud四大类
类 | 功能 |
---|---|
WordCloud([font_path, width, height, …]) | 生成和绘制词云对象 |
ImageColorGenerator(image[, default_color]) | 基于图片的色彩 |
random_color_func([word, font_size, …]) | 随机生成颜色 |
get_single_color_func(color) | 创建一个颜色函数,它返回一个色调和饱和度 |
三、wordcloud类
1、WordCloud类
class wordcloud.WordCloud(
font_path=None, width=400, height=200, margin=2,
ranks_only=None, prefer_horizontal=0.9, mask=None,
scale=1, color_func=None, max_words=200, min_font_size=4,
stopwords=None, random_state=None, background_color='black',
max_font_size=None, font_step=1, mode='RGB', relative_scaling='auto',
regexp=None, collocations=True, colormap=None, normalize_plurals=True,
contour_width=0, contour_color='black', repeat=False, include_numbers=False,
min_word_length=0, collocation_threshold=30)
2、WordCloud参数详解
参数 | 详解 |
---|---|
font_path | 词云图的字体路径(OTF或TTF格式) |
width | 画布的宽度、默认为400,如果mask不为空时,设置为mask获取图片的大小 |
height | 画布的高度,默认为200,如果mask不为空时,设置为mask获取图片的大小 |
prefer_horizontal | 默认值0.9;当值<1时,遇到不合适的地方时,算法将词体自动旋转 |
mask | 默认为None;如果不为空,指定了画布的图形,则width和height值不生效,使用提供的图形的大小 |
contour_width | 如果mask不为空,并且contour_width>0,将描绘出mask获取图片的轮廓,值越大,轮廓的线越粗 |
contour_color | 使用Mask时,描绘图片轮廓的颜色 |
scale | 图片生成后放大缩小时的分辨率 |
min_font_size | 词云图显示的最小字体,默认为4 |
max_font_size | 词云图显示的最大字体 |
max_words | 词云显示的最大词数 |
font_step | 字体步长 |
stopwords | 不显示的词,如果没有设置,则使用默认的内置的STOPWORdS列表;如果使用generate_from_frequencies参数,则忽略 |
background_color | 背景颜色 |
mode | 默认为"RGB",当mode="RGBA"并且background_color为None时,将会显示透明背景 |
relative_scaling | 字体大小与词频的关系,默认值为auto |
color_func | 默认为None,color_func=lambda *args, **kwargs:(255,0,0)词云的字体颜色将这设置为红色 |
regexp | 使用正则切分,默认为r"\w[\w']+",如果使用generate_from_frequencies则此参数不生效 |
collocations | 是否包含两个词的搭配,默认为True,如果使用generate_from_frequencies则此参数不生效 |
colormap | 设置颜色的参数,默认为"viridis",如果使用color_func参数,则此参数不生效 |
normalize_plurals | 是否删除尾随的词,比如's,如果使用generate_from_frequencies参数,则此参数不生效 |
repeat | 是否重复词组直到设置的最大的词组数 |
include_numbers | 是否包含数字,默认我False |
min_word_length | 最小数量的词,默认为0 |
collocation_threshold | 默认为30,整体搭配的评分等级 |
3、WordCloud类方法详解
方法 | 功能 |
---|---|
fit_words() | 根据词频生成词云 |
generate_from_frequencies() | 根据词频生成词云 |
generate() | 根据文本生成词云 |
generate_from_text() | 根据文本生成词云 |
process_text() | 将长文本分词,并去除屏蔽词 |
recolor() | 对输出颜色重新着色 |
to_array() | 转换为numpy数组 |
to_file() | 保存为图片文件 |
to_svg() | 保存为SVG(可缩放矢量图形) |
四、实例
1、简单图案
代码:
import wordcloud
# 词云使用的文字
text = "lemon"
# 使用wordcloud.WordCloud类,并传入相关的参数
wc = wordcloud.WordCloud(background_color="white", repeat=True)
wc.generate(text)
# 保存图片
wc.to_file('test1.png')
2、自定义图片
代码:
import wordcloud
# 导入imageio库中的imread函数,并用这个函数读取本地图片,作为词云形状图片
import imageio
mk = imageio.imread("333.jpg")
# 词云使用的文字
text = "lemon"
# 使用wordcloud.WordCloud类,并传入相关的参数
wc = wordcloud.WordCloud(background_color="white", repeat=True,mask=mk)
wc.generate(text)
# 保存图片
wc.to_file('test1.png')
3、从文本读取
代码:
import wordcloud
import jieba
# 导入imageio库中的imread函数,并用这个函数读取本地图片,作为词云形状图片
import imageio
mk = imageio.imread("chen.jpg")
# 使用wordcloud.WordCloud类,并传入相关的参数
wc = wordcloud.WordCloud(background_color="white",
prefer_horizontal=0.5,
repeat=True,
mask=mk,
font_path='/System/Library/Fonts/STHeiti Light.ttc',
contour_width=2,
contour_color='pink',
collocation_threshold=100,
)
# 对来自外部文件的文本进行中文分词,得到string
f = open('gong.txt', encoding='utf-8')
txt = f.read()
txtlist = jieba.lcut(txt)
string = " ".join(txtlist)
# 将string变量传入w的generate()方法,给词云输入文字
wc.generate(string)
# 保存图片
wc.to_file('test.png')
总结
来源:https://blog.csdn.net/u010722902/article/details/116296577
0
投稿
猜你喜欢
- 本文实例讲述了python使用socket进行简单网络连接的方法。分享给大家供大家参考。具体如下:import socketprint &q
- 本文实例讲述了Python设计模式之观察者模式。分享给大家供大家参考,具体如下:观察者模式是一个软件设计模式,一个主题对象包涵一系列依赖他的
- 同志们,经过不懈的努力,查了各种文档,终于鼓捣出了一个稍微像样一点的node项目,当然如果直接拿去项目里用,这个demo还太简单,毕竟一个完
- Django 的 filter、exclude 等方法使得对数据库的查询很方便了。这在数据量较小的时候还不错,但如果数据量很大,或者查询条件
- 这一篇笔记介绍 Django 系统 model 的外键处理,ForeignKey 以及相应的处理方法。这是一种一对多的字段类型,表示两张表之
- QThread是Qt的线程类中最核心的底层类。由于PyQt的的跨平台特性,QThread要隐藏所有与平台相关的代码要使用的QThread开始
- 调度和锁定在很多客户一起查询数据表时,如果使客户能最快地查询到数据就是调度和锁定做的工作了。在MySQL中,我们把select操作叫做读,把
- 1.字典的概念字典和列表类似,也是可变序列,不过和列表不同,它是无序的可变序列,保存的内容是以键值对(key:value)形式存放的 字典的
- Python遍历numpy数组下面是示例代码:import numpy as npnum = np.zeros([2, 3])[rows,
- 验证关键词是否为sql保留字的在线工具:<html> <head><t
- Rect(rectangle)指的是矩形,或者长方形,在 Pygame 中我们使用 Rect() 方法来创建一个指定位置,大小的矩形区域。函
- 例如,有一个字典如下:>>> dic = {"name": "botoo",&qu
- 后端代码就不介绍了,可以参考 django rest framework 实现用户登录认证这里介绍一下前端代码,和前后端的联调过程在comp
- 建立合理的索引提高SQL Server的性能在应用系统中,尤其在联机事务处理系统中,对数据查询及处理速度已成为衡量应用系统成败的标准。而采用
- python书写爬虫的一个框架,它也提供了多种类型爬虫的基类,scrapy用途广泛,可以用于数据挖掘、监测和自动化测试首先要先安装pytho
- 使用 Python 对数据进行更新操作对于 es 的更新的操作,不用到 Search() 方法,而是直接使用 es 的连接加上相应的函数来操
- 在炼丹时,数据的读取与预处理是关键一步。不同的模型所需要的数据以及预处理方式各不相同,如果每个轮子都我们自己写的话,是很浪费时间和精力的。P
- 今天在使用Pycharm的时候,由于文件过多,我对目录下的文件做了归类,改动了一些文件的路径,结果后来执行的时候,出现了路径找不到的错误.新
- 学习目的: 学习ADO.NET用法,并如何用DataRearder读取数据 今天练习数据库的最基本用法,如何打开数据库。首先在网站设置文件w
- -----最近从github上找了一个代码跑,但是cpu训练的时间实在是太长,所以想用gpu训练一下,经过了一天的折腾终于可以用gpu进行训