今天在学Python的利用wordcloud库制作一些简单的可视化词云。下面梳理一下今天遇到的几个坑:
第一个肯定是个大坑,就是scipy库的imread方法问题,试了网上的很多种办法都还是一直报错(cannot import name ‘imread’ from ‘scipy.misc’),按照网上的方法安装各种库也都没有用。直到看到一篇大佬的博客,scipy.misc.imread()被弃用,应该用imageio.imwrite()来替代标题为scipy.misc.imread()被弃用,应该用imageio.imwrite()来替代。所以我果断的选择放弃scipy这个库,转而安装matplotlib和imageio这两个库,imageio库里也有imread的方法,但调用的话也必须安装matplotlib这个库,否则就会报错。这两个库我是在pycharm里下载,如果安装时一直出现timeout类型的问题,就换为中国的源地址,可参考文章解决PyCharm下载Python第三方库时速度慢的问题
代码如下:(ChinaMask为图片文件名)
import imageio
mask = imageio.imread('ChinaMask.png')
第二个就是出来的结果,图片上没有汉字,都是各个颜色的方框,后来了解到是因为没有设置中文字体
wordcloud = WordCloud( font_path='msyh.ttc').generate(newtxt) #微软雅黑字体(msyh.ttc)
如果遇到图片字迹不清楚的,可以在WordCloud里设置参数scale=4,数字越大图片越清楚,要求电脑配置也就越高。可参考文章用Python和WordCloud绘制词云(内附让字体清晰的秘笈)
```python
from wordcloud import WordCloud
import jieba
import imageio
mask = imageio.imread('ChinaMask.png')
f = open('shijiuda.txt','r',encoding='utf-8')
#f='''同学们可将感兴趣的段落复制于此来制作词云
#。'''
txt = f.read()
words=jieba.lcut(txt) #精确分词
newtxt=''.join(words) #空格拼接
wordcloud = WordCloud(background_color='white',
font_path='msyh.ttc',
width=800,
height=600,
max_words=200,
max_font_size=80,
mask=mask,
).generate(newtxt)
wordcloud.to_file('China.png') #决定词云形状的图片
效果图因涉及政治因素一直审核不通过就被删了