python中wordcloud函数不同形状云图_10行Python代码生成任意形状的文字云图

本文介绍了如何在Python中利用jieba分词和wordcloud模块生成不同形状的文字云图,如心形和热气球形。通过10行代码实现文字云图的创建,并解决了可能出现的字体乱码问题,提供了解决方案。
摘要由CSDN通过智能技术生成

来源:王飞,小编有所改动

先看一下效果吧,小编随意从网上找了两篇文章,关于爱情的一篇文章用的心形,关于母爱的一篇文章用的热气球形。

是否感叹到这种文字云图之美?那么,就赶快动手生成自己所写的文字的云图吧。

安装、导入模块

文字云需要用到两个模块,分别是:jieba 和 wordcloud,一般安装方法 pip install jieba/wordcloud 会报错,无法安装,不知道你的运气如何?

解决方法是,半自动安装,先下载文件,然后安装(有点类似之前梦幻西游手动下补丁的感觉)。

jieba:官网https://pypi.python.org/pypi/jieba/,下载然后解压,cmd进入解压后的路径,运行 python setup.py install即可。

wordcloud:http://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud 下方找到wordcloud的下载链接,下载对应的whl文件,下载后进入存储该文件的路径,执行“pip install wordcloud-1.3.2-cp36-cp36m-win_amd64.whl”就OK。

另外,小编采用的是Python2.7版本的,如果安装了VCForPython27,可以直接pip install jieba/wordcloud来完成安装。

同时,小编在尝试的时候装scipy包(用于读取背景图像绘制不同形状的文字云图)比较困难,因为依赖很多,最终小编是通过下载exe文件来进行安装的。不知道幸运的你是否会遇到同样的问题?

10行代码生成文字云图

至于生成的思路,就比较简单了,先运用jieba分词对文章进行分词,同时读取背景的图片(用于绘制不同形状的文字图云),然后通过WordCloud生成文字图云并用画图工具进行展示。只有10行代码,精妙的文字云图油然而生。

# coding:utf-8#分词模块importjieba#画图模块importmatplotlib.pyplotasplt#文字云模块fromwordcloudimportWordCloud#路径模块fromosimportpath#这个是读取背景图片fromscipy.miscimportimread#找到当前路径d = path.dirname('.')#源文件路径设置word_path = path.join(d,'wordcloud.txt')#读取文件内容word_content = open(word_path,'r').read()#设置背景图片mask_img = imread(path.join(d,'heart.jpg'))#进行分词,好简单word_cut = jieba.cut(word_content)#把分词用空格连起来word_cut_join =" ".join(word_cut)wc = WordCloud(font_path='msyh.ttf',#设置字体max_words=50,#词云显示的最大词数mask=mask_img,#设置背景图片background_color='white',#背景颜色,白色好看).generate(word_cut_join)#还可以设置大小 width=2000,height=800,# max_font_size=80,min_font_size=16plt.imshow(wc)#去掉坐标轴plt.axis("off")#生成图片plt.show()

乱码解决方法

刚开始的时候,文字云那一步没有设置字体,直接用WordCloud().gengerate(word_cut_join),发现生成的是乱码,网上搜索找到解决方法,是wordcloud模块本身没有汉字字体,怎么办呢?把电脑中的默认的字体文件拷贝过来一份就可以了。

把 C:\Windows\Fonts 中的某种字体文件(.TTF文件)复制到当前工程路径即可,如代码中所示。

是否想生成专属自己的文字云图?那就赶紧尝试一下吧。

看完本文有收获?请转发分享给更多人

关注「Python那些事」,提升Python技能

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值