ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python—wordcloud库绘制词云2

2021-01-28 13:00:05  阅读:288  来源: 互联网

标签:None gist python 默认 color wordcloud 词云 words font


文章目录

前言

wordcloud是python的一个三方库,称为词云也叫做文字云,是根据文本中的词频,对内容进行可视化的汇总.安装wordcloud: pip install wordcloud

一、wordcloud基础

WordCloud()的默认值

WordCloud(font_path=None, width=400, height=200, margin=2, ranks_only=None, 
prefer_horizontal=.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)
属性名示例说明
background_colorbackground_color=‘white’指定背景色,可以使用16进制颜色
widthwidth=600画布宽度,图像长度默认400 单位像素
heightheight=400画布高度,图像高度 默认200
marginmargin=20词与词之间的边距 默认2
scalescale=0.5缩放比例 对图像整体进行缩放 默认为1
prefer_horizontalprefer_horizontal=0.9词在水平方向上出现的频率,默认为0.9
min_font_sizemin_font_size=10最小字体 默认为4
max_font_sizemax_font_size=20最大字体 默认为200
max_wordsmax_words=200词云显示的最大词语数量 默认为200
font_stepfont_step=2字体步幅 控制在给定text遍历单词的步幅 默认为1 一般不用修改 对于较大text 增大font_step会加快读取速度 但会牺牲部分准确性
stopwordsstopwords=set(‘dog’)设置要过滤的词 以字符串或者集合作为接收参数 如不设置将使用默认的 停动词词库
modemode=‘RGB’设置显色模式 默认RGB 如果为RGBA且background_color不为空时,背景为透明
relative_scalingrelative_scaling=1词频与字体大小关联性 默认为5 值越小 变化越明显
color_funccolor_func=None生成新颜色的函数 如果为空 则使用 self.color_func
regexpregexp=None默认单词是以空格分割,如果设置这个参数 将根据指定函数来分割
collocationscollocations=False是否包含两个词的搭配 默认为True
colormapcolormap=None给所有单词随机分配颜色 指定color_func则忽略
random_staterandom_state=1为每个单词返回一个PIL颜色
font_pathfont_path=‘PangMenZhengDaoBiaoTiTi-1.ttf’指定字体
maskmask=None指定背景图,会将单词填充在背景图像素非白色(#FFFFFF RGB(255,255,255))的地方

二、wordcloud简单词云图

import jieba#分词库
import pandas as pd
import matplotlib.pyplot as plt
from wordcloud import WordCloud#词云库
import numpy as np
from collections import Counter#统计词频
import PIL#对图片进行操作

df = pd.read_excel(r'D:\python学习\评论.xlsx')#读取文本

#构建函数来删除停用词、自定义关键词、自定义听用词
def get_cut_words(content_series):
    # 读入停用词表
    stop_words = [] #构建一个空的列表存放听用词
    #open中的“r”表示的只读取
    with open(r"D:\python学习\\chineseStopWords.txt", 'r') as f:
        lines = f.readlines()#一行一行的读取
        for line in lines:
            stop_words.append(line.strip())#line.strip删除词两端的空格
    # 添加关键词
    #my_words = []    
    #for i in my_words:
        #jieba.add_word(i) 
    # 自定义停用词
    my_stop_words = ['快递', '收到']   
    stop_words.extend(my_stop_words)               
    # 分词
    content=';'.join([ str(c) for c in content_series.tolist()])# str(c)转变为字符串
    word_num = jieba.lcut(content)
    # 条件筛选
    word_num_selected = [i for i in word_num if i not in stop_words and len(i)>=2]
    return word_num_selected
    
#利用上面构建的函数对导入的文本进行处理
text1 = get_cut_words(content_series=df['评论'])

c = Counter(text1) #对处理好的文本统计频率
common_c = c.most_common(300)#统计频率后前300的词语
common_c

mk = np.array(PIL.Image.open(r'D:\python学习\zihaowordcloud\code\图片\wujiaoxing.png'))#导入图片

#设定词云图
wc = WordCloud(
            # 设置字体
            font_path = 'C:/Windows/Fonts/simhei.ttf',#必须加中文字体,否则格式错误
            # 设置背景色
            background_color='white',
            scale=1,  # 数值越大,图片越清晰,但是太大电脑可能会吃不消
            # 词云形状
            mask=mk,
            width=900, height=600,
            #max_words=300,            # 词云显示的最大词语数量
            max_font_size=60,         # 设置字体最大值
            min_font_size=3,         # 设置子图最小值
            random_state=50           # 设置随机生成状态,即多少种配色方案
            )

# 生成词云
wc.generate_from_frequencies(dict(common_c))
# 生成图片并显示
plt.imshow(wc)
plt.axis('off')
plt.show()
# 保存图片
wc.to_file(r'D:\python学习\zihaowordcloud\code\pic.jpg')

结果如下:
在这里插入图片描述

三、更改颜色

这里使用:colormap : string or matplotlib colormap, default=”viridis”
matplotlib 色图,可更改名称进而更改整体风格Matplotlib色彩映射表为每个单词随机绘制颜色。 如果指定了“color_func”,则忽略。
颜色代码colormap = 'Blues'
‘Accent’, ‘Accent_r’, ‘Blues’, ‘Blues_r’, ‘BrBG’, ‘BrBG_r’, ‘BuGn’, ‘BuGn_r’, ‘BuPu’, ‘BuPu_r’, ‘CMRmap’, ‘CMRmap_r’, ‘Dark2’, ‘Dark2_r’, ‘GnBu’, ‘GnBu_r’, ‘Greens’, ‘Greens_r’, ‘Greys’, ‘Greys_r’, ‘OrRd’, ‘OrRd_r’, ‘Oranges’, ‘Oranges_r’, ‘PRGn’, ‘PRGn_r’, ‘Paired’, ‘Paired_r’, ‘Pastel1’, ‘Pastel1_r’, ‘Pastel2’, ‘Pastel2_r’, ‘PiYG’, ‘PiYG_r’, ‘PuBu’, ‘PuBuGn’, ‘PuBuGn_r’, ‘PuBu_r’, ‘PuOr’, ‘PuOr_r’, ‘PuRd’, ‘PuRd_r’, ‘Purples’, ‘Purples_r’, ‘RdBu’, ‘RdBu_r’, ‘RdGy’, ‘RdGy_r’, ‘RdPu’, ‘RdPu_r’, ‘RdYlBu’, ‘RdYlBu_r’, ‘RdYlGn’, ‘RdYlGn_r’, ‘Reds’, ‘Reds_r’, ‘Set1’, ‘Set1_r’, ‘Set2’, ‘Set2_r’, ‘Set3’, ‘Set3_r’, ‘Spectral’, ‘Spectral_r’, ‘Wistia’, ‘Wistia_r’, ‘YlGn’, ‘YlGnBu’, ‘YlGnBu_r’, ‘YlGn_r’, ‘YlOrBr’, ‘YlOrBr_r’, ‘YlOrRd’, ‘YlOrRd_r’, ‘afmhot’, ‘afmhot_r’, ‘autumn’, ‘autumn_r’, ‘binary’, ‘binary_r’, ‘bone’, ‘bone_r’, ‘brg’, ‘brg_r’, ‘bwr’, ‘bwr_r’, ‘cividis’, ‘cividis_r’, ‘cool’, ‘cool_r’, ‘coolwarm’, ‘coolwarm_r’, ‘copper’, ‘copper_r’, ‘cubehelix’, ‘cubehelix_r’, ‘flag’, ‘flag_r’, ‘gist_earth’, ‘gist_earth_r’, ‘gist_gray’, ‘gist_gray_r’, ‘gist_heat’, ‘gist_heat_r’, ‘gist_ncar’, ‘gist_ncar_r’, ‘gist_rainbow’, ‘gist_rainbow_r’, ‘gist_stern’, ‘gist_stern_r’, ‘gist_yarg’, ‘gist_yarg_r’, ‘gnuplot’, ‘gnuplot2’, ‘gnuplot2_r’, ‘gnuplot_r’, ‘gray’, ‘gray_r’, ‘hot’, ‘hot_r’, ‘hsv’, ‘hsv_r’, ‘inferno’, ‘inferno_r’, ‘jet’, ‘jet_r’, ‘magma’, ‘magma_r’, ‘nipy_spectral’, ‘nipy_spectral_r’, ‘ocean’, ‘ocean_r’, ‘pink’, ‘pink_r’, ‘plasma’, ‘plasma_r’, ‘prism’, ‘prism_r’, ‘rainbow’, ‘rainbow_r’, ‘seismic’, ‘seismic_r’, ‘spring’, ‘spring_r’, ‘summer’, ‘summer_r’, ‘tab10’, ‘tab10_r’, ‘tab20’, ‘tab20_r’, ‘tab20b’, ‘tab20b_r’, ‘tab20c’, ‘tab20c_r’, ‘terrain’, ‘terrain_r’, ‘twilight’, ‘twilight_r’, ‘twilight_shifted’, ‘twilight_shifted_r’, ‘viridis’, ‘viridis_r’, ‘winter’, ‘winter_r’

在这里插入图片描述
改变颜色,只需要在wc = WordCloud(colormap = 'Blues')其他的都不变

wc = WordCloud(
            # 设置字体
            font_path = 'C:/Windows/Fonts/simhei.ttf',#必须加中文字体,否则格式错误
            # 设置背景色
            background_color='white',
            scale=3,  # 数值越大,图片越清晰,但是太大电脑可能会吃不消
            # 词云形状
            mask=mk,
            width=900, height=600,
            colormap='PuOr',
            #max_words=300,            # 词云显示的最大词语数量
            max_font_size=60,         # 设置字体最大值
            min_font_size=3,         # 设置子图最小值
            random_state=50           # 设置随机生成状态,即多少种配色方案
            )

# 生成词云
wc.generate_from_frequencies(dict(common_c))
# 生成图片并显示
plt.imshow(wc)
plt.axis('off')
plt.show()
wc.to_file(r'D:\python学习\zihaowordcloud\code\pic1.jpg')

结果如下:
在这里插入图片描述

标签:None,gist,python,默认,color,wordcloud,词云,words,font
来源: https://blog.csdn.net/Txixi/article/details/113306822

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有