1、安装wordcloud(词云)
wordcloud(词云)代码是在Python 2.7、3.4、3.5、3.6和3.7下测试的。wordcloud(词云)依赖numpy
和pillow
。安装可以使用pip
或conda
安装,例如,
1)使用pip安装
pip install wordcloud
2)使用conda安装
conda install -c conda-forge wordcloud
安装说明:
要将wordcloud
保存到一个文件中,还可以安装matplotlib
。
如果python版本没有wheels可用,安装包需要设置一个C编译器。在安装编译器之前,报告描述所使用的python和操作系统版本的问题。
2、使用.whl文件安装
除了通过上面命令安装,还可以先下载.whl
文件,然后通过文件安装。
下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud
从上面地址下载wrapt-1.10.11-cp36-cp36m-win_amd64.whl
和wordcloud-1.3.2-cp36-cp36m-win_amd64.whl
两个文件,具体可以根据需要选择对应版本的这两个文件。然后安装。
pip install wrapt-1.10.11-cp36-cp36m-win_amd64.whl
pip install wordcloud-1.3.2-cp36-cp36m-win_amd64.whl
注意:.whl
安装可以拷贝到Python安装目录下的Scripts
目录中,然后cd
到Scripts
目录。然后在执行上面命令。
3、使用示例代码
#!/usr/bin/env python """ Minimal Example =============== Generating a square wordcloud from the US constitution using default arguments. """ import os from os import path from wordcloud import WordCloud # get data directory (using getcwd() is needed to support running example in generated IPython notebook) d = path.dirname(__file__) if "__file__" in locals() else os.getcwd() # Read the whole text. text = open(path.join(d, 'constitution.txt')).read() # Generate a word cloud image wordcloud = WordCloud().generate(text) # Display the generated image: # the matplotlib way: import matplotlib.pyplot as plt plt.imshow(wordcloud, interpolation='bilinear') plt.axis("off") # lower max_font_size wordcloud = WordCloud(max_font_size=40).generate(text) plt.figure() plt.imshow(wordcloud, interpolation="bilinear") plt.axis("off") plt.show() # The pil way (if you don't have matplotlib) # image = wordcloud.to_image() # image.show()
或者
import pandas as pd import numpy as np import os from wordcloud import WordCloud,ImageColorGenerator import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 path=os.getcwd()+'\\'+'cjavapy.txt' Red_df=pd.read_json(path) print(Red_df["cutword"].sample(4)) words=np.concatenate(Red_df.cutword) word_df=pd.DataFrame({"Word":words}) word_stat=word_df.groupby(by=["Word"])["Word"].agg({"number":np.size}) word_stat=word_stat.reset_index().sort_values(by="number",ascending=False) print(word_stat.head(5)) worddict={} for key,value in zip(word_stat.Word,word_stat.number): worddict[key]=value #生成词云 redcold=WordCloud(font_path="/Library/Fonts/Hiragino Sans GB W3.ttc", margin=5,width=1800,height=1000, max_words=500,min_font_size=5, background_color='white', max_font_size=250,) redcold.generate_from_frequencies(frequencies=worddict) plt.figure(figsize=(8,8)) plt.imshow(redcold) plt.axis('off') plt.show()