Python可视化 |
您所在的位置:网站首页 › 词语出现频率怎么用图像表示的 › Python可视化 |
词云图是根据词出现的频率生成词云,词的字体大小表现了其频率大小。 〇、碎碎念用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 |