以前做词云的时候网上看的python做词云的坑都很多,耗了很多时间才高清楚wordcloud制作词云的精髓和脉络,整理如下。

相关文章

准备Mac环境下直接pip install wordcloud安装

windows环境下依赖c v++和.whl文件,将报错提示的链接复制粘贴到浏览器下载安装VC++,并装好相应的.whl文件

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=0.5, regexp=None, collocations=True,colormap=None, normalize_plurals=True)

wordcloud的所有参数

font_path : string //字体路径,需要展现什么字体就把该字体路径+后缀名写上,如:font_path = '黑体.ttf'

width : int (default=400) //输出的画布宽度,默认为400像素

height : int (default=200) //输出的画布高度,默认为200像素

prefer_horizontal : float (default=0.90) //词语水平方向排版出现的频率,默认 0.9 (所以词语垂直方向排版出现频率为 0.1 )

mask : nd-array or None (default=None) //如果参数为空,则使用二维遮罩绘制词云。如果 mask 非空,设置的宽高值将被忽略,遮罩形状被 mask 取代。除全白(#FFFFFF)的部分将不会绘制,其余部分会用于绘制词云。如:bg_pic = imread('读取一张图片.png'),背景图片的画布一定要设置为白色(#FFFFFF),然后显示的形状为不是白色的其他颜色。可以用ps工具将自己要显示的形状复制到一个纯白色的画布上再保存,就ok了。

scale : float (default=1) //按照比例进行放大画布,如设置为1.5,则长和宽都是原来画布的1.5倍。

min_font_size : int (default=4) //显示的最小的字体大小

font_step : int (default=1) //字体步长,如果步长大于1,会加快运算但是可能导致结果出现较大的误差。

max_words : number (default=200) //要显示的词的最大个数

stopwords : set of strings or None //设置需要屏蔽的词,如果为空,则使用内置的STOPWORDS

background_color : color value (default=”black”) //背景颜色,如background_color='white',背景颜色为白色。

max_font_size : int or None (default=None) //显示的最大的字体大小

mode : string (default=”RGB”) //当参数为“RGBA”并且background_color不为空时,背景为透明。

relative_scaling : float (default=.5) //词频和字体大小的关联性

color_func : callable, default=None //生成新颜色的函数,如果为空,则使用 self.color_func

regexp : string or None (optional) //使用正则表达式分隔输入的文本

collocations : bool, default=True //是否包括两个词的搭配

colormap : string or matplotlib colormap, default=”viridis” //给每个单词随机分配颜色,若指定color_func,则忽略该方法。

fit_words(frequencies) //根据词频生成词云

generate(text) //根据文本生成词云

generate_from_frequencies(frequencies[, ...]) //根据词频生成词云

generate_from_text(text) //根据文本生成词云

process_text(text) //将长文本分词并去除屏蔽词(此处指英语,中文分词还是需要自己用别的库先行实现,使用上面的 fit_words(frequencies) )

recolor([random_state, color_func, colormap]) //对现有输出重新着色。重新上色会比重新生成整个词云快很多。

to_array() //转化为 numpy array

to_file(filename) //输出到文件

2.Demo1:输入英文文本

# 导入wordcloud模块和matplotlib模块

from wordcloud import WordCloud

import matplotlib.pyplot as plt

from scipy.misc import imread

# 读取一个txt文件

text = open('test1.txt','r').read()

# 读入背景图片

bg_pic = imread('3.png')

# 生成词云

wordcloud = WordCloud(mask=bg_pic,background_color='white',scale=1.5).generate(text)

# image_colors = ImageColorGenerator(bg_pic)

# 显示词云图片

plt.imshow(wordcloud)

plt.axis('off')

plt.show()

词云图

3.Demo2:输入中文文本

和英文词云最大的不同是要设置字体

# -*- coding: utf-8 -*-

__author__ = 'taorui'

# wordcloud 生成中文词云

from wordcloud import WordCloud

import jieba

from scipy.misc import imread

from os import path

import matplotlib.pyplot as plt

# 绘制词云

def draw_wordcloud():

# 读入一个txt文件

comment_text = open('test1.txt','r').read()

# 结巴分词,生成字符串,如果不通过分词,无法直接生成正确的中文词云

cut_text = " ".join(jieba.cut(comment_text))

d = path.dirname(__file__) # 当前文件文件夹所在目录

color_mask = imread("3.jpg") # 读取背景图片

cloud = WordCloud(

# 设置字体,不指定就会出现乱码

font_path="STSONG.TTF",

# 设置背景色

background_color='white',

# 词云形状

mask=color_mask,

#允许最大词汇

max_words=2000,

#最大号字体

max_font_size=40

)

# print(cut_text)

word_cloud = cloud.generate(cut_text) # 产生词云

word_cloud.to_file("3.jpg") # 保存图片

# 显示词云图片

plt.imshow(word_cloud)

plt.axis('off')

plt.show()

if __name__ == '__main__':

draw_wordcloud()

词云图

4.Demo3:输入词频

from os import path

from wordcloud import WordCloud

import matplotlib.pyplot as plt

d = path.dirname(__file__)

frequencies = {u'知乎': 0.1, u'小段同学': 0.4, u'曲小花': 0.3, u'中文分词': 0.1, u'样例': 0.1}

wordcloud = WordCloud(font_path="STSONG.TTF").fit_words(frequencies)

plt.imshow(wordcloud)

plt.axis("off")

plt.show()

词云图

python英文词云代码_手把手教你制作 中英文 词云 | python demo相关推荐

  1. 手把手教你制作中英文词云_英文.py

    #!/usr/bin/env python # -*- coding:UTF-8 -*- #原文:https://blog.csdn.net/qq_30262201/article/details/7 ...

  2. 厉害了!不用一行代码,手把手教你制作漂亮词云!

    题图 unsplash@chuttersnap 今天我们不谈技术 大家分享一个不用写代码 也能制作词云的工具 做出来的效果甚至比代码制作的还要好! 效果 它就是:WordArt 主页地址:https: ...

  3. python 合并excel 自动更新_手把手教你4种方法用Python批量实现多Excel多Sheet合并

    一.前言 大家好,我是崔艳飞.前两天给大家分享了Python自动化文章:手把手教你利用Python轻松拆分Excel为多个CSV文件,而后在Python进阶交流群里边有读者遇到一个问题,他有很多个Ex ...

  4. 手把手教你制作 中英文 词云 | python demo

    以前做词云的时候网上看的python做词云的坑都很多,耗了很多时间才高清楚wordcloud制作词云的精髓和脉络,整理如下. 相关文章 Python 中文 文本分析 实战:jieba分词+自定义词典补 ...

  5. python实现人脸识别代码_手把手教你用1行代码实现人脸识别——Python Face_recogni...

    摘要: 1行代码实现人脸识别,1. 首先你需要提供一个文件夹,里面是所有你希望系统认识的人的图片.其中每个人一张图片,图片以人的名字命名.2. 接下来,你需要准备另一个文件夹,里面是你要识别的图片.3 ...

  6. 如何用python抓取qq音乐_手把手教你使用Python抓取QQ音乐数据(第三弹)-阿里云开发者社区...

    [一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...

  7. python numpy安装教程_手把手教你搭建机器学习开发环境—Python与NumPy的超简安装教程...

    手把手教你搭建机器学习开发环境Python语言是机器学习的基础,所以,想要入门机器学习,配置好Python的开发环境是第一步.本文就手把手的教你配置好基于Python的机器学习开发环境.超简单!第一步 ...

  8. python处理时间序列非平稳_手把手教你用Python处理非平稳时间序列

    简介 预测一个家庭未来三个月的用电量,估计特定时期道路上的交通流量,预测一只股票在纽约证券交易所交易的价格--这些问题都有什么共同点? 它们都属于时间序列数据的范畴!如果没有"时间" ...

  9. 云服务器架设网站教程_手把手教你搭建腾讯云服务器入门(图文教程)

    本文由博主 威威喵 原创 博客主页:https://blog.csdn.net/smile_running 背景 暑假期间,愁着无聊但也不能荒废学业吧,毕竟以后想靠技术混口饭吃!为了实施自己的计划,特 ...

最新文章

  1. 能“预测未来”的AI来了!谷歌DeepMind推Dreamer,训练时间减半
  2. TCP/IP、SOCKET、HTTP之间的联系与区别
  3. semantic computing Cognitive linguistics Distributed intelligence
  4. springwebflux 页面_Spring Webflux 响应式框架入门
  5. retrofit 上传、下载文件
  6. 前端学习(2250)拉取代码文件
  7. Android 驱动(3)---Android驱动开发知识储备
  8. 可以分屏的软件_Screen分屏软件下载|Screen+专业分屏 免费版v1.4.25 下载
  9. cacheable 表达式_Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用
  10. SQL Server2008R无法登录的解决方案(系统文件损坏)1814 18456....不看别后悔,有用请点赞...
  11. 统计1到2021中6的个数
  12. 拖拽实例 对于设置监听setInterval 的理解
  13. 2019上半年系统集成项目管理工程师上午真题及答案解析
  14. RT-Thread : IEEE1588/PTP 协议的实现
  15. “启用宏的幻灯片”是什么意思
  16. 无疆_炎戎的2011跨年总结
  17. win10 1607 密匙
  18. 故障效果,制作抖音效果的幻影海报
  19. python终端界面分屏输出_linux命令 - screen/终端分屏命令
  20. 从估值、稀释和倍数的角度来看 Yuga labs 、Opensea 等明星 NFT 项目

热门文章

  1. vue实现移动端适配方案
  2. 三星java3倍拍照手机_三星史上拍照最强后置三摄手机,果不其然:这次让你们欣赏大片...
  3. Ubuntu 16的中文输入法安装 (How to install chinese input methods)
  4. progressblock 安卓自定义进度条 progressbar 高仿仿QQ下载进度条
  5. VC实现SMC加密技术
  6. 猖獗不衰 ARP病毒该如何防治?
  7. python多张图片在一个窗口显示方法
  8. 第四次实验 第一期 紫金学院 Java 抽象类和接口
  9. 计算机房可以放屋顶么,屋顶电梯机房层计不计入建筑面积
  10. 一个PPT达人的箴言:渐变并且有质地的底纹,就是“底纹填充+半透明渐变图层”