python词云的制作方法

第一次接触到词云主要是觉得很好看,就研究了一下,官方给出了代码的,但是新手看的话还是有点不容易,我们来尝试下吧。

环境:python2.7

python库:PIL(pillow),numpy,matplotlib,jieba,wordcloud  均可以pip安装

文件:测试的文件qq.txt,模拟的图片qq.jpg,字体文件FZYBKSJW.TTF (放在同一目录即可)

qq.jpg

qq.txt

赤朽木叶家族的传说观后感
我想,万和毛球都被那个混乱的年代束缚住了吧,千里眼说到底也只能看到熟悉的人的未来,我想多半对于万叶来说是痛苦的吧,即使是从小被忘在了鸟取还是从小被欺负,可以说万叶是个坚强而纯真的孩子,包括黑菱绿也是,能为了哥哥那样付出,可见她深深地爱慕着哥哥,所以从黑菱绿哥哥自杀事件发生后,她主动找万叶帮忙,真挚的友情逐渐浮出水面,一直到永远,谈到万叶必说的第二个人,就是丰寿了吧,或许该排第一位的,因为他们之间的感情都被好好的压制住了,没错,说到底我也不知道万叶对于爱情的理解,或许只是转变成了做女人的理解,女人能为男人做的就是多生几个娃,如今想来也真是既简单又粗暴,里面的男人我都不是很喜欢,同样的他们的生活也很简单那就是不顾一切支撑起赤朽叶家,除了孤独,但是为何我也不看好他,就连瞳也对救了自己的命的舅舅一样鄙夷,自从毛球死了之后,我想再也没人可以进入他的心扉,同时我也觉得万叶一直注视着泪,真的好么,她的爱是不是很有偏差,如果她好好的管着毛球,或许她的人生会有变化,即使是舍去她那漫画天赋,说到底毛球的人生和漫画真的有趣么,为什么在我看来枯燥乏味且中二全开的经历却能成为人们的支撑甚至是美好的向往,难道是她的反抗,为什么她如此的想要征服“中原”,却总是将男朋友拱手让给同父异母的妹妹,而且为什么她的双眸里映照不出百夜,可是最后庭院的大闹,甚至逼得妹妹去殉情,有时候真有些没有头绪,但是无疑会有神秘的色彩,说实话我也不太喜欢毛球,因为妹子还是温柔的比较好,而且似乎她似乎有不祥的象征,以至于编辑们纷纷扬场而去,但是我对她也还是充满羡慕之情,对朋友也一样,敢于纠正朋友且对于表达与朋友说再见的方式也相当神圣,还有对于那个漂亮的女孩这么快就香消玉损我也对梦想和人生产生了深深的质疑,蝶子曾经笑着说自己的理想与对生活富有激情的想法,我当时就觉得她或许是那里面最正常的吧,可是为什么作者要将她劣质化呢,说到底还是这个世界的问题吧,学生们崩溃了啊,在说说毛球吧在哥哥泪从山里消失之后成为家里的长女,作为家里的支撑,她一下子高大了许多,再也不是开着摩托玩古惑仔的疯丫头了,然后开始了12年的漫画连载,所以说她漫画的成功也到底是个玩笑或是奇迹吧,12年无休止的工作,取得了巨大的成功,终于当漫画完结后,她也可以好好休息了,还记得她跟女儿瞳子说的“妈妈好累,去休息下”,如果不是失去了昔日的眼神昔日的光彩,一个几岁的小女孩也不会察觉到妈妈或许会离开她了,即使还没好好撒过娇,即使每天望着妈妈的背影,她也察觉到了,毛球说到底都不过死人啊,真纱的死,蝶子的死,百夜的死,每次都让她的人生飘摇起来,最后轰然倒塌。。。再回头说万叶吧,从小到大被人欺负,黑菱绿也只是典型吧,哈哈,一个喊着“捡来的丫头”,一个喊着“爱欺负人的丫头”,相隔十几年之后,称呼也依然没变,好朋友就该这样吧,万叶人生的转折或许就是在遇到辰的时候吧,这个白白胖胖的惠比须作为赤朽叶家的当家,对万叶像是早就考量过了一样,直接让万叶嫁入自己家,说到底到底是为了什么,万叶真的能为赤朽叶家带来福运么,但是神奇的是她真的做到了,预测到石油危机的问题提早做出了准备度过了危机,估计还有许多吧,万叶吧,挺单纯的孩子,到最后也是丰寿与炼铁炉殉情之后,她居然认为是自己害死了丰寿,还让瞳子对祖母产生了怀疑彻查了一番,其实如果认真的考虑一下就会发现那封信重复了的信,一封是给万叶一封是给毛球的,同样的内容“一緒に死ぬ”却是不一样的意思,丰寿这个男人到底是个纯情的汉子,为了锅炉献出了自己的右眼,最后宁愿死也要和锅炉在一起,可见他挚爱着这个工作,这个冰冷的怪物,我也想知道他是不是也同样爱着万叶,,我想读者们都有些许看法,就不说了,最后必须说说以第一视角诉说着本次故事的小孙女瞳,与祖母和母亲不同的是,她是一个普普通通的女人,我想这是绝对的吧,自由,从这个文章中我们看到了赤朽叶家族的兴衰,伴随着故事人物的消亡,一切都变得不一样了,到最后只剩下了瞳,孤独,包,还有忙于工作的父亲,这个家失去了往日的魔幻色彩,伴随着万叶的逝去,我以为故事走向了终结,可是为什么,作者要写瞳子,写她的爱情,写她的人生观,写这个世界的无药可救。。。看到最后我想起了曾经看过的一部动漫,名叫colorful,看完我明白了两件事,之一就是自杀的罪并非莫过于其它的罪恶,因为生命的意义很重大,超出了各种伦理逻辑所能诠释的,所以敬畏生命不是么,其次便是无论怎样不要失去生活的希望,这个世界即使再丑陋,再黑暗,也不要放弃她,因为总有人在注视着你,在守护着你,因为总会有美丽的风景进入你的眼帘,因为今天无论怎样不是还有明天么,当你睁开眼发现自己仍旧活着不是挺好么,那一丝丝的美好足够支撑你了,这就是为什么人类看得到五颜六色的原因吧。。

 word.py (名字不要取wordcloud.py ,尽量不要取和库相同的名字)

#!/usr/bin/Python
# -*- coding: utf-8 -*-
from os import path
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
import jieba
from wordcloud import WordCloud, STOPWORDS
###当前文件路径
d = path.dirname(__file__)

# Read the whole text.
file = open(path.join(d, 'qq.txt')).read()
##进行分词
#刚开始是分完词放进txt再打开却总是显示不出中文很奇怪
default_mode =jieba.cut(file)
text = " ".join(default_mode)
#text = text.encode('utf-8')
# read the mask image
# taken from
# http://www.stencilry.org/stencils/movies/alice%20in%20wonderland/255fk.jpg
alice_mask = np.array(Image.open(path.join(d, "qq.jpg")))
stopwords = set(STOPWORDS)
stopwords.add("said")
fontname = path.join(d, 'FZYBKSJW.TTF')
wc = WordCloud(  
    #设置字体,不指定就会出现乱码,这个字体文件需要下载
    font_path = fontname,  
    background_color="white",   
    max_words=2000,   
    mask=alice_mask,  
    stopwords=stopwords)  
# generate word cloud
wc.generate(text)

# store to file
wc.to_file(path.join(d, "qq_result.jpg"))

# show
plt.imshow(wc, interpolation='bilinear')
plt.axis("off")
plt.figure()
plt.imshow(alice_mask, cmap=plt.cm.gray, interpolation='bilinear')
plt.axis("off")
plt.show()

-----------------执行word.py文件

-----check下结果

怎么样还是不错吧。。。。。

---------------------------------------------------------这是分割线------------------------------------------

第二种画词云图的方法pyecharts---html文件

1、第一种

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
# 测试pyecharts
#
#-*-安装pyecharts $ pip install pyecharts
from os import path
d = path.dirname(__file__)

from pyecharts import WordCloud
name = ['Sam S Club', 'Macys', 'Amy Schumer', 'Jurassic World', 'Charter Communications',
        'Chick Fil A', 'Planet Fitness', 'Pitch Perfect', 'Express', 'Home', 'Johnny Depp',
        'Lena Dunham', 'Lewis Hamilton', 'KXAN', 'Mary Ellen Mark', 'Farrah Abraham',
        'Rita Ora', 'Serena Williams', 'NCAA baseball tournament', 'Point Break']
value = [10000, 6181, 4386, 4055, 2467, 2244, 1898, 1484, 1112, 965, 847, 582, 555,
         550, 462, 366, 360, 282, 273, 265]
wordcloud = WordCloud(width=1300, height=620)
wordcloud.add("", name, value, word_size_range=[20, 100])
#wordcloud.show_config()
#wordcloud.render(path.join(d, 'worldCloud1.html'))

2、第二种

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
# 测试pyecharts
#
#-*-安装pyecharts $ pip install pyecharts
from os import path
d = path.dirname(__file__)

from pyecharts import WordCloud
name = ['Sam S Club', 'Macys', 'Amy Schumer', 'Jurassic World', 'Charter Communications',
        'Chick Fil A', 'Planet Fitness', 'Pitch Perfect', 'Express', 'Home', 'Johnny Depp',
        'Lena Dunham', 'Lewis Hamilton', 'KXAN', 'Mary Ellen Mark', 'Farrah Abraham',
        'Rita Ora', 'Serena Williams', 'NCAA baseball tournament', 'Point Break']
value = [10000, 6181, 4386, 4055, 2467, 2244, 1898, 1484, 1112, 965, 847, 582, 555,
         550, 462, 366, 360, 282, 273, 265]

wordcloud = WordCloud(width=1300, height=620)
wordcloud.add("", name, value, word_size_range=[30, 100], shape='diamond')
wordcloud.show_config()
wordcloud.render(path.join(d, 'worldCloud2.html'))

-------------

worldCloud1.html 

worldCloud2.html

对比一下感觉下面好像更棒感觉,不知道小伙伴们喜欢哪一款,赶紧试试吧。
下次跟大家分享pyecharts的详细用法,高端霸气上档次。
またね(笑)
原文地址:https://www.cnblogs.com/shuangzikun/p/taotao_python_wordcloud.html