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

前期准备

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

那生成一张词云图的主要步骤有哪些?过程中又需要用到哪些Python库呢?

  1. 首先需要一份待分析的文本数据,由于文本数据都是一段一段的,所以第一步要将这些句子或者段落划分成词,这个过程称之为分词,需要用到Python中的分词库jieba
  2. 分词之后,就需要根据分词结果生成词云,这个过程需要用到wordcloud
  3. 最后需要将生成的词云展现出来,用到大家比较熟悉的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年都福气满满!

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

echarts词云图形状_怎么用Python画出好看的词云图?相关推荐

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

    相信很多人在第一眼看到下面这些图时,都会被其牛逼的视觉效应所吸引,这篇文章就教大家怎么用Python画出这种图. 前期准备 上面的这种图叫做词云图,主要用途是将文本数据中出现频率较高的关键词以可视化的 ...

  2. 用Python画出好看的词云图(详解)

    相信很多人在第一眼看到下面这些图时,都会被其牛逼的视觉效果所吸引,下面我就带领大家一起来学习怎么用Python画出这种图. 前期准备 上面的这种图叫做词云图,主要用途是将文本数据中出现频率较高的关键词 ...

  3. 怎么用Python画出好看的词云图?

         作者:易执      来源:Python读数 相信很多人在第一眼看到下面这些图时,都会被其牛逼的视觉效果所吸引,这篇文章就教大家怎么用Python画出这种图. 前期准备 上面的这种图叫做词云 ...

  4. python中词云图怎样变成特殊图案_如何利用python画出一个多变的词云图?(1)...

    问题描述: 如何利用python画出一个多变的词云图? 解决方法:import numpy as np import matplotlib import matplotlib.pyplot as pl ...

  5. php饼图只有一个小方块_如何用Python画一个好看的饼图

    这是一个关于画一个饼图的故事......话说在一个月黑风高的夜晚,笔者肚子饿了,脑海中回想起画饼充饥的典故,于是打算.... 成功冷到自己...... 好吧进入正题,这次我们来说说怎么用python画 ...

  6. 用python绘制好看的图形_如何使用Python绘制好word cloud,怎么,画出,好看,的,词,云图...

    下面记录一下python作图做了一个学期依然是个菜鸡的一些操作: ** 1.导入库 ** import jieba from wordcloud import WordCloud import mat ...

  7. python用turtle画樱花飘落_如何用Python画出一颗漂亮的樱花

    作为一个世界上非著名非专业的画家,当然得让大家先欣赏下我的世纪大作: 当然作为一个知名画家必须得掌握不同的画风,现在大家欣赏下我的另一大作: 众所周知,作为一个程序员,当然不会是一个手残党,日夜敲击键 ...

  8. 如何使用python画出好看的K线图

    tushare ID:468684 一.安装mplfinance库 画K线蜡烛图,使用python的mplfinance库比较方便 安装:pip install mplfinance mplfinan ...

  9. echarts词云图形状_用Wordcloud生成指定形状的词云图

    wordcloud是Python扩展库中一种将词语用图片表达出来的一种形式,通过词云生成的图片,我们可以更加直观的看出某篇文章的故事梗概. 首先贴出一张词云图(以哈利波特小说为例): 在生成词云图之前 ...

最新文章

  1. 小目标检测的增强算法
  2. Python计算机视觉——照相机模型与增强现实
  3. 【程序员基础篇】开源中国私有库代码更新
  4. python与图书编辑
  5. FLV Extract 1.2.1
  6. 调试实战 —— dll 加载失败之 Debug Release争锋篇
  7. app aws_服务网格:Istio和AWS App Mesh
  8. 华为P40pro 手机云台_2020年目前拍照最好的手机推荐!华为P40 Pro!DXO全球榜首
  9. 截取url的host_js如何准确获取当前页面url网址信息
  10. svn合并不同树_SVN分支与合并【超详细的图文教程】(转载)
  11. 北斗芯片是如何决定着北斗产业的未来?
  12. 2022年美容师(初级)考试题库模拟考试平台操作
  13. 指尖菜谱App从0到1-项目开发准备
  14. 成功转行IT软件测试,分享下我本科毕业2年转行的经历
  15. 2022届测开秋招面经全记录
  16. GitHub分享的微软开源计算器项目
  17. android 游戏sdk嫁接方式
  18. Happy Father's Day 告诉父亲你爱他
  19. 【Hive】Hive入门解析(一)
  20. GitLabCICD实战----在.gitlab-ci.yml文件的步骤中使用git clone 另一个代码仓报错的解决办法

热门文章

  1. 对称加密DES和TripleDES
  2. AccEAP架构介绍(1)---实体的设计
  3. 针对ASP.NET Core Web API的先进架构
  4. 系统管理员都要知道的 30 个 Linux 系统监控工具
  5. 《JavaScript启示录》——1.21 JavaScript对象和Object()对象
  6. Android获取手机应用程序包的信息
  7. Ubuntu 12.04 下安装 VirtualBox 及虚拟机winxp的安装
  8. 敏捷结果30天之第六天:周五回顾,找到三件做的好以及三件需要改善的事情...
  9. 一个自己设计的软件框架
  10. 制造业采购审批流程设计示例