理解 Matplotlib 需要知道的 4 件事

理解 Matplotlib 需要知道的 4 件事Matplotlib 是我在数据科学之旅中学到的首批工具之一。我对它如何允许自定义数据可视化上的几乎每一个小部分感到惊讶。另一方面,它的语法似乎

大家好,欢迎来到IT知识分享网。

理解 Matplotlib 需要知道的 4 件事

Matplotlib 是我在数据科学之旅中学到的首批工具之一。我对它如何允许自定义数据可视化上的几乎每一个小部分感到惊讶。

另一方面,它的语法似乎复杂且难以理解。我知道我可以做某事,但花了一段时间才弄清楚如何去做。一旦我了解了 Matplotlib 的结构和绘图的创建方式,我就觉得使用 Matplotlib 会更舒服。

在本文中,我们将学习四件事来帮助您更好地了解 Matplotlib。

1. 图形和轴

由于 Python 是一种面向对象的编程语言,因此我们在 Matplotlib 图中看到的所有内容都是具有类型的对象也就不足为奇了。

图形和轴是主要的对象类型,它们是绘图的基础。它们也称为复合对象类型。需要注意的是,Axes 不是 Axis 的复数形式。因此,Axes 对象与 x 轴或 y 轴没有任何关系。

图形可以被认为是最外层的容器,将所有东西放在一起。所有其他对象在此容器中保持活动状态。一个 Figure 可以有一个或多个 Axes 对象。事实上,我们需要一个 Axes 对象来实际绘制一些东西。

可以使用 matplotlib.pyplot 接口的 figure 方法创建一个 Figure。

import matplotlib.pyplot as plt plt.figure() plt.show()

我们已经创建了一个具有默认大小的 Figure 对象。由于它没有任何 Axes 对象,因此没有显示任何内容。

让我们还向 Figure 对象添加一个 Axes 并查看它的外观。我们还将使用 figsize 参数来自定义 Figure 对象的大小。

fig = plt.figure(figsize=(8,5)) ax1 = fig.add_axes([0.1, 0.1, 0.6, 0.3]) plt.show()
理解 Matplotlib 需要知道的 4 件事

add_axes 方法中使用的参数定义了 Axes 对象的位置和大小。

有些东西可以是隐藏的

在前面的示例中,使用 add_axes 方法将 Axes 添加到 Figure 对象。其实我们不必每次需要添加轴时都执行此操作。事实上很少会看到使用 add_axes 方法。

诸如创建 Figure 对象或添加 Axes 之类的事情有时可能是明确的。不要让这让你感到困惑。例如,在下面的示例中,我们将创建 DataFrame 价格列的直方图。

import matplotlib.pyplot as plt import pandas as pd df = pd.read_csv("test.csv") plt.hist(df["Price"]) plt.show()
理解 Matplotlib 需要知道的 4 件事

我们只是使用 hist 函数来创建上面的直方图。我们不必显式创建图形和轴,因为一旦调用绘图函数(例如 hist、plot),它们就会自动完成。

当然,我们可以先创建一个图形,然后再创建绘图。假设我们要更改此直方图的图形大小:

plt.figure(figsize=(8,4)) plt.hist(df["Price"]) plt.show()
理解 Matplotlib 需要知道的 4 件事

3. 图和轴上的标签

没有标题和轴标签的图是没有用的。我们应该使情节尽可能地提供信息,而不会使它们难以阅读。但是,标题和标签是必须的。

在 Matplotlib 中,使用不同的方法向 Figure 和 Axes 对象添加标题和标签。

在处理 Figure 对象时,我们可以使用 title、xlabel 和 ylabel 方法。

import matplotlib.pyplot as plt import pandas as pd df = pd.read_csv("test.csv") plt.figure(figsize=(8,4)) plt.hist(df["Price"]) plt.title("Histogram of Price", fontsize=15) plt.xlabel("Value", fontsize=14) plt.ylabel("Frequency", fontsize=14) plt.show()
理解 Matplotlib 需要知道的 4 件事

在处理 Axes 对象时,对应的方法是 set_title、set_xlabel和set_ylabel

import matplotlib.pyplot as plt import pandas as pd df = pd.read_csv("test.csv") fig, ax = plt.subplots(figsize=(8,4)) ax.hist(df["Price"]) ax.set_title("Histogram of Price", fontsize=15) ax.set_xlabel("Value", fontsize=14) ax.set_ylabel("Frequency", fontsize=14) plt.show()
理解 Matplotlib 需要知道的 4 件事

尽管我们使用不同的方法来添加标题和标签,但输出是相同的。这是因为我们用一个轴制作了一个图形。

多轴图

一个 Figure 对象可以包含多个 Axes 对象。我们可以使用 subplots 函数在 Figure 上安排布局。例如,以下代码片段创建了一个带有 2 个 Axes 对象的图形,这些对象放置为行

fig, (ax1, ax2) = plt.subplots(nrows=2, figsize=(8,5)) plt.show()
理解 Matplotlib 需要知道的 4 件事

它是空的,因为我们没有绘制任何东西。让我们绘制直方图并在 Figure 和 Axes 对象上设置标题

import matplotlib.pyplot as plt import pandas as pd df = pd.read_csv("test.csv") fig, (ax1, ax2) = plt.subplots(nrows=2, figsize=(8,5)) # figure title fig.suptitle("Histogram of Price and SalesQty", fontsize=15) # plot on the first Axes ax1.hist(df["Price"]) ax1.set_title("Price", fontsize=14) # plot on the second Axes ax2.hist(df["SalesQty"]) ax2.set_title("SalesQty", fontsize=14) # adjust the spacing between subplots fig.tight_layout(pad=1) plt.show()
理解 Matplotlib 需要知道的 4 件事

当使用带有子图的 Figure 时,我们使用 suptitle 方法为整个 Figure 添加标题(而不是 title 方法)

结论

与 Seaborn 和 Plotly 等其他流行的替代品相比,Matplotlib 是一个低级库。因此,我们应该期望编写更多代码来创建数据可视化,这具有完全控制我们绘制的内容的优势。

了解绘图的结构以及 Matplotlib 如何处理这些自定义是充分利用这个令人惊叹的库的重要步骤。

在本文中介绍的内容将帮助你更好地了解 Matplotlib 是如何工作的。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/60343.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信