Matplotlib是用于数据可视化的最流行的Python包之一。 它是一个跨平台库,用于根据数组中的数据制作2D图。 它提供了一个面向对象的API,有助于使用Python GUI工具包(如PyQt,WxPythonotTkinter)在应用程序中嵌入绘图。 它也可以用于Python和IPython shell,Jupyter笔记本和Web应用程序服务器。
本教程专为希望获得数据可视化基础知识的学员而设计。
Matplotlib是用Python编写的,它使用了Python的数值数学扩展NumPy。 我们假设本教程的读者具有Python的基本知识。
本教程中的讲解,示例和代码等只是根据作者的理解来概括写出。由于作者水平和能力有限,因此不能保证所有的编写文章和示例均能准确无误。但是如果有遇到任何错误或问题,请反馈给我们,我们会及时纠正以方便后继读者阅读。
本教程主要的内容如下所示 -
Matplotlib简介 - Matplotlib是用于数据可视化的最流行的Python包之一。 它是一个跨平台库,用于根据数组中的数据制作2D图。Matplotlib开发环境 - Matplotlib及其依赖包在标准Python包存储库中以wheel包的形式提供,可以使用pip包管理器将Matplotlib安装在Windows,Linux以及MacOS系统上。Matplotlib Anaconda开发工具 - Anaconda是Python和R编程语言的免费开源发行版,用于大规模数据处理,预测分析和科学计算。Matplotlib Jupyter笔记本 - Jupyter是一个松散的缩写,意思是Julia,Python和R.这些编程语言是Jupyter应用程序的第一个目标语言,但是现在,Jupyter技术还支持许多其他语言。Matplotlib Pyplot API - matplotlib.pyplot是命令样式函数的集合,使Matplotlib像MATLAB一样工作。每个Pyplot功能都会对图形进行一些更改。Matplotlib简单画图 - 在Matplotlib中显示一个简单的角度线图,以弧度为单位,与正弦值相对应。Matplotlib pylab模块 - PyLab是一个非常方便模块,可以在单个名称空间中批量导入matplotlib.pyplot(用于绘图)和NumPy(用于数学和使用数组)。Matplotlib面向对象接口 - 在面向对象的界面中,Pyplot仅用于一些功能,如图形创建,用户显式创建和跟踪图形和轴对象。在此级别,用户使用Pyplot创建图形,通过这些图形,可以创建一个或多个轴对象。Matplotlib Figure类 - matplotlib.figure模块包含Figure类。它是所有plot元素的顶级容器。Matplotlib Axes类 - Axes对象是具有数据空间的图像区域。给定的图形可以包含许多轴,但给定的Axes对象只能在一个图中。轴包含两个(或在3D情况下为三个)Axis对象。Matplotlib Multiplots - 在本章中将学习如何在同一画布上创建多个子图。
subplot()函数返回给定网格位置的axes对象。Matplotlib subplots()函数 - Matplotlib的pyplot API有一个称为subplots()的便捷函数,它充当实用程序包装器,并在单个调用中帮助创建子图的公共布局,包括封闭的图形对象。Matplotlib subplot2grid()函数 - Matplotlib subplot2grid()函数在网格的特定位置创建轴对象提供了更大的灵活性。它还允许轴对象跨越多个行或列。Matplotlib网格 - axes对象的grid()函数将图中网格的可见性设置为on或off。还可以显示网格的主要/次要(或两者)刻度。Matplotlib格式化轴 - 轴的比例需要设置为对数(log)而不是正常比例。这是对数标度。在Matplotlib中,可以通过将axes对象的xscale或vscale属性设置为log。Matplotlib设置限制 - Matplotlib自动到达要沿着图的x,y(以及3D图的情况下为z轴)轴显示的变量的最小值和最大值。但是,可以使用set-xlim()和set-ylim()函数显式设置限制。Matplotlib设置刻度和刻度标签 - 刻度是表示轴上数据点的标记。到目前为止,Matplotlib在我们之前的所有实例中都自动接管了轴上间隔点的任务。Matplotlib双轴 - 当绘制具有不同单位的曲线时。 Matplotlib通过twinx()和twiny()函数支持此功能。Matplotlib条形图 - 条形图或条形图是一种图表或图形,它显示带有矩形条的分类数据,其高度或长度与它们所代表的值成比例。可以垂直或水平绘制条形。Matplotlib直方图 - 直方图是数值数据分布的精确表示。它是连续变量的概率分布的估计,它是一种条形图。Matplotlib饼图 - 饼图只能显示一系列数据。饼图在一个数据系列中显示项目的大小(称为楔形),与项目的总和成比例。饼图中的数据点显示为整个饼图的百分比。Matplotlib散点图 - 散点图用于绘制水平轴和垂直轴上的数据点,以试图显示一个变量受另一个变量影响的程度。数据表中的每一行都由一个标记表示,该位置取决于其在X和Y轴上设置的列中的值。Matplotlib轮廓图 - 轮廓图(有时称为“水平图”)是一种在二维平面上显示三维表面的方法。 它绘制了y轴上的两个预测变量X Y和轮廓的响应变量Z。 这些轮廓有时称为z切片或等响应值。Matplotlib二维箭头图 - 箭头图将速度矢量显示为箭头,其中分量(u,v)位于点(x,y)。Matplotlib箱线图 - 箱形图也称为须状图,显示包含最小值,第一四分位数,中位数,第三四分位数和最大值的一组数据的摘要。在方块图中,绘制从第一个四分位数到第三个四分位数的方框。垂直线穿过中间的框。须状从每个四分位数到最小值或最大值。Matplotlib提琴图 - 小提琴图类似于箱形图,除了它们还显示不同值的数据的概率密度。这些图包括数据中位数的标记和表示四分位数范围的框,如标准框图中所示。Matplotlib三维绘图 - Matplotlib最初设计时只考虑了二维绘图,但是在后来的版本中,Matplotlib的二维显示器上构建了一些三维绘图实用程序,以提供一组三维数据可视化工具。
28.Matplotlib 3D轮廓图 - ax.contour3D()函数创建三维等高线图。它要求所有输入数据采用二维规则网格的形式,并在每个点评估Z数据。Matplotlib 3D线框图 - 线框图采用值网格并将其投影到指定的三维表面上,并且可以使得到的三维形式非常容易可视化。Matplotlib 3D曲面图 - 曲面图显示指定的因变量(Y)和两个独立变量(X和Z)之间的函数关系。该图是等高线图的伴随图。曲面图类似于线框图,但线框的每个面都是填充多边形。Matplotlib使用文本 - Matplotlib具有广泛的文本支持,包括对数学表达式的支持,对光栅和矢量输出的TrueType支持,具有任意旋转的换行符分隔文本以及unicode支持。Matplotlib数学表达式 - 将任何Matplotlib文本字符串中的子集TeXmarkup放在一对美元符号($)中Matplotlib使用图像 - Matplotlib包中的图像模块提供加载,重新缩放和显示图像所需的功能,Pillow库支持加载图像数据。Matplotlib仅支持PNG图像。Matplotlib变换 - matplotlib包构建在转换框架之上,可以在坐标系之间轻松移动。可以使用四个坐标系。
Matplotlib是用于数据可视化的最流行的Python包之一。 它是一个跨平台库,用于根据数组中的数据制作2D图。 Matplotlib是用Python编写的,并使用了Python的数值数学扩展NumPy。 它提供了一个面向对象的API,有助于使用Python GUI工具包(如PyQt,WxPythonotTkinter)在应用程序中嵌入绘图。 它也可以用于Python和IPython shell,Jupyter笔记本和Web应用程序服务器。
Matplotlib有一个名为Pylab的过程接口,它的设计类似于MATLAB,MATLAB是MathWorks开发的一种专有编程语言。 Matplotlib和NumPy可以被认为是MATLAB的开源等价物。
Matplotlib最初由John D. Hunter于2003年编写。目前稳定版本是在2018年1月发布的2.2.0。