2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > Python 制作个性化形状的云词

Python 制作个性化形状的云词

时间:2020-06-20 09:08:46

相关推荐

Python 制作个性化形状的云词

###1.先上图

这是一张我介绍的云词图。

(由这张图可以给人的信息:作者叫,专业:人文地理,学校湖南,擅长于Pyhon,PS,arcgis等等,可能和挑战杯,乡村聚落等打过交道,其他信息就不多赘述了,总而言之,在大数据及信息化的今天,用这样一张云词图,可以很好的对人或物品做介绍)

分析我这张的图需求,也就是做这张图的要求及目标:

第一:自定义形状

第二:词条长短不一

第三:词的内容具有不确定性

第四:每个词具有特定的权重大小

所以以上四点决定着最终表达效果的成败。

###2、使用工具:Pycharm+ps

###3、上代码

# -*- coding: utf-8 -*-__author__ = 'xiaosu'# wordcloud 生成中文词云from os import pathfrom wordcloud import WordCloudimport matplotlib.pyplot as pltfrom scipy.misc import imread# 绘制词云def draw_wordcloud():d = path.dirname(__file__) # 当前文件文件夹所在目录frequencies = {u'....':1,u'地理信息系统 ':0.4,u'人文地理':0.6,u'乡村振兴':0.3,u'聚落 ':0.2,u'城乡交通':0.4,u'长株潭 ':0.4,u'城乡一体化 ':0.4,u'区域科学 ':0.2,u'C语言':0.2,u'Gephi ':0.2,u'Photoshop ':0.3,u'挑战杯 ':0.3,u'Office ':0.4,u'AutoCAD':0.3,u'Spss ':0.3,u'Coredraw':0.2,u'湖 ':0.6,u'湖南省政府发展研究中心':0.06,u'湖南省经济地理研究所':0.06,u'长沙市规':0.06,u'一':0.2} #只放了一部分词,可按格式扩展词汇量color_mask = imread("hunan.jpg") # 读取背景图片cloud = WordCloud(# 设置字体,不指定就会出现乱码font_path="STSONG.TTF",# 设置背景色background_color='black',# 词云形状mask=color_mask,#允许最大词汇max_words=2000,#最大号字体max_font_size=200,min_font_size=50 #最小号字体)word_cloud = cloud.fit_words(frequencies) # 产生词云word_cloud.to_file("hunanT2.jpg") # 保存图片# 显示词云图片plt.imshow(word_cloud)plt.axis('off')plt.show()if __name__ == '__main__':draw_wordcloud()

###4.代码解释: (基本的语法就不介绍了)

主要讲为什么这样写:

1.为什么用frequencies 而不用jieba模块分割TXT文件内容?

a、frequencies 能记录我指定词汇和想要的权重

b、我不能写一篇自我介绍的TXT,再用jieba去分割词汇吧。用jieba不能去分割出较长的特定的名字(可能是我不会),还有分解出的词汇也不会有我想要的权重。

2.如何指定特定形状?

WordCloud这个库还是蛮强大的,在生成词云前,可以通过 color_mask指定 图片格式的形状,默认是图片中有色的区域是掩膜。

3.frequencies里的随着词汇的增多,敲的代码也多,怎样提速?

词汇还是得一个个敲,但是可以在Excel中敲,然后给了权重,借助Excel函数批量整理成[u’地理信息系统 ':0.4,] 的格式,然后直接复制到代码中。

4.生成词云效果不理想?

词云生成是随机的,也就是说词的位置颜色是随机的,可以多生成几次,然后PS渲染一下

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。