python第三方库wordcloud绘制任意形状词云教程

此篇教程划分为两种情况,原文本为汉字和原文本为英文,教程最后有实例提供参考。

Part1 原文本为汉字

若原文本为汉字,则需要指定WordCloud方法中的font_path为要使用的汉字字体路径,因为默认的wordcloud字体DroidSansMono.ttf 不支持汉字,且指定的字体文件需要放在wordcloud安装的文件夹下,我电脑中的路径为D:\Program Files\Python37\Lib\site-packages\wordcloud\simhei.ttf

否则生成的词云图片上会是彩色方框,而不会出现汉字。

源代码如下:

import jieba
from wordcloud import WordCloud
from scipy.misc import imread
mask= imread('picture.png') #此处为使用遮罩的情况,即生成的词云形状
file = open("sample.txt", "r", encoding='utf-8')
content = file.read()
words=jieba.lcut(content)   # 使用jieba进行精确分词获取词语列表
txt=" ".join(words)     #使用空格拼接获得字符串
wordcloud = WordCloud(background_color="white",  # 词云图片的背景颜色
                       width=800,   # 词云图片的宽度,默认400像素
                       height=600,    # 词云图片的高度,默认200像素
                       font_path='D:\Program Files\Python37\Lib\site-packages\wordcloud\simhei.TTF',  # 词云指定字体文件的完整路径
                       max_words=200,  #词云图中最大词数,默认200
                       max_font_size=80,   # 词云图中最大的字体字号,默认None,根据高度自动调节
                       min_font_size=20,   # 词云图中最小的字体字号,默认4号
                       font_step=,   # 词云图中字号步进间隔,默认1
                       mask=mask,  # 词云形状,默认None,即方形图
                       ).generate(txt) # 由txt文本生成词云
wordcloud.to_file("sample.png") # 将词云图保存为名为sample的文件

Part2 原文本为英文

from wordcloud import WordCloud
from scipy.misc import imread
mask= imread('picture.png') #此处为使用遮罩的情况,即生成的词云形状
file = open("sample.txt", "r", encoding='utf-8')
txt = file.read()
wordcloud = WordCloud(background_color="white",  # 词云图片的背景颜色
                       width=800,   # 词云图片的宽度,默认400像素
                       height=600,    # 词云图片的高度,默认200像素
                       font_path='D:\Program Files\Python37\Lib\site-packages\wordcloud\simhei.TTF',  # 词云指定字体文件的完整路径
                       max_words=200,  #词云图中最大词数,默认200
                       max_font_size=80,   # 词云图中最大的字体字号,默认None,根据高度自动调节
                       min_font_size=20,   # 词云图中最小的字体字号,默认4号
                       font_step=,   # 词云图中字号步进间隔,默认1
                       mask=mask,  # 词云形状,默认None,即方形图
                       ).generate(txt) # 由txt文本生成词云
wordcloud.to_file("sample.png") # 将词云图保存为名为sample的文件

mask为遮罩,限定词云的形状,选择图片作为遮罩,图片中白色的部分不显示词,非白色部分显示词。

若遮罩图片为png格式,则使用scipy库:

from scipy.misc import imread
mask= imread('picture.png')

若遮罩图片为jpg格式,则使用matplotlib库:

import matplotlib.pyplot as plt
mask= plt.imread('psb.jpg')

Part3 运行实例

不使用遮罩源代码如下:
python第三方库wordcloud绘制任意形状词云教程_第1张图片
运行结果:
python第三方库wordcloud绘制任意形状词云教程_第2张图片
使用遮罩:
遮罩图片picture.png如下:
python第三方库wordcloud绘制任意形状词云教程_第3张图片
源代码如下:
python第三方库wordcloud绘制任意形状词云教程_第4张图片
运行结果如下:
python第三方库wordcloud绘制任意形状词云教程_第5张图片

你可能感兴趣的:(Python应用,python,wordcloud,词云)