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()