这篇教程Python词云的正确实现方法实例写得很实用,希望能帮到您。 一、相关模块
jieba:中文分词 wordcloud :Python词云库 imageio:读取图形数据 安装: pip install jiebapip install wordcloudpip install imageio 二、wordcloud四大类
类 | 功能 | WordCloud([font_path, width, height, …]) | 生成和绘制词云对象 | ImageColorGenerator(image[, default_color]) | 基于图片的色彩 | random_color_func([word, font_size, …]) | 随机生成颜色 | get_single_color_func(color) | 创建一个颜色函数,它返回一个色调和饱和度 | 三、wordcloud类
1、WordCloud类 class wordcloud.WordCloud( font_path=None, width=400, height=200, margin=2, ranks_only=None, prefer_horizontal=0.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='auto', regexp=None, collocations=True, colormap=None, normalize_plurals=True, contour_width=0, contour_color='black', repeat=False, include_numbers=False, min_word_length=0, collocation_threshold=30) 2、WordCloud参数详解 参数 | 详解 | font_path | 词云图的字体路径(OTF或TTF格式) | width | 画布的宽度、默认为400,如果mask不为空时,设置为mask获取图片的大小 | height | 画布的高度,默认为200,如果mask不为空时,设置为mask获取图片的大小 | prefer_horizontal | 默认值0.9;当值<1时,遇到不合适的地方时,算法将词体自动旋转 | mask | 默认为None;如果不为空,指定了画布的图形,则width和height值不生效,使用提供的图形的大小 | contour_width | 如果mask不为空,并且contour_width>0,将描绘出mask获取图片的轮廓,值越大,轮廓的线越粗 | contour_color | 使用Mask时,描绘图片轮廓的颜色 | scale | 图片生成后放大缩小时的分辨率 | min_font_size | 词云图显示的最小字体,默认为4 | max_font_size | 词云图显示的最大字体 | max_words | 词云显示的最大词数 | font_step | 字体步长 | stopwords | 不显示的词,如果没有设置,则使用默认的内置的STOPWORdS列表;如果使用generate_from_frequencies参数,则忽略 | background_color | 背景颜色 | mode | 默认为"RGB",当mode="RGBA"并且background_color为None时,将会显示透明背景 | relative_scaling | 字体大小与词频的关系,默认值为auto | color_func | 默认为None,color_func=lambda *args, **kwargs:(255,0,0)词云的字体颜色将这设置为红色 | regexp | 使用正则切分,默认为r"/w[/w']+",如果使用generate_from_frequencies则此参数不生效 | collocations | 是否包含两个词的搭配,默认为True,如果使用generate_from_frequencies则此参数不生效 | colormap | 设置颜色的参数,默认为"viridis",如果使用color_func参数,则此参数不生效 | normalize_plurals | 是否删除尾随的词,比如's,如果使用generate_from_frequencies参数,则此参数不生效 | repeat | 是否重复词组直到设置的最大的词组数 | include_numbers | 是否包含数字,默认我False | min_word_length | 最小数量的词,默认为0 | collocation_threshold | 默认为30,整体搭配的评分等级 | 3、WordCloud类方法详解 方法 | 功能 | fit_words() | 根据词频生成词云 | generate_from_frequencies() | 根据词频生成词云 | generate() | 根据文本生成词云 | generate_from_text() | 根据文本生成词云 | process_text() | 将长文本分词,并去除屏蔽词 | recolor() | 对输出颜色重新着色 | to_array() | 转换为numpy数组 | to_file() | 保存为图片文件 | to_svg() | 保存为SVG(可缩放矢量图形) | 四、实例
1、简单图案 
代码: import wordcloud# 词云使用的文字text = "lemon"# 使用wordcloud.WordCloud类,并传入相关的参数wc = wordcloud.WordCloud(background_color="white", repeat=True)wc.generate(text)# 保存图片wc.to_file('test1.png') 2、自定义图片 
代码: import wordcloud# 导入imageio库中的imread函数,并用这个函数读取本地图片,作为词云形状图片import imageiomk = imageio.imread("333.jpg")# 词云使用的文字text = "lemon"# 使用wordcloud.WordCloud类,并传入相关的参数wc = wordcloud.WordCloud(background_color="white", repeat=True,mask=mk)wc.generate(text)# 保存图片wc.to_file('test1.png') 3、从文本读取 
代码: import wordcloudimport jieba# 导入imageio库中的imread函数,并用这个函数读取本地图片,作为词云形状图片import imageiomk = imageio.imread("chen.jpg")# 使用wordcloud.WordCloud类,并传入相关的参数wc = wordcloud.WordCloud(background_color="white", prefer_horizontal=0.5, repeat=True, mask=mk, font_path='/System/Library/Fonts/STHeiti Light.ttc', contour_width=2, contour_color='pink', collocation_threshold=100, )# 对来自外部文件的文本进行中文分词,得到stringf = open('gong.txt', encoding='utf-8')txt = f.read()txtlist = jieba.lcut(txt)string = " ".join(txtlist)# 将string变量传入w的generate()方法,给词云输入文字wc.generate(string)# 保存图片wc.to_file('test.png') 总结到此这篇关于Python词云的正确实现方法的文章就介绍到这了,更多相关Python词云实现内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net! python神经网络编程之手写数字识别 python实现的人脸识别打卡系统 |