Matplotlib(Python绘图库)用法和实例图解

人的思维更适合数据的视觉表示,而不是文本数据。当事物可视化时,我们可以轻松理解它们。最好通过图形表示数据,以便我们可以更有效地分析数据并根据数据分析做出特定决策。在学习matplotlib之前,我们需要了解数据可视化以及为什么数据可视化很重要。

图形为探索数据提供了一种极好的方法,这对于呈现结果至关重要。数据可视化是一个新名词。它表达的想法不仅仅涉及以图形形式表示数据(而不是使用文本形式)。

在发现和了解数据集时,这可能非常有用,并且可以帮助分类模式,损坏的数据,离群值等等。掌握一点领域知识,就可以使用数据可视化来表示和演示图形和图表中的关键关系。静态确实确实集中在数据的定量描述和估计上。它提供了一套重要的工具,可以帮助你定性地理解。

有五个关键图用于数据可视化。

有五个阶段对于组织做出决定至关重要:

数据可视化可以执行以下任务:

数据可视化有一些好处,可帮助你为组织或企业做出有效的决策:

1.建立吸收信息的方式

数据可视化使用户可以接收有关运营和业务状况的大量信息。它有助于决策者查看多维数据集之间的关系。它提供了通过使用地图,发烧图和其他丰富的图形表示来分析数据的新方法。

可视数据发现更有可能找到组织所需的信息,然后最终比其他竞争性公司更具生产力。

2.可视化企业中的关系和模式

数据可视化的关键优势在于,在当今竞争激烈的商业环境中,找到运营条件与业务绩效之间的关联至关重要。

进行这些类型的关联的能力使主管人员能够确定问题的根本原因并迅速采取行动以解决问题。

假设一家食品公司正在查看其每月客户数据,并且该数据以条形图显示,这表明该公司在该特定区域中的得分在过去几个月中下降了5分;数据表明该区域的客户满意度存在问题。

3.更快地对新兴趋势采取行动

数据可视化使决策者可以更有效地掌握多个数据集上客户行为和市场状况的变化。

对客户的情绪和其他数据有一个想法,这为公司提供了一个新的机会,使公司能够在竞争对手之前采取新的商机。

4.基于地质的可视化

由于许多网站都提供Web服务,因此发生了地理空间可视化,从而吸引了访问者的兴趣。需要这些类型的网站以利用特定于位置的信息,这些信息已存在于客户详细信息中。

Matplotlib是一个Python库,它定义为基于Numpy数组的多平台数据可视化库。它可以在python脚本,shell,Web应用程序和其他图形用户界面工具包中使用。

JohnD.Hunter最初在2002年构思了matplotlib。它具有活跃的开发社区,并以BSD样式的许可证进行分发。其第一个版本于2003年发布,最新版本3.1.1于2019年7月1日发布。

Matplotlib2.0.x支持Python2.7到3.6版本,直到2007年6月23日为止。Python3支持始于Matplotlib1.2。Matplotlib1.4是支持Python2.6的最新版本。

有各种可用的工具包,用于增强matplotlib的功能。其中一些工具是单独下载的,其他工具可以随matplotlib源代码转移,但具有外部依赖性。

matplotlib的体系结构分为三个不同的层,分别是:

后端层

后端层是该图的底层,由绘图所需的各种功能的实现组成。后端层有三个基本类:FigureCanvas(将在其上绘制图形的表面),Renderer(负责在表面上绘制图形的类)和Event(它处理鼠标和键盘事件)。

艺术家层

艺术家层是体系结构中的第二层。它负责各种绘图功能,例如轴,这些功能协调如何在图形画布上使用渲染器。

脚本层

脚本层是我们大多数代码将在其上运行的最顶层。脚本层中的方法几乎会自动处理其他层,而我们需要关心的只是当前状态(图和子图)。

Matplotlib图形可以分为以下几个部分:

图:这是一个整体图,可以容纳一个或多个轴(曲线图)。我们可以将Figure看作是一块包含绘图的画布。

轴:一个图形可以包含多个轴。它由两个或三个(在3D情况下)Axis对象组成。每个轴由标题,x标签和y标签组成。

轴:轴是线状对象的数量,负责生成图形限制。

在首先开始使用Matplotlib或其绘图功能之前,需要先安装它。matplotlib的安装取决于计算机上安装的发行版。这些安装方法如下:

使用Python的Anaconda发行版

安装Matplotlib的最简单方法是下载Python的Anaconda发行版。Matplotlib已预先安装在anaconda发行版中,无需其他安装步骤。

与AnacondaPrompt一起安装Matplotlib

可以通过键入命令将Matplotlib与AnacondaPrompt一起安装。要安装matplotlib,请打开AnacondaPrompt并键入以下命令:

python软件包管理器pip也用于安装matplotlib。打开命令提示符窗口,然后键入以下命令:

pipinstallmatplotlib验证安装要验证是否正确安装了matplotlib,请键入以下命令,包括在终端中调用.__version__。

importmatplotlibmatplotlib.__version__'3.1.1'绘制图的基本示例这是生成简单图形的基本示例;该程序如下:

frommatplotlibimportpyplotasplt#plotingourcanvasplt.plot([1,2,3],[4,5,1])#displaythegraphplt.show()输出

使用Pythonmatplotlib只需三行即可绘制一个简单的图形。我们可以向图表添加标题,标签,这些标题,标签由Pythonmatplotlib库创建,以使其更有意义。示例如下:

frommatplotlibimportpyplotaspltx=[5,2,7]y=[1,10,4]plt.plot(x,y)plt.title('Linegraph')plt.ylabel('Yaxis')plt.xlabel('Xaxis')plt.show()输出

该图比以前的图更容易理解。

matplotlib.pyplot是集合命令样式的函数,使matplotlib像使用MATLAB。pyplot函数用于对图形进行一些更改,例如创建图形,在图形中创建绘图区域,在绘图区域中绘制一些线条,装饰包括标签的绘图等。

当我们想快速绘制某些东西而无需实例化任何图形或轴时,最好使用它。

在使用matplotlib.pyplot时,一些状态存储在函数调用之间,以便跟踪当前图形和绘图区域之类的东西,并将这些绘图函数定向到当前轴。

pyplot模块提供了plot()函数,该函数经常用于绘制图形。让我们看一个简单的例子:

frommatplotlibimportpyplotaspltplt.plot([1,2,3,4,5])plt.ylabel("yaxis")plt.xlabel('xaxis')plt.show()输出

在上面的程序中,它绘制了图的x轴范围是0-4,y轴范围是1-5。如果我们向plot()提供一个列表,则matplotlib假定它是y值的序列,并自动生成x值。由于我们知道python索引从0开始,因此默认x向量的长度与y相同,但从0开始。因此x数据为[0,1,2,3,4]。

我们可以将任意数量的参数传递给plot()。例如,要绘制x与y的关系图,我们可以按照以下方式进行:

frommatplotlibimportpyplotaspltplt.plot([1,2,3,4,5],[1,4,9,16,25])plt.ylabel("yaxis")plt.xlabel('xaxis')plt.show()输出

格式化绘图样式

frommatplotlibimportpyplotaspltplt.plot([1,2,3,4,5],[1,4,9,16,25],'ro')plt.axis([0,6,0,20])plt.show()输出

示例格式字符串

matplotlib支持以下颜色缩写:

Matplotlib允许我们将分类变量直接传递给许多绘图函数:考虑以下示例

frommatplotlibimportpyplotnames=['Abhishek','Himanshu','Devansh']marks=[87,50,98]plt.figure(figsize=(9,3))plt.subplot(131)plt.bar(names,marks)plt.subplot(132)plt.scatter(names,marks)plt.subplot(133)plt.plot(names,marks)plt.suptitle('CategoricalPlotting')plt.show()输出

在上面的程序中,我们使用subplot()函数绘制了分类图。让我们看一下subplot()函数。

它接受三个参数:nrows,ncols和index。它表示行数,列数和索引。

可以通过以下方式调用subplot()函数:

subplot(nrows,ncols,index,**kwargs)subplot(pos,**kwargs)subplot(ax)参数:

三个独立的整数或三位整数描述子图的位置。如果三个整数依次为nrows,ncols和index,则子图将在nrows行和ncol列的网格上取得索引位置。

参数pos是一个三位数的整数,其中第一位数表示行数,第二位数表示列数,第三位数表示子图的索引。例如,子图(1、3、2)与子图(132)相同。

subplot()函数还接受返回的轴基类的关键字参数。

考虑以下示例:

折线图是将信息显示为一系列折线的图表之一。该图由plot()函数绘制。折线图易于绘制;让我们考虑以下示例:

frommatplotlibimportpyplotaspltx=[4,8,9]y=[10,12,15]plt.plot(x,y)plt.title("Linegraph")plt.ylabel('Yaxis')plt.xlabel('Xaxis')plt.show()输出

我们可以通过导入样式模块来自定义图形。样式模块将内置在matplotlib安装中。它包含各种功能,可以使情节更具吸引力。在下面的程序中,我们使用样式模块:

frommatplotlibimportpyplotaspltfrommatplotlibimportstylestyle.use('ggplot')x=[16,8,10]y=[8,16,6]x2=[8,15,11]y2=[6,15,7]plt.plot(x,y,'r',label='lineone',linewidth=5)plt.plot(x2,y2,'m',label='linetwo',linewidth=5)plt.title('EpicInfo')fig=plt.figure()plt.ylabel('Yaxis')plt.xlabel('Xaxis')plt.legend()plt.grid(True,color='k')plt.show()输出

在Matplotlib中,图形(类plt.Figure的一个实例)可以被认为是一个包含所有表示轴,图形,文本和标签的对象的容器。

示例3

importnumpyasnpimportmatplotlib.pyplotaspltfig=plt.figure()ax=plt.axes()x=np.linspace(0,10,1000)ax.plot(x,np.sin(x))输出

matplotlib提供fill_between()函数,该函数用于根据用户定义的逻辑填充线周围的区域。

importnumpyasnpimportmatplotlib.pyplotaspltfig=plt.figure()ax=plt.axes()x=np.linspace(0,10,1000)ax.plot(x,np.sin(x))importmatplotlib.pyplotaspltimportnumpyasnpx=np.arange(0.0,2,0.01)y1=np.sin(2*np.pi*x)y2=1.2*np.sin(4*np.pi*x)fig,ax=plt.subplots(1,sharex=True)ax.plot(x,y1,x,y2,color='black')ax.fill_between(x,y1,y2,where=y2>=y1,facecolor='blue',interpolate=True)ax.fill_between(x,y1,y2,where=y2<=y1,facecolor='red',interpolate=True)ax.set_title('fillbetweenwhere')输出

条形图是最常见的图类型之一,用于显示与分类变量关联的数据。Matplotlib提供了一个bar()来制作条形图,该条形图接受诸如以下变量:分类变量,其值和颜色。

frommatplotlibimportpyplotaspltplayers=['Virat','Rohit','Shikhar','Hardik']runs=[51,87,45,67]plt.bar(players,runs,color='green')plt.title('ScoreCard')plt.xlabel('Players')plt.ylabel('Runs')plt.show()输出

另一个函数barh()用于制作水平条形图。它接受xerr或yerr作为参数(在垂直图的情况下),以如下描述数据的方差:

frommatplotlibimportpyplotaspltplayers=['Virat','Rohit','Shikhar','Hardik']runs=[51,87,45,67]plt.barh(players,runs,color='green')plt.title('ScoreCard')plt.xlabel('Players')plt.ylabel('Runs')plt.show()输出

让我们看看使用style()函数的另一个示例:

frommatplotlibimportpyplotaspltfrommatplotlibimportstylestyle.use('ggplot')x=[5,8,10]y=[12,16,6]x2=[6,9,11]y2=[7,15,7]plt.bar(x,y,color='y',align='center')plt.bar(x2,y2,color='c',align='center')plt.title('Information')plt.ylabel('Yaxis')plt.xlabel('Xaxis')输出

与垂直堆叠类似,使用底部参数将条形图放在一起,并定义要在其下方堆叠的条形图及其值。

frommatplotlibimportpyplotaspltimportnumpyasnpcountries=['USA','India','China','Russia','Germany']bronzes=np.array([38,17,26,19,15])silvers=np.array([37,23,18,18,10])golds=np.array([46,27,26,19,17])ind=[xforx,_inenumerate(countries)]plt.bar(ind,golds,width=0.5,label='golds',color='gold',bottom=silvers+bronzes)plt.bar(ind,silvers,width=0.5,label='silvers',color='silver',bottom=bronzes)plt.bar(ind,bronzes,width=0.5,label='bronzes',color='#CD853F')plt.xticks(ind,countries)plt.ylabel("Medals")plt.xlabel("Countries")plt.legend(loc="upperright")plt.title("2019OlympicsTopScorers")输出

饼图是在饼图的段或切片中细分的圆形图。它通常用于表示百分比或比例数据,其中每个饼图代表一个特定类别。让我们看下面的例子:

frommatplotlibimportpyplotasplt#Piechart,wherethesliceswillbeorderedandplottedcounter-clockwise:Players='Rohit','Virat','Shikhar','Yuvraj'Runs=[45,30,15,10]explode=(0.1,0,0,0)#it"explode"the1stslicefig1,ax1=plt.subplots()ax1.pie(Runs,explode=explode,labels=Players,autopct='%1.1f%%',shadow=True,startangle=90)ax1.axis('equal')#Equalaspectratioensuresthatpieisdrawnasacircle.plt.show()输出

首先,我们需要了解条形图和直方图之间的区别。直方图用于分布,而条形图用于比较不同的实体。直方图是一种条形图,它显示了与一组值范围相比较的多个值的频率。

例如,我们获取不同年龄组的数据,并针对垃圾箱绘制直方图。现在,bin代表划分为一系列间隔的值的范围。通常会创建相同大小的垃圾箱。

frommatplotlibimportpyplotaspltfrommatplotlibimportpyplotaspltpopulation_age=[21,53,60,49,25,27,30,42,40,1,2,102,95,8,15,105,70,65,55,70,75,60,52,44,43,42,45]bins=[0,10,20,30,40,50,60,70,80,90,100]plt.hist(population_age,bins,histtype='bar',rwidth=0.8)plt.xlabel('agegroups')plt.ylabel('Numberofpeople')plt.title('Histogram')plt.show()输出

让我们考虑另一个绘制直方图的示例:

frommatplotlibimportpyplotasplt#ImportingNumpyLibraryimportnumpyasnpplt.style.use('fivethirtyeight')mu=50sigma=7x=np.random.normal(mu,sigma,size=200)fig,ax=plt.subplots()ax.hist(x,20)ax.set_title('Historgram')ax.set_xlabel('binrange')ax.set_ylabel('frequency')fig.tight_layout()plt.show()输出

当我们需要定义一个变量受另一变量影响多少时,散点图通常用于比较变量。数据显示为点的集合。每个点都有一个变量的值,该变量定义了水平轴上的位置,另一个变量的值表示了垂直轴上的位置。

让我们考虑以下简单示例:

示例1:

frommatplotlibimportpyplotaspltfrommatplotlibimportstylestyle.use('ggplot')x=[5,7,10]y=[18,10,6]x2=[6,9,11]y2=[7,14,17]plt.scatter(x,y)plt.scatter(x2,y2,color='g')plt.title('EpicInfo')plt.ylabel('Yaxis')plt.xlabel('Xaxis')plt.show()输出

示例2

importmatplotlib.pyplotaspltx=[2,2.5,3,3.5,4.5,4.7,5.0]y=[7.5,8,8.5,9,9.5,10,10.5]x1=[9,8.5,9,9.5,10,10.5,12]y1=[3,3.5,4.7,4,4.5,5,5.2]plt.scatter(x,y,label='highincomelowsaving',color='g')plt.scatter(x1,y1,label='lowincomehighsavings',color='r')plt.xlabel('saving*100')plt.ylabel('income*1000')plt.title('ScatterPlot')plt.legend()plt.show()输出

Matplotlib最初仅使用二维图进行开发。它的1.0版本是在二维显示的基础上使用一些三维绘图实用程序构建的,其结果是提供了一套方便的3D数据可视化工具。

可以通过导入mplot3d工具包(主要Matplotlib安装随附)来创建三维图。

让我们看一下简单的3D图

frommpltoolkitsimportmplot3dimportnumpyasnpimportmatplotlib.pyplotaspltfig=plt.figure()ax=plt.axes(projection='3d')_输出

示例2:

frommpl_toolkitsimportmplot3dimportnumpyasnpimportmatplotlib.pyplotaspltheight=np.array([100,110,87,85,65,80,96,75,42,59,54,63,95,71,86])weight=np.array([105,123,84,85,78,95,69,42,87,91,63,83,75,41,80])scatter(height,weight)fig=plt.figure()ax=plt.axes(projection='3d')#Thisisusedtoplot3Dscatterax.scatter3D(height,weight)plt.title("3DScatterPlot")plt.xlabel("Height")plt.ylabel("Weight")plt.title("3DScatterPlot")plt.xlabel("Height")plt.ylabel("Weight")plt.show()输出

importmatplotlibasmplfrommpl_toolkits.mplot3dimportAxes3Dimportnumpyasnpimportmatplotlib.pyplotaspltmpl.rcParams['legend.fontsize']=10fig=plt.figure()ax=fig.gca(projection='3d')theta1=np.linspace(-4*np.pi,4*np.pi,100)z=np.linspace(-2,2,100)r=z**2+1x=r*np.sin(theta1)y=r*np.cos(theta1)ax.plot3D(x,y,z,label='parametriccurve',color='red')ax.legend()plt.show()输出

在本教程中,我们了解了matplotlib(Python库),其中涵盖了数据可视化的简要介绍以及数据可视化对于做出组织决策至关重要。我们为数据的图形表示绘制了不同类型的图。

10-23257

08-141602

07-101882免费

07-101922免费

07-101933免费

严禁任何人以任何形式在本站发表与我国法律相抵触的言论!本站资源仅供本地学习研究,禁止用于任何违法犯罪活动!

所有资源严禁用于任何商业目的,否则一切后果请用户自负。如您需要商用,请支持和购买正版,本站不对您的使用负任何责任!

如会员所发布的信息中有涉及到具体的第三方个人(单位/公司)隐私、商业秘密等,侵犯其权益,对其构成不良影响的,本站有权不做通知将该信息予以直接删除处理!

THE END
1.Python绘图课件:matplotlib实战教程(课件PPT).pptPython绘图课件:matplotlib实战教程(课件PPT)通过本课程,你将深入了解Python绘图,掌握matplotlib库的使用。从创建图形窗口到绘制各种类型的图形,全方位教你实战绘图技巧。Python绘图概述Python绘图是数据可视化的重要部分,帮助我们更好地理解和解释数据。本节课将介绍绘图的重要性和应用场景。matplotlib简介matplotlib是一个流行...https://www.renrendoc.com/paper/294700262.html
2.Matplotlib教程菜鸟教程> Matplotlib 教程 > Matplotlib 安装 > Matplotlib Pyplot > Matplotlib 绘图标记 > Matplotlib 绘图线 > Matplotlib 轴标签和标题 > Matplotlib 网格线 > Matplotlib 绘制多图 > Matplotlib 散点图 > Matplotlib 柱形图 > Matplotlib 饼图 > Matplotlib 直方图 > Matplotlib imshow() 方法 > ...https://m.runoob.com/matplotlib/
3.[python][科学计算][matplotlib]简要使用教程3常用绘图类型Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。 按需导入以下模块: import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D import numpy as np 1. 散点图 n=100x=np.random.randn(n)y=np.random.randn(n)z=np.random.randn(n...https://www.jianshu.com/p/094844e90249
1.python数据处理专题(第7天:Matplotlib)python 数据处理专题(第 7天:Matplotlib) 文章目录 一、学习目标 (1) 绘制折线图 (2) 绘制散点图 (3) 绘制柱状图 四、总结 附:绘制图表过程存在的问题及解决方法 一、学习目标 使用Matplotlib 进行基本的数据可视化 二、学习内容 绘制折线图 绘制散点图...https://blog.csdn.net/m0_55951714/article/details/144080927
2.pythonmatplotlib绘图详解大全(非常详细!)python这篇文章主要给大家介绍了关于python matplotlib绘图详解的相关资料,matplotlib是python中用于绘制各种图像的模块,功能十分强大,通常与pandas模块搭配使用,可以生成各种样视的图片,用于数据的分析和展示,需要的朋友可以参考下+ 目录 一、图形绘制大全 1.1 2D图形绘制 1.1.1 绘制单线图形 通过定义队列绘制单线图: 1 2 3...https://www.jb51.net/python/2989309pm.htm
3.转载matplotlib.pyplot的使用总结大全(入门加进阶)其实一年前就有想法好好学学python里的画图库matplotlib库,主要是因为每次可视化一些结果的时候,都是搜一些别人写好的代码,看的时候感觉乱乱的,不是说别人写的乱,而是每个人在某些点上实现的方式不太一样,还有就是觉得,总用别人的,就觉得不是自己创造的,没有成就感。这段时间做了个比赛,可视化分析的时候,又在搜...https://cloud.tencent.com/developer/article/1860491
4.pythonmatplotlib画图卡顿pythonmatplotlib绘图python matplotlib画图卡顿 python matplotlib绘图 其实网上介绍matplotlib绘图的教程已经很多了,我来补充一些我认为比较好的习惯和小技巧。 开始之前先导入matplotlib和他的小伙伴: import numpy as np import pandas as pd import matplotlib.pyplot as plt 1....https://blog.51cto.com/u_16213562/11088950
5.PythonMatplotlib绘图库详解物联沃Python Matplotlib绘图库详解 文章目录 Matplotlib介绍与安装 基本绘图流程 基本绘图 Matplotlib介绍与安装 Matplotlib 是 Python 的一个绘图库,它提供了一个类似于 MATLAB 的绘图系统。Matplotlib 是 Python 数据可视化领域的核心库之一,通过它,用户可以创建出版质量级别的图形图表。https://www.iotword.com/27300.html
6.Matplotlib—VisualizationwithPythonJoin our community atdiscourse.matplotlib.orgto get help, share your work, and discuss contributing & development. Check out the Matplotlib tag onStackOverflow. Meet us at our monthly call for new contributors to the Matplotlib project. Subscribe to ourcommunity calendarat Scientific Python to get...https://www.matplotlib.org/
7.PyPror教程—Matplotlib3.3.3文档更多示例见 注释绘图 .对数轴和其他非线性轴 matplotlib.pyplot 不仅支持线性轴比例,还支持对数和逻辑比例。如果数据跨越多个数量级,则通常使用这种方法。更改轴的比例很容易: plt.xscale('log') 下面是四个具有相同数据和不同比例的Y轴绘图的示例。 # Fixing random state for reproducibility np.random.seed(...https://www.osgeo.cn/matplotlib/tutorials/introductory/pyplot.html
8.Python学习笔记StatsModels统计回归——可视化这大概就是更多用户直接选择 Python 的可视化工具包进行绘图的原因吧。最常用的当属 Matplotlib 无疑,而在统计回归分析中 Seaborn 绘图工具包则更好用更炫酷。 3、Matplotlib 绘图工具包 Matplotlib 绘图包就不用介绍了。Matplotlib 用于 Statsmodels 可视化,最大的优势在于Matplotlib 谁都会用,实现统计回归的基本图形的...https://www.flyai.com/article/893