python 字典初始化_python可视化词云(词频版)

题记:本章主要介绍读取excel文件内容及词频直接生成词云的方式。这种方式在实际中更常见

(1024快到了,用《道德经》的词频  响应一下1024 节日)

python 字典初始化_python可视化词云(词频版)_第1张图片

python 字典初始化_python可视化词云(词频版)_第2张图片

“词云”--百度百科

词云--就是对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。 

业务场景

上一章介绍了统计文本里面的词频生成词云。比如统计西游记、红楼梦里哪些词用的多。但有些场景是提前知道频率的,比如数据库里统计好了,或者excel已经统计好的。

比如:小妖们去富士康打工,要统计他们的绩效。

数据如下:

python 字典初始化_python可视化词云(词频版)_第3张图片

根据权重生成效果如下:

python 字典初始化_python可视化词云(词频版)_第4张图片

dict字典

  字典类型也是二级考试里面要求掌握的。

字典(dict)是一种无序的、可变的序列,它的元素以“键值对(key-value)”的形式存储。相对地,列表(list)和元组(tuple)都是有序的序列,它们的元素在底层是挨着存放的。
字典类型是 Python 中唯一映射类型。“映射”是数学中的术语,简单理解,它指的是元素之间相互对应的关系,即通过一个元素,可以唯一找到另一个元素

python 字典初始化_python可视化词云(词频版)_第5张图片

字典中,习惯将各元素对应的索引称为键(key),各个键对应的元素称为值(value),键及其关联的值称为:键值对

对应的键值表达:  { '键1':值1,  ''键2':值2,  '键3':值3   }

meng = {'悟空':'72变', '八戒':'36变', '师父':'念经' }print(type(meng))print(meng)

输出效果:

python 字典初始化_python可视化词云(词频版)_第6张图片

获取对应的键值内容  str =   dict[键值]

修改键值内容       dict[键值]= '新内容'

meng = {'悟空':'72变', '八戒':'36变', '师父':'念经' }print(type(meng))print(meng)#获取指定键值的内容print(meng['悟空'])#修改键值内容 meng['悟空']='筋斗云'print(meng['悟空'])

效果如下: 注意 悟空的值变成了 筋斗云

python 字典初始化_python可视化词云(词频版)_第7张图片

dict字典对象类似java里面的map对象。

key不能重复(字典中每个键值对的键是不可变的,只能使用数字、字符串或者元组,不能使用列表。)

说了这么多,是为了把excel里面的数据转换成dict字典类型,python才可识别处理成词云。

频率 词云

在梳理下思路:

python 字典初始化_python可视化词云(词频版)_第8张图片

全代码:

from wordcloud import WordCloud, ImageColorGeneratorfrom PIL import Imageimport numpy as npimport matplotlib.pyplot as pltimport jieba.analyseimport pandas as pdimport xlrd#字典初始化 大括号meng = {'悟空':'72变', '八戒':'36变', '师父':'念经' }print(type(meng))print(meng)print(meng['悟空'])meng['悟空']='筋斗云'print(meng['悟空'])#打开excel表,路径 相对路径book = xlrd.open_workbook('pinlv.xlsx')#找到sheet页table = book.sheet_by_name("Sheet2")#获取总行数总列数row_Num = table.nrowscol_Num = table.ncols# s =[]key =table.row_values(0)# 这是第一行数据,作为字典的key值#字典对象初始化 xh = {}if row_Num <= 1:            print("没数据")else:            j = 1            for i in range(row_Num-1):                d ={}                values = table.row_values(j)                #关键代码 第一列的值作为key  第二列的值作为内容value                xh[ values[0]]=  values[1]                j+=1#输出字典的内容  查看是否正确               print(xh)#加载图片信息maskph = np.array(Image.open('chinamap.png'))#join 函数 用斜杆拼接词组mask =maskph,# text_cut  =  '/'.join(chiyun)# frequencies 频率 wordcloud = WordCloud(  mask =maskph, # 加载图片信息                        background_color='white',#背景色                        font_path = 'msyh.ttc', #中文字体                        max_words =200,# 最大字体数                        width=1000,#图片宽                        height=860,# 图片高                        margin=2 # 边距                        ).generate_from_frequencies(xh)# 显示图片 plt.imshow(wordcloud)plt.axis('off')plt.show()

excel文件转成 dict字典类型 输出效果:

对应上面代码 第52行

13fda29c049af88c3a409d816ca15d56.png

用中国地图看下效果图:

python 字典初始化_python可视化词云(词频版)_第9张图片

 效果图:

python 字典初始化_python可视化词云(词频版)_第10张图片

看下《三体》的效果:

python 字典初始化_python可视化词云(词频版)_第11张图片


推荐一下《三体》的动画版《章北海传》结束本章,

在B站已经有4千多万的播放量了,

都是爱好者协力制作的,没有人力修图,人物都是方形的,但场景设计、节奏把握、对白配音不输同类大制作

python 字典初始化_python可视化词云(词频版)_第12张图片

(  自然选择,前进4  )


2020-10-22 深圳 晴

看往期;

python可视化-词云

python-Excel操作(基础篇)

机器学习(算法篇)-蚁群算法

算法篇-莱维飞行

号外:

你可能感兴趣的:(python,字典初始化,python,词云,python词云,词云python)