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

 更新时间:2022年02月13日 15:15:23   作者:赵卓不凡  
大家好,本篇文章主要讲的是Python制作个性化的词云图实例讲解,感兴趣的同学赶紧来看一看吧,对你有帮助的话记得收藏一下

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词云图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python使用PDFMiner解析PDF代码实例

    Python使用PDFMiner解析PDF代码实例

    本篇文章主要介绍了Python使用PDFMiner解析PDF代码实例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • python中PyQuery库用法分享

    python中PyQuery库用法分享

    在本篇文章里小编给大家整理了一篇关于python中PyQuery库用法内容,有兴趣的朋友们参考下。
    2021-01-01
  • Python 爬虫学习笔记之单线程爬虫

    Python 爬虫学习笔记之单线程爬虫

    本文给大家分享的是python使用requests爬虫库实现单线程爬虫的代码以及requests库的安装和使用,有需要的小伙伴可以参考下
    2016-09-09
  • Python 实现打印单词的菱形字符图案

    Python 实现打印单词的菱形字符图案

    这篇文章主要介绍了Python 实现打印单词的菱形字符图案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 浅谈如何测试Python代码

    浅谈如何测试Python代码

    今天带大家了解如何用Python测试代码,文中有非常详细的介绍及代码示例,对正在学习的小伙伴们很有帮助,需要的朋友可以参考下
    2021-06-06
  • Python 爬虫之Beautiful Soup模块使用指南

    Python 爬虫之Beautiful Soup模块使用指南

    这篇文章主要介绍了Python 爬虫之Beautiful Soup模块使用指南,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • 解决sublime+python3无法输出中文的问题

    解决sublime+python3无法输出中文的问题

    今天小编就为大家分享一篇解决sublime+python3无法输出中文的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Django Session和Cookie分别实现记住用户登录状态操作

    Django Session和Cookie分别实现记住用户登录状态操作

    这篇文章主要介绍了Django Session和Cookie分别实现记住用户登录状态操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • 你应该知道的python列表去重方法

    你应该知道的python列表去重方法

    初学者经常会遇到如何移除list中重复元素的问题。 这个问题在其他语言中可能需要for循环什么的,而在python中不用这样,非常简单,下面来通过这篇文章主要介绍了关于python列表去重方法以及拓展,需要的朋友可以参考借鉴,一起来看看吧。
    2017-01-01
  • Jupyter Notebook输出矢量图实例

    Jupyter Notebook输出矢量图实例

    这篇文章主要介绍了Jupyter Notebook输出矢量图实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04

最新评论