【Python 3+】wordcloud词云入门系列(四):WordCloud常用参数代码示例比较分析

【本文目录】
一、WordCloud所有参数默认值代码示例
二、WordCloud常用参数自定义代码示例——《水调歌头·明月几时有》


一、WordCloud所有参数默认值代码示例

目前官方定义的WordCloud所有参数及其含义如下代码中所示:
也可查阅本系列第二篇文章扩展一二(wordcloud词云入门系列(二):安装与WordCloud类等API介绍)。

代码示例

import wordcloud

parameter_text = """font_path, width, height, margin, ranks_only, 
                 prefer_horizontal, mask, scale, color_func, 
                 max_words, min_font_size, stopwords, random_state, 
                 background_color, max_font_size, font_step, 
                 mode, relative_scaling, regexp=None, collocations, 
                 colormap, normalize_plurals, contour_width, 
                 contour_color, repeat, include_numbers, 
                 min_word_length
                 """
# wordcloud默认不支持显示中文,中文会显示为方框。故需先设置好中文字体
# 以下字体为Windows系统中C:\Windows\Fonts中的微软雅黑
font = r'C:\Windows\Fonts\msyh.ttf'

# 实例化对象,以下参数值全为WordCloud默认值
parameter = wordcloud.WordCloud(
            font_path=None,  # 字体路径,默认为空且不支持中文。若要显示中文需指定中文字体路径
            width=400,  # 词云图片宽度
            height=200,  # 词云图片高度
            margin=2,  # 词云行间距,即词与词的垂直距离
            ranks_only=None,
            prefer_horizontal=0.9,  # 水平与垂直拟合比,值越大则水平显示词数越多
            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='auto',  # 取值0到1之间浮点数。默认为auto,当repeat为False时为0,True时为1
                                      # 值为0仅考虑词频排名,值为1则词频2倍大小也是两倍,0.5左右通常看起来不错             
            regexp=None,  # 正则表达式
            collocations=True,  # 是否包括两个单词的搭配(字母组合)
            colormap=None, # 颜色图
            normalize_plurals=True, # 是否从词中删除结尾的“s”
            contour_width=0,  # 词云形状边宽宽度
            contour_color='black',  # 词云形状边宽颜色
            repeat=False,  # 是否重复词
            include_numbers=False, # 是否包含数字
            min_word_length=0 # 一个词必须包含的最小字母数 
            )

# 调用generate方法将文本传入生成wordcloud
parameter.generate(parameter_text)

# 调用to_file方法导出图像文件,支持.jpg、.png、.tif、.bmp等多格式
parameter.to_file("test3_WordCloud_allDefaultParameter.jpg")

为美化代码表达,方便阅读。笔者特意将parameter_text的赋值采用长文本的形式,并采用换行形式表达,这里将WordCloud所有参数列出。此外,对于wordcloud.WordCloud类实例化的参数赋值(此处全为默认值),也是一行一参数,并且采用列尽量对齐方式,给人以干净整洁之美感。你也可以试试喔!

输出成果

【Python 3+】wordcloud词云入门系列(四):WordCloud常用参数代码示例比较分析_第1张图片
test3_WordCloud_allDefaultParameter.jpg

二、WordCloud常用参数自定义代码示例——《水调歌头·明月几时有》
上一篇文章对东坡先生的《水调歌头·明月几时有》进行了词云展示,但是效果还可不太尽如人意。接下来就尝试设置各类参数看看变化吧。

(一)设置宽度、高度、背景颜色

代码示例

# encoding = ‘utf-8’
import wordcloud

poetry_text = """
            《水调歌头·明月几时有》
                      宋代:苏轼
            丙辰中秋,欢饮达旦,大醉,作此篇,兼怀子由。
            
            明月几时有?把酒问青天。
            不知天上宫阙,今夕是何年。
            我欲乘风归去,又恐琼楼玉宇,高处不胜寒。
            起舞弄清影,何似在人间?
            
            转朱阁,低绮户,照无眠。
            不应有恨,何事长向别时圆?
            人有悲欢离合,月有阴晴圆缺,此事古难全。
            但愿人长久,千里共婵娟。
            """

# wordcloud默认不支持显示中文,中文会显示为方框。故需先设置好中文字体
# 以下字体为Windows系统中C:\Windows\Fonts中的微软雅黑
font = r'C:\Windows\Fonts\msyh.ttf'

# 实例化对象
poetry = wordcloud.WordCloud(font_path=font,
                             width=1920,
                             height=1080,
                             background_color='white')

# 调用generate方法将文本传入生成wordcloud
poetry.generate(poetry_text)

# 调用to_file方法导出图像文件,支持.jpg、.png、.tif、.bmp等多格式
poetry.to_file("test4_setWidHigtBg.jpg")

输出成果

【Python 3+】wordcloud词云入门系列(四):WordCloud常用参数代码示例比较分析_第2张图片
test4_setWidHigtBg.jpg

(二)scale有直接变大小的魔力

代码示例

# 为节省版面,这里仅贴出参数设置代码部分
poetry = wordcloud.WordCloud(font_path=font,
                             scale=6,
                             background_color='white')

输出成果

【Python 3+】wordcloud词云入门系列(四):WordCloud常用参数代码示例比较分析_第3张图片
test5_setScaleBg.jpg

设置width=1920、height=1080,生成图片尺寸为1920*1080,大小224KB

仅设置scale=6,生成图片尺寸为2400*1200(是默认值的6倍),大小277KB

运行程序过程中,或许你也可以感知到后者仅设置scale的时候速度要快些。

(三)设置prefer_horizontal看看

代码示例

poetry = wordcloud.WordCloud(font_path=font,
                             scale=6,
                             background_color='white',
                             prefer_horizontal=1.5)

输出成果

【Python 3+】wordcloud词云入门系列(四):WordCloud常用参数代码示例比较分析_第4张图片
test6_setPrefer_horizontal.jpg

哈哈,大家来找茬~和上面比较发现有什么不同了吗?

(四)stopwords也来凑热闹

代码示例

poetry = wordcloud.WordCloud(font_path=font,
                             scale=6,
                             background_color='white',
                             stopwords=["水调歌头","明月几时有","宋代","苏轼"])

输出成果

【Python 3+】wordcloud词云入门系列(四):WordCloud常用参数代码示例比较分析_第5张图片
test7_setStopwords.jpg

现在想得起来,咱们可爱滴东坡先生是哪个朝代的吗?(不要看答案噢~)

(五)保持什么距离比较好呢

1.改变margin的值

代码示例

poetry = wordcloud.WordCloud(font_path=font,
                             scale=6,
                             background_color='white',
                             margin=20)

输出成果

【Python 3+】wordcloud词云入门系列(四):WordCloud常用参数代码示例比较分析_第6张图片
test8_setMargin.jpg

2.改变font_step的值

代码示例

poetry = wordcloud.WordCloud(font_path=font,
                             scale=6,
                             background_color='white',
                             font_step=10)

输出成果

【Python 3+】wordcloud词云入门系列(四):WordCloud常用参数代码示例比较分析_第7张图片
test9_setFont_step.jpg


好啦~今天到此,不一一展示了,大家可以自己动手试试看。先偷偷告诉你哦,好戏在后头,wordcloud高端玩法,且看后续精彩。

☺引用转载还请注明作者说明出处哟!☺

你可能感兴趣的:(【Python 3+】wordcloud词云入门系列(四):WordCloud常用参数代码示例比较分析)