【Python 3+】wordcloud词云入门系列(三):4行代码最简词云实现法及彻底解决中文显示乱码

【本文目录】
一、最简wordcloud实现法(仅4行代码)
二、wordcloud展示中文乱码问题
三、彻底解决wordcloud中文乱码


一、最简wordcloud实现法(仅4行代码)

代码示例

import wordcloud

# 实例化对象
word = wordcloud.WordCloud()

# 调用generate方法将文本传入生成wordcloud
word.generate("Where there is a will,there is a way.Well begun is half done.")

# 调用to_file方法导出图像文件,支持.jpg、.png、.tif、.bmp等多格式
# 将图片保存至当前项目路径下
word.to_file("test1_only4LinesCode.png")

输出成果

【Python 3+】wordcloud词云入门系列(三):4行代码最简词云实现法及彻底解决中文显示乱码_第1张图片
test1_only4LinesCode.png

如上所示,wordcloud明显很智能,会自动将空格、句号等标点符号,以及where、there、that、the、not、from、is、a、and、by介词等无关的词屏蔽。

二、wordcloud展示中文乱码问题

代码示例

import wordcloud

text = "我爱中国,我的祖国"
# 实例化对象
poetry = wordcloud.WordCloud()

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

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

输出成果

【Python 3+】wordcloud词云入门系列(三):4行代码最简词云实现法及彻底解决中文显示乱码_第2张图片
test2_Chinese_withWrong.jpg

又如
【Python 3+】wordcloud词云入门系列(三):4行代码最简词云实现法及彻底解决中文显示乱码_第3张图片
test2_中文显示乱码.jpg

三、彻底解决wordcloud中文乱码

wordcloud默认字体不支持中文,中文会显示为方框乱码状。故要展示中文,需先设置好中文字体路径。Windows系统中默认为C:\Windows\Fonts,Linux系统中默认为: \usr\share\fonts,
在其中找支持中文的字体或者网上下载即可,字体要求为.OTF或.TTF格式。
以下示例中,字体为Windows系统中的微软雅黑

font = r'C:\Windows\Fonts\msyh.ttf'

若将其拷贝至当前项目路径下,即可定义为:

font = 'msyh.ttf'

代码示例

import wordcloud

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

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

# 实例化对象
poetry = wordcloud.WordCloud(font_path=font)

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

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

输出成果

【Python 3+】wordcloud词云入门系列(三):4行代码最简词云实现法及彻底解决中文显示乱码_第4张图片
test2_ChinesePoetry.jpg


好啦~今天就写到这里。是不是发现最后这张中文显示是显示了,但是图片太小、太模糊、行间距和词间距是不是可以调整一下呢?嘿嘿,且听下回详说。

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

你可能感兴趣的:(【Python 3+】wordcloud词云入门系列(三):4行代码最简词云实现法及彻底解决中文显示乱码)