数据可视化玩转大数据大数据

【数据可视化】使用Python进行词云绘制

2020-04-07  本文已影响0人  枫璃

使用Python绘制词云

1、制作效果:

绘制词云效果图:

词云图中文本原文,复制文本保存到txt中:

https://36kr.com/p/5309006  (《最前线丨瑞幸董事长陆正耀朋友圈致歉:十分自责,将承担应有责任》)

2、制作步骤:

2.1 需预先准备的包:

import wordcloud #导入词云库

import numpy as np

import matplotlib.pyplot as plt

import PIL

import jieba

import re

提前在PyCharm中下载好。其中,下载PIL一直报错

经排查发现是由于版本问题,目前PIL的官方最新版本为1.1.7,支持的版本为python 2.5, 2.6, 2.7,并不支持python3,因此我们用pillow代替,下载并安装pillow即可。

2.2 wordcloud.WordCloud() 函数

wordcloud.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)

font_path : 字体路径(需要设置什么样的字体,就将字体路径以字符串的形式传入。默认为wordcloud库下的DroidSansMono.ttf字体)

如果选用默认字体的话,是不能够显示中文字的。为使得能够显示中文,可以自己设置字体。系统字体一般都在C:\Windows\Fonts 目录下。选择自己想要设置的字体,然后右击属性,复制路径然后赋值给font_path即可。

更多参数说明可参考:https://blog.csdn.net/moshanghuali/article/details/84667136

2.3 词云图生成方法

    1)fit_words(frequencies)   # 根据词频生成词云图

    2)generate(text)   # 根据文本生成词云图

    3)generate_from_frequencies(frequencies[, …])  # 根据词频生成词云图

    4)generate_from_text(text)    # 根据文本生成词云图

    5)process_text(text)      # 将长文本拆分成单词,消除词尾。

    6)recolor([random_state, color_func, colormap])   # 对现有的字体颜色进行重新染色。重新染色会比重新生成整个词云快很多

2.4 结果存储&展示

    1)存储:to_file(filename) 导出到图像文件

    2)plt.show(con) 即可。  ##con为使用词云图生成方法后,生成的词云图。

最终代码:

import wordcloud #导入词云库

import numpyas np

import matplotlib.pyplotas plt 

import PIL

import jieba

import re

#导入文本

with open(r'E:\hill2020\Python相关\text1.txt',encoding='utf8')as f:

    text1 = f.readlines()

#导入图片

image1 = PIL.Image.open(r'C:\Users\addqlee\Pictures\鹿.jpg')

MASK = np.array(image1)

WC = wordcloud.WordCloud(font_path ='C:\\Windows\\Fonts\\STFANGSO.TTF',max_words=2000,mask = MASK,height=400,width=400,background_color='white',repeat=False,mode='RGBA')#设置词云图对象属性

st1 = re.sub('[,。、“”‘ ’]','',str(text1))#使用正则表达式将符号替换掉。

conten =' '.join(jieba.lcut(st1))#此处分词之间要有空格隔开,联想到英文书写方式,每个单词之间都有一个空格。

wc = WC.generate(conten)

plt.imshow(wc)

#保存结果到png

wc.to_file('wolfcodeTarget.png')



上一篇 下一篇

猜你喜欢

热点阅读