Python数据分析与应用-Matplotlib数据可视化基础
- 格式:pdf
- 大小:1.59 MB
- 文档页数:32
Python利⽤matplotlib模块数据可视化绘制3D图⽬录前⾔1matplotlib绘制3D图形2绘制3D画⾯图2.1源码2.2效果图3绘制散点图3.1源码3.2效果图4绘制多边形4.1源码4.2效果图5三个⽅向有等⾼线的3D图5.1源码5.2效果图6三维柱状图6.1源码6.2效果图7补充图7.1源码7.2效果图总结前⾔matplotlib实际上是⼀套⾯向对象的绘图库,它所绘制的图表中的每个绘图元素,例如线条Line2D、⽂字Text、刻度等在内存中都有⼀个对象与之对应。
为了⽅便快速绘图matplotlib通过pyplot模块提供了⼀套和MATLAB类似的绘图API,将众多绘图对象所构成的复杂结构隐藏在这套API内部。
我们只需要调⽤pyplot模块所提供的函数就可以实现快速绘图以及设置图表的各种细节。
pyplot模块虽然⽤法简单,但不适合在较⼤的应⽤程序中使⽤。
为了将⾯向对象的绘图库包装成只使⽤函数的调⽤接⼝,pyplot模块的内部保存了当前图表以及当前⼦图等信息。
当前的图表和⼦图可以使⽤plt.gcf()和plt.gca()获得,分别表⽰"Get Current Figure"和"Get Current Axes"。
在pyplot模块中,许多函数都是对当前的Figure或Axes对象进⾏处理,⽐如说:plt.plot()实际上会通过plt.gca()获得当前的Axes对象ax,然后再调⽤ax.plot()⽅法实现真正的绘图。
可以在Ipython中输⼊类似"plt.plot??"的命令查看pyplot模块的函数是如何对各种绘图对象进⾏包装的。
1 matplotlib绘制3D图形matplotlib可以绘制3D图形,有的版本中不具备该模块,可以进⼊python环境,输⼊from mpl_toolkits.mplot3d import Axes3D 进⾏测试,如果导⼊成功则可以,否则需要安装matplotlib其他版本,这⾥我⽤的是2.0.2版本。
Pythonmatplotlib绘图可视化知识点整理(⼩结)⽆论你⼯作在什么项⽬上,IPython都是值得推荐的。
利⽤ipython --pylab,可以进⼊PyLab模式,已经导⼊了matplotlib库与相关软件包(例如Numpy和Scipy),额可以直接使⽤相关库的功能。
本⽂作为学习过程中对matplotlib⼀些常⽤知识点的整理,⽅便查找。
这样IPython配置为使⽤你所指定的matplotlib GUI后端(TK/wxPython/PyQt/Mac OS X native/GTK)。
对于⼤部分⽤户⽽⾔,默认的后端就已经够⽤了。
Pylab模式还会向IPython引⼊⼀⼤堆模块和函数以提供⼀种更接近MATLAB的界⾯。
import matplotlib.pyplot as pltlabels='frogs','hogs','dogs','logs'sizes=15,20,45,10colors='yellowgreen','gold','lightskyblue','lightcoral'explode=0,0.1,0,0plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.1f%%',shadow=True,startangle=50)plt.axis('equal')plt.show()matplotlib图标正常显⽰中⽂为了在图表中能够显⽰中⽂和负号等,需要下⾯⼀段设置:import matplotlib.pyplot as pltplt.rcParams['font.sas-serig']=['SimHei'] #⽤来正常显⽰中⽂标签plt.rcParams['axes.unicode_minus']=False #⽤来正常显⽰负号matplotlib inline和pylab inline可以使⽤ipython --pylab打开ipython命名窗⼝。
用Python实现数据分析和可视化数据分析和可视化已经成为当今社会中不可或缺的技能。
Python作为一种功能强大且易于学习的编程语言,被广泛应用于数据科学领域。
本文将介绍如何使用Python进行数据分析和可视化,并提供一些实际案例进行说明。
1. 数据分析的基本步骤a. 数据收集:从各种数据源中获取原始数据,可以是数据库、API、Web爬虫等。
b. 数据清洗:对原始数据进行清洗和处理,例如删除重复项、处理缺失值、转换数据类型等。
c. 数据探索:通过统计分析、描述性统计、数据可视化等方法,对数据进行探索和发现潜在规律或趋势。
d. 数据建模:根据数据的特点和目标,选择合适的模型进行建立和训练。
e. 数据评估:评估模型的性能和预测结果的准确性。
f. 数据应用:将分析结果应用于实际应用场景,并进行决策支持。
2. Python数据分析库介绍a. NumPy:提供了高性能的数值计算和数组操作功能。
b. Pandas:用于数据清洗、整理、探索和分析的强大工具。
c. Matplotlib:用于绘制数据可视化图表,包括线图、散点图、柱状图等。
d. Seaborn:基于Matplotlib的高级数据可视化库,提供了更多样式和主题选项。
e. Scikit-learn:用于机器学习领域的库,包含了各种常用的机器学习算法和工具。
f. Jupyter Notebook:一种交互式编程环境,方便进行数据分析和结果展示。
3. 数据分析示例:电子商务销售数据分析a. 数据收集:从电子商务平台的数据库中获取销售数据,包括产品信息、销售额、客户信息等。
b. 数据清洗:处理缺失值、删除重复项、转换日期格式等。
c. 数据探索:统计每个产品的销售额和销售量,分析销售额的变化趋势,并根据客户信息进行分析。
d. 数据建模:根据历史销售数据,建立销售预测模型,以实现准确预测和库存管理。
e. 数据评估:评估模型的准确性和稳定性,根据评估结果进行模型调优。
Python数据分析与可视化案例随着互联网和大数据时代的到来,数据分析和可视化已成为一种重要的技能和工具。
Python作为一种功能强大且易于使用的编程语言,被广泛应用于数据分析和可视化领域。
本文将介绍一些Python数据分析和可视化的经典案例,并对其进行详细的分析和解释。
案例一:股票价格分析与可视化在股票市场中,了解股票价格的波动和趋势对投资者来说至关重要。
Python的数据分析库pandas和可视化库matplotlib可以帮助我们从海量的股票数据中提取有用的信息并进行可视化展示。
我们可以使用pandas获取股票价格数据,并使用matplotlib绘制股票价格走势图和相关指标。
案例二:天气数据分析与可视化天气数据分析和可视化对于气象工作者和气象爱好者来说是一个常见的任务。
通过使用Python的数据分析库numpy和可视化库seaborn,我们可以从气象局等机构获取历史天气数据,并进行相关统计和可视化分析。
例如,我们可以绘制温度变化曲线、降雨量柱状图等,以便更好地理解和预测天气情况。
案例三:社交媒体数据分析与可视化社交媒体平台上产生的海量数据为我们研究人们的行为和兴趣提供了机会。
通过使用Python的数据分析库pandas和可视化库plotly,我们可以收集社交媒体的数据并进行情感分析、用户行为分析以及关键词挖掘等工作。
通过可视化这些数据,我们能够更好地了解用户的喜好和行为模式,从而优化产品和服务的设计。
案例四:销售数据分析与可视化销售数据是企业决策的重要依据之一。
通过使用Python的数据分析库pandas和可视化库seaborn,我们可以从企业的销售系统中提取销售数据,并进行销售额、订单量、地区分布等方面的统计和可视化分析。
这些分析和可视化结果能够帮助企业了解自身销售情况,优化市场策略和销售计划。
案例五:航班数据分析与可视化航班数据分析对于航空公司和旅行者来说都是非常有用的。
Python的数据分析库pandas和可视化库matplotlib可以帮助我们获取航班数据并进行航班延误率、航线热度、地区间航班数量等方面的统计和可视化分析。
是的,您提到的Matplotlib和Seaborn都是非常流行的Python数据可视化库。
Matplotlib:Matplotlib是Python中最常用的绘图库之一,它提供了丰富的绘图功能和高度灵活的接口,可以创建各种类型的图表,包括折线图、散点图、柱状图、饼图等等。
Matplotlib 支持各种绘图样式和输出格式,包括屏幕显示、图像文件和交互式界面等。
Seaborn:Seaborn是一个基于Matplotlib的高级数据可视化库,它提供了一些方便的函数和工具,可以更轻松地创建各种复杂的图表,包括热力图、Pairplot、分布图等等。
Seaborn支持各种数据结构和可视化样式,包括单变量和多变量数据、分类数据和回归数据等等。
这两个库都是Python数据可视化领域的重要工具,可以根据具体需求选择使用。
如果您需要创建简单的图表和图像,可以使用Matplotlib;如果您需要创建更复杂的图表和可视化效果,可以使用Seaborn。
Python数据分析与可视化随着数据的大量积累和应用,数据分析和可视化也成为了热门的技能。
Python作为一个强大的编程语言,具有丰富的数据科学库,成为了数据分析和可视化的主流工具。
本文将介绍Python数据分析和可视化的基本知识,包括数据处理、数据可视化和数据分析常用的库和技术。
数据处理数据处理是数据分析过程中的重要环节,常用的Python数据科学库有pandas和numpy。
pandas主要提供了一种高性能、易用的数据结构DataFrame和Series,支持数据的读取、写入、清洗和转换等功能。
numpy 则提供了数组和矩阵运算的高效实现,可用于数据运算和数学计算。
读取数据pandas提供了多种读取数据的方式,包括读取csv、excel、数据库等多种数据源。
以读取csv文件为例:```import pandas as pddata = pd.read_csv('data.csv')```可通过指定参数delimiter和header,读取指定分隔符和列名的数据。
数据清洗数据清洗是保证数据质量的重要环节,常用的pandas数据清洗方法包括缺失值填充、重复值处理、异常值处理等。
缺失值填充缺失值填充常用的方法包括平均值填充、中位数填充和众数填充。
以平均值填充为例:```data['column_name'].fillna(data['column_name'].mean())```重复值处理重复值处理可通过drop_duplicates方法删除重复值:```data.drop_duplicates()```异常值处理异常值处理可通过标准差或四分位数等方法识别异常值,再通过平均值填充或删除异常值。
数据可视化数据可视化是数据分析中的重要环节,可通过可视化工具更直观地展现数据的特征和规律。
Python数据可视化主要依赖于matplotlib、seaborn和plotly等库。
Python数据可视化教程之Matplotlib实现各种图表实例前⾔数据分析就是将数据以各种图表的形式展现给领导,供领导做决策⽤,因此熟练掌握饼图、柱状图、线图等图表制作是⼀个数据分析师必备的技能。
Python有两个⽐较出⾊的图表制作框架,分别是Matplotlib和Pyechart。
本⽂主要讲述使⽤Matplotlib制作各种数据图表。
Matplotlib是最流⾏的⽤于绘制2D数据图表的Python库,能够在各种平台上使⽤,可以绘制散点图、柱状图、饼图等。
1、柱状图是⼀种以长⽅形或长⽅体的⾼度为变量的表达图形的统计报告图,由⼀系列⾼度不等的纵向条纹表⽰数据分布的情况,⽤来⽐较两个或以上的价值(不同时间或者不同条件),只有⼀个变量,通常利⽤于较⼩的数据集分析。
柱状图可以⽤来⽐较数据之间的多少,可以⽤来观察某⼀事件的变化趋势,柱状图亦可横向排列,或⽤多维⽅式表达。
实现代码:# 导⼊绘图模块import matplotlib.pyplot as plt# 构建数据sales = [7125,12753,13143,8635]# 中⽂乱码的处理,rcParams也可以⽤于设置图的分辨率,⼤⼩等信息plt.rcParams['font.sans-serif'] =['SimHei']plt.rcParams['axes.unicode_minus'] = False# 绘图,第⼀个参数是x轴的数据,第⼆个参数是y轴的数据,第三个参数是柱⼦的⼤⼩,默认值是1(值在0到1之间),color是柱⼦的颜⾊,alpha是柱⼦的透明度plt.bar(range(4), sales, 0.4,color='r', alpha = 0.8)# 添加轴标签plt.ylabel('销量')# 添加标题plt.title('⽔果2018年度销量')# 添加刻度标签plt.xticks(range(4),['苹果','⾹蕉','梨','猕猴桃'])# 设置Y轴的刻度范围plt.ylim([5000,15000])# 为每个条形图添加数值标签for x,y in enumerate(sales):plt.text(x,y+100,'%s' %y,ha='center')# 显⽰图形plt.show()效果图:只需绘制柱状图的函数bar()改成barh()就可以将柱状图长⽅形或长⽅体从垂直⽅向变为⽔平⽅向。
Matplotlib数据可视化基础1分析特征间的关系目录了解绘图基础语法与常用参数2分析特征内部数据分布与分散状况3小结4基本绘图流程1.创建画布与创建子图第一部分主要作用是构建出一张空白的画布,并可以选择是否将整个画布划分为多个部分,方便在同一幅图上绘制多个图形的情况。
最简单的绘图可以省略第一部分,而后直接在默认的画布上进行图形绘制。
函数名称函数作用plt.figure创建一个空白画布,可以指定画布大小,像素。
figure.add_subplot创建并选中子图,可以指定子图的行数,列数,与选中图片编号。
2.添加画布内容第二部分是绘图的主体部分。
其中添加标题,坐标轴名称,绘制图形等步骤是并列的,没有先后顺序,可以先绘制图形,也可以先添加各类标签。
但是添加图例一定要在绘制图形之后。
函数名称函数作用plt.title在当前图形中添加标题,可以指定标题的名称、位置、颜色、字体大小等参数。
plt.xlabel在当前图形中添加x轴名称,可以指定位置、颜色、字体大小等参数。
plt.ylabel在当前图形中添加y轴名称,可以指定位置、颜色、字体大小等参数。
plt.xlim指定当前图形x轴的范围,只能确定一个数值区间,而无法使用字符串标识。
plt.ylim指定当前图形y轴的范围,只能确定一个数值区间,而无法使用字符串标识。
plt.xticks指定x轴刻度的数目与取值。
plt.yticks指定y轴刻度的数目与取值。
plt.legend指定当前图形的图例,可以指定图例的大小、位置、标签。
3.存与展示图形第三部分主要用于保存和显示图形。
函数名称函数作用plt.savafig保存绘制的图片,可以指定图片的分辨率、边缘的颜色等参数。
plt.show在本机显示图形。
Øpyplot使用rc配置文件来自定义图形的各种默认属性,被称为rc配置或rc参数。
Ø在pyplot中几乎所有的默认属性都是可以控制的,例如视图窗口大小以及每英寸点数、线条宽度、颜色和样式、坐标轴、坐标和网格属性、文本、字体等。
线条的常用rc参数名称、解释与取值rc参数名称解释取值lines.linewidth线条宽度取0-10之间的数值,默认为1.5。
lines.linestyle线条样式可取“-”“--”“-.”“:”四种。
默认为“-”。
lines.marker线条上点的形状可取“o”“D”“h”“.”“,”“S”等20种,默认为None。
lines.markersize点的大小取0-10之间的数值,默认为1。
常用线条类型解释linestyle取值意义linestyle取值意义-实线-.点线--长虚线:短虚线线条标记解释marker取值意义marker取值意义‘o’圆圈‘.’点‘D’菱形‘s’正方形‘h’六边形1‘*’星号‘H’六边形2‘d’小菱形‘-’水平线‘v’一角朝下的三角形‘8’八边形‘<’一角朝左的三角形‘p’五边形‘>’一角朝右的三角形‘,’像素‘^’一角朝上的三角形‘+’加号‘\’竖线‘None’无‘x’X设置pyplot的动态rc参数注意事项Ø由于默认的pyplot字体并不支持中文字符的显示,因此需要通过设置font.sans-serif参数改变绘图时的字体,使得图形可以正常显示中文。
同时,由于更改字体后,会导致坐标轴中的部分字符无法显示,因此需要同时更改axes.unicode_minus参数。
•plt.rcParams['font.sans-serif'] = 'SimHei' ## 设置中文显示•plt.rcParams['axes.unicode_minus'] = FalseØ除了设置线条和字体的rc参数外,还有设置文本、箱线图、坐标轴、刻度、图例、标记、图片、图像保存等rc参数。
具体参数与取值可以参考官方文档。
1分析特征间的关系目录了解绘图基础语法与常用参数2分析特征内部数据分布与分散状况3小结4Ø散点图(scatter diagram)又称为散点分布图,是以一个特征为横坐标,另一个特征为纵坐标,利用坐标点(散点)的分布形态反映特征间的统计关系的一种图形。
Ø值是由点在图表中的位置表示,类别是由图表中的不同标记表示,通常用于比较跨类别的数据。
散点图matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, alpha=None, **kwargs)Ø常用参数及说明如下表所示。
scatter函数参数名称说明x,y接收array。
表示x轴和y轴对应的数据。
无默认。
s 接收数值或者一维的array。
指定点的大小,若传入一维array则表示每个点的大小。
默认为None。
c 接收颜色或者一维的array。
指定点的颜色,若传入一维array则表示每个点的颜色。
默认为Nonemarker接收特定string。
表示绘制的点的类型。
默认为None。
alpha接收0-1的小数。
表示点的透明度。
默认为None。
Ø折线图(line chart)是一种将数据点按照顺序连接起来的图形。
可以看作是将散点图,按照x轴坐标顺序连接起来的图形。
Ø折线图的主要功能是查看因变量y随着自变量x改变的趋势,最适合用于显示随时间(根据常用比例设置)而变化的连续数据。
同时还可以看出数量的差异,增长趋势的变化。
折线图plot函数matplotlib.pyplot.plot(*args, **kwargs)plot函数在官方文档的语法中只要求填入不定长参数,实际可以填入的主要参数主要如下。
参数名称说明x,y接收array。
表示x轴和y轴对应的数据。
无默认。
color接收特定string。
指定线条的颜色。
默认为None。
linestyle接收特定string。
指定线条类型。
默认为“-”。
marker接收特定string。
表示绘制的点的类型。
默认为None。
alpha接收0-1的小数。
表示点的透明度。
默认为None。
plot函数color参数的8种常用颜色的缩写。
颜色缩写代表的颜色颜色缩写代表的颜色b蓝色m品红g绿色y黄色r红色k黑色c青色w白色Ø国民生产总值数据总共有三大产业的国民生产总值,以及农业、工业、建筑、批发、交通、餐饮、金融、房地产和其他行业各个季度的增加值。
Ø通过散点图分析三大行业的国民生产总值可以发现我国产业结构。
通过比较各行业间季度的增加值则可以发现国民经济的主要贡献行业。
1.绘制2000-2017各产业与行业的国民生产总值散点图Ø通过绘制2000-2017各产业与行业的国民生产总值折线图,分别能够发现我国经济各产业与各行业增长趋势。
2.绘制2000-2017各产业与行业的国民生产总值折线图1分析特征间的关系目录了解绘图基础语法与常用参数2分析特征内部数据分布与分散状况3小结4Ø直方图(Histogram)又称质量分布图,是统计报告图的一种,由一系列高度不等的纵向条纹或线段表示数据分布的情况,一般用横轴表示数据所属类别,纵轴表示数量或者占比。
Ø用直方图可以比较直观地看出产品质量特性的分布状态,便于判断其总体质量分布情况。
直方图可以发现分布表无法发现的数据模式、样本的频率分布和总体的分布。
直方图matplotlib.pyplot.bar(left,height,width = 0.8,bottom = None,hold = None,data = None,** kwargs )Ø常用参数及说明如下表所示。
bar函数参数名称说明left接收array。
表示x轴数据。
无默认。
height接收array。
表示x轴所代表数据的数量。
无默认。
width接收0-1之间的float。
指定直方图宽度。
默认为0.8。
color 接收特定string或者包含颜色字符串的array。
表示直方图颜色。
默认为None 。
Ø饼图(Pie Graph)是将各项的大小与各项总和的比例显示在一张“饼”中,以“饼”的大小来确定每一项的占比。
Ø饼图可以比较清楚地反映出部分与部分、部分与整体之间的比例关系,易于显示每组数据相对于总数的大小,而且显现方式直观。
饼图matplotlib.pyplot.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None, radius=None, … )Ø常用参数及说明如下表所示。
pie函数参数名称说明参数名称说明x 接收array。
表示用于绘制撇的数据。
无默认。
autopct接收特定string。
指定数值的显示方式。
默认为None。
explode 接收array。
表示指定项离饼图圆心为n个半径。
默认为None。
pctdistance接收float。
指定每一项的比例和距离饼图圆心n个半径。
默认为0.6。
labels 接收array。
指定每一项的名称。
默认为None。
labeldistance接收float。
指定每一项的名称和距离饼图圆心多少个半径。
默认为1.1。
color 接收特定string或者包含颜色字符串的array。
表示饼图颜色。
默认为None。
radius接收float。
表示饼图的半径。
默认为1。
Ø箱线图(boxplot)也称箱须图,其绘制需使用常用的统计量,能提供有关数据位置和分散情况的关键信息,尤其在比较不同特征时,更可表现其分散程度差异。
Ø箱线图利用数据中的五个统计量(最小值、下四分位数、中位数、上四分位数和最大值)来描述数据,它也可以粗略地看出数据是否具有对称性、分布的分散程度等信息,特别可以用于对几个样本的比较。
箱线图matplotlib.pyplot.boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=None,meanline=None, labels=None, … )Ø常用参数及说明如下表所示。
boxplot函数参数名称说明参数名称说明x 接收array。
表示用于绘制箱线图的数据。
无默认。
positions接收array。
表示图形位置。
默认为None。
notch 接收boolean。
表示中间箱体是否有缺口。
默认为None。
widths接收scalar或者array。