Python制作个性化的词云图实例讲解

目录
  • 1. 引言
  • 2. 举个栗子
    • 2.1 安装stylecloud库
    • 2.2 生成词云图
    • 2.3 美化显示效果
    • 2.4 处理停用词
    • 2.5 使用自定义背景图像
  • 3. 总结

1. 引言

词云图可以让我们方便地识别出文本中的关键词,其中单词的大小代表它们的频率。有了这个,我们甚至在阅读之前就可以很好地了解文本的内容。虽然有很多免费的工具可以在线制作文字云,但我们可以使用万能的Python来定制个性化的词云图。

在本文中,我们将使用第三方Python库stylecloud,有了该库,可以通过简短的几行代码来制作漂亮的词云图。如下所示:

闲话少说,我们直接开始吧。 :)

2. 举个栗子

接下来,我们将用来制作词云图的文本是偶像乔布斯在斯坦福大学演讲的一部分。点击这里可以获得对应的 .txt 文件或使用任何其他的文本来制作你自己的词云图。

2.1 安装stylecloud库

这里我们可以直接使用pip来安装该词云库,代码如下:

pip3 install stylecloud

2.2 生成词云图

接着我们可以使用stylecloud.gen_stylecloud() 方法来生成词云图,通过传递相应的文本 .txt 文件的路径和生成词云的图标样式。
在网站上,我们可以方便的找到可用于 stylecloud 的图标样式列表。在此示例中,我选择了一个苹果作为图标。代码如下:

import stylecloud
stylecloud.gen_stylecloud(file_path='SJ-Speech.txt',
						icon_name="fas fa-apple-alt")

上述代码运行后,在当前python文件目录下生成以png格式保存词云图,如下所示:

2.3 美化显示效果

仔细观察gen_stylecloud函数的相关参数,我们可以控制背景颜色、单词的颜色、输出文件的名称等。为此,我们查看下面的代码:

stylecloud.gen_stylecloud(file_path='SJ-Speech.txt',
                          icon_name='fas fa-apple-alt',
                          colors='white',
                          background_color='black',
                          output_name='apple.png',
                          collocations=False)

运行结果如下:

2.4 处理停用词

我们可以使用stop_words库来处理文本中的停用词,可以使用pip install stop_words来安装该库。有了停用词列表,我们也可以将其传递给在gen_stylecloud函数中的custom_stopwords参数。

样例代码如下:

from stop_words import get_stop_words
stop_words = get_stop_words('english')
stylecloud.gen_stylecloud(file_path='SJ-Speech.txt',
                          icon_name='fas fa-apple-alt',
                         palette='cartocolors.qualitative.Pastel_3',
                          background_color='black',
                          output_name='apple.png',
                          collocations=False,
                          custom_stopwords=stop_words)

上述代码的运行结果如下:

2.5 使用自定义背景图像

在上述网站上有数百个免费图标可用于 stylecloud,但是但有时我们可能希望使用自己的图像来为创建更加个性化的词云图。此时,我们可以使用PIL库来读取图像,使用matplotlib来绘制我们的图像,使用wordcloud来制作对应的词云图。

下述代码中使用蝙蝠的图案来生成对应的词云图,代码如下:

from wordcloud import WordCloud, ImageColorGenerator
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
# create a mask based on the image we wish to include
my_mask = np.array(Image.open('batman-logo.png'))
# create a wordcloud
wc = WordCloud(background_color='white',
                   mask=my_mask,
                   collocations=False,
                   width=600,
                   height=300,
                   contour_width=3,
                   contour_color='black',
                   stopwords=stop_words)

with open('SJ-Speech.txt',encoding='gb18030',errors='ignore') as txt_file:
	texto = txt_file.read()
wc.generate(texto)
image_colors = ImageColorGenerator(my_mask)
wc.recolor(color_func=image_colors)

plt.figure(figsize=(20, 10))
plt.imshow(wc, interpolation='bilinear')
plt.axis('off')
wc.to_file('wordcloud2.png')
plt.show()

运行结果如下:

3. 总结

本文详细介绍了如何使用stylecloud库来绘制各种样式的词云图,以突出显示文本中相应的关键词,并给出了定制化改进显示效果的样例代码。

到此这篇关于Python制作个性化的词云图实例讲解的文章就介绍到这了,更多相关Python词云图内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python如何用pyecharts制作词云图

    需要安装pyecharts pip install pyecharts -U 创建[demo6.py]并输入以下编码: from pyecharts import options as opts from pyecharts.charts import Page, WordCloud words = [ ("神医", 10000), ("马良", 6181), ("玛丽", 4386), ("终结者", 4055), (&qu

  • Python控制浏览器自动下载歌词评论并生成词云图

    目录 一.前言 二.准备工作 1.需要用的模块 2.驱动安装 三.下载歌词 四.词云图 一.前言 一首歌热门了,参与评论的人也很多,那我们有时候想看看评论,也只能看看热门的评论,大部分人都说的什么,咱也不知道呀~ 那本次咱们就把歌词给自动下载保存到电脑上,做成词云图给它分析分析… 二.准备工作 1.需要用的模块 本次用到的模块和包: re  # 正则表达式 内置模块 selenium  # 实现浏览器自动操作的 jieba  # 中文分词库 wordcloud  # 词云图库 imageio  

  • Python pyecharts绘制词云图代码

    目录 一.pyecharts绘制词云图WordCloud.add()方法简介 二.绘制词云图对应轮廓按diamond显示 三.对应完整代码如下所示 一.pyecharts绘制词云图WordCloud.add()方法简介 WordCloud.add()方法简介: add(name,attr,value, shape="circle", word_gap=20, word_size_range=None, rotate_step=45) name str 图例名称 attr list 属性

  • Python selenium把歌词评论做成词云图

    目录 前言 本次目的 本次用到的模块和包: 驱动安装 一.下载歌曲评论 1.代码实现 2.爬取评论运行效果 二.制作词云图 总结 前言 一首歌热门了,参与评论的人也很多,这时无论好坏评论都来了,没有人控评得话,指不定乱七八糟 但是自己有喜欢看评论,不想影响好心情,想看看精彩评论,看看歌词立意,那怎么办呢? 那本次咱们就把歌词给自动下载保存到电脑上,做成词云图给它分析分析… 本次目的 用selenium自动把歌词评论下载下来,做成好看的词云图 本次用到的模块和包: re # 正则表达式 内置模块

  • Python制作个性化的词云图实例讲解

    目录 1. 引言 2. 举个栗子 2.1 安装stylecloud库 2.2 生成词云图 2.3 美化显示效果 2.4 处理停用词 2.5 使用自定义背景图像 3. 总结 1. 引言 词云图可以让我们方便地识别出文本中的关键词,其中单词的大小代表它们的频率.有了这个,我们甚至在阅读之前就可以很好地了解文本的内容.虽然有很多免费的工具可以在线制作文字云,但我们可以使用万能的Python来定制个性化的词云图. 在本文中,我们将使用第三方Python库stylecloud,有了该库,可以通过简短的几行

  • python根据文本生成词云图代码实例

    这篇文章主要介绍了python根据文本生成词云图代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 效果 代码 from wordcloud import WordCloud import codecs import jieba #import jieba.analyse as analyse from scipy.misc import imread import os from os import path import matplot

  • python队列通信:rabbitMQ的使用(实例讲解)

    (一).前言 为什么引入消息队列? 1.程序解耦 2.提升性能 3.降低多业务逻辑复杂度 (二).python操作rabbit mq rabbitmq配置安装基本使用参见上节文章,不再复述. 若想使用python操作rabbitmq,需安装pika模块,直接pip安装: pip install pika 1.最简单的rabbitmq producer端与consumer端对话: producer: #Author :ywq import pika auth=pika.PlainCredentia

  • Python实现Wordcloud生成词云图的示例

    wordcloud是Python扩展库中一种将词语用图片表达出来的一种形式,通过词云生成的图片,我们可以更加直观的看出某篇文章的故事梗概. 首先贴出一张词云图(以哈利波特小说为例): 在生成词云图之前,首先要做一些准备工作 1.安装结巴分词库 pip install jieba Python中的分词模块有很多,他们的功能也都是大同小异,我们安装的结巴分词 是当前使用的最多的类型. 下面我来简单介绍一下结巴分词的用法 结巴分词的分词模式分为三种: (1)全模式:把句子中所有的可以成词的词语都扫描出

  • 使用Python轻松实现绘制词云图项目(附详细源码)

    目录 项目背景 项目实操 一.一般词云绘制 二.根据词频绘制词云 结 语 项目背景 虽然现在已经有很多现成的制作词云图的工具了,但一般存在以下几个问题: 问题一:工具太多,眼花缭乱,质量参差不齐,选择困难症: 问题二:大多词云工具或多或少有一些限制,自定义的空间有限: 问题三:有些工具甚至收费. 基于以上几个问题,觉得有必要写一篇Python绘制词云图的文章,因为实在太简单!没有任何编程基础的小白都能搞定的事,还找什么工具啊! OK,FINE.咱不废话,直接实操. 项目实操 一.一般词云绘制 制

  • 基于python select.select模块通信的实例讲解

    要理解select.select模块其实主要就是要理解它的参数, 以及其三个返回值. select()方法接收并监控3个通信列表, 第一个是所有的输入的data,就是指外部发过来的数据,第2个是监控和接收所有要发出去的data(outgoing data),第3个监控错误信息在网上一直在找这个select.select的参数解释, 但实在是没有, 哎...自己硬着头皮分析了一下. readable, writable, exceptional = select.select(inputs, ou

  • python 调用c语言函数的实例讲解

    虽然python是万能的,但是对于某些特殊功能,需要c语言才能完成.这样,就需要用python来调用c的代码了 具体流程: c编写相关函数 ,编译成库 然后在python中加载这些库,指定调用函数. 这些函数可以char ,int, float, 还能返回指针. 以下示例: 通过python调用c函数,返回"hello,world 字符串" 新建c语言文件 hello.c touch hello.c #include <stdio.h> char *get_str() {

  • python数据结构链表之单向链表(实例讲解)

    单向链表 单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域.这个链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值. 表元素域elem用来存放具体的数据. 链接域next用来存放下一个节点的位置(python中的标识) 变量p指向链表的头节点(首节点)的位置,从p出发能找到表中的任意节点. 节点实现 class Node(object): """单链表的结点""" def __i

  • python密码错误三次锁定(实例讲解)

    程序需求: 输入用户名,密码 认证成功显示欢迎信息 输入错误三次后锁定用户 流程图: 好像画的不咋地 查看代码: #!/usr/bin/env python # _*_ coding:utf-8 _*_ # File_type:一个登录接口 # Author:smelond import os username = "smelond"#用户名 password = "qweqwe"#密码 counter = 0#计数器 #读取黑名单 file = os.path.e

  • python逐行读写txt文件的实例讲解

    实例如下所示: # -*-coding:utf-8-*- import os file_obj = open("test2.txt") all_lines = file_obj.readlines() for line in all_lines: print line file_obj.close() # 写之前,先检验文件是否存在,存在就删掉 if os.path.exists("dest.txt"): os.remove("dest.txt"

随机推荐