Matplotlib 三个基本概念——plt、figure、以及ax(arr)

Matplotlib 三个基本概念——plt、figure、以及ax(arr)

Matplotlib是Python中用于绘制2D图表和分析数据的框架,使用广泛。在Matplotlib中,常用的三个概念是plt,figure,和ax(arr)三个。

  • plt:是pyplot模块的缩写,是Matplotlib中最常用的模块,用于创建多个图形、轴域以及自定义属性。
  • figure:我们使用figure()命令来创建一个名为图形的空白绘图窗口,可以指定图形的大小和dpi(每英寸点数)参数,并可以选择背景颜色。
  • ax(arr):坐标轴是图形上绘制的一个区域,它们负责图形上所显示的数据。Matplotlib一般都是在坐标轴对象上进行绘图操作,而这个坐标轴对象在Matplotlib中作为Axes类的实例来表示。

对于初学者来说,这三个概念可能比较难懂,下面我们将通过具体的案例来介绍它们的使用方法。

阅读更多:Matplotlib 教程

通过代码来理解plt

假如我们有两组数据,针对这两组数据,我们需要分别绘制两个直方图。下面是我们可以通过pyplot模块中的hist()方法来实现绘制直方图的一个例子。

import matplotlib.pyplot as plt
import numpy as np

data1 = np.random.randn(10000)
data2 = np.random.randn(10000)

plt.hist(data1, bins=50, alpha=0.7, label='Data 1')
plt.hist(data2, bins=25, alpha=0.7, label='Data 2')
plt.legend(loc='best')
plt.show()

上述代码生成了两个直方图,每个直方图包含10000个数据点,而其中的文本字符串’alpha’,’label’,’loc’则是关于Matplotlib的一些常用绘图属性。

  • hist()方法用于绘制直方图,其中的bins参数设置了直方图条的数量。
  • alpha参数是我们设置的透明度,可以让两个直方图相互融合,方便观察数据。
  • label参数用于标记每个直方图的名称。
  • legend()方法用于在图形上展示我们设置的图例名称。

在上述代码中,我们用到了pyplot模块的4个方法,它们都是通过plt对象来调用的。对于初学者来说,这些方法可能会感到有些混淆,但是只要记住plt是一个对象,同时它对应的pyplot模块中有很多方法,这样就可以了解它的作用了。

解析figure

如果我们想要修改图形的大小或者是背景色,可以使用figure()方法。下面是一个例子,我们创建一个标题为“Random Growth”的图形,并将大小设置为8英寸长x5英寸宽、背景色为黄色。

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure(figsize=(8, 5), facecolor='yellow')
ax = fig.add_subplot(111)

x = np.linspace(0, 10, 100)
y1 = np.exp(x)
y2 = np.sin(x)

ax.plot(x, y1, 'g-', linewidth=2, label='Growth')
ax.plot(x, y2, 'r-', linewidth=2, label='Sin')

ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.legend(loc='upper left')
plt.show()

在上述代码中,我们创建了一个fig对象,使用add_subplot()方法指定轴对象。实际上,add_subplot()方法可以用于创建一个坐标轴轴域,方法中传递的参数表示轴域的分块,例如(1,1,1)就是表示图形中只有一个轴域。

我们还可以使用set_xlabel()和set_ylabel()方法来设置坐标轴的标签,使用legend()方法来创建图例。注意,在上述代码中,我们没有使用plt对象调用任何方法,因为我们想要修改的是整个图形,而不是某一个子图。

讲解ax(arr)

上面我们介绍了如何使用pyplot模块以及figure()方法来绘制图形。下面我们将剖析如何使用坐标轴对象绘制图形。

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(figsize=(8, 5))

x = np.arange(-3.14, 3.14, 0.01)
y1 = np.sin(x)
y2 = np.cos(x)

ax.plot(x, y1, 'g-', linewidth=2, label='sin')
ax.plot(x, y2, 'r-', linewidth=2, label='cos')

ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.legend(loc='upper right')
plt.show()

在上述代码中,我们和之前一样创建了一个fig对象,并使用subplot()方法来创建坐标轴轴域。与上述示例不同的是,我们将轴对象保存在变量ax中,并使用它来操作数据。同样的,使用plot()方法来绘制两个图表,使用set_xlabel()和set_ylabel()方法来设置标签,使用legend()方法来创建图例。

需要注意的是,坐标轴对象(即ax对象)是指向一组坐标轴的一个指针。这意味着你可以使用ax对象调用坐标轴对象的所有方法。

总结

本文主要介绍了Matplotlib中的三个基本概念——plt、figure、以及ax(arr)。通过具体的代码示例,我们解析了它们之间的关系以及各自的工作方式。了解这些基本概念可以帮助我们更好地掌握Matplotlib这个强大和多用途的数据可视化工具。希望这篇文章对于您学习数据可视化有所帮助!

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程