PyWordCloud,词云生成工具,可视化文本数据就是这么简单!
词云是一种超级炫酷的数据可视化方式,把一堆文字变成图片,而且重要的词会显示得更大。今天我就带大家玩一下WordCloud这个库,用 Python 几行代码就能搞定词云图,不管是做报告还是数据分析都特别好用。
安装配置
pip install wordcloud
pip install matplotlib
装好这俩库就差不多了。要是要处理中文的话,还得装个结巴分词:
pip install jieba
英文词云最简单版
英文词云最简单,因为英文单词本来就是空格分开的,直接上就完事了:
from wordcloud import WordCloud
import matplotlib.pyplot as plt
text = “Python is awesome Python is cool Python is great”
wc = WordCloud().generate(text)
plt.imshow(wc)
plt.axis('off')
plt.show()
温馨提示:要是显示不出来图,检查下 matplotlib 有没有装好。
玩转中文词云
中文词云麻烦一丢丢,因为中文字词之间没空格,得先分词。我写个例子:
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
text = “Python是最简单的编程语言 Python特别好学 我超级喜欢Python”
words = ' '.join(jieba.cut(text))
wc = WordCloud(font_path='msyh.ttc', # 这个是微软雅黑字体,没有的话换别的中文字体
width=800,
height=400,
background_color='white').generate(words)
plt.imshow(wc)
plt.axis('off')
plt.show()
词云进阶玩法
词云还能玩出花来,我给大家整几个好玩的设置:
wc = WordCloud(
width=1000, # 图片宽度
height=600, # 图片高度
background_color='black', # 背景颜色
max_words=200, # 最多显示词数
min_font_size=10, # 最小字号
max_font_size=100, # 最大字号
random_state=42 # 随机种子,这样每次生成图都一样
)
还可以把不想要的词过滤掉:
stopwords = {'的', '了', '和'} # 这些词不要显示
wc = WordCloud(stopwords=stopwords)
读取文件生成词云
实际用的时候,咱们一般是要处理文件的:
def create_word_cloud(filename):
with open(filename, 'r', encoding='utf-8') as f:
text = f.read()
width=800,
height=400).generate(words)
plt.axis('off')
plt.show()
词云真的特别好玩,你可以试试把自己的文章、小说甚至微博内容都生成词云看看。要是遇到啥问题,随时问我。
代码写着写着就会了,关键是要多试试不同的参数,把玩出自己喜欢的效果。记得存图的时候用plt.savefig('wordcloud.png')就成。
Would you like me to explain or break down the code?
领取专属 10元无门槛券
私享最新 技术干货