Python可视化

您所在的位置:网站首页 词语出现频率怎么用图像表示的 Python可视化

Python可视化

2024-07-10 08:49| 来源: 网络整理| 查看: 265

词云图是根据词出现的频率生成词云,词的字体大小表现了其频率大小。

〇、碎碎念

用wc.generate(text)直接生成词频的方法使用很多,所以不再赘述。

但是对于根据generate_from_frequencies()给定词频如何画词云图的资料找了很久,下面只讲这种方法。

generate_from_frequencies适用于我已知词及其对应的词频是多少,不需要自动生成的情况下。

官方文档说generate_from_frequencies函数的参数是array of tuple,但是我试了很久都不行,最后发现居然应该是dict 字典形式!

即形如:{ word1: fre1, word2: fre2,  word3: fre3,......,  wordn: fren }

注意词云wordcloud的中文显示,需要特殊处理,在网上看了不少是说加字体路径之类的方法我试了都不行,最后只好采用改变编码的形式才解决好Σ(っ°Д°;)っ:

name[i] = name[i].decode('gb2312')

( • ̀ω•́ )✧还有,示例词云的轮廓背景图由back.jpg给出,如下图:

一、数据文件准备

1、price.csv

name,val 南京,3.19 徐州 ,3.18 淮安,3.16 盐城,3.15 宿迁,3.14 泰州,3.14 扬州,3.13 南通,3.13 连云港 ,3.14 镇江,3.15 无锡,3.14 苏州,3.16 常州,3.17

第一列是城市名,第二列是词频数值,

csv文件本质上就是以逗号(,)分隔开的txt文件,所以用excel打开形式为:

二、导入模块包

可参考Windows下安装Python、matplotlib包 及相关https://blog.csdn.net/mikasa3/article/details/78942650 

1、numpy

2、pandas

3、wordcloud

4、matplotlib

三、完整代码

如下:

import random import numpy as np import pandas as pd from pyecharts import WordCloud import matplotlib.pyplot as plt from PIL import Image,ImageSequence from wordcloud import WordCloud,ImageColorGenerator def DrawWordcloud(read_name): image = Image.open('back.jpg')#作为背景形状的图 graph = np.array(image) #参数分别是指定字体、背景颜色、最大的词的大小、使用给定图作为背景形状 wc = WordCloud(font_path = 'C:\\windows\\Fonts\\simhei.ttf', background_color = 'White', max_words = 50, mask = graph) fp = pd.read_csv(read_name)#读取词频文件 name = list(fp.name)#词 value = fp.val#词的频率 for i in range(len(name)): name[i] = str(name[i]) #注意因为要显示中文,所以需要转码 name[i] = name[i].decode('gb2312') dic = dict(zip(name, value))#词频以字典形式存储 wc.generate_from_frequencies(dic)#根据给定词频生成词云 image_color = ImageColorGenerator(graph) plt.imshow(wc) plt.axis("off")#不显示坐标轴 plt.show() wc.to_file('Wordcloud.png')#保存的图片命名为Wordcloud.png if __name__=='__main__': DrawWordcloud("Price.csv") 四、运行结果

1、词云图



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3