Python程序基础与大数据分是下半部分7-13章课件_第1页
Python程序基础与大数据分是下半部分7-13章课件_第2页
Python程序基础与大数据分是下半部分7-13章课件_第3页
Python程序基础与大数据分是下半部分7-13章课件_第4页
Python程序基础与大数据分是下半部分7-13章课件_第5页
已阅读5页,还剩332页未读 继续免费阅读

下载本文档

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

文档简介

Python程序基础与大数据分析目录Python数据分析概述1.Python编程基础2.数据结构与函数3.NumPy数值计算4.Pandas基础5.Pandas数据处理与分析6.Matplotlib数据可视化7.财务数据分析8.股票数据量化分析9.商品数据分析10.客户画像分析11.采购质量管理分析12.信用卡欺诈交易分析13.基础篇实战篇7.Matplotlib数据可视化项目目标知识目标了解图表的组成元素和常用图表类型及其特征。了解使用Matplotlib绘制图表的基本步骤,以及其中的绘图函数及其说明。掌握使用rcParams参数设置图形属性的方法。掌握绘制折线图、直条图、饼图、散点图、直方图和箱形图的方法。项目目标能力目标能根据数据的可视化需求选择合适的图表。能够使用Matplotlib对数据进行可视化和分析。素养目标树立投身科学研究和技术创新的远大理想,激发强烈的使命感与责任心。从解决生活中的实际问题出发,提升以辩证的思维理解、分析、解决复杂问题的能力,培养精益求精的工匠精神、严谨的工作态度和创新思维。项目准备全班学生以

3~5

人为一组进行分组,各组选出组长。组长组织组员扫码观看“数据可视化的发展及应用场景”视频,讨论并回答下列问题。问题1:简述数据可视化的发展历史。问题2:列举数据可视化的应用场景(不少于3个)。数据可视化的发展及应用场景任务一可视化图表选择7.Matplotlib数据可视化任务二资产负债表数据可视化任务三

商品订单数据可视化任务描述数据通常是以文本或数值的形式存在,这种形式往往难以有效展示数据之间的关系和规律,也会给人十分枯燥的感觉。借助可视化图表,人们可以采用更直观的方式传达与沟通信息。请同学们思考一下,常用的数据可视化图表类型有哪些呢?一、图表的组成使用Matplotlib实现数据可视化的图表有多种。图例图表标题坐标轴及坐标轴标题画布绘图区网格线数据标签可视化图表都有哪些部分组成呢?显示图形的矩形区域,一张画布中可以包含多个绘图区。一、图表的组成坐标轴坐标轴标题绘图区画布绘图窗口中的白色区域,是其他组成部分的容器。说明x轴和y轴数据的含义。标识分类或数值大小的水平和垂直线,即

x

轴和

y

轴,具有标定数据值的刻度和刻度标签。图表的组成实例x轴的“1月”、y轴的22等。说明图表的主题。一、图表的组成数据标签网格线图表标题图例数据源中通常包含多个数据系列,在图表中可以用不同的颜色和标记等区分,图例用于说明这些颜色和标记的含义。一种辅助线条,是坐标轴上刻度线的延伸,它贯穿绘图区,以方便查看图表中的数据,网格线分为水平网格线和垂直网格线。标记图表中数据点的数值或信息。图表的组成二、常用图表类型1.折线图折线图常用于展示数据随时间变化的趋势,通过线条的波动可以判断数据在不同时间段的上升或下降趋势,还可以识别数据的波动峰值和谷值。二、常用图表类型2.直条图直条图通常用于比较不同类别或时间数据的差异,包括:柱形图:(柱形)是竖直的,用柱形的高度表示数值的大小;条形图:(条形)是水平的,用条形的长度表示数值的大小。堆积型直条图:在竖直方向或水平方向堆积,常用于展示不同组中同类别数据的总和与差异。二、常用图表类型3.饼图饼图通常用于展示各类别数据在整体中所占的比例。它将一个圆形划分为多个扇区,用不同的扇区表示每个类别的占比,每个扇区的大小与对应类别的占比成正比。二、常用图表类型4.散点图散点图既可以展示数据分布,也可以展示两个变量之间的相关性,展示变量相关性的散点图。相关关系大体上可分为:线性相关;非线性相关;不相关。二、常用图表类型4.散点图在线性相关中,两个变量的相关关系可以分为:正相关:两个变量的变动方向相同,一个变量的数值增加,另一个变量的数值也随之增加;两个变量的变动方向相同,一个变量的数值减少,另一个变量的数值也随之减少;负相关:两个变量的变动方向相反,一个变量的数值增加,另一个变量的数值随之减少;两个变量的变动方向相反,一个变量的数值减少,另一个变量的数值随之增加。二、常用图表类型5.直方图直方图是一种统计报告图,主要用于展示数据的分布情况。它将数据的值划分为若干个等宽、不重叠的区间,并统计每个区间内数据的数量或分布概率。实例成绩区间的学生数量;年龄区间的员工数量等。二、常用图表类型6.箱形图箱形图是一种用于展示数据分布情况的统计图表,通过它能够粗略地看出数据是否具有对称性及数据的离散程度等。它能够直观地展示数据的中位数、四分位数、异常值等信息,常用于比较多组数据的分布特征。任务实施大家动手试试吧。某服饰公司将对

2011—2023

年资产负债表进行可视化分析,请选择合适的图表满足以下不同的可视化需求。实例展示2023年负债合计和所有者权益合计在资产总计中的占比,应选择什么图表?分析:负债合计和所有者权益合计在资产总计中的占比是指在总资产中负债合计和所有者权益合计的组成与比例关系,因此选择饼图比较合适。实例展示2011—2023年货币资金的变化趋势,应选择什么图表?分析:货币资金变化趋势是指其在不同时间段的变化情况,如增长或下降趋势,因此选择折线图比较合适。实例对比展示2020—2023年非流动资产合计,应选择什么图表?分析:柱形图能够有效展示不同时间或不同类别数据之间的差异,因此选择柱形图比较合适。德育长廊“十四五”时期是我国乘势而上开启全面建设社会主义现代化国家新征程、向第二个百年奋斗目标进军的第一个五年,我国进入了新发展阶段,对我国民生保障各领域建设提出了新的更高要求。与十年前相比,人民生活,尤其是在出行、安全、信息获取等方面的体验有了质的飞跃,其中可视化技术功不可没,交通大数据分析与可视化、智能制造可视化、医药医疗可视化、消费零售可视化、银行金融可视化、物流供应链可视化等均已实现。科技在发展、企业在转型、人们在进步,让我们一起开拓创新,展现中国智慧。中国智慧

开拓创新任务一可视化图表选择7.Matplotlib数据可视化任务二资产负债表数据可视化任务三

商品订单数据可视化任务描述Matplotlib介绍与安装创建画布。绘制图表时默认会自动创建固定大小的画布,如果要创建特殊尺寸的图表,就需要使用函数创建画布。一、Matplotlib基础步骤3步骤4步骤2步骤1导入绘图库。(4)显示图表。绘制图表,根据需要设置图表标题、坐标轴标题和刻度、图例、网格线和数据标签等。使用Matplotlib绘制图表的基本步骤如下。一、Matplotlib基础格式:importmatplotlib.pyplotasplt使用Matplotlib绘制图表时,最常使用的是其中的pyplot

模块,导入该模块后,即可直接调用其中的函数绘制各种图表。导入pyplot模块的语法格式如下。函

数说

明figure(figsize)创建画布,其中的figsize表示画布大小,为包含两个元素的元组,两个元素分别表示宽度和高度,单位为英寸,默认为(6.4,4.8)subplot(nrows,ncols,index)创建子图,其中的nrows和ncols表示将画布划分为nrows行ncols列,默认均为1;index表示子图的编号,取值为1~nrows×ncols,在画布中自左向右计算,默认为1title(label,fontdict,loc)设置图表标题,其中的

label

表示标题文本;fontdict表示字体属性(fontsize、color等),为字典;loc

表示标题位置,可取“center”(居中)、“left”(左)、“right”(右)pyplot模块中的基本绘图函数及其说明一、Matplotlib基础函

数说

明pyplot模块中的基本绘图函数及其说明xlabel(xlabel)设置x轴标题,其中的xlabel表示x轴标题文本ylabel(ylabel)设置y轴标题,其中的ylabel表示y轴标题文本xlim(left,right)设置x轴刻度范围,其中的left表示最小值,right表示最大值,只能为数值ylim(bottom,top)设置

y

轴刻度范围,其中的

bottom

表示最小值,top

表示最大值,只能为数值xticks(locs,labels,rotation)/yticks(locs,labels,rotation)设置x轴或y轴刻度,其中的locs表示坐标轴上的刻度,为数值型数组;labels表示刻度的标签,也为数组;rotation表示坐标轴刻度及其标签逆时针旋转的角度,当locs和labels同时设置时,只显示labels的值一、Matplotlib基础函

数说

明pyplot模块中的基本绘图函数及其说明legend(labels,loc)设置图例,其中的labels表示图例文本;loc表示图例位置,具体的位置参数取值如下页表所示grid(axis)设置网格线,其中的axis表示网格线的方向,可取“x”(显示x轴网格线)、“y”(显示y轴网格线)、“both”(显示x轴和y轴网格线),默认为“both”text(x,y,s,**kwargs)设置数据标签,其中的x和y表示需要设置标签的数据的x轴和y轴坐标;s表示标签文本,为字符串;**kwargs表示标签的参数,如fontsize(字体大小)、ha(水平对齐方式,可取“center”“right”“left”)、va(垂直对齐方式,可取“center”“bottom”“top”)show()显示图表一、Matplotlib基础图例位置参数取值取

值说

值说

值说

明best(默认)自适应lowerright右下方centerleft左侧居中upperright右上方lowerleft左下方right右侧upperleft左上方lowercenter下方居中center正中uppercenter上方居中centerright右侧居中——提示savefig(fname)函数保存绘制的图形,且须在show()函数前执行。fname表示保存的文件名,可以包含路径。实例将图形保存在D盘根目录下,并命名为“1月销售额.png”。plt.savefig(r'D:\1月销售额.png')一、Matplotlib基础说明:rcParams

参数存储在字典变量中,修改字典中键的值即可根据需要修改默认属性。可以修改图形的各种默认属性,包括:画布大小;线条样式;坐标轴;字体等。rcParams

参数一、Matplotlib基础为确保中文字符和负号字符在图表中正常显示,可以使用pyplot模块的rcParams参数对其进行设置,代码如下。plt.rcParams['font.sans-serif']='SimHei' #设置中文字体plt.rcParams['axes.unicode_minus']=False #设置负号的显示方式提示将axes.unicode_minus设置为False时,Matplotlib会使用ASCII的简短负号字符(“-”),基本所有字体都支持这种负号字符。二、折线图折线图是最常用和最基础的可视化图表,表示方式:x轴:时间;y轴:对应的值。折线图二、折线图plot()函数格式:pyplot.plot(x,y,color=None,linestyle='-',linewidth=1.5,marker=None,markersize=1,alpha=1)(1)x:x轴的数据,其值可以是:列表;数组。(2)y:y轴的数据,其值可以是:列表;数组;Series对象;DataFrame对象。用于绘制折线图。(3)color:线条颜色。颜色缩写颜

色颜色缩写颜

色b蓝色m品红g绿色y黄色r红色k黑色c青色w白色常用的颜色缩写二、折线图plot()函数格式:pyplot.plot(x,y,color=None,linestyle='-',linewidth=1.5,marker=None,markersize=1,alpha=1)(4)linestyle:线条类型,可取:“-”:实线;“--”:双画线;“-.”:点画线;“:”:虚线;默认为“-”。(5)linewidth:线条宽度,取值为0~10,默认为1.5。用于绘制折线图。(6)marker:标记类型。marker常用取值及其说明取

值说

明取

值说

明o圆s正方形D菱形*星号h竖六边形d小菱形H横六边形v朝下的三角形-水平线<朝左的三角形8八边形>朝右的三角形p五边形^朝上的三角形,像素|垂直线+加号X实叉号.点None无二、折线图plot()函数格式:pyplot.plot(x,y,color=None,linestyle='-',linewidth=1.5,marker=None,markersize=1,alpha=1)(7)markersize:标记大小,取值为0~10,默认为1。(8)alpha:颜色的透明度,取值为0~1,默认为1,表示不透明。用于绘制折线图。二、折线图【例7-1】

使用折线图展示B组各季度产量。第三步第二步第一步绘制折线图;设置图表标题、y轴标题和数据标签;显示图表。读取“产量.csv”文件中的数据(见图

)。导入pandas库和matplotlib库的pyplot模块;使用rcParams参数设置中文字体。“产量.csv”文件中的数据问题分析二、折线图【例7-1】

使用折线图展示B组各季度产量。【参考程序】importpandasaspd #导入pandas库importmatplotlib.pyplotasplt #导入matplotlib库的pyplot模块plt.rcParams['font.sans-serif']='SimHei' #设置中文字体#读取数据,并将第1列数据指定为行标签,且指定编码方式df=pd.read_csv('产量.csv',index_col=0,encoding='GBK')x=df.index #将产量数据的行标签作为x轴数据y=df['B组'] #将B组产量数据作为y轴数据#绘制折线图,并设置线条类型和标记类型plt.plot(x,y,linestyle=':',marker='o')二、折线图【例7-1】

使用折线图展示B组各季度产量。【参考程序】plt.title('B组各季度产量') #设置图表标题plt.ylabel('产量(万吨)') #设置y轴标题#设置数据标签fora,binzip(x,y):plt.text(a,b,b,ha='left')plt.show() #显示图表知识库zip()函数一个Python内置函数,用于将多个可迭代对象(如列表、数组、字符串等)中对应位置的元素打包成一个个元组,然后返回由这些元组组成的迭代器。二、折线图【运行结果】

例7-1程序运行结果知识库kind参数:指定图表类型实现各种可视化效果,其值可以取:“line”:折线图;“bar”:柱形图;“barh”:条形图;“hist”:直方图;“box”:箱形图;“pie”:饼图;“scatter”:散点图等。plot()接口用户使用该接口可以方便地绘制常见的图表。实例#绘制柱形图

df.plot(kind='bar')二、折线图【例7-2】

在同一图表中使用折线图展示3个组各季度产量。绘制折线图时,将产量数据作为

y

轴数据,包含

A、B、C

三组的产量,将产量数据的列标签作为图例,说明不同颜色折线对应的组。问题分析【参考程序】importpandasaspd #导入pandas库importmatplotlib.pyplotasplt #导入matplotlib库的pyplot模块plt.rcParams['font.sans-serif']='SimHei'#设置中文字体#读取数据,并将第1列数据指定为行标签df=pd.read_csv('产量.csv',index_col=0,encoding='GBK')plt.plot(df.index,df,marker='*') #绘制折线图,并设置标记类型plt.legend(df.columns) #设置图例plt.title('3个组各季度产量') #设置图表标题plt.ylabel('产量(万吨)') #设置y轴标题plt.show() #显示图表二、折线图【运行结果】

例7-2程序运行结果提示由于图例会使用图形样式,因此设置图例须在图形绘制完成后进行。三、直条图pyplot模块提供了:bar()函数:绘制柱形图;barh()函数:绘制条形图。直条图三、直条图bar()函数格式:pyplot.bar(x,height,width=0.8,bottom=None,color=None)(1)x:x轴的数据。(2)height:柱形的高度,即y轴的数据。(3)width:柱形的宽度,默认为0.8。(4)bottom:柱形底部在y轴的位置,默认为0。(5)color:柱形的填充颜色,其值可以是:单个颜色:柱子的颜色;颜色列表:柱形图将循环使用给定颜色。用于绘制柱形图。三、直条图barh()函数格式:pyplot.barh(y,width,height=0.8,left=None,color=None)(1)y:y轴的数据。(2)width:条形的长度,即x轴的数据。(3)height:条形的高度,默认为0.8。(4)left:条形左侧在x轴的位置,默认为0。(5)color:条形的填充颜色,其值可以是:单个颜色:柱子的颜色;颜色列表:柱形图将循环使用给定颜色。用于绘制条形图。三、直条图【例7-3】

在同一图表的两个子图中分别使用柱形图和条形图展示A组和C组各季度产量。将画布划分为1行2列,柱形图显示在第1行第1列的位置,条形图显示在第1行第2列的位置。问题分析【参考程序】importpandasaspd #导入pandas库importmatplotlib.pyplotasplt #导入matplotlib库的pyplot模块plt.rcParams['font.sans-serif']='SimHei' #设置中文字体#读取数据,并将第1列数据指定为行标签df=pd.read_csv('产量.csv',index_col=0,encoding='GBK')plt.figure(figsize=(10,5)) #创建空白画布plt.subplot(1,2,1) #创建一个子图,用于绘制柱形图data=df['A组'] #提取A组产量数据x=data.index #将A组产量数据的行标签作为x轴数据height=data #将A组产量数据作为柱形的高度三、直条图【例7-3】

在同一图表的两个子图中分别使用柱形图和条形图展示A组和C组各季度产量。【参考程序】plt.bar(x,height) #绘制柱形图plt.title('A组各季度产量') #设置图表标题plt.ylabel('产量(万吨)') #设置y轴标题plt.subplot(1,2,2) #创建第2个子图,用于绘制条形图data=df['C组'] #提取C组产量数据y=data.index #将C组产量数据的行标签作为y轴数据width=data #将C组产量数据的值作为条形的长度plt.barh(y,width) #绘制条形图plt.title('C组各季度产量') #设置图表标题plt.xlabel('产量(万吨)') #设置x轴标题plt.show() #显示图表三、直条图【运行结果】

例7-3程序运行结果四、饼图pie()函数格式:pyplot.pie(x,explode=None,labels=None,colors=None,autopct=None,pctdistance=0.6,labeldistance=1.1,startangle=0,counterclock=True,radius=None)(1)x:绘制扇区的数据序列。(2)explode:各扇区相对圆心的偏移距离,为序列:用相对于半径的比例表示;用于分离型饼图或突出显示某个扇区。(3)labels:各扇区的文字标签,为序列。(4)colors:各扇区的颜色,为序列,默认为系统默认的颜色循环。(5)autopct:扇区中显示百分比的格式,通常为格式字符串。用于绘制饼图。饼图实例0.1表示扇区相对圆心的偏移距离为半径的10%四、饼图pie()函数(6)pctdistance:扇区中数值标签与圆心的距离,取值为0.0~1.0:0.0:表示在圆心;1.0:表示在边缘;默认为0.6。用于绘制饼图。(7)labeldistance:文字标签与圆心的距离,用相对于半径的比例表示,其值:小于1:文字标签在扇区内;大于等于1:文字标签在扇区外;默认为1.1。格式:pyplot.pie(x,explode=None,labels=None,colors=None,autopct=None,pctdistance=0.6,labeldistance=1.1,startangle=0,counterclock=True,radius=None)四、饼图pie()函数(8)startangle:饼图开始绘制的角度,单位为度,默认为0,表示第1个扇区从x轴的正方向逆时针开始绘制。(9)counterclock:是否逆时针绘制饼图,为布尔值,默认为True,表示逆时针绘制。(10)radius:饼图的半径,默认为1.0。用于绘制饼图。知识库颜色循环默认包含10种颜色,当在同一子图中绘制不同图形时,会默认按顺序应用其中的颜色,当图形数大于10时,自动循环。格式:pyplot.pie(x,explode=None,labels=None,colors=None,autopct=None,pctdistance=0.6,labeldistance=1.1,startangle=0,counterclock=True,radius=None)四、饼图【例7-4】

使用饼图展示各组总产量占比,并突出显示C组总产量占比。要展示各组总产量,先要使用sum()函数统计各组总产量。问题分析【参考程序】importpandasaspd #导入pandas库importmatplotlib.pyplotasplt #导入matplotlib库的pyplot模块plt.rcParams['font.sans-serif']='SimHei' #设置中文字体#读取数据,并将第1列数据指定为行标签df=pd.read_csv('产量.csv',index_col=0,encoding='GBK')data=df.sum(axis=0) #统计各组总产量labels=data.index #将总产量数据的行标签作为扇区文字标签#设置每个扇区相对圆心的偏移距离,突出显示第3个扇区explode=(0,0,0.075)四、饼图【例7-4】

使用饼图展示各组总产量占比,并突出显示C组总产量占比。【参考程序】#绘制饼图,并设置扇区相对圆心的偏移距离,以及文字标签和百分比的显示格式plt.pie(data,explode=explode,labels=labels,autopct='%0.1f%%')#设置图表标题,并设置字体大小plt.title('各组总产量占比',fontdict={'fontsize':16})plt.show() #显示图表【运行结果】

例7-4程序运行结果五、散点图scatter()函数格式:pyplot.scatter(x,y,s=None,c=None,marker=None)(1)x:x轴的数据。(2)y:y轴的数据。(3)s:标记的大小,其值可以是:单一数值:所有点的大小相同;数组:每个点的大小不同,点的大小反映第三维度的数据,此时为气泡图。(4)c:标记的颜色。(5)marker:标记的类型。用于绘制散点图。散点图五、散点图【例7-5】

使用散点图展示股票涨跌幅与成交量的相关性。“股票数据.csv”文件中的数据如图所示。问题分析“股票数据.csv”文件中的数据(部分)五、散点图【例7-5】

使用散点图展示股票涨跌幅与成交量的相关性。【参考程序】importpandasaspd #导入pandas库importmatplotlib.pyplotasplt #导入matplotlib库的pyplot模块plt.rcParams['font.sans-serif']='SimHei' #设置中文字体plt.rcParams['axes.unicode_minus']=False #设置负号的显示方式df=pd.read_csv('股票数据.csv',encoding='GBK') #读取数据#绘制散点图,并设置标记的颜色plt.scatter(df['涨跌幅'],df['成交量'],c='b')plt.title('涨跌幅与成交量的相关性') #设置图表标题plt.xlabel('涨跌幅(%)') #设置x轴标题plt.ylabel('成交量') #设置y轴标题plt.show() #显示图表五、散点图【运行结果】

例7-5程序运行结果六、直方图在直方图中,一般用x轴表示变量的区间,用y轴表示变量区间内数据的频数或频率。直方图六、直方图hist()函数格式:pyplot.hist(x,bins=None,range=None,color=None,edgecolor=None,density=False)(1)x:x轴的数据,为序列。(2)bins:区间的个数(默认为10)或数据的分布区间,取值为:整数(均匀划分):表示绘制柱形的个数;序列:表示数据的分布区间,每个区间不包含终点。用于绘制直方图。实例[0,25,50,75,100]表示什么?数据的下限值和上限值分别为0和100;以间隔25划分为4个区间;每个区间不包含终点。六、直方图hist()函数格式:pyplot.hist(x,bins=None,range=None,color=None,edgecolor=None,density=False)(3)range:数据的范围,为元组,默认为数据的最小值和最大值。(4)color:柱形的填充颜色。(5)edgecolor:柱形的边框颜色。(6)density:是否进行归一化处理,将频数转化为频率,为布尔值:True:进行转换;False:不转换;默认为False。用于绘制直方图。六、直方图【例7-6】

使用直方图展示股票不同涨跌幅区间的交易日天数。【参考程序】importpandasaspd #导入pandas库importmatplotlib.pyplotasplt #导入matplotlib库的pyplot模块plt.rcParams['font.sans-serif']='SimHei' #设置中文字体plt.rcParams['axes.unicode_minus']=False #设置负号的显示方式df=pd.read_csv('股票数据.csv',encoding='GBK') #读取数据#绘制直方图,并设置区间个数和柱形边框颜色plt.hist(df['涨跌幅'],bins=20,edgecolor='w')plt.title('不同涨跌幅区间交易日天数') #设置图表标题六、直方图【运行结果】

例7-6程序运行结果【参考程序】plt.xlabel('涨跌幅(%)') #设置x轴标题plt.ylabel('交易日天数') #设置y轴标题plt.show() #显示图表七、箱形图boxplot()函数格式:pyplot.boxplot(x,notch=None,whis=None,widths=None,showmeans=None,meanprops=None)(1)x:绘制箱形图的数据,其值可以是:一维数组;列表;嵌套列表:可以为每个子列表绘制一个箱形图:所有箱形图参数设置一致;如果每个箱形图需要设置不同的参数,可以使用多个boxplot()函数。(2)notch:是否以凹口形式显示箱形图,其值可取:True:凹口;False:非凹口;默认为False。用于绘制箱形图。箱形图七、箱形图boxplot()函数格式:pyplot.boxplot(x,notch=None,whis=None,widths=None,showmeans=None,meanprops=None)(3)whis:指定上下限值与上下四分位数的距离,默认为

1.5

倍的四分位距;假设使用

Q1

Q2

分别表示上四分位数和下四分位数:上限值=Q1+(Q1−Q2)*1.5;下限值=Q2−(Q1−Q2)*1.5。(4)widths:箱体的宽度,默认为0.5。用于绘制箱形图。(5)showmeans:是否显示数据均值标记,其值可取:True:显示;False:不显示;默认为False。(6)meanprops:设置均值标记的属性,内容有:类型——marker;大小——markersize;颜色——markerfacecolor。七、箱形图【例7-7】

使用箱形图展示股票成交金额分布。【参考程序】importpandasaspd #导入pandas库importmatplotlib.pyplotasplt #导入matplotlib库的pyplot模块plt.rcParams['font.sans-serif']='SimHei' #设置中文字体plt.rcParams['axes.unicode_minus']=False #设置负号的显示方式df=pd.read_csv('股票数据.csv',encoding='GBK') #读取数据#绘制箱形图,并设置显示均值标记,以及标记的类型和大小plt.boxplot(df['成交金额'],showmeans=True,meanprops={'marker':'o','markersize':5})plt.show() #显示图表七、箱形图【运行结果】

例7-7程序运行结果任务实施大家动手试试吧。对某服饰公司

2011—2023

年资产负债表数据进行可视化,数据保存在“资产负债表.csv”文件中,内容如图所示。“资产负债表.csv”文件中的数据(部分)任务实施>【参考程序】importpandasaspd #导入pandas库importmatplotlib.pyplotasplt #导入matplotlib库的pyplot模块#设置列标签和数据右对齐显示pd.set_option('display.unicode.east_asian_width',True)plt.rcParams['font.sans-serif']='SimHei' #设置中文字体plt.rcParams['axes.unicode_minus']=False #设置负号的显示方式#读取数据,并将第1列数据指定为行标签df=pd.read_csv('资产负债表.csv',index_col=0,encoding='GBK')df=df.T.sort_index() #对df进行转置和按行标签升序排列处理print(df) #输出df1.获取和处理资产负债表数据读取“资产负债表.csv”文件中的数据,存储到DataFrame对象df中,并对df进行转置和按行标签升序排列处理,最后输出df,实现代码如下。任务实施【运行结果】数据获取和处理结果任务实施>【参考程序】#提取2023年负债合计和所有者权益合计数据data1=df.loc[['2023/12/31'],['负债合计(万元)','所有者权益(或股东权益)合计(万元)']]labels=['负债合计','所有者权益合计'] #定义文字标签#绘制饼图plt.pie(data1.iloc[0],labels=labels,autopct='%0.1f%%')plt.title('2023年负债合计和所有者权益合计占比') #设置图表标题plt.show()2.2023年负债合计和所有者权益合计占比可视化使用饼图展示2023年负债合计和所有者权益合计占比,首先从df中提取2023年负债合计和所有者权益合计数据,然后将提取数据的第1行作为绘制饼图的数据,实现代码如下。任务实施【运行结果】2023年负债合计和所有者权益合计占比饼图任务实施>【参考程序】plt.figure(figsize=(10,6)) #创建空白画布x=df.index #将数据的行标签作为x轴数据y=df['货币资金(万元)'] #将货币资金数据作为y轴数据plt.plot(x,y,color='m',marker='d') #绘制折线图plt.title('2011—2023年货币资金') #设置图表标题plt.ylabel('货币资金(万元)') #设置y轴标题plt.xticks(rotation=30) #设置x轴刻度标签旋转的角度plt.show() #显示图表3.2011—2023年货币资金变化趋势可视化使用折线图展示2011—2023年货币资金的变化趋势,将df的行标签作为x轴数据,将货币资金数据作为y轴数据,实现代码如下。任务实施【运行结果】2011—2023年货币资金折线图任务实施>【参考程序】#提取2020—2023年非流动资产合计数据data2=df['非流动资产合计(万元)'][9:]x=df.index[9:] #将提取数据的行标签作为x轴数据height=data2 #将提取的数据作为柱形的高度width=0.6 #设置柱形的宽度plt.bar(x,height,width,color='c') #绘制柱形图plt.title('2020—2023年非流动资产合计') #设置图表标题plt.ylabel('非流动资产合计(万元)') #设置y轴标题plt.show()4.2020—2023年非流动资产合计可视化使用柱形图展示

2020—2023

年非流动资产合计的对比情况,首先提取

2020—2023

年非流动资产合计数据,然后将提取数据的行标签作为

x

轴数据,将提取的数据作为柱形的高度,实现代码如下。任务实施【运行结果】

2020—2023年非流动资产合计柱形图德育长廊虽然Python语言相对容易入门,但是要写出高质量的Python代码却需要严谨细致的态度和持续的努力。通过调用Matplotlib库中的绘图函数可以绘制各类图表,绘图函数用法相似但参数又有所不同,只有足够细致、严谨才能减少代码编写错误。为此,我们在学习编程时要践行鲁班的工匠精神,勤于思考、严谨细致、孜孜不倦。孜孜不倦,学习鲁班工匠精神任务一可视化图表选择7.Matplotlib数据可视化任务二资产负债表数据可视化任务三商品订单数据可视化任务描述某服饰公司近年来积极推动智慧零售转型升级,通过对销售数据可视化和分析,识别销售数据中的问题和挖掘隐藏的商业信息。如何对订单数据进行可视化和分析,将复杂的销售数据以图表的形式呈现?商品订单数据可视化任务实施对某服饰公司2月份的订单数据进行可视化,数据保存在“订单数据.xlsx”文件中。“订单数据.xlsx”文件中的数据(部分)大家动手试试吧。任务实施>【参考程序】importpandasaspd #导入pandas库importmatplotlib.pyplotasplt #导入matplotlib库的pyplot模块plt.rcParams['font.sans-serif']='SimHei' #设置中文字体plt.rcParams['axes.unicode_minus']=False #设置负号的显示方式df=pd.read_excel('订单数据.xlsx') #读取数据1.获取订单数据读取“订单数据.xlsx”文件中的数据,存储到DataFrame对象df中,实现代码如下。任务实施>【参考程序】df1=df.groupby('商品类别').agg({'数量':'sum'})#根据商品类别分组,并统计各类商品的销售数量df1=df1.sort_values(by='数量') #按数量升序排列数据plt.barh(df1.index,df1['数量']) #绘制条形图plt.title('各类商品销售数量') #设置图表标题plt.xlabel('销售数量') #设置x轴标题plt.ylabel('商品类别') #设置y轴标题plt.show() #显示图表2.商品销售数量可视化企业通过对商品的销售数量进行可视化和分析,可以更全面地了解市场动态,更有效地制订销售策略,从而提高销售业绩和市场竞争力。(1)使用条形图展示各类商品的销售数量。首先统计各类商品的销售数量,然后按数量降序排列数据,最后绘制条形图。任务实施【运行结果】

各类商品销售数量条形图结果说明T恤的销售数量最高,休闲鞋的销售数量最低。2.商品销售数量可视化任务实施>【参考程序】#创建数据透视表,统计不同周次各类商品的销售数量df2=df.pivot_table(values='数量',index='周次',columns='商品类别',aggfunc='sum')df2.plot(kind='bar') #绘制柱形图plt.legend(ncol=2) #设置图例两列显示plt.title('不同周次各类商品销售数量') #设置图表标题plt.ylabel('销售数量') #设置y轴标题plt.xticks(rotation=0) #设置x轴刻度标签旋转的角度plt.show() #显示图表2.商品销售数量可视化(2)使用柱形图展示不同周次各类商品的销售数量。首先创建透视表统计不同周次各类商品的销售数量,然后绘制柱形图。任务实施【运行结果】不同周次各类商品销售数量柱形图结果说明第6周的T恤销售数量最高;第8周的卫衣销售数量最低,小于5。2.商品销售数量可视化任务实施>【参考程序】df3=df[df['商品类别']=='围巾'].groupby('订单日期').agg({'数量':'sum'}) #提取围巾的订单数据,并按订单日期分组求和汇总销售数量bins=[0,20,40,60,80,100] #定义分布区间plt.hist(df3['数量'],bins=bins,edgecolor='w') #绘制直方图plt.title('围巾不同销售数量区间天数') #设置图表标题plt.xlabel('销售数量') #设置x轴标题plt.ylabel('天数') #设置y轴标题plt.show() #显示图表2.商品销售数量可视化(3)使用直方图展示围巾不同销售数量区间的天数。首先根据商品类别提取围巾的订单数据,并按订单日期分组求和汇总销售数量,然后绘制直方图。任务实施【运行结果】围巾不同销售数量区间天数直方图结果说明有两天围巾的销售数量超过

80

件,有

7

天围巾的销售数量为40~60

件,由于订单数据中的总天数为

25

天,而直方图中各区间天数累计为

18

天,因此还有7天没有围巾订单。2.商品销售数量可视化任务实施>【参考程序】#将订单数据按商品类别分组,并求和汇总销售数量df4=df.groupby('商品类别').agg({'数量':'sum'})#按数量降序排列数据df4=df4.sort_values(by='数量',ascending=False)#绘制饼图plt.pie(df4['数量'],labels=df4.index,autopct='%0.1f%%')plt.title('各类商品销售数量占比') #设置图表标题plt.show() #显示图表2.商品销售数量可视化(4)使用饼图展示各类商品销售数量占比。首先将订单数据按商品类别分组,并求和汇总各类别商品销售数量,然后按数量降序排列数据,最后绘制饼图,并设置扇区中的百分比格式为保留1位小数。任务实施各类商品销售数量占比饼图结果说明从左图可以看出,销售数量占比前3名的商品是T恤、卫衣和围巾;占比后两名的商品是运动服和休闲鞋。2.商品销售数量可视化【运行结果】任务实施>【参考程序】#创建数据透视表,统计不同日期各类商品的销售数量df5=df.pivot_table(values='数量',index='订单日期',columns='商品类别',aggfunc='sum',fill_value=0)plt.scatter(df5['T恤'],df5['运动服']) #绘制散点图plt.title('T恤和运动服销售数量的相关性') #设置图表标题plt.xlabel('T恤') #设置x轴标题plt.ylabel('运动服') #设置y轴标题plt.show() #显示图表2.商品销售数量可视化(5)使用散点图展示

T

恤和运动服销售数量的相关性。首先创建数据透视表,统计不同日期各类商品的销售数量,然后绘制散点图。任务实施T恤和运动服销售数量的相关性散点图结果说明从左图可以看出,T恤和运动服的销售数量不相关。2.商品销售数量可视化【运行结果】任务实施>【参考程序】#将订单数据按订单日期分组,并求和汇总销售金额df6=df.groupby('订单日期').agg({'金额':'sum'})plt.figure(figsize=(10,6)) #创建空白画布plt.plot(df6.index,df6,marker='o') #绘制折线图plt.title('2月份每日商品销售金额') #设置图表标题plt.ylabel('销售金额(元)') #设置y轴标题plt.show() #显示图表3.商品销售金额可视化企业通过对商品销售金额进行可视化和分析,可以了解销售金额的变化趋势,预测库存需求,更全面地了解市场动态,为业务决策提供数据支持,提高企业的市场竞争力。(1)使用折线图展示2月份每日商品销售金额的变化趋势。首先将订单数据按订单日期分组,并求和汇总每日商品销售金额,然后绘制折线图。任务实施2月份每日商品销售金额折线图结果说明2

月份上半月每日商品销售金额普遍比下半月每日销售金额高,10日的销售金额最高,17日的销售金额最低。3.商品销售金额可视化【运行结果】任务实施>【参考程序】#绘制直方图plt.hist(df['金额'],bins=10,color='y',edgecolor='w')plt.title('不同金额区间订单数量') #设置图表标题plt.xlabel('订单金额(元)') #设置x轴标题plt.ylabel('订单数量') #设置y轴标题plt.show() #显示图表3.商品销售金额可视化(2)使用直方图展示不同金额区间的订单数量。绘制直方图,设置区间的数量为

10,柱形的填充颜色为黄色,柱形的边框颜色为白色。任务实施不同金额区间订单数量直方图结果说明大部分订单金额小于3000元,有极少数订单金额在5000元左右。3.商品销售金额可视化【运行结果】任务实施>【参考程序】#将订单数据按商品类别分组,并提取金额数据转换为列表data=df.groupby('商品类别')['金额'].apply(list)plt.boxplot(data.apply(list)) #绘制箱形图plt.title('各类商品订单金额分布') #设置图表标题plt.xticks(range(1,len(data)+1),data.index) #设置x轴刻度标签plt.ylabel('订单金额(元)') #设置y轴标题plt.show() #显示图表3.商品销售金额可视化(3)使用箱形图展示各类商品订单金额的分布情况。首先将订单数据按商品类别分组,并提取金额数据转换为列表,然后绘制箱形图,并设置x轴的刻度标签为各类商品的名称。任务实施各类商品订单金额分布箱形图结果说明订单数据中没有异常值,T

恤、卫衣和围巾的订单金额分布比较对称,且围巾的订单金额整体较低,休闲鞋的订单金额较多分布在

3

000

元以下,运动服的订单金额较多分布在2000元以上。3.商品销售金额可视化【运行结果】课堂练习以上分别从销售数量和销售金额两个维度对订单数据进行了分析,接下来请从地域角度对订单数据进行可视化和分析。(1)使用条形图展示各地区的销售金额。(2)使用饼图展示销售金额第一的地区各类商品的销售数量。项目总结Matplotlib数据可视化可视化图表选项图表的组成常用图表类型资产负债表数据可视化Matplotlib基础折线图直条图饼图散点图直方图箱型图统计计算网站数据谢谢您的观看!Python程序基础与大数据分析目录Python数据分析概述1.Python编程基础2.数据结构与函数3.NumPy数值计算4.Pandas基础5.Pandas数据处理与分析6.Matplotlib数据可视化7.财务数据分析8.股票数据量化分析9.商品数据分析10.客户画像分析11.采购质量管理分析12.信用卡欺诈交易分析13.基础篇实战篇8.财务数据分析项目目标知识目标了解财务数据和财务数据分析的概念、意义及应用价值。了解财务数据的合并和清洗。了解财务数据的绝对数指标和相对数指标。了解财务数据可视化常用图表。项目目标能力目标能够使用pandas对财务数据进行处理,对财务指标进行计算和分析。能够使用matplotlib对财务数据进行可视化。素养目标在大数据时代,学习新工具、新方法,树立与时俱进的观念。通过财务数据分析,提升对财务数据的敏感性和财会专业素养。项目准备全班学生以

3~5

人为一组进行分组,各组选出组长。组长组织组员扫码观看“财务数据来源及采集工具”视频,讨论并回答下列问题。问题1:常见的财务数据来源有哪些?问题2:常用的财务数据采集工具有哪些?财务数据来源及采集工具任务一财务数据获取8.财务数据分析任务二财务数据处理任务三财务数据分析任务四财务数据可视化任务描述在当今的商业环境中,财务数据分析对于投资者的决策制订至关重要,可助力投资者实现科学决策。请同学们思考一下,

如何使用Python获取财务数据呢?财务数据分析的概念、意义和应用价值获取财务数据财务数据一、财务数据财务报表数据12345财务指标数据税务数据审计数据预算数据请同学们思考一下,

财务数据主要包括哪些内容呢?一、财务数据资产负债表利润表现金流量表反映企业在特定时期内的财务状况,包括:企业的资产;负债;所有者权益等;财务报表数据财务报表数据包括:反映企业在特定时期内的经营成果,包括:营业收入;成本;净利润等;反映企业在特定时期内现金的流入和流出情况。一、财务数据本项目的数据源为股票代码为“300400”的公司

2021—2023

年的资产负债表、利润表和现金流量表数据,保存在

9

个工作簿中,分别为:2021

年资产负债表:300400_2021balanceSheet.xlsx2022

年资产负债表:300400_2022balanceSheet.xlsx;2023年资产负债表:300400_2023balanceSheet.xlsx;2021

年利润表:300400_2021profitstatement.xlsx;2022

年利润表:300400_2022profitstatement.xlsx;2023

年利润表:300400_2023profitstatement.xlsx;2021

年现金流量表:300400_2021cashFlow.xlsx;2022

年现金流量表:300400_2022cashFlow.xlsx;2023

年现金流量表:300400_2023cashFlow.xlsx。二、财务数据分析>1.财务数据分析的概念和意义借助大数据技术,企业可以更高效地分类、存储和分析大量的分散数据,从而提高信息处理的速度和准确性,揭示更深层次的商业见解。财务数据分析是指利用大数据技术对企业财务数据进行深入挖掘和分析。财务数据分析包括:数据的采集、清洗和整理数据的分析和可视化二、财务数据分析>1.财务数据分析的概念和意义提升决策效率;优化资源配置;发现潜在风险;增强竞争力;推动财务管理创新等。总的来说,财务数据分析不仅是现代企业财务管理的重要工具,也是企业实现数字化转型的关键路径之一。请同学们思考一下,

企业财务数据分析的重要意义是什么?二、财务数据分析>2.财务数据分析的应用价值从狭义上讲,财务数据分析的重点是对与财务相关的数据进行分析,挖掘其中的价值,帮助财务人员有效识别和减少企业的财务漏洞和风险,改善企业的财务管理流程和体系,提高财务管理的效率。财务数据分析比较典型的应用场景是财务共享中心的财务数据分析。财务共享中心汇聚了集团企业完整的财务数据,以及大量非结构化数据,操作如下:狭义的应用价值实例各类合同和发票等。实例发票作假;合同存在过度承诺条款;住宿费用超标;部门预算超标;未获总经理审批直接提请支付大额款项等。采集这些非结构化数据;转换成结构化数据;与财务数据进行对比分析;发现企业各种合同或费用

报销中的财务政策违规

情况;二、财务数据分析>2.财务数据分析的应用价值从广义上讲,在数据化时代,企业的业务与财务正在逐渐融合,业财一体化是未来的发展趋势,操作如下:采集数据:企业内部的经营数据;外部的行业市场数据;同行竞争数据等;从财务的视角对企业经营管理过程进行分析;帮助企业发现在经营管理过程中是否存在问题,如何提高效率等。广义的财务数据分析范畴还包括:数据审计;数据风控等;通过采集大量的财务类和业务类数据,以及外部数据,从经营合规、风险防范的视角帮助企业提升管理水平。广义的应用价值实例财务部门通过分析营销数据,可以发现企业在产品研发、客户经营、市场开拓等方面存在的问题及其对企业财务状况所产生的影响,从而帮助企业管理人员制订更有效的经营管理和改善措施。任务实施2021—2023

年资产负债表:存储到

DataFrame

对象

zf2021、zf2022、zf2023

中;2021—2023

年利润表数据:存储到

DataFrame

对象

lr2021、lr2022、lr2023

中;2021—2023

年现金流量表数据:存储到

DataFrame

对象

xl2021、xl2022、xl2023

中;输出

2023

年资产负债表、利润表和现金流量表前

5

行数据。大家动手试试吧。任务实施【参考程序】importpandasaspd #导入pandas库#设置输出的宽度无限制,即输出完整的列且不换行pd.set_option('display.width',None)#设置列标签和数据右对齐显示pd.set_option('display.unicode.east_asian_width',True)#获取2021—2023年资产负债表数据zf2021=pd.read_excel('300400_2021balanceSheet.xlsx')zf2022=pd.read_excel('300400_2022balanceSheet.xlsx')zf2023=pd.read_excel('300400_2023balanceSheet.xlsx')#获取2021—2023年利润表数据lr2021=pd.read_excel('300400_2021profitstatement.xlsx')任务实施【参考程序】lr2022=pd.read_excel('300400_2022profitstatement.xlsx')lr2023=pd.read_excel('300400_2023profitstatement.xlsx')#获取2021—2023年现金流量表数据xl2021=pd.read_excel('300400_2021cashFlow.xlsx')xl2022=pd.read_excel('300400_2022cashFlow.xlsx')xl2023=pd.read_excel('300400_2023cashFlow.xlsx')print('2023年资产负债表前5行数据:\n',zf2023.head())print('2023年利润表前5行数据:\n',lr2023.head())print('2023年现金流量表前5行数据:\n',xl2023.head())任务实施【运行结果】数据获取结果德育长廊财务人员的数据素养是指财务人员在数据的获取、理解、分析、应用和管理等方面的能力和素质,包括数据意识和敏感性,表现包括:能够有效且恰当地采集、处理、分析和展示财务数据;具备对这些数据的敏锐感和认知;能够意识到数据在决策、解决问题、发现机会等方面的重要性。财务人员的数据素养对财务人员的要求:熟练掌握会计、财务和税务等相关知识;能够运用数据分析工具和技术,从复杂的财务数据中提炼出有价值的信息;能够运用数据分析工具和技术,支持决策制订和风险管理。任务一财务数据获取8.财务数据分析任务二财务数据处理任务三财务数据分析任务四财务数据可视化任务描述在财务数据分析中,财务数据处理是至关重要的一环。通过数据处理,可以从庞杂的原始数据中提取出有价值的信息,为后续的数据分析和可视化奠定坚实的基础。请同学们思考一下,

财务数据处理包含哪些步骤呢?财务数据合并财务数据清洗一、财务数据合并季报需在每个季度结束后的一个月内公布,包括:一季报:

4

30

日前公布;二季报(半年报、中报):8月31日前公布;三季报:10月31日前公布。年报:次年

4

30

日前公布。在实际的数据分析中,数据可能出现在多个数据表中,为便于分析,往往需要将数据合并。上市公司的财务报表分为季报和年报,其公布时间因报表类型不同而有所差异。一、财务数据合并要全面分析财务数据,通常需要:将同一时间不同类型的财务报表合并到同一表格中;将不同季度或年份的财务报表纵向连接为一个报表;实例将一季报和二季报连接后分析上半年数据。二、财务数据清洗数据中较常见的错误是数据异常,这可能是数据录入人员录入错误导致的。为发现这些错误,可以设定合理的数据范围和逻辑校验规则。1.异常数据处理实例某企业正常的月销售额在一定区间内,如果出现远超该区间的销售额数据,则需进一步核实该数据的正确性。实例小数点位置错误;数字颠倒。二、财务数据清洗对于少量缺失的数据,如果数据分布较为均匀,处理方法:采用均值填充法;采用中位数填充法。对于有明显规律的缺失数据,处理方法是:回归分析法预测缺失值;时间序列分析法预测缺失值。2.缺失数据处理实例根据历史销售数据的趋势预测缺失月份的销售额。实例某产品个别月份的销售单价缺失,可根据其他月份销售单价的均值进行填充。某些数据可能因系统故障、数据传输问题或业务流程不完善而缺失。二、财务数据清洗判断是否存在重复数据的方法:识别数据记录中的

关键标识符;多条记录具有相同的关键标

温馨提示

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

评论

0/150

提交评论