python—wordcloud库绘制词云

本文介绍了如何使用Python的wordcloud库创建词云图,包括基础和高级用法。内容涵盖简单词云的绘制、美化、从外部文件读取文本、分词处理,以及高级技巧如绘制指定形状的词云、去除停用词、勾勒轮廓线、按模板填色、情感分析词云和人物阵营分色词云等。
摘要由CSDN通过智能技术生成

前言

在做词云图之前我们需要安装第三方库:

pip install numpy matplotlib pillow wordcloud imageio jieba snownlp itchat -i https://pypi.tuna.tsinghua.edu.cn/simple

如果在安装wordcloud的时候出现报错:Microsoft Visual C++ 14.0 is required.

这时候 点这个网址下载所需的wordcloud模块的.whl文件,再用pip安装下载的文件。比如,对于64位windows操作系统,python版本为3.6的电脑,就应该下载wordcloud-1.4.1-cp36-cp36m-win_amd64.whl这个文件下载后打开命令行,使用cd命令切换到该文件的路径,执行pip install wordcloud-1.4.1-cp36-cp36m-win_amd64.whl命令,即可安装成功。

一、简单的词云图

1.画图

代码:
wordcloud库为每一个词云生成一个WordCloud对象(注意,此处的W和C是大写)

import wordcloud#导入做词云图需要用的包
w = wordcloud.WordCloud()#用wordcloud创建了一个词云对象,在wordcloud一个对象对应一个图片
w.generate('and that government of the people, by the people, for the people, shall not perish from the earth.')#用词云对象的generate方法将文本传入
w.to_file(r'D:\python学习\zihaowordcloud\code\output1.png')#词云图保存的路径和名字

结果如下:
在这里插入图片描述
运行完成之后,保存所在的文件夹,就会出现output.png图片文件。可以看出,wordcloud自动将and that by the not from等废话词组过滤掉,并且把出现次数最多的people大号显示。

2.美化图

我们可以在WordCloud()括号里填入各种参数,控制词云的字体、字号、字的颜色、背景颜色等等。

代码:

import wordcloud#导入做词云图需要用的包
# 构建词云对象w,设置词云图片宽、高、字体、背景颜色等参数
w = wordcloud.WordCloud(width=1000,height=700,background_color='white',font_path='msyh.ttc')#font_path='msyh.ttc'表示的是字体为微软雅黑
# 调用词云对象的generate方法,将文本传入
w.generate('从明天起,做一个幸福的人。喂马、劈柴,周游世界。从明天起,关心粮食和蔬菜。我有一所房子,面朝大海,春暖花开')
# 将生成的词云保存为output2-poem.png图片文件,保存到当前文件夹中
w.to_file(r'D:\python学习\zihaowordcloud\code\output2-poem.png')

结果如下:
在这里插入图片描述
在wordcloud库中,如果一句话没有重复的词语,会随机的做成好看的词云图。

美化图的参数:

参数 含义 默认值
width 图片宽度 400像素
height 图片高度 200像素
background_color 图片的背景颜色 黑色
font_step 字号增大的步进间隔 1号
font_path 指定字体路径 None,对于中文可用font_path=‘msyh.ttc’
mini_font_size 最小字号 默认4号
max_font_size 最大字号 根据高度自动调节
max_words 最大词数 200
stop_words 不显示的单词 stop_words={“python”,“java”}
Scale 值越大,图像密度越大越清晰 默认值1
prefer_horizontal 表示在水平如果不合适,就旋转为垂直方向 0.90,浮点数类型
relative_scaling 设定按词频倒序排列,上一个词相对下一位词的大小倍数。有如下取值:“0”表示大小标准只参考频率排名,“1”如果词频是2倍,大小也是2倍 默认值0.5,浮点型
mask 指定词云形状图片 默认为矩形

读入外部词云形状图片
需要pip install imageio安装imageio

import imageio
mk = imageio.imread("picture.png")
w = wordcloud.WordCloud(mask=mk)

3.从外部文件读入文本

很多时候文本的数量很大,我们如果直接输入显得很累赘,所以我们需要从外面部导入文件。
代码如下:

import wordcloud
# 从外部.txt文件中读取大段文本,存入变量txt中
f = open(r'D:\python学习\zihaowordcloud\code\关于实施乡村振兴战略的意见.txt',encoding='utf-8')#encoding='utf-8'中文
txt = f.read()
# 构建词云对象w,设置词云图片宽、高、字体、背景颜色等参数
w = wordcloud.WordCloud(width=1000,
                        height=700,
                        background_color='white',
                        font_path='msyh.ttc')

# 将txt变量传入w的generate()方法,给词云输入文字
w.generate(txt)
# 将词云图片导出到当前文件夹
w.to_file('output3-sentence.png')

**结果如下:

4.分词后词云图

上面的词云图都是一句一句的,那是因为没有分词,下面我们运用Python中的第三方库jieba对文本先进行分词,然后再做成词云图。
代码如下:

# 导入词云制作库wordcloud和中文分词库jieba
import jieba
import wordcloud
# 构建并配置词云对象w
w = wordcloud.WordCloud(width=1000,
                        height=700,
                        background_color='white',
                        font_path='msyh.ttc')

# 调用jieba的lcut()方法对原始文本进行中文分词,得到string
txt = '同济大学(Tongji University),简称“同济”,是中华人民共和国教育部直属,由教育部、国家海洋局和上海市共建的全国重点大学,历史悠久、声誉卓著,是国家“双一流”、“211工程”、“985工程”重点建设高校,也是收生标准最严格的中国大学之一'
txtlist = jieba.lcut(txt)#传出的是一个列表
string = " ".join(txtlist)#词云要的是一个字符串,因此把列表变成字符串

# 将string变量传入w的generate()方法,给词云输入文字
w.generate(string)

# 将词云图片导出到当前文件夹
w.to_file(r'D:\python学习\zihaowordcloud\code\output4-tongji.png')
</
  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在使用 python 语言的 wordcloud 绘制词云图时,你可以先导入所需的: ```python from wordcloud import WordCloud import matplotlib.pyplot as plt ``` 然后,你需要准备数据,可以使用 Pandas 的 DataFrame 来组织数据。例如: ```python import pandas as pd # 假设你有一个包含文本的 DataFrame,列名为 "text" df = pd.DataFrame({"text": ["this is a text", "another text"]}) ``` 接下来,你可以使用 DataFrame 的 "apply" 方法来处理每一行文本,例如分词、去停用词等。最后,你可以使用 wordcloud 中的 `WordCloud` 类来绘制词云图: ```python def process_text(text): # 处理文本的函数,这里仅做示例 return text # 将每一行文本都传入处理函数,得到一个新的列 "processed" df["processed"] = df["text"].apply(process_text) # 将所有文本拼接起来,形成一个大的字符串 all_text = " ".join(df["processed"]) # 生成词云wordcloud = WordCloud().generate(all_text) # 绘制图像 plt.imshow(wordcloud, interpolation='bilinear') plt.axis("off") plt.show() ``` 希望这能帮到你! ### 回答2: DataFrame是pandas中的一个重要的数据结构,可以将数据按照类似于表格的形式进行存储和操作。它由行索引和列索引组成,每一列都可以是不同类型的数据。 在Python中,我们可以使用wordcloud绘制词云图,通过可视化展示文本数据中词汇的频率和重要性。绘制词云图的过程包括以下几个步骤: 1. 导入所需的:首先要导入pandaswordcloud,分别用于处理数据和绘制词云图。可以使用如下代码导入: ```python import pandas as pd from wordcloud import WordCloud ``` 2. 读取数据:使用pandas中的read_csv函数读取数据文件,将其转换为DataFrame对象,例如: ```python data = pd.read_csv('data.csv') ``` 3. 数据预处理:对于文本数据,通常需要进行一些预处理,例如去除停用词、标点符号和数字,将所有词转换为小写等操作。可以使用nltk或者自定义函数来进行数据预处理。 4. 统计词频:通过DataFrame的groupby函数将文本数据进行分组,统计每个词的频率。将统计结果保存为一个新的DataFrame对象。 5. 绘制词云图:使用WordCloud中的WordCloud函数创建一个词云对象,设置一些参数,例如词云的大小、字体、背景颜色等。然后使用该对象的generate_from_frequencies方法将词频数据传入,并使用to_image方法将词云图生成为图像。可以使用如下代码进行词云图的绘制: ```python wordcloud = WordCloud(width=800, height=400, background_color='white', font_path='SimHei.ttf').generate_from_frequencies(frequency) wordcloud.to_image() ``` 以上就是使用Python对关键词DataFrame和wordcloud绘制词云图的简要介绍。通过这样的方法,我们可以直观地展示文本数据中关键词的重要性和出现频率,从而更好地理解和分析数据。 ### 回答3: DataFrame是pandas中的一种数据结构,类似于表格或电子表格。它可以用于存储和处理二维数据,支持行和列的索引,方便进行数据的筛选、统计和可视化。 而wordcloud是一个Python第三方,可以用来生成词云图。词云图是一种可视化的方式,将文本数据中出现频率较高的词汇以图形化的形式展示,更直观地显示文本的关键词和分布情况。 使用wordcloud绘制词云图的基本步骤如下: 1. 导入所需的:首先,需要导入pandas读取数据,并导入wordcloud生成词云图。 2. 准备数据:将需要生成词云图的文本数据存储在DataFrame中。 3. 数据处理:根据需要,可以进行文本清洗、分词等处理,以便更好地生成词云图。例如,可以使用正则表达式去除标点符号或停用词。 4. 生成词云图:使用wordcloud中的WordCloud类创建一个词云对象,并为其指定相应的参数,如字体、背景颜色、最大词数等。然后,使用generate方法传入处理后的文本数据,生成词云图。 5. 可视化:使用matplotlib显示生成的词云图。 综上所述,通过使用DataFrame存储文本数据,并结合wordcloud绘制词云图,可以方便地展示文本数据中的关键词和频率分布情况,使数据更加直观。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值