Python数据可视化 课件 01章数据可视化概述_第1页
Python数据可视化 课件 01章数据可视化概述_第2页
Python数据可视化 课件 01章数据可视化概述_第3页
Python数据可视化 课件 01章数据可视化概述_第4页
Python数据可视化 课件 01章数据可视化概述_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python数据可视化第1章

数据可视化概述教师:xxx2024.07第1节

可视化释义与简史第1章

数据可视化概述第2节

数据可视化的意义第3节

数据可视化分类第4节

数据可视化理论基础第5节

数据可视化与其他学科领域的关系第6节

数据文件处理第7节

Anaconda开发环境数据可视化是关于数据视觉表现形式的科学技术研究。数据可视化是一个处于不断演变之中的概念,其边界在不断地扩大。数据可视化的起源没有一个统一的结论,大多数研究认为,数据可视化起源于统计学诞生的时代。第1节

可视化释义与简史公元10世纪的天文数据可视化图英格兰1700-1780年进出口情况折线图数据的可视化展示有多种方式,好的方式能使用户清晰、直观、高效地理解数据背后的含义,而糟糕的可视化方式则会使用户感觉异常混乱。第2节

数据可视化的意义有效的可视化有助于我们分析理解数据,StephenFew列举了如下8种定量信息,对这些定量信息的可视化有助于理解或交流数据信息。一、可视化有助于决策时间序列排序局部到整体偏差频率分布相关名义比较地理或地理空间第2节

数据可视化的意义数据可视化的适用范围有着不同的划分方法,常见的关注焦点就是信息的呈现。二、可视化的适用范围思维导图新闻的显示数据的显示连接的显示网站的显示文章与资源工具与服务《DataVisualization:ModernApproaches》》概括阐述了数据可视化的下列7个主题:可视化算法与技术方法立体可视化信息可视化多分辨率方法建模技术方法交互技术方法与体系架构FritsH.Post从计算机科学的视角,将这一领域划分为如下6个子领域:第2节

数据可视化的意义数据可视化首先要弄清楚可视化要表达的意图。不同的需求需要用不同的可视化图形来反映。常见可视化图形:柱状图、折线图、饼图、直方图、气泡图、密度图和散点图等。三、常用可视化图形#举例:柱状图importnumpyasnpimportmatplotlib.pyplotasplt

#导入绘图库x=np.arange(15)y=1.5*xplt.bar(x,y,label="y=1.5*x")

#柱状图plt.legend()

#显示图例plt.show()

#显示图形,右图柱状图通过对数据的归类可以将数据可视化分为:层次数据可视化、多维数据可视化、时序数据可视化和地理数据可视化等。第3节数据可视化分类

一、层次数据可视化1.节点链接法(Structure-clarity)常用的布局有正交布局、径向布局和自由布局。

聚类图(正交布局)Flare软件包的目录结构(径向布局)第3节数据可视化分类

一、层次数据可视化2.空间填充法(space-efficiency)空间填充法是从空间的角度来实现层次数据的可视化。为了表达节点的父子关系,将子节点整个封装在父节点中。磁盘空间可视化图(空间填充法)第3节数据可视化分类

一、层次数据可视化3.混合填充法混合填充法在可视化时结合了节点链接法和空间填充法,在更复杂的可视化情况下可以利用两种填充法的特点对可视化内容加以合理展示。弹性层次图(混合填充法)第3节数据可视化分类

二、多维数据可视化多维数据可视化是指通过一些手段将高维的数据展示在二维的平面中,常用于探索性数据分析及对聚类或分类问题的验证中。常用的有:平行坐标、RadViz雷达图、Andrews曲线等。下面以平行坐标为例,其他方式见教材。以经典的鸢尾花数据集为例,下表是5条鸢尾花的数据,前4列是鸢尾花的4个特征(花萼sepal长、宽,花瓣petal长、宽),最后1列是鸢尾花的3种分类。SepalLengthSepalWidthPetalLengthPetalWidthSpecies6.42.85.62.2virginica52.33.31versicolor4.92.54.51.7virginica4.93.11.50.1setosa5.73.81.70.3setosa第3节数据可视化分类

二、多维数据可视化图中每条垂直的线代表一个特征,表中一行的数据在图中表现为一条折线,不同颜色的线表示不同的花类别。绘图代码如下所示。importpandasaspdimportmatplotlib.pyplotasplt#引入pandas中的平行坐标图frompandas.plottingimportparallel_coordinatesdata=pd.read_csv('data/多维可视化示例1.csv')#读取csv文件plt.title('parallel_coordinates')parallel_coordinates(data,'Species',color=['blue','green','red'])plt.show() 多维数据可视化平行坐标示例第3节数据可视化分类

三、时序数据可视化时序数据是指时间序列数据,常见于统计学中。时间序列数据在数据科学领域无处不在,可用于分析价格趋势,预测价格,探索价格行为等。时间序列数据可视化在不同应用场景需求不同,下面为Python中的时间序列数据可视化例子。单个时间序列(股价图)移动平均时间序列(股价均线)多个时间序列对比数据可视化不仅是一种艺术,也是一门具有方法论的学科。在实际应用中需要采用系统化的思维设计数据可视化方法及工具。第4节

数据可视化理论基础一、数据可视化流程数据可视化经过长期的发展,逐渐形成了可视化的完整流程。预处理数据关注数据几何数据图像数据原始数据数据分析过滤映射绘制数据可视化的流程第4节

数据可视化理论基础一、数据可视化流程数据可视化流程中的核心要素包括三个方面:1.数据表示与变换;2.数据的可视化呈现;3.用户交互。二、数据可视化设计数据可视化的设计可以简化为四个级联的层次:概括现实生活中用户遇到的问题抽象相应数据类型设计编码和交互方法实现算法和交互第4节

数据可视化理论基础三、可视化的基本图表基本的可视化图表按照所呈现的信息和视觉复杂程度通常可以分为两类:原始数据绘图和多视图协调关联。1.原始数据绘图原始数据绘图用于可视化原始数据的属性值,直观展示数据特征,典型的原始数据绘图如下:

股票数据轨迹图(数据轨迹)

房屋销售对比图(柱状图)直方图第4节

数据可视化理论基础三、可视化的基本图表1.原始数据绘图原始数据绘图用于可视化原始数据的属性值,直观展示数据特征,典型的原始数据绘图如下:

散点图等值线图(地形等高线图)饼图第4节

数据可视化理论基础三、可视化的基本图表2.多视图关联多视图关联将不同种类的绘图组合起来,每个绘图单元可以展现数据某个方面的属性,通常也允许用户进行一定程度的交互分析,提升用户对数据模式的识别能力。右图使用了不同视图来展示同一属性,通过使用相同的过滤条件和排序方式,使得比例尺中包含顺序相同的属性值。第4节

数据可视化理论基础四、可视化设计基本原则与主要步骤(一)可视化设计的基本原则可视化的首要任务是准确地展示和传达数据所包含的信息。(二)可视化设计的主要步骤设计制造一个可视化视图包括如下三个主要步骤:(1)数据到可视化的直观映射(2)视图选择与交互设计(3)数据的筛选为了提高可视化图形的有效性,有时设计还包括颜色、标记和动画等要素的设计。数据可视化作为数据展示的方式,本身与信息图、信息可视化、科学可视化以及统计图形密切相关,也是数据科学中必不可少的环节。数据科学在许多领域的应用也必然与相关领域的学科具有一定的关系。第5节数据可视化与其他学科领域的关系一、图形学、计算机仿真及人机交互计算机图形学关注空间建模、外观表达与动态呈现,它为可视化提供数据的可视编码和图形呈现的基础理论与方法。计算机仿真获得的数据是数据可视化的处理对象之一,而将仿真数据以可视化形式表达是计算机仿真的核心方法。在数据可视化中,通过人机界面接口实现用户对数据的理解和操纵,数据可视化的质量和效率需要最终用户的评判。因此,数据、人、机器之间的交互是数据可视化的核心。第5节数据可视化与其他学科领域的关系二、数据库与数据仓库数据库是按照数据结构来组织、存储和管理数据的仓库,它高效地实现数据的录入、查询、统计等功能。尽管现代数据库已经从最简单的存储数据表格发展到海量、异构数据库存储的大型数据库系统,但它的基本功能中仍然不包括复杂数据的关系和规则的分析。数据可视化通过数据的有效呈现,有助于复杂关系和规则的理解。数据库和数据仓库是大数据时代数据可视化方法中必须包含的两个环节。为了满足复杂大数据的可视化需求,必须考虑新型的数据组织管理和数据仓库技术。第5节数据可视化与其他学科领域的关系三、数据分析与数据挖掘数据分析是统计分析的扩展,指用数据统计、数值计算、信息处理等方法分析数据,采用已知的模型分析数据,计算与数据匹配的模型参数。数据挖掘指从数据中选择合适的数据类型,分析和挖掘大量数据背后的知识。目标是从大量、不完全、模糊随机的数据中,提取隐含在其中的有用的信息和知识。数据可视化和数据分析与数据挖掘的目标都是从数据中获取信息与知识,但手段不同。第5节数据可视化与其他学科领域的关系四、面向领域的可视化方法与技术数据可视化是对各类数据的可视化理论与方法的统称。在可视化历史上,与领域专家的深度结合导致了面向领域的可视化方法与技术。常见的面向领域的可视化技术有:1.生命科学可视化,指面向生物科学、生物信息学、基础医学、转化医学、临床医学等一系列生命科学探索与实践中产生的数据的可视化方法。2.表意性可视化,指以抽象、艺术、示意性的手法阐明、解释科技领域的可视化方法。3.地理信息可视化,指数据可视化与地理信息系统学科的交叉方向,它的研究主体是地理信息数据,包括建立在真实物理世界基础上的自然性和社会性事物及其变化规律。...第5节数据可视化与其他学科领域的关系五、信息视觉设计面向广义数据的视觉设计,是信息设计中的一个分支,可抽象为某种概念形式如属性、变量的某种信息。信息视觉设计包含了两个主要领域:统计图形学和信息图。统计图形学应用于统计数据相关的领域,它的大部分方法如散点图、热力图等方法已经是信息可视化的最基本方法。信息图限制于二维空间上的视觉设计,偏重于艺术的表达。第6节数据文件处理一、pandas读取数据文件pandas库是目前Python做数据分析必备的库,该库提供了各种读写数据文件的方法。支持的文件格式有csv、excel、spss、stata、pickle、hdf和sql等。示例见随书代码"01.ipynb"文件。导入pandas包的语法如下:importpandasaspd实际工作时我们处理的数据一般来自文件或数据库,数据文件有各种不同的格式。二、从JSON数据源导入数据JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,目前很多应用程序都以json格式作为数据导入导出的格式。下例是一个JSON文件的内容:{

"ID01":{"name":"大壮","age":20,"sex":"男"},

"ID02":{"name":"小明","age":21,"sex":"男"},

"ID03":{"name":"小美","age":21,"sex":"女"}}第6节数据文件处理三、导出数据到Excel、JSON和CSV处理好的数据可以保存为各种格式,常见的有Excel、JSON、csv等。导出到Excel将数据导出为excel有多种方法,如使用模块xlwt或openpyxl,最便捷的方法是使用pandas。importpandasaspddata={'id':['1','2','3'],'score':[90,85,87]}df=pd.DataFrame(data)df.to_excel('data/studata.xlsx') #使用pandas导出为excel文件导出到CSV文件CSV文件以逗号为数据的间隔符,导出时可以借助pandas。importpandasaspddata={'name':['张西','李明','刘风'],'score':[90,85,87]}df=pd.DataFrame(data)df.to_csv('data/stu.csv',encoding='GBK') #存为csv文件,指定用GBK中文编码第6节数据文件处理三、导出数据到Excel、JSON和CSV导出到json文件JSON文件可以在程序间共享数据,pandas也提供了导出为json文件的命令。json模块中的dump()函数也可导出json文件。importpandasaspddata={'id':['1','2','3'],'score':[90,85,87]}df=pd.DataFrame(data)df.to_json('data/studata.json') #方法1:利用pandas导出为json文件importjsonwithopen('data/studata2.json','w')asf:json.dump(data,f) #方法2:利用json模块的dump方法导出第6节数据文件处理四、从数据库导入数据Python自带SQLite模块,可直接支持SQLite这一微型数据库。其它数据库在安装相应驱动模块后都可以以统一的命令方式使用。使用某种数据库前需要引入相关的数据库驱动包。如使用SQLite,则引入sqlite包,语句为“importsqlite3”。如使用MySQL数据库,则引入pymysql包,语句为“import

pymysql”。操作时一般按以下步骤:(1)连接数据库引擎;(2)在选择的表上执行查询操作;(3)读取从数据库引擎返回的结果。第6节数据文件处理五、生成随机数据数据分析中经常要生成随机模拟数据,numpy.random模块提供了很多随机数函数,下面给出一些随机数生成的例子。importnumpyasnpnp.random.seed(7) #设定随机数种子,可指定任意种子值np.random.randint(1,9,size=(2,3)) #生成[1,9)区间的2行3列随机整数数组np.random.random(10) #生成10个[0.0,1.0)间的随机小数np.random.randn(3,4) #生成符合标准正态分布的3行4列二维数组np.random.normal(loc=2,scale=3,size=(3,4))#生成符合正态分布N(2,9)的3行4列二维数组np.random.uniform(2,5,size=(3,4)) #生成[2,5)范围内均匀分布的3行4列二维小数数组第6节数据文件处理五、生成随机数据下面的代码用随机数模拟生成价格波动序列。

importnumpyasnpimportmatplotlib.pyplotaspltnp.random.seed(7) #随机种子#符合正态分布N(0.2,1.44)的价格波动序列price=np.random.normal(loc=0.2,scale=1.2,size=100)y=np.cumsum(price) #累加价格波动plt.plot(y,'b.-') #折线图,此处x默认为[0,1,2,..,len(y)-1]plt.xlabel('Time') #设置x轴标签plt.ylabel('Value') #设置y轴标签第6节数据文件处理六、数据噪声的平滑处理我们日常处理的数据并不是非常干净的理想数据,数据中总是包含噪声或干扰,例如传感器采集的数据。我们希望图表能清晰地传递信息,使用户易于理解。因此,对真实数据的噪声做平滑处理是有意义的。下面代码先生成随机数据并加入噪声,后续进行了模拟平滑处理。

第6节数据文件处理六、数据噪声的平滑处理

importnumpyasnpimportmatplotlib.pyplotaspltdefmoving_average(interval,window_size):window=np.ones(int(window_size))/float(window_size)returnnp.convolve(interval,window,'same') #用np卷积函数做平滑

t=np.linspace(start=-4,stop=4,num=100)y=np.sin(t)+np.random.randn(len(t))*0.1 #加入随机数作为噪声y_av=moving_average(interval=y,window_size=10) #平滑处理plt.plot(t,y,"b.-",t,y_av,"r.-")plt.legend(['originaldata','smoothdata']) #显示图例plt.xlabel('Time')plt.ylabel('Value')plt.grid(True) #显示网格线随机数和噪声平滑处理第7节Anaconda开发环境一、Anaconda概述学习Python数据可视化之前我们先要准备好工作环境,包括:编辑器、解释器、可视化软件包、配套工具库等。集成开发环境(IDE)将提供上述工具的集成。Anaconda是一个开源的Python发行版本,包含了Python内核,同时还自带conda、numpy、seaborn、pandas和matplotlib等众多科学工具库及其依赖库。如果安装了Anaconda,就不再需要单独安装Python及其他常用工具库了,本书后面章节涉及的很多库均已包含。Anaconda支持主流的操作系统,包括Windows、Linux和MacOS。第7节Anaconda开发环境一、Anaconda概述(一)Anaconda安装1.下载Anaconda建议从Anaconda官网/archive/下载2023.9月版本,本书最新代码在此版本下调试通过。2.安装Anaconda如右图所示,建议安装时勾选"AddAnaconda3tomyPATH"选项,将安装路径添加到系统PATH环境变量中,方便后续在命令行上调用程序。第7节Anaconda开发环境一、Anaconda概述3.Anaconda程序组调试本书代码时推荐使用Spyder或JupyterNotebook工具。如需在命令行安装其他工具包,可选择“AnacondaPrompt”进入命令行环境,然后使用pip或conda工具安装第三方包。第7节Anaconda开发环境一、Anaconda概述(二)使用JupyterNotebook本书提供的代码文件需在Anaconda自带的JupyterNotebook环境下运行。在“开始”菜单中选择“Anaconda/JupyterNotebook”,计算机将启动一个命令行窗口运行Notebook的后台服务器(注:不要关闭此窗口),随后会启动默认的浏览器,呈现如下图所示的界面。Jupyter的使用请参看随书文档"jupyter配置.ipynb"。第7节Anaconda开发环境一、Anaconda概述(三)可视化绘图库使用Python进行数据可视化需要使用第三方可视化库。常用的可视化库有:lMatplotlib:这个绘图库使用最广泛,用户主要和Matplotlib.pyplot模块打交道。本书前面的章节重点介绍该库。lSeaborn:Seaborn

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论