一直觉得WordCloud挺好玩的,今天偶然看到一篇关于WordCloud的博客,于是试了一下。没想到遇到一串问题,记录下来,以飨跟我一样探奇中的同学们。
第一步:当然是安装,我只用了最简单的方法
pip install wordcloud
第二步,来个demo吧。BTW:下面这段代码来源互联网,非原创
from os import path
from scipy.misc import imread
import matplotlib.pyplot as plt
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
# 获取当前文件路径# __file__ 为当前文件, 在ide中运行此行会报错,可改为# d = path.dirname('.')d = path.dirname(__file__)
# 读取文本 alice.txt 在包文件的example目录下
#内容为
"""
Project Gutenberg's Alice's Adventures in Wonderland, by Lewis Carroll
This eBook is for the use of anyone anywhere at no cost and with
almost no restrictions whatsoever. You may copy it, give it away or
re-use it under the terms of the Project Gutenberg License included
with this eBook or online at www.gutenberg.org
"""
text = open(path.join(d,'alice.txt')).read()
# read the mask / color image
# taken from http://jirkavinse.deviantart.com/art/quot-Real-Life-quot-Alice-282261010
# 设置背景图片
alice_coloring = imread(path.join(d,"alice_color.png"))
wc = WordCloud(background_color="white", #背景颜色
max_words=2000, #词云显示的最大词数
mask=alice_coloring, #设置背景图片
stopwords=STOPWORDS.add("said"),
max_font_size=40, #字体最大值
random_state=42)
# �生成词云, 可以用generate输入全部文本(中文不好分词),也可以我们计算好词频后使用generate_from_frequencies函数
wc.generate(text)
# wc.generate_from_frequencies(�txt_freq)
# txt_freq例子为[('词a', 100),('词b', 90),('词c', 80)]
# �从背景图片生成颜色值
image_colors = ImageColorGenerator(alice_coloring)
# 以下代码显示图片
plt.imshow(wc)
plt.axis("off") # 绘制词云
plt.figure() # recolor wordcloud and show
# we could also give color_func=image_colors directly in the constructor
plt.imshow(wc.recolor(color_func=image_colors))
plt.axis("off") # 绘制背景图片为颜色的图片plt.figure()
plt.imshow(alice_coloring, cmap=plt.cm.gray)
plt.axis("off")
plt.show()
#保存图片
wc.to_file(path.join(d,"名称.png"))
BTW:其实我想把上面的代码使用代码专用格式显示,但是简书好像不支持这个。。。然后我想,是不是应该换到CSDN上了呢?
回到正题继续,把上面的代码敲进去之后,一堆麻烦来了,最精彩的情节从此展开。
第一个麻烦:运行demo的时候提示scipy.misc.imread函数不存在
好吧,不记得什么时候装scipy的时候就费了老鼻子劲了,所以自从装上之后我一直以为scipy是好好的,因为import scipy是成功的,没想到还能发生这样的事情。
首先尝试 pip install scipy --upgrade
运行到一部分的时候提示找不到fortran的编译器。
到https://gcc.gnu.org/wiki/GFortranBinaries#MacOS 这个地址下载一个编译好的可执行文件(我用的mac,用其他操作系统的同学也可以在上面这个网站找到适合的可执行文件),安装之后重新运行:
pip install scipy --upgrade
终于work了,虽然中间还是报了很多很多warning
装完之后from scipy import misc --> dir(misc) ,仍然没有发现imread
继续百度,发现似乎是缺少PIL和Pillow两个包,于是
pip install PIL
pip install Pillow
然后再次from scipy import misc --> dir(misc),这回imread妥妥的躺在那里了。小小的激动一下,第一次发现python还能这么玩。
今天先high到这里,下一集准备把川普的就职演讲做一个wordcloud。各位看官,期待的话就请点一点"喜欢"鼓励一下吧。