标签云是现在大数据里面最喜欢使用的一种展现方式,其中在python3下也能实现标签云的效果,贴图如下:
-------------------进入正文---------------------
首先要安装以下几个库:
还有最重要的库:
或者去官网下载:
安装完毕,利用官网的例子来做:
果断报错:
看了发现问题出在库中的:
原来是python3.4不支持写法:
在Python2.x中,items( )用于 返回一个字典的拷贝列表【Returns a copy of the list of all items (key/value pairs) in D】,占额外的内存。
iteritems() 用于返回本身字典列表操作后的迭代【Returns an iterator on all items(key/value pairs) in D】,不占用额外的内存。
Python 3.x 里面,iteritems() 和 viewitems() 这两个方法都已经废除了,而 items() 得到的结果是和 2.x 里面 viewitems() 一致的。在3.x 里 用 items()替换iteritems() ,可以用于 for 来循环遍历。
但是当我换成:
发现运行并没有错误,但是没有生成标签云啊,一遍一遍打印出来,终于找到问题了:
这个是为了生成一个元组的东西:
但是python3里面的items()是达不到这个效果的,所以我就自己写吧。
读取txt文件,将每一行都按照空格划分成一个个数组的元素:
其中validatecontent是起初非法字符的函数:
对每一个元素都来个计数:
效果出来了:
最后直接代入进去就行了:
具体的修正需要自己慢慢去琢磨了,比如文字大小、图片大小、背景颜色等等。
到这里标签云是算完成了的,但是却是不支持中文,原因是没有合适的ttf字体文件,准备一个 ttf 中文字体,如MicrosoftYaHei.ttf ,将其移动到
接着就是更改fonts.json文件,按照样式添加类似于css的东西:
注意前后的逗号就行。最后将这里的代码改一下:
运行,搞定!中文效果图:
我的在github里面,可以去下载看看。