数据可视化

  数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息,发展到后来,应用3D图形来展示,使得数据更加的生动与形象。信息的质量很大程度上依赖于其表达方式,同样的,对数据进行数据分析后,结果可视化可以帮助用户更好地理解数据信息,挖掘数据价值。数据可视化的本质就是视觉对话,数据可视化将数据分析技术与图形技术结合,清晰有效地将分析结果信息进行解读和传达。数据和数据可视化是相辅相成的,数据赋予可视化以依据,可视化增加数据的灵活性。

词云

  “词云”这个概念由美国西北大学新闻学副教授、新媒体专业主任里奇·戈登(Rich Gordon)于提出,词云是一种可视化描绘单词或词语出现在文本数据中频率的方式,它主要是由随机分布在词云图的单词或词语构成,出现频率较高的单词或词语则会以较大的形式呈现出来,而频率越低的单词或词语则会以较小的形式呈现。词云图过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。

DM_20240325154455_001.png

Python词云库

  wordcloud库不是python内置库,需要使用pip命令安装。如果使用的其他Python环境,安装方法可能不同。

官方文档:WordCloud for Python documentation

安装词云库

按Win+R键,输入cmd确定,打开命令提示符。输入以下命令安装:

pip install wordcloud

默认源安装可能会比较慢,可以指定清华大学镜像安装:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple wordcloud

使用词云库

先创建词云对象,然后向词云对象中加载文本(默认通过空格分词),最后输出词云图片。

from wordcloud import WordCloud					#导入词云库

w=WordCloud(background_color='white')			#创建词云对象,设置背景为白色

f = open("youth.txt", encoding='utf-8').read()	#打开文本,文件要和代码在同一个文件夹

w.generate(f)									#用文本创建词云

w.to_file("mywordcloud.png")							#输出词云为图片文件,文件生成在代码所在文件夹

配置词云对象

默认的词云对象风格比较单调,在创建词云对象时可以通过参数来设置词云的风格。

w=WordCloud([参数]) 词云创建时可以设置参数,多个参数使用逗号分割

参数

描述

background_color

指定词云图片的背景颜色,默认为黑色
w=WordCloud(background_color="white")

width

指定词云对象生成图片的宽度,默认400像素
w=WordCloud(width=600)

height

指定词云对象生成图片的高度,默认200像素
w=WordCloud(height=400)

scale

按照比例进行放大画布,默认是1
w=WordCloud(scale=2)

min_font_size

指定词云中字体的最小字号,默认4号
w=WordCloud(min_font_size=10)

max_font_size

指定词云中字体的最大字号,根据高度自动调节
w=WordCloud(max_font_size=20)

font_step

指定词云中字体字号的步进间隔,默认为1
w=WordCloud(font_step=2)

font_path

指定文体文件的路径,默认None
w=WordCloud(font_path="msyh.ttc")

max_words

指定词云显示的最大单词数量,默认200
w=WordCloud(max_words=20)

stopwords

指定词云的排除词列表,即不显示的单词列表

W=WordCloud(stopwords={‘我’,’你’,’他’,’的’}

mask

指定词云形状,默认为长方形,需要引用图像处理函数

from PIL import Image

import numpy as np
mk = np.array(
Image.open('maskname.jpg'))
w=WordCloud(mask=mk)

样例代码:

w = WordCloud(
    width=1920,									#设置宽度为1920px
    height=1080,  								#设置图片长宽为1080px
    background_color='white', 					#设置背景颜色为白色
    font_path='C:/Windows/Fonts/msyh.ttc',  	#设置字体为微软雅黑
    max_words=300,  							#设置词汇最大数量为300
)

任务一:生成词云

  利用附件中的文本生成一个英文词云图,尝试通过参数设置进行美化,将词云图片提交给老师。

  附件: English Text.zip

中文词云

  请观察下列样例文本,字词的分隔方式和英文文本有什么区别。

这是一段样例中文文本,床前明月光,疑是地上霜。举头望明月,低头思故乡。

This is a sample English text. And as we walk, we must make the pledge that we shall always march ahead.

  wordcloud 默认会以空格或标点为分隔符对目标文本进行分词处理。所以中文文本制作词云之前需要进行分词的处理。

JIEBA库

jieba库是Python 一个重要的第三方中文分词函数库,但需要用户自行安装。它分词原理是利用一个中文词库,将待分词的内容与分词词库进行比对,通过图结构和动态规划方法找到最大概率的词组;除此之外,jieba 库还提供了增加自定义中文单词的功能。

安装JIEBA库

按Win+R键,输入cmd确定,打开命令提示符。输入以下命令安装:

pip install jieba

默认源安装可能会比较慢,可以指定清华大学镜像安装:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jieba

使用JIEBA库

import jieba										#导入JIEBA库

f = open("月亮古诗.txt", encoding='utf-8').read()	#打开中文文本,文件要和代码在同一个文件夹

txt=jieba.cut(f)									#使用cut函数分词,得到列表

txt= " ".join(txt)									#join()方法将列表中的元素用指定的空格连接

JIEBA库函数功能

任务二:中文词云

  分析JIEBA库的使用方法,将JIEBA代码插入到词云代码适当的位置后,利用附件中的中文文本生成一个中文词云图,将词云图片提交给老师。

  提示:使用中文生成词云,在创建词云对象时,必须设置字体参数为一个中文字体文件!

  附件:

文本 中文文本.zip

字体 heiti.ttf   xingkai.ttf

Mask参数

  通过使用wordcloud函数的mask参数,可以让词云图变成指定图片的形状。

  mask参数接受的值为蒙版图像矩阵,需要用到numpy、Image这两个库来处理图片文件,方法如下:

from PIL import Image							#导入Image库

import numpy as np								#导入numpy库

img = np.array(Image.open('maskname.jpg'))		#将一张图片处理为蒙版图像矩阵

任务三:个性化词云

  分析mask参数的用法,将图像处理代码插入到词云代码适当位置后,使用mask参数指定词云的形状,选择相同主题的文本和图片形状进行词云制作,并尝试修改各个属性达到满意的效果将至少生成2个词云文件提交给老师。

  附件:mask图片包.zip

附录1:颜色的单词

附录2:“结巴”库文档