从零开始教你用Python做词云("零基础入门:手把手教你用Python制作词云")
原创
一、引言
在数据分析和可视化领域,词云(Word Cloud)是一种非常流行且直观的展示文本数据的行为。通过词云,我们可以迅捷了解文本中哪些词汇出现频率较高,进而把握文本的主题和关键信息。本文将手把手教你使用Python制作词云,即使你是零基础,也能轻松掌握。
二、准备工作
在起初制作词云之前,我们需要准备以下工具和库:
- Python环境(推荐使用Anaconda)
- jieba分词库
- wordcloud词云库
- matplotlib绘图库
下面是安装所需库的命令:
pip install jieba
pip install wordcloud
pip install matplotlib
三、制作词云的基本步骤
下面我们将通过一个简洁的例子,来展示制作词云的基本步骤。
3.1 准备文本数据
首先,我们需要准备一段文本数据。这里以《三国演义》的开头为例:
text = "话说天下大势,分久必合,合久必分。周末自恃,秦并吞三国,一统天下。及至秦末,天下大乱,群雄并起,逐鹿中原。"
3.2 进行中文分词
由于词云需要统计词频,故而我们需要对文本进行中文分词。这里使用jieba分词库:
import jieba
words = jieba.lcut(text)
3.3 统计词频
接下来,我们需要统计词频。这里使用Python内置的collections库中的Counter类:
from collections import Counter
word_counts = Counter(words)
3.4 生成词云
现在我们可以使用wordcloud库来生成词云了。首先,我们需要导入wordcloud库,并设置词云的一些参数:
from wordcloud import WordCloud
import matplotlib.pyplot as plt
wordcloud = WordCloud(
font_path='simhei.ttf', # 设置字体
background_color='white', # 设置背景颜色
width=800, height=600 # 设置画布大小
)
wordcloud.generate_from_frequencies(word_counts)
3.5 显示词云
最后,我们可以使用matplotlib库来显示生成的词云:
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off') # 关闭坐标轴
plt.show()
四、自定义词云样式
wordcloud库提供了充足的参数,让我们可以自定义词云的样式。以下是一些常见的自定义设置:
4.1 设置颜色
我们可以通过设置color_func参数来自定义词云的颜色。例如,使用以下代码可以让不同频率的词显示不同的颜色:
def grey_color_func(word, font_size, position, orientation, random_state=None, **kwargs):
return "hsl(0, 0%%, %d%%)" % np.random.randint(60, 100)
wordcloud = WordCloud(
font_path='simhei.ttf',
background_color='white',
width=800,
height=600,
color_func=grey_color_func
)
wordcloud.generate_from_frequencies(word_counts)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
4.2 设置形状
我们可以通过设置mask参数来设置词云的形状。例如,以下代码将生成一个心形的词云:
from wordcloud import WordCloud
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
# 读取心形图片
heart_mask = np.array(Image.open('heart.png'))
wordcloud = WordCloud(
font_path='simhei.ttf',
background_color='white',
width=800,
height=600,
mask=heart_mask
)
wordcloud.generate_from_frequencies(word_counts)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
4.3 设置背景颜色
通过设置background_color参数,我们可以自定义词云的背景颜色。例如,以下代码将生成一个黑色背景的词云:
wordcloud = WordCloud(
font_path='simhei.ttf',
background_color='black',
width=800,
height=600
)
wordcloud.generate_from_frequencies(word_counts)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
五、总结
本文详细介绍了怎样使用Python制作词云,包括准备文本数据、中文分词、统计词频、生成词云和显示词云等步骤。此外,我们还介绍了怎样自定义词云的样式,包括颜色、形状和背景颜色等。通过这些内容,相信你已经掌握了制作词云的基本技能。在实际应用中,你可以依需求灵活调整参数,制作出更具个性化的词云。