写在前面
这个是当下最流行最时髦的AI神器chatGPT和我一起合作写的一篇通用技术文章,请读者笑纳!
Python词云教程
介绍
Python是一种流行的编程语言,它可以用于许多不同的应用程序,包括数据可视化。其中一个最流行的数据可视化技术是词云。词云是一种可视化技术,可以将文本中出现频率较高的单词呈现为更大的字体,从而突出显示它们的重要性。
步骤1:安装所需的库
您需要安装一些Python库,以便可以使用词云功能。其中最重要的是wordcloud和matplotlib库。您可以使用以下命令在命令行中安装这些库:
pip install wordcloud
pip install matplotlib
步骤2:准备文本
在制作词云之前,您需要有一些文本数据。您可以从任何来源获取文本数据,例如:
- 从文件中读取文本
- 从API获取文本
- 从网站中抓取文本
对于这个教程,我们将使用歌词“给你一瓶魔法药水”,例如:
text = """给你一瓶魔法药水
喝下去就不需要氧气
给你一瓶魔法药水
喝下去就不怕身体结冰
轻轻念着你懂的咒语
一扇门就通往银河系
给你一瓶魔法药水
我们一起去太空旅行
宇宙的有趣我才不在意
我在意的是 你牵我的手 而乱跳的心
宇宙的有趣我才不在意
我在意的是 你想跟着我 去月球谈心
拥有你 就不需要魔法给的勇气
轻轻念着你懂的咒语
一扇门就通往银河系
给你一瓶魔法药水
我们一起去太空旅行
宇宙的有趣我才不在意
我在意的是 你牵我的手 而乱跳的心
宇宙的有趣我才不在意
我在意的是 你想跟着我 去月球谈心
宇宙的有趣我才不在意
我在猜的是 前方的距离 几步走到你
宇宙的有趣我才不在意
我期待的是 今天的晚餐 你想吃哪里
拥有你就不需要魔法给的勇气
你走的方向最后到哪去
可能是火星或者是金星
不管多远多近多累都没关系
我的魔法只对你偏心
我偏心
我偏心
宇宙的有趣我才不在意
我在意的是 你牵我的手 而乱跳的心
宇宙的有趣我才不在意
我在意的是 你想跟着我 去月球谈心
宇宙的有趣我才不在意
我在猜的是 奔跑的距离 几步走到你
宇宙的有趣我才不在意
我期待的是 今天的晚餐 你想吃哪里
有你在
就不需要魔法给的勇气
"""
步骤3:生成词云
现在,我们可以使用wordcloud库来生成词云。以下是一个简单的代码示例,可以生成一个基本的词云
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 设置词云对象
wordcloud = WordCloud(width=800, height=800, background_color='white', stopwords=set(stopwords)).generate(text)
# 绘制词云
plt.figure(figsize=(8, 8), facecolor=None)
plt.imshow(wordcloud)
plt.axis("off")
plt.tight_layout(pad=0)
# 显示词云
plt.show()
在这个代码示例中,我们首先导入了WordCloud和matplotlib.pyplot库。然后,我们创建了一个WordCloud对象,并将其设置为宽度和高度为800像素,背景颜色为白色,并使用停用词集合来过滤文本。接下来,我们使用matplotlib.pyplot库绘制词云,并使用plt.show()命令显示它。
步骤4:调整词云
您可以通过向WordCloud对象提供不同的参数来调整词云的外观。例如,您可以更改字体,字体大小,颜色和形状。以下是一些常用的参数:
- font_path:指定用于显示文本的字体文件的路径。
- max_words:指定要包括在词云中的单词的最大数量。
- colormap:指定用于着色的matplotlib colormap。
- mask:指定用于词云的形状。
- 您可以在WordCloud文档中找到完整的参数列表。
下面是一个带有调整的词云示例:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image
# 歌词文本
text = """给你一瓶魔法药水
喝下去就不需要氧气
给你一瓶魔法药水
喝下去就不怕身体结冰
轻轻念着你懂的咒语
一扇门就通往银河系
给你一瓶魔法药水
我们一起去太空旅行
宇宙的有趣我才不在意
我在意的是 你牵我的手 而乱跳的心
宇宙的有趣我才不在意
我在意的是 你想跟着我 去月球谈心
拥有你 就不需要魔法给的勇气
轻轻念着你懂的咒语
一扇门就通往银河系
给你一瓶魔法药水
我们一起去太空旅行
宇宙的有趣我才不在意
我在意的是 你牵我的手 而乱跳的心
宇宙的有趣我才不在意
我在意的是 你想跟着我 去月球谈心
宇宙的有趣我才不在意
我在猜的是 前方的距离 几步走到你
宇宙的有趣我才不在意
我期待的是 今天的晚餐 你想吃哪里
拥有你就不需要魔法给的勇气
你走的方向最后到哪去
可能是火星或者是金星
不管多远多近多累都没关系
我的魔法只对你偏心
我偏心
我偏心
宇宙的有趣我才不在意
我在意的是 你牵我的手 而乱跳的心
宇宙的有趣我才不在意
我在意的是 你想跟着我 去月球谈心
宇宙的有趣我才不在意
我在猜的是 奔跑的距离 几步走到你
宇宙的有趣我才不在意
我期待的是 今天的晚餐 你想吃哪里
有你在
就不需要魔法给的勇气
"""
# 获取形状
mask = np.array(Image.open('img/3.png'))
# 设置停用词
stopwords = set(["魔法", "宇宙", "有趣", "勇气"])
# 设置词云对象
wordcloud = WordCloud(width=800, height=800, background_color='white', font_path='C:\\Windows\\Fonts\\simsun.ttc', mask=mask, colormap='viridis', stopwords=set(stopwords)).generate(text)
# 绘制词云
plt.figure(figsize=(8, 8), facecolor=None)
plt.imshow(wordcloud)
plt.axis("off")
plt.tight_layout(pad=0)
# 显示词云
plt.show()
在这个代码示例中,我们使用一张docker的鲸鱼图片,然后我们还使用numpy和PIL库来处理形状。我们还设置了一些停用词,以便过滤文本。最后,我们使用WordCloud对象创建了一个词云,并使用mask参数指定了形状。我们还使用colormap参数指定了用于着色的colormap,使用font_path参数指定了字体文件的路径。
FAQ
您好,请问Python中的词云中文乱码怎么解决?
好的,这个问题提的很好。
以Windows为例,到C:\Windows\Fonts
找到你想要的字体贴到WordCloud参数里面去,像楼下这样,我贴的是宋体常规,一起来试试吧,或者你也可以改worldcloud的源码,我猜一下应该是它默认的那个字体你电脑上没有导致的。
最后来看下效果吧
总结
这是一个简单的Python词云教程,可以让您开始制作自己的词云。您可以使用wordcloud和matplotlib库来生成基本的词云,并使用不同的参数来调整其外观。您还可以使用numpy和PIL库来处理形状。
以上就是今天的全部内容,希望能够在数据分析、做PPT上面帮到你,再见!