Python数据分析及可视化实例之词云

发布时间:2021-12-03 公开文章

安装步骤:

敲黑板~~~~中文显示按此操作,英文可以无视:

1、准备好一个中文字体,如 simhei.ttf;

2、将其复制到wordcloud安装根目录中;

3、在 wordcloud.py 中修改 FONT_PATH 为相应字体。

当然,你也可以在实例化的时候手动制定路径,上面方法一劳永逸。

 

# WordCloud类

class WordCloud(object):
 def __init__(self, font_path=None, width=400, height=200, margin=2,
                 ranks_only=None, prefer_horizontal=.9, mask=None, scale=1,
                 color_func=None, max_words=200, min_font_size=4,
                 stopwords=None, random_state=None, background_color='black',
                 max_font_size=None, font_step=1, mode="RGB",
                 relative_scaling=.5, regexp=None, collocations=True,
                 colormap=None, normalize_plurals=True)

.......


# 关键参数含义
width : int (default=400)

    画布宽度

height : int (default=200)

    画布高度

ranks_only : boolean (default=False)

    是否只用词频排序而不是实际词频统计值默认 False

prefer_horizontal : float (default=0.90)

    词语水平出现的频率默认 0.9 即垂直出现频率为 0.1 

mask : nd-array or None (default=None)

    如果参数为空则使用二维遮罩绘制词云如果 mask 非空设置的宽高值将被忽略遮罩形状被 mask 取代除全白#FFFFFF)的部分将不会绘制,其余部分会用于绘制词云。

scale : float (default=1)

    计算与绘制图像间的比例对于较大的词云图像使用比例而非较大的画布会显著提升绘图速度但是可能会造成词语间的粗糙拟合

max_words : number (default=200)

    词语的最大数量

stopwords : set of strings

    停用词

max_font_size : int or None (default=None)

    最大词的最大字号如果不指定则为图像高度

# 其他参数自行测试理解

 

举个例子:

from collections import Counter # 统计词频
from wordcloud import WordCloud, STOPWORDS  #生成词云、通用词
import matplotlib.pyplot as plt  # 在线显示
data = [open('红楼梦.txt','r',encoding='utf-8').read()]
# print(data[:10])
wc = WordCounter(data)  # 基于Counter自定义的子类(留作业:结巴分词、停用词)
wordcloud = WordCloud(background_color="white",width=600, height=400, margin=5).fit_words(dict_fre)
plt.imshow(wordcloud)
plt.axis("off")
plt.show()

 

显示效果