Python wordcloud入门指南

如何在Python中使用wordcloud库生成文字云?

一、安装和导入wordcloud库

在使用wordcloud前,需要保证库已经安装并导入:

!pip install wordcloud
from wordcloud import WordCloud

二、生成基本的文字云

首先,你需要提供一个文本文件,对于这个文件我们可以先完成以下几个步骤:

  1. 打开文件,并读取数据。
  2. 去除文件中的特殊符号和数字,只留下正常文字。
  3. 将文本序列转化为字符串形式。

代码实现如下:

import os
from collections import Counter
import jieba

text = open(os.path.join(d, 'news.txt')).read()                  #打开文件并读取数据
c = Counter(text)                                                #可选:观察数据分布情况
list(filter(lambda x:x[1]>10,c.items()))                         #可选:去除较低频的词汇
text = ''.join(list(filter(lambda x:x[0] not in ',?!.;‘’“”‘’%1234567890',text)))    #去除特殊符号和数字
text_cut = jieba.cut(text)                                       #使用jieba库进行分词
text_cut = ' '.join(list(text_cut))

#生成文字云
wc = WordCloud(width=800,height=600,mode='RGBA',background_color=None).generate(text_cut)
wc.to_file("wordcloud.png")

运行程序,你将在当前目录下看到生成的”wordcloud.png”文件。

三、设计文字云的基本参数

wordcloud库提供了许多参数,可以对生成的文字云进行基础的调整。下面介绍几个常见的参数。

  • background_color: 设定背景颜色,默认为黑色。
  • width: 文字云的宽度,默认为400像素。
  • height:文字云的高度,默认为200像素。
  • max_words: 文字云中的最大词数,默认为200。
  • font_path: 字体路径,用于设置字体。例如,’STHeiti Medium.ttc’ 或者 ‘/System/Library/Fonts/PingFang.ttc’

代码示例:

font_path = '/System/Library/Fonts/PingFang.ttc'
wc = WordCloud(
background_color='#E6E6FA',
width=800, height=600,
font_path=font_path,
max_words=500).generate(text_cut)
wc.to_file("wordcloud.png")

四、美化文字云

如果只是简单地生成文字云,效果往往不尽人意。接下来,我们可以从以下几个方面对文字云进行美化。

1. 修改字体颜色和形状

通过 WordCloud()实例中的 color_func 和 mask参数可以实现。

import numpy as np
from PIL import Image

mask = np.array(Image.open(os.path.join(d, "mask.png")))   # mask为透明png或JPEG图片
wc = WordCloud(
width=800, height=600,
max_words=400,
background_color=None,
mode='RGBA',
font_path=font_path,
mask=mask,
).generate(text)
def grey_color_func(word, font_size, position, orientation, random_state=None, **kwargs):
    return "hsl(0, 0%%, %d%%)" % np.random.randint(60, 100)
wc.recolor(color_func=grey_color_func)
wc.to_file("wordcloud.png")

2. 调整字体大小

可以通过 WordCloud()实例中的relative_scaling参数调整。

relative_scaling:浮点数,按照词频调整字体大小。

wc = WordCloud(
background_color='#F0F8FF',
font_path=font_path,
width=800,height=600,
max_words=200,
relative_scaling=0.5
).generate(text_cut)

3. 自定义停用词

使用stopwords参数即可,其中每个元素用逗号分隔。

stopwords = set(jieba.cut(open(os.path.join(d, 'stopwords.txt')).read())) 
wc = WordCloud(
background_color='#F0F8FF',
font_path=font_path,
width=800,height=600,
max_words=200,
relative_scaling=0.5,
stopwords=stopwords
).generate(text_cut)

五、总结

Python wordcloud库可以帮助我们生成精美的文字云,能够快速完成一些可视化的需求。我们可以根据实际情况,调整文字云的基本参数和美化参数,得到既美观又有意义的文字云。在生成文字云时,我们需要注意去除特殊符号和数字,保证展示的词汇具备可读性。同时也可以通过自定义停用词进行加强。最后,希望这篇关于wordcloud库的入门指南能够对你有所帮助。

原创文章,作者:XXOOI,如若转载,请注明出处:https://www.506064.com/n/375605.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
XXOOI的头像XXOOI
上一篇 2025-04-29 12:49
下一篇 2025-04-29 12:49

相关推荐

  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • Python中new和init的区别

    new和init都是Python中常用的魔法方法,它们分别负责对象的创建和初始化,本文将从多个角度详细阐述它们的区别。 一、创建对象 new方法是用来创建一个对象的,它是一个类级别…

    编程 2025-04-29
  • Python中capitalize函数的使用

    在Python的字符串操作中,capitalize函数常常被用到,这个函数可以使字符串中的第一个单词首字母大写,其余字母小写。在本文中,我们将从以下几个方面对capitalize函…

    编程 2025-04-29
  • PHP和Python哪个好找工作?

    PHP和Python都是非常流行的编程语言,它们被广泛应用于不同领域的开发中。但是,在考虑择业方向的时候,很多人都会有一个问题:PHP和Python哪个好找工作?这篇文章将从多个方…

    编程 2025-04-29

发表回复

登录后才能评论