我与Python相遇的每天_2020-5-28 词云图

1.    绘制词云图

·安装软件:jieba(分词)、wordcloud(词云)

·使用到的库:matplotlib.pyplot、IPL(提取图片)、numpy

·思路:

A. 文本预处理

导入文本数据-open/read,简单预处理-replace;

分词-jieba,分词连接-join

B.导入停词-open/read

C. 导入背景图片-PIL.Image/np.array

D. 生成词云-WordCloud()

E. 讲文本导入词云-generate

F.  展示结果

尺寸控制-subplots/imshow/axis/show

              注:文本.txt、stop_word.txt、backgroud.png

·问题

A. 能做成词云的形状有哪些要求

B. subplots和figure函数的区别在哪

C. 如何提高背景图片导入后的效果—pillow库

D. 字体库的处理

可网络下载放到指定位置,或者直接获取电脑自带字体库位置获取对应字体

E. 文本数据

文本采用txt文档,里面的数据尽量大而多



2.    WordCloud各参数含义

WordCloud是wordcloud绘制词云图最核心的类。主要参数如下:

font_path——字符型,传入自定义字体路径

width——int型,控制词云图画布宽度,默认400

height——int型,控制词云图画布高度,默认200

prefer_horizontal——float型,控制所有水平显示的问题相对于竖直显示文字的比例,越小显示的文字越多

mask——传入背景图。图片处理graph=numpy.array(PIL.Imag(‘图.png’))

contour——float型,当mask不为None时,contour参数为图像轮廓线显示宽度。默认为0,即不显示轮廓线

contour_color——设置轮廓线颜色,默认‘black’

scale——当画布固定时,按照比例放大画布。如scale=1.5,则长宽都是为原来画布的1.5倍

min_font_size——int型,词云图最小词的字体大小,默认4

max_font_size——int型,词云图最大词的字体大小,默认为200

max_words——int型,画布最多绘制的词个数,默认200

stopwords——控制绘图是否忽略停用词,默认为None,即条用自带的英文停用词表。也可传入自定义的中文停用词

background_color——控制词云图背景色,默认‘black’

relative_scalling——float型,控制字体大小和对应词频的相关性。设置为1,完全相关;设置为0,完全不相关;默认设置0.5

color_func——传入自定义调色盘函数,默认None

colormap——对应matplotlib中的colormap调色盘,默认‘virids’。该参数与color_func互斥,当color_func有函数传入时,本参数失效

repeat——bool型,控制是否允许出现重复词,默认False(不出现)

random_state——控制随机水平。传入某个固定的数字后,每一次绘图文字布局将不会改变

collocation——bool型,默认True。是否包括两个单词的搭配

font_step——int型,默认1,字体大小的步长。大于1时加快运算,但可能会导致较大误差

mode——string型,默认‘RGB’。当参数为‘RGBA’时,其中A代表透明度。且background_color不为空时,背景为透明

normalize_plurals——bool型,默认True。是否移除词尾的s



3.     wordcloud绘制云图遇到的小问题

·scipy.misc.imread(IMG_FILE) 将图片读取出来为array类型,即numpy类型

但scipy.misc import 'imread' 导入失败新版抛弃了这个接口,需要手动装旧版

·imshow和show的区别

imshow将图像绘制到内存,也就是说图像已经绘制了,只是在内存没有传到显示器,然后调用show呈现在显示器上

·提取关键字

jieba.cut(x) 返回一个生成器,可通过for循环来取里面的每一个词

jieba.lcut(x) 返回一个列表类型

·生成词频

wc.generate(text)直接生成词频

generate_from_frequencies适用于已知词及其对应的词频是多少(已有数据库),不需要分词的情况下用。函数的参数是dict字典

·从图片获取颜色色系

导入from wordcloud import ImageColorGenerator

提取background = Image.open(img_file)

usa_mask =ImageColorGenerator(np.array(background))

应用plt.imshow(wordcloud.recolor(color_func=usa_mask), alpha=1)

[if !supportLists]4.     [endif]stylecloud绘制云图

stylecloud是wordcloud的优化改良版。基于wordcloud,支持个性化的云图创作。

两者最大的区别:stylecloud可以直接将原始文本转换成本地词云图片文件

·制作云图

stylecloud制作云图只需要gen_stylecloud一个函数即可。主要参数有:

text——字符串,格式同wordcloud的generate方法传入的text

gradient——控制云图颜色渐变的方向。vertical为垂直,horizontal为水平(默认)。此功能在python3.2已经弃用

size——控制输出图像文件的分辨率(默认方形图,分辨率512),代表长和宽

icon_name——词云形状传入参数,默认‘fas fa-flag’

palette——控制调色方案,默认为’cartocolors.qualitative.Bold_5’

background_color——字符串,控制词云图底色。可传入颜色名称或16进制色彩,默认’white’

max_font_size——最大字

max_words——最多字数

stopwords——bool型,控制是否开启去停用词功能,默认True,调用自带的英文停用词

custom_stopword——传入自定义的停用词list,配合stopwords=True使用

output_name——控制输出词云图文件的文件名,默认stylecloud.png

font_path——传入自定义字体文件的路径

random_state——控制随机数水平,传入某个固定的数字之后,每一次绘图文字布局将不会改变。

collocation——bool型,默认True。是否包括两个单词的搭配

·默认参数设置

def gen_stylecloud(text=None,

                  file_path=None,   #输入文本/CSV 的文件路径

                  size=512,  # stylecloud的大小(长度和宽度)

                   icon_name='fasfa-flag',  # stylecloud形状的图标名称

                   palette='cartocolors.qualitative.Bold_6',  #调色板

                   colors=None,

                  background_color="white", #背景颜色

                  max_font_size=200,  # stylecloud中的最大字号

                  max_words=2000,  # stylecloud可包含的最大单词数

                  stopwords=True,  #布尔值,用于筛除常见禁用词

                  custom_stopwords=STOPWORDS,

                  icon_dir='.temp',

                   output_name='stylecloud.png',  # stylecloud输出文本名

                  gradient=None,  #梯度方向

                  font_path=os.path.join(STATIC_PATH, 'Staatliches-Regular.ttf'), #stylecloud所用字体

                  random_state=None,  #控制单词和颜色的随机状态

                  collocations=True,

                  invert_mask=False,

                  pro_icon_path=None,

                      pro_css_path=None)

·使用Font Awesome提供的免费图表来变更词云形状

参考https://www.runoob.com/font-awesome/fontawesome-reference.html

设置显示形状参数:icon_name

操作:将链接中对应图标的描述赋值给icon_name参数

注意:链接的描述是以‘fa’开头,需要变更为‘fas’

举例:icon_name=‘fas fa-plane’

·通过palettable更改调色板的自定义风格

参考https://jiffyclub.github.io/palettable/

设置配色方案参数:palette

操作:进入链接任意点击一个palettable(palettable:***),进入新链接选择Contents的颜色[color]

将***.[color]赋值给palette参数

注意:不能直接用最后一个颜色赋值,需要完整的色系

举例:palette= 'matplotlib.Inferno_3'

·添加梯度,是颜色按照特定方向流动

参数:gradient

操作:gradient=‘vertical’ #垂直

      gradient=‘horizontal’ #水平

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,258评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,335评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,225评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,126评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,140评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,098评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,018评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,857评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,298评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,518评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,400评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,993评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,638评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,661评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容