版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
—大数据可视化概述:目录CONTENTS思考与练习项目描述学习目标可视化概述数据集应用概述1项目概述项目概述
本概述重点介绍大数据可视化的理论背景,着重介绍如何使用Python对MySQL数据库中的数据以及本地数据文件进行操作,并结合综合应用对所学内容予以练习,以便熟练掌握基于Python语言可视化的基本思路和方法。本概述具体工作如下:
1.可视化概述;
2.数据集应用概述
3.Python加载数据方法。2学习目标学习目标通过对于概述的学习,了解数据可视化概貌、Python基础语法和MySQL的安装,掌握Python的安装与入门使用、MySQL数据库的搭建、Python操作MySQL数据库等技能。培养学生具备利用Python工具实现大数据可视化的基本技能,拓宽软件工程、大数据等相关专业学生视野;培养学生具备良好的思想品质、职业道德、敬业精神和责任意识,成为数字经济时代所需的高素质技术技能人才。3可视化概述任务描述了解互联网背景下大数据的发展概况、数据可视化与大数据的关系,了解数据可视化的基本图形,了解大数据的国家政策、相关国家推荐标准中大数据系统的逻辑架构和对数据可视化的要求。通过学习本任务内容,为掌握基于Python的大数据可视化技术奠定基础。知识与技能七、数据可视化图表类型2、柱状图柱状图是用矩形条形呈现数据,其高度或长度代表数据的数量或比例。柱状图可以横向或纵向展示数据,常用于展示离散数据的差异和比较。例如,可以用柱状图展示不同城市的销售额,比较它们之间的差异。知识与技能3、饼图饼图是通过将一个圆划分成几个扇形,然后利用各个扇形的角度来表示不同类别数据的比例关系。饼图常用来展示不同种类之间的比较关系,如销售额、用户数量、市场份额等。知识与技能4、散点图散点图是用坐标轴上的点来表示数据集中的数据分布情况,通过研究散点图的形态和密度,可以发现数据集合中的关系趋势和规律。散点图通常用于展示两个或多个变量之间的关系,以及它们之间的相关性。知识与技能5、热力图热力图是一种二维图表,使用颜色来表示数据点的值的大小,通过颜色深度和亮度来显示数据的密度分布。最常见的应用场景是对空间分布信息的可视化,如气象预报、人口普查等。热力图可以帮助用户快速确认数据中的“热门”区域,并进一步分析其背后的原因和特征。知识与技能6、树状图树状图(TreeMap)是按照面积来表示数据的图表类型,将根据数量或大小分类的数据呈现为一个矩形树形结构。树状图可以帮助用户直观了解不同类别的数据之间的比例关系和层级结构。知识与技能7、三维图三维图是一种用于在三维空间内展示数据的图表类型,通常具有更高的复杂性和交互性。三维图的应用场景广泛,可以用于展示房地产市场、电子商务市场和科学研究等领域的数据。知识与技能8、雷达图雷达图是一种适合于展示多维数据的图表,可以将多个数据维度组合在同一个图表中,以便比较它们之间的相对大小和趋势。雷达图通常是由一个中心点和多个顶点组成的多边形,每个顶点代表不同的数据维度,线段长度表示该维度的值大小。雷达图常用于展示产品特性、市场份额等多维数据。知识与技能9、箱线图箱线图是一种用来表示数据分布情况的图标类型,通过箱体和“须”线来描述数据的分布情况。箱体代表数据的四分位数,即数据的中位数、上四分位数和下四分位数,而“须”线则表示数据的最大值和最小值。箱线图通常用于比较两个或多个数据集合之间的差异和趋势。10、其他图表类型还有一些其他的大数据可视化图表类型,如双轴图、漏斗图、气泡图等。每个图表类型都具有其独特的使用场景和特点,可以根据需求进行选择。知识与技能数据可视化图表类型多种多样,从简单到复杂,覆盖了各种数据格式的展示,可以根据需求选择合适的图表类型来展示数据,帮助用户快速理解数据间的联系和趋势。常见的图表类型如图0-1所示。知识与技能数据可视化图表的种类非常多样,但每张图表的基本组成有较强的规律性。一张完整的图表一般包括:画布、图表标题、绘图区、数据系列、坐标轴、坐标轴标题、图例、文本标题、网格线等。下面详细描述各个组成部分的功能:1.画布:图中最大的白色区域,作为其它图表元素的容器。2.图表标题:用来概括图表内容的文字,常用的功能有设置字体、字号及字体颜色等。3.绘图区:画布中的一部分,显示图形的矩形区域,可改变填充颜色、位置,以便为图表展示更好的效果。4.数据系列:在数据区域中,同一行数值数据的集合构成一组数据系列,也就是图表中相关数据点的集合。5.坐标轴及坐标轴标题:坐标轴是表示数值大小、类别的水平线和垂直线,坐标轴上有刻度。一般而言,水平坐标轴表示分类,垂直坐标轴表示数值。标题用来给坐标轴命名。6.图例:指图表中系列区域的颜色、形状等数据系列所代表的内容。7.文本标签:用于为数据系列添加文字。8.网格线:贯穿绘图区的线条,类似标尺。4数据集应用概述任务描述在学习了大数据概念、演变、特点和趋势后,本任务将对数据集类型进行简要介绍,并针对大数据场景中涉及到的数据库进行讲解,帮助用户全方位了解不同数据库的应用,掌握本任务重所涉及的数据库使用方法。本任务对MySQL简介、Python操作数据库、Python读取文件等进行讲解与实践,激发学习大数据可视化课程的兴趣与积极性。完成本任务需要学生掌握Python对数据库数据的操作、Python读取文件方法等,练习巩固应用。知识与技能1、数据库概念:
数据库(Database)是指一个存储数据的集合、管理这些数据的系统以及操作这些数据的接口和工具。通常,数据库由多个表格组成,每个表格包含了一组有关联的数据。使用数据库可以快速、高效地存储和查询数据,并允许多个用户同时访问和修改数据。数据库还提供了数据安全性、完整性以及可靠性保障等功能。2、数据库应用场景:
数据库被广泛应用于各种领域,包括商业、医疗、教育、政府、科研等等。例如,在电子商务中,数据库可以用来存储商品信息、订单记录、支付信息、用户数据等;在银行和金融服务中,数据库可以用来存储客户信息、交易记录、财务报告等;在医疗保健中,数据库可以用来存储患者记录、医疗图像、药品信息等;在政府和公共服务中,数据库可以用来存储人口普查信息、税务记录、警察数据库等。一、数据库概述知识与技能当前市场上的数据库种类繁多,根据其所采用的不同数据模型和架构设计,可以大致分为以下类别:1、关系型数据库关系型数据库(RDBMS)基于关系模型进行设计,采用表格、行和列的方式存储数据,并使用SQL语言进行操作和管理数据。关系型数据库对数据的完整性和一致性有着强大的支持,被广泛应用于金融、医疗、电信等领域。常见的关系型数据库有Oracle、MySQL、MicrosoftSQLServer等。2、NoSQL数据库NoSQL(NotOnlySQL)数据库是指不仅支持SQL语言的关系型数据库,还包括键值数据存储、文档型数据库、图形数据库、列存储数据库等多种类型的非关系型数据库。NoSQL数据库通常具有高可扩展性、高并发性和高性能等优点,特别适合处理大量非结构化数据。常见的NoSQL数据库包括MongoDB、Redis、Cassandra等。二、数据库分类知识与技能3、图形数据库图形数据库是一种以图形结构为基础的数据库,将数据抽象为节点和边(关系),从而实现更加灵活的数据建模和分析。图形数据库通常使用CQL(CypherQueryLanguage)或者SPARQL进行数据查询和分析,特别适合处理社交网络、推荐系统等场景下的大规模复杂数据。常见的图形数据库有Neo4j、ArangoDB等。4、列存储数据库列存储数据库将数据按列进行存储而非按行,可以快速读取和处理表格中的特定列,适合处理大量宽表和大数据量的数据。列存储数据库通常采用分布式架构和压缩算法来提高数据的处理效率和存储空间利用率。常见的列存储数据库包括HBase、ApacheCassandra等。知识与技能5、内存数据库内存数据库是指将数据直接存储在内存中的数据库,通过优化读写操作和采用高度可扩展的架构,支持高并发和实时性处理。内存数据库常常用于对实时数据进行处理和分析,并具有良好的数据一致性和可靠性。常见的内存数据库有Redis、Memcached等。6、文档型数据库文档型数据库以文档为基础单元进行数据建模和管理,每个文档是一个键值对集合,可以嵌套和递归,非常灵活。文档型数据库通常使用BSON或者JSON格式进行序列化和反序列化,并支持动态的schema设计,易于应对数据结构变更和扩展。常见的文档型数据库有MongoDB、CouchDB等。知识与技能7、时序数据库时序数据库是一种专用于存储和管理时间序列数据的数据库,主要用于处理IoT设备、传感器、监控数据等大量高频时间序列数据。时序数据库采用优化的数据结构、存储和索引策略,支持高效的时序数据查询和分析。常见的时序数据库有InfluxDB、OpenTSDB等。8、空间数据库空间数据库是一种专门用于地理信息系统(GIS)等空间数据的数据库,具有较好的地理位置方面信息管理和应用能力。空间数据库提供对地图、卫星影像、地理和位置数据等的存储、管理以及查询和分析功能。常见的空间数据库有IBMDb2Spatial、PostGIS等。不同类型的数据库都有其自身的特点和优缺点,并且适用于不同的应用场景。随着技术的发展和应用范围的扩展,未来还会有更多新型的数据库涌现出来,为我们提供更加高效、灵活和智能的数据管理和分析服务。Python操作MySQL数据库第一步:安装第三方库PyMySQL使用Python操作MySQL,需要用第三方库PyMySQL,安装步骤如下:打开命令提示符,输入pipinstallpymysql,点击回车即可安装。这里安装的是1.0.2版本在Python中导入(importpymysql)没有报错,说明安装成功Python操作MySQL数据库第三步:查询操作以四六级单词库为例,分别查询a到z开头的单词数量,并存入列表中,以便后续可视化操作importpymysqldefselect_db(select_sql):
#建立数据库连接
db=pymysql.connect(
host="",
port=3306,
user="root",
passwd="root",
db="big_data"
)
cur=db.cursor(cursor=pymysql.cursors.DictCursor)
cur.execute(select_sql)
data=cur.fetchall()
cur.close()
db.close()
returndata
select_sql='SELECT*FROMmap_enword'
#查询四六级单词库中的所有数据
words=select_db(select_sql)#将数据赋值给变量words
print(words[:3])#查看前三条数据
letter=[''foriinrange(26)]
foriinrange(26):
letter[i]=chr(i+97)
print(letter)enword=[0foriinrange(26)]#定义列表
foriinrange(len(words)):#遍历所有单词
#将单词第一个字母取出并小写,转化为ASCII码,进而转化为序列号
enword[ord(words[i]['english'][:1].lower())-97]+=1
print(enword)第二步:导入SQL脚本将四六级单词库的脚本(map_enword.sql)导入MySQLWorkbench中。可在本教材附带的代码文件中获取脚本文件Python文件读取第一步:Python读xls、xlsx文件将“瓜果类单位面积产量.xls”和“瓜果类单位面积产量.csv”文件复制到C盘的“big_data”目录下。读xls或者xlsx文件主要使用Pandas的read_excel方法,语法格式为:pandas.read_excel(io,sheet_name=0,header=0,names=None,index_col=None,usecols=None,squeeze=False,dtype=None,engine=None,converters=None,true_values=None,false_values=None,skiprows=None,nrows=None,na_values=None,keep_default_na=True,verbose=False,parse_dates=False,date_parser=None,thousands=None,comment=None,skipfooter=0,convert_float=True,mangle_dupe_cols=True,**kwds)常用参数说明:io:xls、xlsx文件路径,字符串格式。sheet_name:可以传入None、字符串、整数、字符串列表、整数列表,默认为0,如果未None,则获取所有sheet、若为整数,则整数为索引。header:指定作为列名的行,默认为0,0时为取第一行为列名。names:要是用的列名列表。Python文件读取效果:Python读xls、xlsx文件:importpandasaspd#需要安装xlrd,pipinstallxlrd-i/pypi/simple/--trusted-host=/pypi/simple
importxlrd
df=pd.read_excel("瓜果类单位面积产量.xls")
print(df)Python文件读取效果:Python读csv文件importpandasaspd#在将xls文件另存为csv时,默认编码格式为GBK
df=pd.read_csv("瓜果类单位面积产量.csv",encoding='
utf-8')
print(df)任务总结通过本任务的学习,了解了MySQL数据库的搭建与入门、初步掌握Python操作MySQL数据库的方法。本任务的难点在于灵活运用Python对MySQL数据库中的数据进行操作,可以通过练习题进行掌握与提升、课外学习更多MySQL数据库的知识加深和拓宽知识储备。基于本任务的成果,对于MySQL数据库的原理有了一定的了解与练习,为后续学习做好铺垫,通过案例更好地理解MySQL数据库的原理。5思考与练习思考与练习1.选择题数据可视化能用哪种语言实现?()A.C++语言B.Java语言C.Python语言D.JavaScript语言(2)数据可视化可以用哪种符号元素编码?()A.长度B.长度、色彩、尺寸、位置、纹理、方向、形状以及关系C.长度、高度D.色彩、尺寸、位置、纹理、方向、形状以及关系思考与练习(3)数据可视化常用布局有哪些?()A.柱状图、饼图、折线图B.表格、散点图、雷达图C.网络图、时间线、热力图、地图、树图、复合图形等D.以上都对(4)本任务中测试Python是否安装成功的语句是?()A.Python-VB.Python-VC.Python-RD.Python-R
思考与练习技能题:1、使用for循环,计算1到100的和。2、使用for循环,计算10的阶乘。3、查询四六级单词库中的前十条数据。4.查询四六级单词库中以o开头的单词数量。THANKS附:Python环境配置
图
Python安装第一步1、进入/官网,点击Downloads下的Windows选项,下载自己要安装的版本,此处我们下载python3.8.5为例,同学们也烤鱼下载其他安装版本,不同的版本安装方法基本相同。Python环境配置图Python开始安装第二步2、在下载路径中找到并双击exe文件,开始安装。勾选左下角“AddPython3.8toPATH”,否则安装完成之后需要手动进行环境配置。Python环境配置图Python安装第三步3、“可选功能”默认全选,可选功能如下图所示,然后点击next。Python环境配置图Python安装第五步5、出现如图所示的画面,安装成功“Setupwassuccessful”字样即为安装成功Python环境配置图
验证是否安装成功6、验证是否安装成功,在搜索按钮出输入cmd命令,打开命令提示符窗口,在命令提示符中输入python,按下回车,如果显示内容如图所示,则为安装成功,并且可以看到所安装Python版本信息。Jupyternotebook下载与安装
1、安装Jupyter:打开CMD窗口,直接输入以下命令:pipinstalljupyterJupyternotebook下载与安装
2、打开CMD窗口:输入jupyternotebookJupyternotebook下载与安装3、打开CMD窗口:输入jupyternotebook,点击新建,就会跳转到新的文本页面,然后就可以编辑python代码了Jupyternotebook下载与安装4、编辑python代码页面Python环境配置图Python安装第四步4、可在“高级选项”中修改安装路径,高级功能如下图所示。之后点击Install进行安装。MySQL数据库的搭建与入门第一步:安装Mysql1、进入安装页面如果需要重新安装Mysql需要先卸载Mysql,双击mysql-installer-community-.msi,进入安装界面后选择Custom自定义安装,点击Next。MySQL数据库的搭建与入门2、在左侧目录中选择MySQLServer5.7.28-X64,点击→加载到右侧,选择要安装的产品名,在右下角会出现AdvancedOptions,单击它可以设置安装路径。MySQL数据库的搭建与入门例如将安装路径和数据路径修改到D:\develop\下,点击OK。注意,安装目录避免空格和中文(可选),如图0-15所示。MySQL数据库的搭建与入门选择安装模块:MySQL数据库的搭建与入门点击Execute执行安装,有的可能会提示需要先安装C++动态库等,那就先安装C++动态库,没有提示说明操作系统中已有需要的动态库。MySQL数据库的搭建与入门安装完成,点击Next(下一步)MySQL数据库的搭建与入门安装完成,点击Next(下一步)MySQL数据库的搭建与入门点击Next(下一步)MySQL数据库的搭建与入门3、将MySQL配置类型选择DevelopmentComputer开发电脑设置,点击Next(下一步)MySQL数据库的搭建与入门网络类型配置MySQL数据库的搭建与入门4、设置MySQL密码,因为管理员用户为root,学习初期建议将MySQL数据库密码也设置为root,设置完成后,点击Next(下一步)MySQL数据库的搭建与入门设置WindowsService系统服务,设置完毕后点击Next(下一步)MySQL数据库的搭建与入门点击Execute执行设置MySQL数据库的搭建与入门安装完成,点击Finish完成MySQL数据库的搭建与入门第二步:Mysql服务的启动与停止1、启动方式一(1)计算机(点击鼠标右键)==》管理(点击)==》服务和应用程序(点击)==》服务(点击)==》MySQL57(点击鼠标右键)==》启动或停止(点击)。(2)控制面板(点击)==》系统和安全(点击)==》管理工具(点击)==》服务(点击)==》MySQL57(点击鼠标右键)==》启动或停止(点击)。(3)任务栏(点击鼠标右键)==》启动任务管理器(点击)==》服务(点击)==》MySQL57(点击鼠标右键)==》启动或停止(点击)MySQL数据库的搭建与入门2、启动方式二:启动MySQL服务命令:netstartMySQL57停止MySQL服务命令:netstopMySQL57MySQL数据库的搭建与入门第三步:配置Mysql环境变量WIN10配置环境变量,MySQL数据库的搭建与入门第四步:MySQL数据库客户端的登录1、方式一:使用MySQL自带命令行客户端。开始菜单==》所有程序==》MySQL==》MySQLServer5.7==》MySQL5.7CommandLineClient输入密码即可登录。MySQL数据库的搭建与入门2、方式二:使用系统命令行命令格式:mysql-h主机名-P端口号-u用户名-p密码例如:mysql-hlocalhost-P3306-uroot-proot注意:(1)-p与密码之间不能有空格,其他参数名与参数值之间可以有空格也可以没有空格。例如:mysql-hlocalhost-P3306-uroot-proot(2)如果是访问本机MySQL:-hlocalhost就可以省略,如果使用的默认端口3306:-P3306也可以省略。例如:mysql-uroot-pMySQL数据库的搭建与入门3、方式三:可视化工具使用MySQLWorkbench进行连接,MySQL数据库的搭建与入门第五步:Mysql数据库的编码配置1、停止Mysql服务2、修改my.ini配置文件MySQL数据库的搭建与入门第六步:创建数据库点击Createanewschema按钮创建数据库,输入数据库名称big_data,选择编码方式,点击Apply。MySQL数据库的搭建与入门MySQLWorkbench会自动生成SQL语句,再次点击Apply就可以成功创建数据库。MySQL数据库的搭建与入门成功后在数据库列表中可以看到新建的数据库big_dataMySQL数据库的搭建与入门第七步:创建数据表双击新建的数据库big_data可默认连接该数据库,接下来所有操作都将在这个数据库下进行。将big_data下拉单展开,右键点击Table,点击createTable,给Table命名,添加Column,设置Column的Datatype(数据类型)、PrimaryKey(主键)等属性,MySQL数据库的搭建与入门点击Apply后,如图0-34所示,Workbench仍会自动生成SQL语句,再次点击Apply,成功创建新表。知识拓展MySQLWorkbench是一款专为MySQL设计的可视化数据库设计、管理的工具,同时有开源和商业化两个版本。Navicat也可以用来对本机或远程的MySQL、SQLServer、SQLite、Oracle等数据库进行管理及开发,支持数据的导入、导出、备份、还原等功能。对其使用这里不再详细阐述,有兴趣的小伙伴可以自行研究。—Matplotlib应用项目一:目录CONTENTS绘制特殊图像思考与练习项目概述学习目标Matplotlib入门绘制基础图形绘制复合图形1项目概述Matplotlib是Python中最受欢迎的数据可视化软件包之一。本项目介绍如何使用Matplotlib绘图库,将难以理解的数据进行可视化,绘制各种静态、动态、交互式图表,如折线图、散点图、饼图等,从而实现直观展现数据的目的。项目概述本项目融合Matplotlib基础知识、综合绘图于一体,着重介绍Matplotlib常用图表的绘制方法,通过综合应用对所学内容进行练习,熟练掌握本项目内容。本项目学习内容分三方面展开Matplotlib简介1Matplotlib入门2Matplotlib常用图表绘制3项目概述2学习目标
学习目标通过本项目的学习由浅入深地了解Matplotlib,掌握Matplotlib入门使用、Matplotlib常用图表绘制方法等。培养学生具备Matplotlib大数据可视化的基本技能,熟练掌握各种布局、配色、坐标轴设置等,绘制可视化图表,更直观地理解数据背后的含义。3Matplotlib入门Matplotlib是Python中应用极其广泛的绘图库。Matplotlib功能强大,主流的图表格式在Matplotlib中都能找到,想要更深入地了解Matplotlib,可经常查阅官方文档,官方网址为:/。本任务对Matplotlib简介、安装入门、基本用法等进行讲解与实践,初步了解Matplotlib绘图库,通过实践认知Matplotlib强大的绘图能力,借助图形化的数据表现方式更好地认知数据之间的特点和关系。完成本任务需要掌握Matplotlib的安装及绘图模块的入门操作,以及折线图、柱状图、直方图、堆叠条形图、面积图、散点图等图形绘制方法,掌握绘图中主要函数的功能和输入输出参数,深入理解Matplotlib绘图模块的绘图步骤与原理,并依据练习题将所学知识巩固应用。任务描述Matplotlib最初是由JohnD.Hunter在2003年开发的一个2D绘图库,其设计灵活、易于使用,因此在学术界和工业界广受欢迎。知识与技能——Matplotlib起源目前,Matplotlib迅速成为Python数据科学生态系统中最流行的绘图工具之一。以其优雅的API设计和强大的数据可视化功能而闻名,在各个领域中得到广泛应用,包括科学研究、金融分析、数据挖掘、机器学习等等。知识与技能——Matplotlib特点(1)Matplotlib是一个功能强大、易于使用和高度灵活的绘图工具,Matplotlib具有丰富的功能、高度灵活性、易于使用以及广泛的可移植性和开源性等特点,使其成为Python数据科学生态系统中最受欢迎和常用的绘图工具之一。1.广泛支持Matplotlib支持多种不同类型的图形,包括线图、柱状图、散点图、直方图、等高线图等。此外,它也可以支持2D和3D图形绘制。3.易于使用Matplotlib拥有简单的API接口,使得用户可以轻松绘制高质量的图形。该工具还提供了大量的样式和模板,供用户选择使用。主要特点(六点)2.高度灵活Matplotlib提供了丰富的自定义选项,以便用户可以完全控制图形的制作方式。这些选项包括调整刻度标签、轴限制、图例属性、颜色色带等。知识与技能——Matplotlib特点(2)4.交互式控制Matplotlib可以与各种交互式GUI平台集成,例如JupyterNotebook,IPythonShell和Python编程环境,它还支持鼠标事件和键盘事件等交互式功能。5.可移植性由于Matplotlib是基于Python编写的,因此它非常容易移植到不同的操作系统和硬件平台上。6.开源可扩展Matplotlib的源代码公开,开放给任何人免费使用和修改。因此,它已经成为Python数据科学生态系统中的不可或缺的一部分,并可通过众多可扩展包转换和扩展功能。虽然Matplotlib是一个功能强大、灵活易用的绘图工具,但也存在一些缺点。默认样式较为简单
Matplotlib的默认样式对于一些用户来说可能显得过于简单,需要进行个性化的定制,这可能需要一些编程经验和时间。01生成的图形可能较为笨重由于Matplotlib图形生成时的复杂计算,生成的图形可能会较为笨重,尤其是对于复杂的图形或大量数据的情况。02不太适合比较复杂的交互式绘图尽管Matplotlib提供了交互式功能,但是相对于一些专门为交互式数据可视化设计的工具(如D3.js或Plotly等),它的交互性可能相对较弱。03知识与技能——Matplotlib不足知识与技能——Matplotlib基础函数Matplotlib提供了多种绘图方式:如散点图、柱状图、折线图、热力图等。除了以上几种常见的图表,Matplotlib还支持多种其他类型的图表,如3D图、等高线图、极坐标图等。
一般在学习Matplotlib库时,都是先在一个平面坐标系内画图形,再去学其它类型图形的绘制。Matplotlib库在平面坐标系内画图时,有很多相关的函数:plt.title()显示图形的标题(Title)plt.legend()显示图例(Legend)plt.grid()设置图形的网格(Grid)plt.figure()设置图形对象(Figure)plt.gca()返回子图对象(Axes)plt.ylabel()设置Y坐标轴plt.xlabel()设置X坐标轴plt.ylabel()设置Y轴(Yaxislabel)plt.xlabel()设置X轴(Xaxislabel)plt.xticks()和plt.yticks()分别设置X轴和Y轴的刻度知识与技能——Matplotlib基础函数知识与技能——plot函数简介(1)Python中的plt.plot()函数是matplotlib.pyplot模块下的一个函数,用于画图它可以绘制点和线,并且对其样式进行控制。可以绘制出多种风格的图案,如下所示:plt.plot(x,y,format_string,**kwargs)X轴数据,列表或数组,可选。Y轴数据,列表或数组。format_string:控制曲线的格式字符串,可选。**kwargs:第二组或更多(x,y,format_string),可画多条曲线。对于format_string由颜色字符、风格字符、标记字符组成。颜色字符举例如下:‘b’表示蓝色、‘c’表示青绿色、‘g’表示绿色、‘k’表示黑色、‘m’表示洋红色、‘r’表示红色、‘w’表示白色、‘y’表示黄色风格字符举例如下:‘‐’表示实线、‘‐‐’表示破折线、‘‐.’表示点划线、‘:’表示虚线标记字符举例如下:‘.’表示点标记、‘,’表示像素标记(极小点)、‘o’表示实心圈标记、‘v’表示倒三角标记、‘^’表示上三角标记、‘>’表示右三角标记、‘<’表示左三角标记。知识与技能——plot函数简介(2)对于**kwargs,这是一大堆可选内容,可以在里面指定很多内容,如“label”指定线条的标签,“linewidth”指定线条的宽度,color指定颜色,label线条的标签,linestyle表示线条的风格,linewidth表示线条的宽度。知识与技能——创建画布与创建子图函数名称函数作用plt.figure(figsize,facecolor)创建一个空白画布,figsize参数可以指定画布大小,像素,单位为英寸。figure.add_subplot()创建并选中子图,可以指定子图的行数,列数,与选中图片编号。知识与技能——添加画布内容函数名称函数作用plt.plot(x,y,ls,lw,lable,color)根据x,y数据绘制直线、曲线、标记点,ls为线型linestyle,lw为线宽linewidth,lable为标签文本内容,color为颜色。plt.scatter(x,y,c,marker,label,color)绘制散点图:x、y为相同长度的序列,c为单个颜色字符或颜色序列,marker为标记的样式,默认的是'o',label为标签文本内容,color为颜色plt.bar(x,height,width,bottom)绘制条形图plt.pie(x,explode,labels,autopct,shadow=False,startangle)绘制饼图plt.title(string)在当前图形中添加标题,可以指定标题的名称、位置、颜色、字体大小等参数。plt.xlabel(string)在当前图形中添加x轴名称,可以指定位置、颜色、字体大小等参数。plt.ylabel(string)在当前图形中添加y轴名称,可以指定位置、颜色、字体大小等参数。plt.xlim(xmin,xmax)指定当前图形x轴的范围,只能确定一个数值区间,而无法使用字符串标识。plt.ylim(ymin,ymax)指定当前图形y轴的范围,只能确定一个数值区间,而无法使用字符串标识。plt.xticks()指定x轴刻度的数目与取值。plt.yticks()指定y轴刻度的数目与取值。plt.legend()指定当前图形的图例,可以指定图例的大小、位置、标签。知识与技能——保存与展示图形函数名称函数作用plt.savafig()保存绘制的图片,可以指定图片的分辨率、边缘的颜色等参数。plt.show()在本机显示图形。知识与技能——线条颜色(color)的设置线的颜色颜色'b'蓝色'g'绿色'r'红色'c'青色'm'品红'y'黄色'k'黑'w'白色知识与技能——线条标记(marker)的设置线的标记描述'.'点标记','像素标记'o'圆圈标记's'方形标记'*'星形标记'+'加号标记'x'x标记知识与技能——线条类型(line)的设置线的类型描述'-'实线样式'--'虚线样式'-.'破折号-点线样式任务实施——1.Matplotlib基本用法第一步:Matplotlib安装打开命令提示符,输入pipinstallmatplotlib回车即可安装。这里安装的是3.6.2版本,安装Matplotlib如下图所示。任务实施——1.Matplotlib基本用法第二步:测试导入Matplotlib成功所示,在Python中导入Matplotlib模块(importmatplotlib),没有报错说明安装成功。
任务实施——2.Matplotlibplot函数折线图绘制方法:
绘制一个线段颜色为红色、菱形点标记,破折线连接的折线图,如图13所有a到z开头的单词数量折线图所示。也可以将代码属性进行简化,用'rD--'来表示,如代码注释部分。第一步:导包和定义数据#导入Matplotlib库
importmatplotlib.pyplotaspltletter=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
enword=[215,149,528,318,255,245,170,182,274,38,27,175,271,112,148,483,35,396,819,364,110,118,205,1,23,7]
第二步:绘制折线图#绘制折线图
plt.plot(letter,enword,color='r',marker='D',linestyle='--',linewidth=1,markersize=2)
#或者
#plt.plot(letter,enword,'rD--',linewidth=1,markersize=2)
plt.show()#展示任务实施——2.Matplotlibplot函数条形图绘制方法:在上述代码的基础上改用bar()绘制条形图,如图1-4所有a到z开头的单词数量条形图所示。该图会在接下来的学习中频繁用到。#绘制条形图
colors=['red','blue','green','purple']#定义颜色
plt.bar(letter,enword,color=colors,alpha=0.4)#设置颜色和透明度plt.show()任务实施——2.Matplotlibplot函数Matplotlib中的画布设置主要用到了figure()函数,用来设置画布的宽高、分辨率、背景颜色等。尝试将画布颜色设置为grey(灰色),效果如下图画布设置所示。#figsize控制画布的宽和高,dpi分辨率,facecolor设置画布背景颜色
plt.figure(figsize=(8,6),dpi=90,facecolor='grey')#绘制条形图
colors=['red','blue','green','purple']#定义颜色
plt.bar(letter,enword,color=colors,alpha=0.4)#设置颜色和透明度plt.show()#展示任务实施——3.Matplotlib画布设置任务实施——4.Matplotlib图表标题设置Matplotlib图表标题设置使用title()函数,参数如下:label表示标题内容;font_dict是一个字典,用来设置字体、字号、颜色等;loc表示标题的对齐,包括left,right和center,默认为center;pad表示标题与图表顶部的距离,默认为None。colors=['red','blue','green','purple']#定义颜色
plt.bar(letter,enword,color=colors,alpha=0.4)#设置颜色和透明度
#fontdict可以单独定义,也可以直接在函数中定义
fontdict=dict(fontsize=16,color='black',
family='TimesNewRoman',weight='bold')
plt.title(label='WordsofCET-4&CET-6',fontdict=fontdict,loc='center',pad=None)
plt.show()#展示任务实施——5.Matplotlib坐标轴设置上一操作的图表中所使用的坐标轴是系统默认设置的,接下来尝试使用xlabel()和ylabel()修改坐标轴的标签,使用xticks()和yticks()修改坐标数字,效果如下图坐标轴设置所示。第一步:设置X、Y轴标题plt.xlabel('letter',fontsize=14)
plt.ylabel('number',fontsize=14)
#修改坐标数字的字号
plt.xticks(fontsize=12)
plt.yticks(fontsize=12)任务实施——5.Matplotlib坐标轴设置此外,还可以通过改变坐标轴的刻度范围来调整优化布局,如图1-8调整y轴刻度范围、图1-9设置y轴为对数轴所示。第二步:修改Y轴刻度范围#将y轴刻度范围调整到(0,1200)
plt.ylim(0,1200)任务实施——5.Matplotlib坐标轴设置第三步:设置Y轴为对数轴#设置y轴为对数轴
plt.yscale('log')
#将y轴刻度范围调整到(0,1200)
plt.ylim(0,1200)plt.show()#展示取loc='best',图例会自动放置在坐标轴平面中数据图表最少的位置,也就是最合适的位置上(一般图例都取该值);取loc='XXX',这里的XXX有九种表示方法。将坐标轴平面分为九部分:upperleft(顶部左侧),uppercenter(顶部中心),upperright(顶部右侧),centerleft(中部左侧),center(中心位置),centerright(中部右侧),lowerleft(底部左侧),lowercenter(底部中心)和lowerright(底部右侧)。取loc=(x,y),将x轴和y轴看作单位1,(0,0)表示取到坐标轴平面的左下角,(1,1)表示右上角,(0.5,0.5)则表示中心位置。010203通过在legend(handles=,labels=,loc=)中设置不同的参数可以实现个性化图例定制。其中handles为所画线条的实例对象;labels为图例内容;loc为图例在整个坐标轴平面中的位置。loc在这里有三种具体的取值方法,如左所示。任务实施——6.Matplotlib图例设置任务实施——6.Matplotlib图例设置为方便展示,将条形图颜色设置为默认的蓝色。下面分别尝试将loc设置为'best'和'uppercenter',效果如图110图例设置(loc='best')、图111图例设置(loc='uppercenter')所示。程序如下:plt.rcParams['font.sans-serif']=['SimHei']#显示中文标签
plt.rcParams['axes.unicode_minus']=False#正常显示负号bar=plt.bar(letter,enword)
plt.legend(handles=bar,labels=['某字母开头的单词数'],loc='best')
#plt.legend(handles=bar,labels=['某字母开头的单词数'],loc='uppercenter')plt.show()#展示任务实施——7.MatplotlibAnnotation标注设置程序如下:有时需要在图表上重点表示一些信息,可以使用annotate(text,xy,xytext,xycoords='data',textcoords,arrowprops)来设置箭头内容指向,从而强调图表数据或者标注细节信息。如图112Annotation标注设置所示,在条形图中标注出s开头的单词数。#绘制条形图
colors=['red','blue','green','purple']#定义颜色
plt.bar(letter,enword,color=colors,alpha=0.4)#设置颜色和透明度
#fontdict可以单独定义,也可以直接在函数中定义
fontdict=dict(fontsize=16,color='black',
family='TimesNewRoman',weight='bold')
plt.title(label='WordsofCET-4&CET-6',fontdict=fontdict,loc='center',pad=None)
plt.annotate(text='这是s开头的单词数',xy=(18,600),xytext=(-130,30),
xycoords='data',textcoords='offsetpoints',fontsize=12,
arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=-.2'))plt.show()#展示任务实施——8.Matplotlibtick能见度设置有时图表可能会与坐标轴重合,导致标签被遮挡,可以通过设置tick能见度来解决。函数label.set_bbox(dict(facecolor=,edgecolor=,alpha=)),其中facecolor代表标签底色;edgecolor代表标签边缘颜色;alpha表示透明度,默认在0~1之间。如果标签存在不显示的问题,可设置zorder让标签显于图像之上。效果如图1-13tick能见度设置所示。bar=plt.bar(letter,enword,zorder=1)#设置图像的zorder
ax=plt.gca()#获取当前坐标轴
#设置x轴为底部的轴,设置y轴为左侧的轴
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
#设置标签能见度
forlabelinax.get_xticklabels()+ax.get_yticklabels():#遍历所有标签
label.set_bbox(dict(facecolor='red',edgecolor='blue',alpha=0.4))
label.set_zorder(100)#设置标签的zorder在图像之上plt.show()#展示任务实施——9.Matplotlib注释设置在图表中添加注释可以使用text(x,y,s),其中x,y表示文字位置,s为需要注释的文本内容,效果如图114注释设置所示。#绘制条形图
colors=['red','blue','green','purple']#定义颜色
plt.bar(letter,enword,color=colors,alpha=0.4)#设置颜色和透明度
#fontdict可以单独定义,也可以直接在函数中定义
fontdict=dict(fontsize=16,color='black',
family='TimesNewRoman',weight='bold')
plt.title(label='WordsofCET-4&CET-6',fontdict=fontdict,loc='center',pad=None)
plt.text(2,650,'由图可知,s开头的单词数最多\nx开头的单词数最少',
fontdict={'size':12,'color':'r'})plt.show()#展示
任务实施——10.Matplotlib图表与画布边缘边距设置使用subplots_adjust(left,bottom,right,top,wspace,hspace)设置图表与画布之间的边缘边距,left,bottom,right,top依次表示左、下、右、上四个方向上图表与画布边缘之间的距离,取值范围在0~1之间。使用这四个参数时,将画布左下角视为坐标原点,画布的宽和高都视为单位1。wspace和hspace分别表示水平方向上图像间的距离和垂直方向上图像间的距离,在画布有多个子图时使用。尝试对图表与画布的边缘边距进行修改,效果如图115图表与画布边缘边距设置所示。#figsize控制画布的宽和高,dpi分辨率,facecolor设置画布背景颜色
plt.figure(figsize=(8,6),dpi=90,facecolor='grey')
plt.subplots_adjust(left=0.25,bottom=0.10,right=0.95,top=0.90)
#绘制条形图
colors=['red','blue','green','purple']#定义颜色
plt.bar(letter,enword,color=colors,alpha=0.4)#设置颜色和透明度
plt.show()#展示通过本任务的学习,了解Matplotlib相关基础知识,初步掌握Matplotlib绘图模块的使用,以及在基础条形图中设置标题、坐标轴、图例等一系列相关图表设置,对涉及的参数有了一定了解。本任务的重点是使用绘图模块进行绘图,以及定制化图表设置,难点在于图表设置时参数的选择、视图定制化的学习与灵活运用,可以通过练习题进行掌握与提升、课外学习更多Matplotlib知识加深和拓展知识储备。基于本任务的成果,对于Matplotlib绘制图表的原理有了一定的了解,通过案例更好地理解了Matplotlib绘图技巧,为后续学习做好铺垫。任务总结4绘制基础图形任务描述本任本将结合第一节Matplotlib基本用法的知识点,使用Matplotlib进行基础图形绘制,学习在Matplotlib中针对特定图形调用绘图函数,使用函数绘制散点图与折线图等基础图形。此任务引用四六级单词数据和随机生成数据,对数据进行散点图与折线图等图形展示,认知Matplotlib绘图风格与绘图原理,将逐步加深对Matplotlib绘图方法的理解,掌握Matplotlib绘图的主要步骤,包括初始化画布及正确调用绘图函数等,掌握指定颜色、大小的散点图等。通过学习本任务内容,掌握基本绘图方法,掌握折线图、柱状图、直方图、堆叠条形图、水平条形图、带标签的分组条形图、面积图、散点图、气泡图、饼图、箱型图、误差棒图、雷达图的基本绘图步骤,并依据练习题将所学知识巩固应用,在后续实践操作中能够根据实际需求绘制所需图形。本任本将结合第一节Matplotlib基本用法的知识点,使用Matplotlib进行基础图形绘制。知识与技能——plt.figure()函数详解在Matplotlib中,plt.figure()函数用于创建一个新的图形窗口,并返回一个指向该图形的引用。通常,我们会使用该函数创建图形对象,以便进行各种定制化的操作,例如添加多个子图、设置图形大小和分辨率等。在使用plt.figure()函数创建图形对象时,可以传递一些可选参数来控制图形的外观和行为。以下是一些常用的可选参数:figsize:用于设置图形的大小,可以传递一个元组,指定图形的宽度和高度,单位为英寸(inch),例如(6,4)表示宽度为6英寸、高度为4英寸的图形。dpi:用于设置图形的分辨率,即每英寸包含的像素数,可以传递一个整数值,例如dpi=100表示每英寸包含100个像素。facecolor:用于设置图形的背景颜色,可以传递一个字符串,表示颜色的名称或RGB值,例如facecolor='white'表示将图形的背景颜色设置为白色。edgecolor:用于设置图形边框的颜色,可以传递一个字符串,表示颜色的名称或RGB值,例如edgecolor='black'表示将图形的边框颜色设置为黑色。frameon:用于控制是否显示图形边框,可以传递一个布尔值,例如frameon=False表示将图形的边框隐藏。知识与技能——plt.figure()函数详解axes可以认为是figure这张画图上的子图,因为子图上一般都是坐标图,所以我更愿意理解为轴域或者坐标系。一个figure可以有多个axes,无论是pyplot模块还是figure实例内都定义有多种创建axes的方法。知识与技能——plt.axes()函数详解1.plt.axes()plt.axes()是指pyplot模块中的axes()方法,该方法会在当前激活的figure中创建一个axes,并使创建好的axes处于激活状态。当传入的第一个位置参数为空时,该方法会创建一个占满整个figure的axes;通常我们可以传入一个tuple参数(left,botton,width,height)作为第一个位置参数,tuple中四个元素分别表示与figure左边框比例距离,边框宽度占figure宽度的比例,宽度比例,高度占figure高度的比例。通过这种方式添加axes时,matplotlib会自动创建一个axes,然后将创建好的axes按照给定的位置和size添加到figure中,最后返回一个axes的引用。知识与技能——plt.axes()函数详解2.figure.add_axes()figure.add_axes()方法的作用是将一个axes添加到figure中,这一方法可以传入一个已创建好的axes作为第一个参数,add_axes会将传入的axes添加到figure中,但这种情况使用不多。在大多数情况下,我们会如同上述在plt.axes()方法中那样传递一个tuple参数(left,botton,width,height)作为第一个位置参数。同样,如果在相同区域添加axes,后面添加的axes会把前面添加的axes覆盖。知识与技能——plt.axes()函数详解本任务绘图时需要使用的基本绘图函数,如下表所示。函数绘制图形plt.plot()折线图plt.bar()柱状图plt.hist()直方图plt.bar()堆叠柱状图plt.barh()堆积条形图plt.bar()、plt.legend()带标签的分组条形图plt.stackplot()面积图plt.plot()、plt.scatter()散点图plt.scatter()气泡图plt.pie()饼图plt.boxplot()箱型图plt.errorbar()误差棒图plt.plot()、plt.fill()雷达图任务实施——1.绘制折线图对于图表来说,最简单的就是做出一个单一函数y=f(x)的图像,本节我们首先来介绍如何创建折线图,它是一个由点和线组成的统计图表,常用来表示数值随连续时间间隔或有序类别的变化。下面是在四六级单词中以各个字母开头的单词统计数据的折线图绘制代码。输出效果图图1-16所示。importmatplotlib.pyplotaspltx=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
y=[215,149,528,318,255,245,170,182,274,38,27,175,271,112,148,483,35,396,819,364,110,118,205,1,23,7]fig=plt.figure()
ax=plt.axes()
#plt.figure(figsize=(20,10),dpi=100)
ax.plot(x,y,'-')
plt.xticks(fontsize=12)
plt.yticks(fontsize=12)
plt.tight_layout()
plt.savefig("plot.png",dpi=300)
plt.show()以上是最基础的折线图绘制,同理,在绘制过程中可更改plot()函数的参数调整线条的颜色、粗细、风格、在同一画布上绘制多条折线图等。上个示例绘制结果如下:任务实施——1.绘制折线图任务实施——绘制直方图直方图是用一系列不等高的长方形来表示数据,宽度表示数据范围的间隔,高度表示在给定间隔内数据出现的频数,长方形的高度跟落在间隔内的数据数量成正比,变化的高度形态反映了数据的分布情况。相关参数及解释如下:hist(x,bins=None,range=None,normed=False,density=False,weights=None,cumulative=False,bottom=None,histtype='bar',align='mid',rwidth=None,orientation='vertical',color=None,edgecolor=None,label=None,stacked=False,**kwargs)x:数组或者数组序列(不要求每个数组长度相同),用于存放数据。bins:整数、序列或字符串,整数表示等宽区间的个数(直方图条形个数),自动计算区间范围,序列则表示区间的范围,除了最后一个以外,都是包含左边不包含右边,字符串则表示对应的策略,默认为
hist.bins。range:元组,指定最小值和最大值(直方图数据的上下界),默认包含绘图数据中的最小值和最大值(默认以绘图数据的最小值作为直方图数据的上下界)。density:布尔值,可选,如果为True,则返回的是归一化的概率密度,所有区间的概率之和为1。normed:是否将直方图的频数转化为频率。任务实施——绘制直方图在下面给出的例子中,定义一组数据数组,传入plt.hist()方法中,设置bins的值确定直方图条形个数、将density设置为True返回归一化概率密度。输出效果如图1-17所示。frommatplotlibimportpyplotasplta=[131,106,109,121,101,116,119,116,134,143,146,149,150,147,178,157,163,169,134,127,128,129,131,98,125,131,124,139,123,155,96,98,105,174,146,156,131,114,114,165,167,113,144,136,148,94,134,167,104]#定义数据
d=6
num_bins=(max(a)-min(a))//d#分割组数步长为6,计算组数plt.figure(figsize=(20,8),dpi=80)#设置图形的大小
plt.hist(a,num_bins,density=1)
#设置x轴的刻度
plt.xticks(range(min(a),max(a)+d,d))
plt.xticks(fontsize=36)
plt.yticks(fontsize=36)
plt.grid()
plt.tight_layout()
plt.savefig("hist.png",dpi=300)
plt.show()任务实施——绘制柱状图条形图是一种以长方形的长度为变量数据进行统计的图表,柱状图适用在较小数据集的分析,可以直观展示个体之间数据的差异。柱状图一般使用bar()函数实现绘制,只需在函数中定义需要绘制的两组数据,并且可以通过适当调整参数来设置颜色宽度等属性,此处给出的示例程序仍然使用四六级的数据进行图形绘制,代码绘制结果如图118柱状图。importmatplotlib.pyplotasplt第一步;导入相关包importmatplotlib.pyplotaspltx=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全员核酸采集培训课件
- 全员安全意识培训心得
- 全员安全培训教育大纲内容课件
- 全员安全培训会议纪要课件
- 复杂医患关系应对策略
- 盐系妆容面试制胜指南
- 混凝土安全预案模板讲解
- 佛山公考面试高分模板
- 朝鲜语就业前景与方向
- 光缆安全防护课件
- 2026年中检集团人力资源专员绩效考核考试题库含答案
- 江苏省G4联考2026届高三上学期数学试题(解析版)
- 地产设计总结(优选14篇)
- 课程设计立体停车库的控制plc设计
- GB/T 17888.3-2008机械安全进入机械的固定设施第3部分:楼梯、阶梯和护栏
- 索道游乐设施
- -新产程图与促进自然分娩资料
- 安徽开放大学合同法形考任务1(第1-4章权重30%)答卷
- 部编版小学六年级上册《道德与法治》全册复习课件
- SONY技术标准SS-00259介绍
- 英语专四真题及答案
评论
0/150
提交评论