《(1.40)--5-2-3二维数据可视化.ppt》由会员分享,可在线阅读,更多相关《(1.40)--5-2-3二维数据可视化.ppt(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第5章 数据可视化-Matplotlib第5讲 二维图形可视化3Contents目录01相关图相关图02词云图词云图01相关图用于展示数据之间的相关性,主要有互相关和自相关两种形式。用于展示数据之间的相关性,主要有互相关和自相关两种形式。互相关:主要判断不同变量在不同的相对位置上互相匹配的程度。互相关:主要判断不同变量在不同的相对位置上互相匹配的程度。能够应用于信号处理和图像配准。能够应用于信号处理和图像配准。自自相相关关:表表示示一一个个给给定定的的时时间间序序列列在在一一个个连连续续的的时时间间间间隔隔上上与与自自身身在时间上的延迟之间的相似度。在时间上的延迟之间的相似度。能够应用于股票红
2、利的走势预测、财务流程分析等。能够应用于股票红利的走势预测、财务流程分析等。相关图互互相相关关图图可可用用于于利利用用matplotlib.pyplot.xcorr()函函数数实实现现。该该函函数数原原型型的的语语法法如下:如下:xcorr(x,y,normed=True,detrend=,usevlines=True,maxlags=10,*,data=None,*kwargs)该函数常用的参数及其含义解释如下:该函数常用的参数及其含义解释如下:(1)x,y:长度为:长度为n的数组,作为相关性计算的数据序列;的数组,作为相关性计算的数据序列;(2)normed:默默认认为为True,表表示示
3、通通过过零零延延迟迟(即即没没有有时时间间延延迟迟或或者者时时差差)的的互关联对数据规范化到单位长度。互关联对数据规范化到单位长度。(3)detrend:消消除除输输入入数数据据序序列列x中中的的趋趋势势。去去趋趋势势是是数数据据预预处处理理的的一一种种常常用方法,如差分法、去平均值法等。用方法,如差分法、去平均值法等。相关图互相关图相关图互相关图import matplotlib.pyplot as pltimport numpy as npimport osos.chdir(ud:data)#数据文件所在的路径数据文件所在的路径from search_data import data#导入
4、搜索的数据导入搜索的数据avg=np.average(data)#计算计算data的平均值的平均值z=x-avg for x in data#去除真实数据的平均值去除真实数据的平均值#生成与生成与data长度相同的随机数据长度相同的随机数据rand_data=np.random.random(365)assert len(data)=len(rand_data)rand_avg=np.average(rand_data)#计计算算随随机机数数据据的的平平均值均值rz=x-rand_avg for x in rand_data#去去除除随随机机数数据据的平均值的平均值fig=plt.figure
5、()#创建图形区创建图形区相关图互相关图ax1=fig.add_subplot(311)#为真实数据创建子区为真实数据创建子区ax1.plot(data)ax1.set_xlabel(Google Trends data for flowers)ax2=fig.add_subplot(312)#为随机数据创建子区为随机数据创建子区ax2.plot(rand_data)ax2.set_xlabel(Random data with normal distribution)#绘制绘制互相关图互相关图,发现数据之间存在的模式或相似程度,发现数据之间存在的模式或相似程度ax3=fig.add_subp
6、lot(313)#为数据的互相关创建子区为数据的互相关创建子区ax3.set_xlabel(Cross correlation of random data)ax3.xcorr(z,rz,usevlines=True,maxlags=None,normed=True,lw=2)ax3.grid(True)#添加网格,更容易理解图表添加网格,更容易理解图表plt.ylim(-1,1)#y轴的最值轴的最值plt.tight_layout()#使用紧凑布局,使标签和刻度显示效果良好使用紧凑布局,使标签和刻度显示效果良好相关图互相关图使用一年的使用一年的GOOGLE TRENDS搜索量趋势和符合正态分
7、布的搜索量趋势和符合正态分布的365个随机数个随机数据。以此,分析两个数据集合的自相关性据。以此,分析两个数据集合的自相关性,又会出现什么结果?,又会出现什么结果?思路:绘制四个子图,分别展示数据的分布和自相关情况。相关图自相关图#创建一个图形区,包含创建一个图形区,包含2*2个子区,且不共享坐标轴个子区,且不共享坐标轴fig,ax=plt.subplots(nrows=2,ncols=2,sharex=False,sharey=False)fig.suptitle(Comparing autocorrelations)#添加总标题添加总标题ax0,0.plot(data)#在第在第1个子区中
8、绘图个子区中绘图#在第在第2个子图中绘制真实数据的自相关图个子图中绘制真实数据的自相关图ax0,1.acorr(z,usevlines=True,maxlags=None,normed=True,lw=2)rand_data=np.random.random(365)#生成长度相同的随机数据生成长度相同的随机数据assert len(data)=len(rand_data)avg_r=np.average(rand_data)#计算平均值计算平均值rz=x-avg_r for x in rand_dataax1,0.plot(rand_data)#在第在第3个子图中绘图个子图中绘图#在第在第4
9、个子图中绘制随机数据的自相关图个子图中绘制随机数据的自相关图ax1,1.set_xlabel(Autocorrelation of random data)ax1,1.acorr(rz,usevlines=True,maxlags=None,normed=True,lw=2)相关图自相关图图图5.28 自相关图演示示例自相关图演示示例相关图自相关图02词云图词词云云图图是是对对文文本本中中出出现现频频率率较较高高的的“关关键键词词”予予以以可可视视化化的的呈呈现现,通通过过大大量低频低质文本信息的过滤,使得浏览者能够快速地掌握文本的主题。量低频低质文本信息的过滤,使得浏览者能够快速地掌握文本的
10、主题。1 1234词频统计词频统计词云绘制词云绘制关键词抽取关键词抽取分词分词JiebaJieba库库词云图安安装装:在在Python环环境境中中,要要制制作作词词云云图图,需需要要预预先先进进行行jieba库库和和wordcloud库库的的安安装装,而而wordcloud库库依依赖赖于于numpy库库和和Microsoft Visual C+Redistributable组组件件。因因此此,除除numpy库库,需需要要选选择择合合适适的的版版本本,下下载载并并安安装装Microsoft Visual C+Redistributable for Visual Studio 2015,2017
11、and 2019,否则会出错,无法正常安装,否则会出错,无法正常安装wordcloud库。库。提提示示:要要下下载载wordcloud库库离离线线文文件件,可可使使用用加加利利福福尼尼亚亚大大学学提提供供的的Python第第三三方方库库,网网址址https:/www.lfd.uci.edu/gohlke/pythonlibs/,选选择择合合适适的的版版本本下下载载,如如wordcloud 1.5.0 cp36 cp36m win32.whl,然然后后使使用用pip install 进行离线安装。进行离线安装。词云图import matplotlib.pyplot as pltimport ji
12、ebafrom wordcloud import WordCloud,ImageColorGeneratorimport osos.chdir(ud:data)#添加需要自定义的分词添加需要自定义的分词jieba.add_word(侯亮平侯亮平)jieba.add_word(沙瑞金沙瑞金)jieba.add_word(赵东来赵东来)#读取要分析的文本读取要分析的文本filename=人民的名义人民的名义.txt词云图with open(filename,encoding=utf-8)as f:mytext=f.read()def clearwords(text):#定义一个空列表,保存去除停用
13、词后的分词定义一个空列表,保存去除停用词后的分词 wordlist=liststr=/.join(jieba.cut(mytext,cut_all=True)#打开停用词表打开停用词表 stop_file=open(stopwords.txt,encoding=utf-8)try:#读取停用词读取停用词 stop_text=stop_file.read()finally:stop_file.close()#将停用词格式化,用将停用词格式化,用n分开,返回一个列表分开,返回一个列表 stop_words=stop_text.split(n)#换行符换行符词云图#遍历分词表,去除停用词遍历分词表,
14、去除停用词 for myword in liststr.split(/):if not(myword.split()in stop_words and len(myword.strip()1:wordlist.append(myword)return .join(wordlist)seg_words=clearwords(mytext)words=WordCloud(background_color=white,#词云图的背景色,默认为黑色词云图的背景色,默认为黑色 width=600,#词云图的宽度词云图的宽度 height=400,#词云图的高度词云图的高度 max_words=300,#
15、指定词云显示的最大单词数量,默认为指定词云显示的最大单词数量,默认为200#指定词云中词语步进间隔,若指定词云中词语步进间隔,若1,可提高计算的速度,但拟合度会差可提高计算的速度,但拟合度会差 font_step=2,词云图#出现最多的单词的最大字号,若为出现最多的单词的最大字号,若为None,则采用词云图的高度,则采用词云图的高度 max_font_size=1000,min_font_size=10,#可用的最小字号可用的最小字号#指定字体文件(指定字体文件(TTF、TTC)所在的路径)所在的路径 font_path=.fontssimhei.ttf ).generate(seg_words)#根据文本产生词云根据文本产生词云plt.imshow(words,interpolation=bilinear)#绘制图片绘制图片plt.axis(off)#消除坐标轴消除坐标轴plt.show()#显示词云图显示词云图词云图图图5.29“人民的名义人民的名义”对应的词云图对应的词云图词云图小结小结1、相关图的含义及绘制方法。、相关图的含义及绘制方法。2、词云图的绘制方法。、词云图的绘制方法。谢谢大家