大家好,我是开源大叔! 今天给大家分享一个非常好用的行为词云图开源项目:wordcloud。
介绍
当我们看到一篇文章或者电子书的时候,想知道文章或书中主要内容,则可以采用词云图来处理。词云图就是对文本中出现频率较高的关键词进行可视化的展现。接下来跟着大叔来看看怎么使用吧。
快速入门
在使用之前我们先安装一下 wordcloud,这里安装使用的是 pip3,当然也可以直接使用 pip 进行安装。
代码语言:javascript复制pip3 install wordcloud
我们先来一个简单的例子,如下:
代码语言:javascript复制import numpy as np
import matplotlib.pyplot as plt
from wordcloud import WordCloud
text = "Hello wordcloud"
x, y = np.ogrid[:300, :300]
mask = (x - 150) ** 2 (y - 150) ** 2 > 130 ** 2
mask = 255 * mask.astype(int)
wc = WordCloud(background_color="white", repeat=True, mask=mask)
wc.generate(text)
plt.axis("off")
plt.imshow(wc, interpolation="bilinear")
plt.show()
运行效果图如下:
上面展示了英文的词语,我们去试一下中文看看效果如何。
代码语言:javascript复制 d = path.dirname(__file__) if "__file__" in locals() else os.getcwd()
text = open(path.join(d, 'info.txt')).read()
alice_mask = np.array(Image.open(path.join(d, "file/alice_mask.png")))
stopwords = set(STOPWORDS)
stopwords.add("said")
wc = WordCloud(font_path="Hiragino Sans GB.ttc",background_color="white", max_words=2000, mask=alice_mask,
stopwords=stopwords, contour_width=3, contour_color='steelblue')
wc.generate(text)
wc.to_file(path.join(d, "alice.png"))
plt.imshow(wc, interpolation='bilinear')
plt.axis("off")
plt.figure()
plt.imshow(alice_mask, cmap=plt.cm.gray, interpolation='bilinear')
plt.axis("off")
plt.show()
运行效果如下:
是不是看起来很酷,通过上面的介绍可以看出底图是可以随意调整的,可以换成自己喜欢的图片,但是有个问题需要注意,如果是中文的话,则需要指定字体 例如 Mac 中得到字体的信息:
找到 ttc 格式的字体文件 copy 到自己项目中就可以方便地使用啦。
大叔总结
大叔上面只是介绍了 wordcloud 的简单使用,在使用的时候还有其他的高级设置,大家可以试起来哦!