用python绘制好看的图形_怎么用Python画出好看的词云图?

相信很多人在第一眼看到下面这些图时,都会被其牛逼的视觉效应所吸引,这篇文章就教大家怎么用Python画出这种图。

前期准备

上面的这种图叫做词云图,主要用途是将文本数据中出现频率较高的关键词以可视化的形式展现出来,使人一眼就可以领略文本数据的主要表达意思。词云图中,词的大小代表了其词频,越大的字代表其出现频率更高。

那生成一张词云图的主要步骤有哪些?过程中又需要用到哪些Python库呢?首先需要一份待分析的文本数据,由于文本数据都是一段一段的,所以第一步要将这些句子或者段落划分成词,这个过程称之为分词,需要用到Python中的分词库jieba。

分词之后,就需要根据分词结果生成词云,这个过程需要用到wordcloud库

最后需要将生成的词云展现出来,用到大家比较熟悉的matplotlib

理清了词云图绘制的主要脉络之后,下面就用代码操作起来。

小试牛刀

2020刚开年,所以我也特地去找了几首新年歌,将它们的歌词汇总起来作为本次展示用的文本数据,大家可以看看新年歌中哪些词的出现频率比较高。我们先绘制一个比较简单的词云图:

# 导入相应的库

import jieba

from wordcloud import WordCloud

import matplotlib.pyplot as plt

# 导入文本数据并进行简单的文本处理

# 去掉换行符和空格

text = open("./data/新年歌.txt",encoding='utf8').read()

text = text.replace('\n',"").replace("\u3000","")

# 分词,返回结果为词的列表

text_cut = jieba.lcut(text)

# 将分好的词用某个符号分割开连成字符串

text_cut = ' '.join(text_cut)

# 导入停词

# 用于去掉文本中类似于'啊'、'你','我'之类的词

stop_words = open("F:/NLP/chinese corpus/stopwords/stop_words_zh.txt",encoding="utf8").read().split("\n")

# 使用WordCloud生成词云

word_cloud = WordCloud(font_path="simsun.ttc", # 设置词云字体

background_color="white", # 词云图的背景颜色

stopwords=stop_words) # 去掉的停词

word_cloud.generate(text_cut)

# 运用matplotlib展现结果

plt.subplots(figsize=(12,8))

plt.imshow(word_cloud)

plt.axis("off")

一张简单的词云图就成功生成啦,但看起来好像并没有特别好看,怎么生成带特定形状的词云呢?

登堂入室

想生成带特定形状的词云,首先得准备一张该形状的图片,且除了目标形状外,其他地方都是空白的,如下面这张用于演示的图。

上图中除了福字之外都是白色的,准备好之后就上代码

import jieba

from wordcloud import WordCloud

import matplotlib.pyplot as plt

from PIL import Image

text = open("./data/新年歌.txt",encoding='utf8').read()

text = text.replace('\n',"").replace("\u3000","")

text_cut = jieba.lcut(text)

text_cut = ' '.join(text_cut)

stop_words = open("F:/NLP/chinese corpus/stopwords/stop_words_zh.txt",encoding="utf8").read().split("\n")

# 主要区别

background = Image.open("./data/background.png")

graph = np.array(background)

word_cloud = WordCloud(font_path="simsun.ttc",

background_color="white",

mask=graph, # 指定词云的形状

stopwords=stop_words)

word_cloud.generate(text_cut)

plt.subplots(figsize=(12,8))

plt.imshow(word_cloud)

plt.axis("off")

代码部分和普通的图基本一致,区别在于要导入相应形状的图片,并在wordcloud设置了mask参数。

生成的词云图如下:

是不是还挺简单的,借这张图也祝福大家2020年都福气满满!

原创不易,如果觉得有点用,希望可以随手点个赞,拜谢各位老铁。

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

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

相关文章

linux回到桌面的命令符_三 基本的base shell 命令

1、启动shell进入 /etc/passwd 看到知道默认的是base shell ctrlaltt 或者双击终端,就进入如下图界面;如果你还是CLI新手,请记住,在输入shell命令之后,需要按回车键才能让shell执行你输入的命令。2、bash 手册man 命令…

java单纯形法_单纯形法 - fjzzq2002 - 博客园

看了集训队答辩,感觉要学习的有杜教筛高级版、线性规划、FFT、仙人掌、高级版线段树不出意外的话一个月内博客内都不会有别的东西了QAQ首先是喜闻乐见的单纯形法解线性规划。今年(2016年)和线性规划有关的集训队论文有两篇,大家可以自行翻一下集训队论文…

python调用js获取异步返回的数据_Python怎么获取js动态加载的数据

展开全部 import selenium from selenium import webdriver from selenium.common.exceptions import NoSuchElementException from selenium.webdriver.common.keys import Keys import time browser webdriver.Firefox() # Get local session of firefox browser.get("…

一个柱状图里两种数据_分享一些数据分析常用的统计图图表

无论是报表分析还是可视化分析中,最直观传达数据走向趋势的就是各式各样的统计图,比如想要比较分析两种不同的变量数据,可以用柱状图;想要查看某一数据在整体数据中所占的比例,可以用饼图来展示;想要查看某…

java 单例 读写锁_你用对锁了吗?浅谈 Java “锁” 事

每个时代,都不会亏待会学习的人大家好,我是yes。本来打算继续写消息队列的东西的,但是最近在带新同事,发现新同事对于锁这方面有一些误解,所以今天就来谈谈“锁”事和 Java 中的并发安全容器使用有哪些注意点。不过在这…

word无法启动转换器recovr32_迅捷PDF转换器3.0.1Mod会员版

特别声明所有软件皆来源于网上收集整理,仅供学习与交流技术,不得用作其它用途,如有侵犯你的权益,请联系我们,我们将于24小时内进行删除,谢谢你的配合!1 迅捷PDF转换器作为一款专业实用的文件格式转换器,不仅…

python数据清理_Python-数据清理

在现实生活中,数据丢失始终是一个问题。诸如机器学习和数据挖掘之类的领域在模型预测的准确性方面面临着严重的问题,因为缺少值会导致数据质量较差。在这些领域中,缺失值处理是使模型更准确和有效的主要重点。什么时候以及为什么会丢失数据&a…

java 自动加载jar_JAVA 动态(手动)加载jar文件

//filePath 是jar的绝对路径URL url new URL("file:"filePath);//里面是一个url的数组,可以同时加载多个URLClassLoader loader new URLClassLoader( new URL[]{ url } );//根据类名加载指定类,例:Class class loader.loadClass…

项目管理知识体系指南_MP考前冲刺丨项目管理知识体系指南(PMBOK)串讲(11)...

第一单元:必考知识点08 项目质量管理(下)根本原因分析因果图因果图 Cause and Effect Diagram根本原因分析在被视为特殊偏差的不良结果与飞随机原因之间建立联系,基于这种联系,采取纠正措施,小区在控制图中呈现的特殊偏差。直方图…

nfa状态转换图正规式_0x02 从NFA到DFA

书接上文,上回说道NFA已经可以完全描述正则语言的全部内容。那么,我们在这一章探索一下一个比较复杂的正则表达式在用NFA做匹配的时候会有什么“不足“。NFA匹配的"不足"为了言之有物,不妨设要讨论的模式为d?(c(a|b)*)*(b|c)图1-1…

java filter教程_Java Web Filter 过滤器学习教程(推荐)

一、Filter简介Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功…

python解密_Python解密

我目前正在从事一项家庭作业,我们必须构建一个函数,在其中编写一个三步加密/解密程序.我们必须构建的密码之一是变位/轨道围栏,该围栏接受变量(n)作为要加密消息的“轨道”数.我已经建立了加密,但是我m失去了解密方法.这是针对python的入门级类,因此我们对下面的加密代码等基础…

vue修改计算属性的值_「Vue学习记录五」计算属性和侦听器

1&#xff1a; 计算属性&#xff1a; &#xff08;内置缓存机制&#xff09;当更改age的时候&#xff0c; fullName 函数不执行&#xff1b;当更改fristName的时候&#xff0c; fullName 函数才执行<div id "app"><span>{{fullName}}</span> <…

python把485读回来的转为位_我能用Python读取从计算机上接收到的Modbus RS485数据吗?...

modbus-tk可以编写自己的modbus从站。在下面是一个运行RTU服务器的示例&#xff0c;该服务器有100个保持寄存器&#xff0c;从地址0开始&#xff1a;import sysimport modbus_tkimport modbus_tk.defines as cstfrom modbus_tk import modbus_rtuimport serialPORT 0#PORT /d…

git为私有仓库设置密码_真香!在局域网下行云流水般使用git

最近公司要开发一个新的项目&#xff0c;开发一个新的项目就要有一个好的代码版本管理工具。对于代码开发版本控制工具&#xff0c;我们之前是使用svn这个代码版本控制工具&#xff0c;但是项目经理说统一使用git开发版本控制工具&#xff0c;来到这里我们一般会选择gitee或者g…

xss img onerror java_java后台防止XSS的脚本攻击

import java.util.regex.Pattern;//具体过滤关键字符public class XSSUtil {private static Pattern[] patterns new Pattern[]{// Script fragmentsPattern.compile("", Pattern.CASE_INSENSITIVE),// src...Pattern.compile("src[\r\n]*[\r\n]*\\\(.*?)\\\&…

网口监视报文工具_真是神器!这款网络排查工具!

常用的 ping&#xff0c;tracert&#xff0c;nslookup 一般用来判断主机的网络连通性&#xff0c;其实 Linux 下有一个更好用的网络联通性判断工具&#xff0c;它可以结合ping nslookup tracert 来判断网络的相关特性&#xff0c;这个命令就是 mtr。mtr 全称 my traceroute&…

snmp服务 2003 镜像_美国掌握全球70%根服务器,一旦对中国关闭,我们将无法上网?...

“如果在上网和男朋友(女朋友)之间只能选一个&#xff0c;你会选哪个&#xff1f;”曾经有媒体在街头做这样的调查&#xff0c;出人意料的是很多人都选择了“上网”&#xff1b;因为在现代年轻人看来&#xff0c;如果进入一个没有“不能上网”的生活实在太恐怖了&#xff0c;那…

java写入carbondata_Carbondata使用过程中遇到的几个问题及解决办法

本文总结了几个本人在使用 Carbondata 的时候遇到的几个问题及其解决办法。这里使用的环境是&#xff1a;Spark 2.1.0、Carbondata 1.2.0。必须指定 HDFS nameservices在初始化 CarbonSession 的时候&#xff0c;如果不指定 HDFS nameservices&#xff0c;在数据导入是没啥问题…

商品审核网页界面_Shopee新手指南:Shopee卖家中心用户界面介绍

1.Shopee各站点前台网页链接&#xff1a;2.Shopee各站点后台网页链接3.Shopee APP下载&#xff1a;安卓版下载链接&#xff1a;https://pan.baidu.com/s/1eSp8M1k#list/path%2Fios版&#xff1a;可在App Store中直接搜索下载使用。台湾站点ios版本请搜索关键字“虾皮”下载&…