热线电话:13121318867

登录
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.0000
1
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子