wordcloud库是优秀的词云展示第三方库,可以将一段文本变成词云(词云以词语为基本单位,更加直观和艺术的展示文本)
cmd命令行 pip install wordcloud
示例如下:
wordcloud库把词云当作一个WordCloud对象(具体词云,有大写有小写)
wordcloud.WordCloud()代表一个文本对应的词云
可以根据文本中词语出现的频率等参数绘制词云
绘制词云的形状,尺寸和颜色都可以设定
w=wordcloud.WordCloud()
以WordCloud对象为基础(wordcloud就是一个程序版的词云)
配置参数,加载文本,输出文件
w.generate(txt) 向WordCloud对象w中加载文本txt
代码示例如下所示:
w.generate("Python and wordcloud")
w.to_file(filename) 将词云输出为图像文件 .png或.jpg格式
代码示例如下:
w.to_file("love.png")
词云绘制:
步骤一:配置对象参数
步骤二:加载词云文本
步骤三:输出词云文件
代码示例如下:
import wordcloud w=wordcloud.WordCloud() w.generate("Python and wordcloud") w.to_file("love.png")
运行界面如图:
相对于一个词云,它是一个程序逻辑,然后我们向它输入一段文本,那么它的程序逻辑中就会根据文本绘制出一个词云图像。
“ Python and wordcloud”
1.分隔:wordcloud以空格为分隔符号,来将文本分隔成单词
2.统计:单词出现次数(如果出现次数多,字体大;出现次数少的,字体小,同时将很短的单词(1~2个字符)过滤掉)
3.字体:根据统计配置字号。
4.布局:颜色环境尺寸
配置对象参数:w=wordcloud.WordCloud(<参数>)
1.width,指定词云对象生成图片的宽度,默认400.
代码示例如下:
import wordcloud w=wordcloud.WordCloud(width=600) w.generate("Python and wordcloud") w.to_file("width.png")
运行界面如下:
2.height,指定词云对象生成图片的高度,默认200.
代码示例如下:
import wordcloud w=wordcloud.WordCloud(height=600) w.generate("Python and wordcloud") w.to_file("height.png")
运行界面如下:
3.min_font.size,指定词云中字体的最小字号,默认为4号。
代码示例如下:
import wordcloud w=wordcloud.WordCloud(min_font_size=15) w.generate("Python and wordcloud") w.to_file("min_font.size.png")
运行界面如下:
4. max_font.size,指定词云中字体的最大字号,根据高度自动调节。
代码示例如下:
import wordcloud w=wordcloud.WordCloud(max_font_size=30) w.generate("Python and wordcloud") w.to_file("max_font.size.png")
运行界面如下:
5.font_step,指定词云中字体字号的步进间隔,默认为1.
代码示例如下:
import wordcloud w=wordcloud.WordCloud(font_step=3) w.generate("Python and wordcloud") w.to_file("font_step.png")
运行界面如下:
6.font_path,指定词云中字体文件的路径,默认为None.
示例代码如下:
import wordcloud import jieba import imageio mk=imageio.imread("五角星.jpg") txt="程序设计语言是用于书写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言。在程序设计语言中,这些记号串就是程序。" \ "程序设计语言有3个方面的因素,即语法、语义和语用。语法表示程序的结构或形式," \ "亦即表示构成语言的各个记号之间的组合规律,但不涉及这些记号的特定含义,也不涉及" \ "使用者。语义表示程序的含义,亦即表示按照各种方法所表示的各个记号的特定含义,但不涉及使用者" w=wordcloud.WordCloud(background_color="white",font_path="msyh.ttc",height=600,width=800,mask=mk) #此字体为微软雅黑字体 w.generate(" ".join(jieba.lcut(txt))) w.to_file("中文文本.png")
运行界面如图:
7.max_words,指定词云显示的最大单词数量,默认为200。
示例代码如下:
import wordcloud w=wordcloud.WordCloud(max_words=30) w.generate("Python and wordcloud") w.to_file("max_words.png")
运行界面如下:
8.stopwords,指定词云的排除词列表,即不显示的单词列表。
代码示例如下:
import wordcloud w=wordcloud.WordCloud(stopwords={"python"}) w.generate("Python and wordcloud") w.to_file("stopwords.png")
运行界面如下:
9.mask,指定词云形状,默认为长方形,需要引用imread()函数。由于python已经将imread函数封装在imageio模块里面,所以我们需要在cmd里面输入命令pip install imageio,进行安装imageio这个库。当再使用from scipy.mics import imread时会出现错误,而且from scipy.mics import imread这个方法已经被弃用。
代码示例如下:
import wordcloud import jieba import imageio mk=imageio.imread("五角星.jpg") txt="程序设计语言是用于书写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言。在程序设计语言中,这些记号串就是程序。" \ "程序设计语言有3个方面的因素,即语法、语义和语用。语法表示程序的结构或形式," \ "亦即表示构成语言的各个记号之间的组合规律,但不涉及这些记号的特定含义,也不涉及" \ "使用者。语义表示程序的含义,亦即表示按照各种方法所表示的各个记号的特定含义,但不涉及使用者" w=wordcloud.WordCloud(background_color="white",font_path="msyh.ttc",height=600,width=800,mask=mk) w.generate(" ".join(jieba.lcut(txt))) w.to_file("中文文本.png")
运行界面如下:
10.background_color,指定词云图片的背景颜色,默认为黑色。
代码示例如下:
import wordcloud w=wordcloud.WordCloud(background_color="red") w.generate("Python and wordcloud") w.to_file("background_color.png")
运行界面如下:
下面以英文文本和中文文本进行示例:
示例一:英文文本:
示例代码如下:
import wordcloud txt="life is short,you need python" w=wordcloud.WordCloud(background_color="blue") w.generate(txt) w.to_file("英文文本.png")
运行界面如下:
示例二:中文文本:
示例代码如下:
import wordcloud import jieba txt="程序设计语言是用于书写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言。在程序设计语言中,这些记号串就是程序。" \ "程序设计语言有3个方面的因素,即语法、语义和语用。语法表示程序的结构或形式," \ "亦即表示构成语言的各个记号之间的组合规律,但不涉及这些记号的特定含义,也不涉及" \ "使用者。语义表示程序的含义,亦即表示按照各种方法所表示的各个记号的特定含义,但不涉及使用者" w=wordcloud.WordCloud(background_color="blue",font_path="msyh.ttc",height=600,width=800) w.generate(" ".join(jieba.lcut(txt))) w.to_file("中文文本.png")
运行界面如下:
中文需要先分词并组成空格分隔字符串
jieba.lcut(s) 精确模式,返回一个列表类型的分词结果
w.generate(" ".join(jieba.lcut(txt)))即为用空格的方法去分隔jieba库精确模式下形成的字符串。