📜  Matplotlib-面向对象的接口(1)

📅  最后修改于: 2023-12-03 15:02:54.620000             🧑  作者: Mango

Matplotlib-面向对象的接口

Matplotlib是一个Python绘图库,可以用来创建各种静态、动态、交互式的图表和图形界面。Matplotlib提供了两种绘图接口:一种是基于MATLAB的命令式接口,另一种是面向对象的接口。本文将介绍Matplotlib面向对象的接口,其中包括创建Figure、Axes、Subplot、Legend等重要组件的方法。

创建Figure

Figure是Matplotlib中最重要的组件之一,用于创建绘图区域。下面是使用面向对象接口创建Figure的示例代码:

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(8, 6), dpi=100)

其中,figsize参数指定Figure的宽度和高度,单位为英寸;dpi参数指定Figure的分辨率,即每英寸像素数。默认情况下,figsize(6.4, 4.8)dpi100

创建Axes

Axes是Figure中的一个子组件,用于创建图表区域。一个Figure可以包含多个Axes,每个Axes可以包含一个或多个数据系列。下面是使用面向对象接口创建Axes的示例代码:

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(8, 6), dpi=100)
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])

其中,add_axes方法的参数是一个长度为4的序列,用于指定Axes的左、下、宽度、高度的位置信息。上例中,Axes的左边缘距离Figure左边缘的距离为0.1,下边缘距离Figure下边缘的距离也为0.1,宽度为Figure宽度的80%,高度为Figure高度的80%。这里的距离和尺寸都是相对于整个Figure的。

创建Subplot

Subplot是Figure中的一种特殊Axes,用于创建多个子图。通过subplot方法,可以创建指定行列数和位置的子图。下面是使用面向对象接口创建Subplot的示例代码:

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(8, 6), dpi=100)
ax1 = fig.add_subplot(2, 2, 1)
ax2 = fig.add_subplot(2, 2, 2)
ax3 = fig.add_subplot(2, 2, 3)
ax4 = fig.add_subplot(2, 2, 4)

上例中,add_subplot方法的前两个参数分别表示子图的行数和列数,第三个参数表示子图的位置。在这个例子中,通过add_subplot方法创建了一个由4个子图组成的2行2列网格。

添加图例

图例是用于解释数据系列含义的组件。在Matplotlib中,可以通过legend方法添加图例。下面是使用面向对象接口添加图例的示例代码:

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(8, 6), dpi=100)
ax = fig.add_subplot(1, 1, 1)

# 绘制两条曲线
x = [1, 2, 3, 4]
y1 = [1, 4, 9, 16]
y2 = [1, 2, 3, 4]
ax.plot(x, y1, label='y1')
ax.plot(x, y2, label='y2')

# 添加图例
ax.legend(loc='upper left')

其中,label参数用于指定数据系列的标签文字,loc参数用于指定图例的位置。上例中,loc='upper left'表示将图例放在Axes的左上角。

以上介绍了Matplotlib中一些常用的面向对象接口方法,包括创建Figure、Axes、Subplot、Legend等组件的方法。使用面向对象接口,可以更灵活、更精细地控制绘图过程和结果。