2019-02-14
阅读量:
829
如何利用python画出一个多变的词云图?(1)
问题描述:
如何利用python画出一个多变的词云图?
解决方法:
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
from wordcloud import WordCloud
plt.figure(figsize = (12,8))
%matplotlib inline
plt.rcParams['axes.unicode_minus'] = False
test=['a','b','c','d','a','b']*10+['e','f','g','h','i','j','k']*3+['l','m','n','o','p','q','r','s','t']
words_df=pd.DataFrame({'words':test})
words_df.head()
words_stat=words_df.groupby(by=['words'])['words'].agg({'counts':np.size});
words_stat
words_stat = words_stat.reset_index().sort_values(by=['counts'], ascending=False)
words_stat
# 生成词云图,WordCloud默认不支持中文,需要自己下载好中文字库
wordcloud = WordCloud(font_path="simhei.ttf", background_color="white", max_font_size=80)
word_frequence = {x[0]: x[1] for x in words_stat.head(1000).values}
word_frequence_list=[]
for key in word_frequence:
temp = (key, word_frequence[key])
word_frequence_list.append(temp)
# 显示图片
plt.rcParams['figure.figsize'] = (12.0,6.0)
wordcloud = wordcloud.fit_words(dict(word_frequence_list))
plt.imshow(wordcloud) # 以图片形式显示词云
plt.axis('off') # 关闭图像坐标系
plt.show()
- 要先在cmd命令行中下载wordcloud-->pip install wordcloud
- 词云图构建思路,是把数据整理出“词云的计数表”,因此要巧妙利用groupby()和agg('counts')函数;或者value_counts亦可
- 在实际工作中,可能涉及到调整某个词云的大小、词云的形状等,可以通过修改数据,以及自定义图片等形式实现






评论(0)


暂无数据
推荐帖子
2条评论
6条评论
7条评论