python画四维云图_如何利用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亦可

在实际工作中,可能涉及到调整某个词云的大小、词云的形状等,可以通过修改数据,以及自定义图片等形式实现

你可能感兴趣的:(python画四维云图)