1.核心包

#jieba、pandas用来处理数据,数据源以xls格式存储的,这里用pandas进行处理
import jieba
from jieba import analyse
import pandas as pd
#scipy、wordcloud创建词云
from scipy.misc import imread
from wordcloud import WordCloud
from wordcloud import ImageColorGenerator
#matpoltlib展示、保存生成的词云图
import matplotlib.pyplot as plt

2.过程

import jieba
from jieba import analyse
import pandas as pd import sys
reload(sys)
sys.setdefaultencoding('utf-8') # 1.stopwords
def stop_words():
stop_dict = set()
with open(u'./百度停用词列表.txt', 'r')as f:
words = f.readlines()
for word in words:
stop_dict.add(word.strip().decode('utf-8'))
return stop_dict # 2.分词并去停用词
# save chinese only,remove english words,emoji
def remove_stopwords(stop_words):
source_data = pd.read_excel('./11.xls')
all_content = []
content = source_data[u'内容']
f = open('./weibo.txt', 'w')
for line in content:
cut_list = [c for c in jieba.cut(line)]
ret_set = set(cut_list) - stop_words
ret_list = list(ret_set)
f.writelines([str(line) for line in ret_list])
f.writelines('\n')
all_content.extend(ret_list)
f.close() #3.统计词频
def get_frequency_words(file):
with open(file, 'r') as f:
texts = f.read()
     # 统计词频
top_words = analyse.textrank(texts, topK=400, withWeight=True)
ret_words = {}
for word in top_words:
ret_words[word[0]] = word[1]
return ret_words from scipy.misc import imread
from wordcloud import WordCloud
from wordcloud import ImageColorGenerator
import matplotlib.pyplot as plt

# 4.生成词云图并保存
def generate_word_cloud(dict):
color_mask = imread('./background.jpg')
cloud = WordCloud(
# 设置字体,不指定就会出现乱码,文件名不支持中文
font_path="./static/chinese.msyh.ttf",
# font_path=path.join(d,'simsun.ttc'),
# 设置背景色,默认为黑,可根据需要自定义为颜色
background_color='white',
# 词云形状,
mask=color_mask,
# 允许最大词汇
max_words=400,
# 最大号字体,如果不指定则为图像高度
max_font_size=150,
# 画布宽度和高度,如果设置了mask则不会生效
# 词语水平摆放的频率,默认为0.9.即竖直摆放的频率为0.1
prefer_horizontal=0.8
)
cloud.generate_from_frequencies(frequencies=dict)
cloud.to_file('word_cloud.jpg')
# plt.imshow(cloud)
# 不现实坐标轴
plt.axis('off')
# 绘制词云
# plt.figure(dpi = 600)
image_colors = ImageColorGenerator(color_mask)
# 重新上色
plt.imshow(cloud.recolor(color_func=image_colors))
  # 保存图片
plt.savefig('./result2.png')
# plt.show() if __name__ == '__main__':
stop_words = stop_words()
remove_stopwords(stop_words=stop_words)
words_frequency = get_frequency_words('./weibo.txt')
generate_word_cloud(words_frequency)

[注]:(1).wordcloud.generate_from_text(text=text)可以直接由文本生成词云,但必须是英文文本。

  (2).wordcloud.generate_from_frequencies(frequencies=dict)由词频字典生成词云,词频越大则显示该词size越大
[结果]:

[python基础] python生成wordcloud并保存的更多相关文章

  1. python词云生成-wordcloud库

    python词云生成-wordcloud库 全文转载于'https://www.cnblogs.com/nickchen121/p/11208274.html#autoid-0-0-0' 一.word ...

  2. python基础-python解释器多版本共存-变量-常量

    一.编程语言的发展史 机器语言-->汇编语言-->高级语言,学习难度及执行效率由高到低,开发效率由低到高 机器语言:二进制编程,0101 汇编语言:用英文字符来代替0101编程 高级语言: ...

  3. python基础--python基本知识、七大数据类型等

    在此申明一下,博客参照了https://www.cnblogs.com/jin-xin/,自己做了部分的改动 (1)python应用领域 目前Python主要应用领域: 云计算: 云计算最火的语言, ...

  4. python基础---->python的使用(三)

    今天是2017-05-03,这里记录一些python的基础使用方法.世上存在着不能流泪的悲哀,这种悲哀无法向人解释,即使解释人家也不会理解.它永远一成不变,如无风夜晚的雪花静静沉积在心底. Pytho ...

  5. Python基础--Python简介和入门

    ☞写在前面 在说Python之前,我想先说一下自己为什么要学Python,我本人之前也了解过Python,但没有深入学习.之前接触的语言都是Java,也写过一些Java自动化用例,对Java语言只能说 ...

  6. Python 基础-python环境变量、模块初识及字符类型

    (1).模块内置模块.第三方模块.自定义模块初识模块:sys \ os一般标准库存放路径 C:\Users\Administrator\AppData\Local\Programs\Python\Py ...

  7. python基础===Python性能优化的20条建议

    优化算法时间复杂度 算法的时间复杂度对程序的执行效率影响最大,在Python中可以通过选择合适的数据结构来优化时间复杂度,如list和set查找某一个元素的时间复杂度分别是O(n)和O(1).不同的场 ...

  8. Python基础---->python的使用(二)

    学习一下python,这里对python的基础知识做一个整理.似等了一百年忽而明白,即使再见面,成熟地表演,不如不见. python的一些应用 一.类似于java中的MessageFormat用法 w ...

  9. python基础===Python 代码优化常见技巧

    Python 代码优化常见技巧 代码优化能够让程序运行更快,它是在不改变程序运行结果的情况下使得程序的运行效率更高,根据 80/20 原则,实现程序的重构.优化.扩展以及文档相关的事情通常需要消耗 8 ...

随机推荐

  1. ANNOTATION and analyse hello1.java

    一.What is annotation? annotation的中文意思就是注解,注释的意思.注解也属于一种类型.它是在 Java SE 5.0 版本中开始引入的概念.它的形式跟接口很类似,不过前面 ...

  2. Python常用的内建模块

    PS:Python之所以自称“batteries included”,就是因为内置了许多非常有用的模块,无需额外安装和配置,即可直接使用.下面就来看看一些常用的内建模块. 参考原文 廖雪峰常用的内建模 ...

  3. The King’s Ups and Downs(HDU 4489,动态规划递推,组合数,国王的游戏)

    题意: 给一个数字n,让1到n的所有数都以波浪形排序,即任意两个相邻的数都是一高一低或者一低一高 比如:1324   4231,再比如4213就是错的,因为4高,2低,接下来1就应该比2高,但是它没有 ...

  4. C++/C union使用记一下锅

    //首先,学习编程一定要记得加几个群或者加几个讨论组,因为这样你才能不断地进步还有吵架/滑稽 记一下 关于使用union结构体时遇到的一些坑 To zero-initialize an object ...

  5. mysql中InnoDB与MyISAM的区别

    两者的区别: 1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成 ...

  6. Ztree加载完成后显示勾选节点

    ①前言:这个在度娘上没有搜到解决的办法,于是自己查看了ztree的API,发现其实还是比较简单的.做个笔记以备不时之需. ②需求: 像下图一样,在加载完成之后就显示需要勾选的项. ③解决方案: 首先页 ...

  7. Linux学习笔记记录(补充)

  8. 文件内容差异对比-python

    上次没精力时候,看了下python自动化运维,给print加了颜色,新鲜哒 今天来写写文件对比 step1:引入difflib库(无需安装,python自带) step2:将文件内容按行分割,spli ...

  9. lombok 插件安装

    1. 下载地址: https://plugins.jetbrains.com/plugin/6317-lombok-plugin 2. 选择从本地安装.

  10. 清空所有Session

    //清空所有Session request.getSession().invalidate();