Matplotlib 是一个 Python 绘图库,主要由机器学习专业人员用于创建静态和交互式可视化。
什么是 Matplotlib?
Mathplotlib由John D. Hunter于2003年创建,于2021年5月8日发布,当前版本为3.4.2。
该库主要是用 Python 编写的,但其余部分是用 C 对象和 JavaScript 编写的,使其与平台兼容。
Matplotlib 使用 NumPy,一个 Python 数值扩展。 NumPy 的扩展使其作为开源替代方案更加可行,并且比MATLAB更受青睐。
对于 Python GUI 应用程序,Matplotlib 允许您使用附带的面向对象的 API 绘制静态图。
通过编写几行Python代码,用户可以使用各种图表可视化数据,包括散点图、直方图、条形图、饼图、折线图和箱线图。
使用 Matplotlib 创建 Python shell、Jupyter 笔记本、
除了Jupyter Labs之外,我们还使用Pycharm和Anaconda,以及跨各种平台的Flask和Django等Web应用程序服务器。
与 MATLAB 类似,您可以在字体、线条、颜色和样式方面对绘图进行广泛的控制。
在简要介绍了 Python 中的 Matplotib 库之后,让我们看看如何在您的系统上配置它。
设置 Matplotlib 环境
与其他 Python 包和库一样,您可以使用 pip 包管理器在所有操作系统上安装已编译的 Matplotlib 库及其包。
当然,您首先需要在系统上安装Python和pip包。
以下命令显示 Python 和 pip 版本,以查看这些工具是否已安装。
检查Python是否安装
Python --version检查pip是否安装
pip -V安装Mathplotlib
以下命令从 Python 包索引 ( PyPI ) 安装 Matplotlib 包。
python -m pip install matplotlib此命令下载并安装 Matplotlib 的相关软件包。安装完成后,您将看到一条消息,表明安装成功。
要验证 Matplotlib 是否已成功安装,请输入以下命令:这将在命令提示符中显示 Matplotlib 版本。
import matplotlib
matplotlib.__version__想要安装未编译的 Matplotlib 包的开发人员除了依赖项、安装脚本、配置文件和补丁之外,还必须能够访问系统中适当的编译器。
然而,安装这个未编译的 Matplolib 可能很复杂,特别是对于 Matplotlib 的新手用户来说。那么为什么不只使用一行命令在几秒钟内安装该库呢?🤔
安装 Matplotlib 后,通过将包导入到您的环境中来访问其实用程序。
Matplotlib 绘图选项
Matplotlib 提供了许多用于可视化数据的绘图选项。您还可以通过提供各种主题、颜色和调色板选项来自定义绘图,用户可以使用这些选项与绘图进行交互。
这些绘图选项包括:
#1.条形图
条形图,也称为条形图,是可视化同一类别内值的定量比较的不错选择。

Matplotlib 使用矩形条来表示该图,矩形条的长度和高度表示比例值。条形可以是水平的或垂直的。
Matplotlib 使用plt.bar()函数创建条形图。
此外,还有更多函数可用于操纵该图。例如, plt.xlabel()和plt.ylabel()函数分别标记,的 x 轴和 y 轴。
您还可以使用plt.title()函数为绘图指定标题,然后plt.savefig()函数保存绘图。最重要的plot.show()函数显示绘图。
#2.饼图
您可以使用称为饼图的圆形统计图来可视化同一类别内项目的比例分布。
饼图以百分比格式显示数据。图表的整个区域对应于总数据的百分比,每个饼图切片代表数据的一个百分比部分。

Matplotlib 使用plt.pie()函数绘制和调整饼图参数。
其他参数对于饼图绘制很有用,例如autopct饼图值输出到小数点后一位。
在商业组织中,饼图可用于显示相关信息,例如运营、销售、资源等。
#3.直方图
直方图显示数值数据的分布。使用连续间隔将数据分成单独的部分。
直方图和条形图之间的主要区别在于它们处理的数据类型。直方图处理连续数据类型,而条形图处理分类数据。

Matplotlib 使用hist()函数使用随机值或定义值数组创建直方图。
#4.折线图
这些图可用于显示您在 X 和 Y 基础上定义为数值和分类的两个数据值之间的关系。

折线图对于跟踪一段时间内数据值的变化非常重要。
#5.散点图
散点图显示数据中变量之间的关系,包括相关性。它还有助于识别异常值。

散点图使用点来表示数据变量之间的关系以及一个变量的变化如何影响另一个变量。
如何使用 Matplotlib 创建绘图
Matplotlib 使用不同的函数来创建不同的绘图。它还使用很少的代码行来创建绘图。
下面,我们将向您展示如何使用 Matplotlib 中的各种函数来创建不同的绘图选项。
#1.Matplotlib条形图
如上所述,条形图使用条形图和轴来显示数据类别,表示一个轴上类别与另一轴上类别对应值的比较。
Matplotlib 的bar()函数使用各种参数布局来描述条形布局,如下所示。
plt.bar(x, y, height, width, bottom, align)x 和 y 参数代表图中条形的 x 和 y 坐标值。 width 参数表示条形的宽度,height 参数表示条形的高度。
例如,让 x 代表动物收容所中狗和猫的数量。
import matplotlib.pyplot as plt
import numpy as np
x = ["Cats", "Dogs"]
plt.xlabel("Cats and Dogs in Shelter")
plt.ylabel("No. of animals in Shelter")
plt.title("Number of cats and dogs in shelter x")
y = [300, 350]
plt.bar(x, y, color ='black', width = 0.5)输出:

如上例所示,您可以使用 color 属性进一步指定条形的颜色。此外, plt.xlabel and p.ylabel name the x and y axes, plt.title命名绘图。
#2.如何创建饼图
Matplotlib使用pyplot模块自带的pie()函数来绘制饼图。
该函数表示要以数组格式绘制的数据。
句法:
matplotlib.pyplot.pie(data, explode=None, labels=None, colors=None, autopct=None, shadow=False)Colors 参数设置饼图切片的颜色。您可以使用值数组指定每个切片的颜色。
要包含有关圆内所有切片的更多详细信息,请添加参数autopct即使用 Python 字符串格式表示法表示每个切片所代表的数字百分比。 explode 将一个从 0.1 开始的值数组作为参数,定义切片到圆心的距离。
让我们绘制一个饼图,以百分比形式显示分配给特定项目的资源。
import matplotlib.pyplot as plt
import numpy as np
y = np.array([25, 10, 45, 20])
mylabels = ["w", "x", "y", "z"]
explodevalues = [0.1, 0.2, 0, 0]
colors = ['tab:blue', 'tab:green', 'tab:orange', 'tab:red']
plt.title("Resources allocated for a random project")
plt.pie(y, labels = mylabels, colors=colors,explode = explodevalues, autopct='%1.1f%%', shadow = True)
plt.show() 输出:

上图显示了一个包含四个切片的饼图,每个切片都标记为 w、x、y 和 z。分解值定义切片距离圆心的距离。
从上图可以看出,x 距离较远,因为 x 的爆炸值比其他的都大。 Shadow 属性向饼图添加阴影,如图所示,但autopct设置每个切片代表的整个圆的相对百分比。
#3.创建直方图
直方图使用一系列间隔来表示 x 轴上指定的值范围。
同时,y轴表示频率信息。
与其他绘图不同,在 Matplotlib 中绘制直方图需要一些预定义的步骤,您必须遵循这些步骤来创建绘图。
这些步骤包括:
- 从您的一组数据值创建范围箱。您可以使用
np.random.normal()函数来生成随机值。 - 使用一系列间隔将值分配到一系列值中。
- 对每个特定间隔的值进行计数。
- 接下来,使用
matplotlib.pyplot.hist()函数创建直方图。
hist() ,接受几个参数:
x – 这代表数组的顺序
bins – 这是一个可选参数,表示包含整数或字符串序列的变量的非重叠间隔。
range – 定义 bin 的上限和下限范围
对齐 – 该参数控制直方图的对齐方式。无论是在左边、右边还是中间。
颜色 – 定义条的颜色。
rwidth – 将直方图中条形的相对宽度设置为 bin 宽度。
log – log 参数定义直方图轴上的对数刻度。
以下示例使用定义的值绘制直方图。
from matplotlib import pyplot as plt
x = [22, 40, 87, 5, 43, 30, 56,73, 55, 54, 11, 20, 51, 5, 50, 60, 70, 80]
plt.hist(x)
plt.title(Histogram plot example')
plt.xlabel('x axis')
plt.ylabel('frequency')
plt.show()
输出:
#4.Matplotlib线图
Matplotlib 使用一个名为pyplot的子库,它附带各种函数来帮助您实现它。
使用plot()函数( pyplot附带的通用函数)来绘制线图和其他类型的线图,例如曲线图和多线图。创建这些不同类型的图取决于您在 y 轴上传递的值。
绘图时,导入matplotlib.pyplot和 Numpy 来绘制图形。 plot(x,y)方法通过将随机值传递给 x 和 y 参数来创建线图。
此外,您可以传递标签变量来标记绘图。 title 函数还指定绘图的标题,而 xlabel 和 ylabel 函数则指定轴。最后,show() 函数显示绘图。
例如:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 5, 10)
y = 3*x + 2
plt.title('Line plot example')
plt.xlabel('x axis')
plt.ylabel('y axis')
plt.plot(x, y)
plt.show()结果:

np.linspace属性返回绘图上给定 x 值间隔内的一组均匀间隔的数字。这将创建一个包含0 and 5范围内 10 个值的数组。 y 值是使用相应的 x 值根据方程创建的。
创建散点图
Matplotlib 使用 scatter() 方法创建此图。
该方法接受以下参数:
matplotlib.pyplot.scatter(x_axis_data, y_axis_data, s=None, c=None, marker=None, cmap=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None) x_axis_data 和 y_axis_data 参数不能留空,与其余参数不同,其余参数可以选择将 None 作为其值。 x_axis_data 参数定义 x 轴数据数组,而 y_axis_data 设置 y 轴数据数组。
matplotlib 散点图示例
import matplotlib.pyplot as plt
x =[15, 17, 18, 27, 22, 27, 32, 14, 11, 12, 29, 16]
y =[19, 16, 17, 18, 10, 26, 13, 27, 14, 18, 17, 35]
plt.title('Scatter plot example')
plt.xlabel('x variable')
plt.ylabel('y variable')
plt.scatter(x, y, c ="green")
# To show the plot
plt.show()它的输出如下所示:

matplotlib 中的 subplot() 是什么
subplot()函数允许您在单个 Matplotlib 图形上绘制多个图。这允许您查看和比较图中的多个图。
该函数返回一个带有三个参数的元组。分别指定行和列作为第一个和第二个参数,并将当前图的索引指定为第三个参数。
行和列清楚地定义了 Matplotlib 的布局。
因此,例如, plt.subplot(2, 1, 1)绘制一个 2×1 Matplotlib 图形,并且该图成为第一个图。
另一方面, plt.subplot(2, 1, 2)显示第二个 2×1 图。
绘制这两个图会创建相互重叠的图,如下例所示。
import matplotlib.pyplot as plt
import numpy as np
#plot 1:
x = np.array([2, 4, 6, 8])
y = np.array([3, 6, 9, 12])
plt.subplot(2, 1, 1)
plt.plot(x,y)
#plot 2:
x = np.array([3, 6, 9, 12])
y = np.array([1, 2, 3, 4])
plt.subplot(2, 1, 2)
plt.plot(x,y)
plt.show()上面示例的输出如下图所示。

再举一个例子,我们使用 subplot 函数来绘制两个 1×2 的图形。这将并排显示绘图。
import matplotlib.pyplot as plt
import numpy as np
#plot 1:
x = np.array([2, 4, 6, 8])
y = np.array([3, 6, 9, 12])
plt.subplot(1, 2, 1)
plt.plot(x,y)
#plot 2:
x = np.array([3, 6, 9, 12])
y = np.array([1, 2, 3, 4])
plt.subplot(1, 2, 2)
plt.plot(x,y)
plt.show()上面的示例显示以下结果:

怎么样,是不是互动又有趣呢?
最后一句话
Matplotlib 是 Python 中常用的可视化库。其交互性和初学者友好的特性使其成为在 Python 中绘图的更好工具。
在本文中,我们讨论了可以使用 Matplotlib 提供的函数创建的各种图形示例,包括饼图、条形图、直方图和散点图。
当然,Python 还有其他几个库,机器学习专业人员和数据科学家可以使用它们来创建可视化。
您可以探索更多可以使用 Matplotlib 创建的绘图以及用于创建它们的函数。
制定计划!📉📊




![2021 年如何设置 Raspberry Pi Web 服务器 [指南]](https://i0.wp.com/pcmanabu.com/wp-content/uploads/2019/10/web-server-02-309x198.png?w=1200&resize=1200,0&ssl=1)

