Matplotlib Figure和axes方法

Matplotlib Figure和axes方法

Matplotlib是一个用于绘制各种静态、动态、交互式图形和图表的Python 2D绘图库。该库通过一些简单的命令,让用户轻松创建绘图窗口、绘制线条、灰度或彩色图像、绘制等高线和等值图、对图形进行注释等。Matplotlib是Python中常用的数据可视化库之一,其具有比较丰富的图形类型,可以满足不同领域的数据展示需求。

本篇文章主要介绍Matplotlib中的Figure和axes方法。

阅读更多:Matplotlib 教程

Figure与axes

Figure与axes是两个在Matplotlib中常用的对象。其中,Figure是整个图像的容器,即在整个窗口中所有的元素,包括图像、标题和其他内容,都放在了Figure对象里。而axes则是实际绘图区域,一张图一般只有一个axes,通过axes对象中的方法进行添加和修改绘图元素。

Figure

如果在Matplotlib中创建一个空图像,可以使用下面的方法:

import matplotlib.pyplot as plt
fig = plt.figure()

这个命令将为我们创建一个默认的图像,并返回一个Figure对象。如果您不是在Notebook中使用Matplotlib,则需要使用下面的命令才能看到这个Figure:

plt.show()

在Matplotlib中,使用Figure对象来控制图像的所有属性。一些可用的属性包括Figure大小、DPI、背景颜色、边框等。

Figure大小

可以通过设置Figure的dpi和figsize属性来更改Figure的大小,分别控制图像的分辨率和尺寸,举例如下:

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

上述命令用于创建一个图像大小为8×4英寸,分辨率为100像素/英寸的Figure对象。除此之外,还可以通过以下命令来更改Figure的大小:

fig.set_size_inches(8, 4)

Figure边框

同时,可以通过设置边框的颜色、粗细和风格来更改Figure的边框样式。可以使用set_facecolor()方法和set_edgecolor()方法来设置Figure的背景颜色和边框颜色,通过set_linewidth()方法来设置边框宽度,如下所示:

fig = plt.figure(figsize=(8, 4), dpi=100)
fig.set_facecolor('lightblue')
fig.set_edgecolor('green')
fig.set_linewidth(2)

上面的代码将创建一个大小为8×4英寸、分辨率为100像素/英寸、背景颜色为lightblue、边框颜色为green、边框线宽为2的Figure对象。

Axes

由于Figure对象是整个图像所有元素的容器,因此我们需要在其中添加子绘图区域,这些子绘图区域就是axes对象。在ax对象的基础上进行绘图操作,包括创建线条、散点图、柱状图等等。因此,这些绘图方法也同时存在于ax对象中。

添加axes

在Matplotlib中,有很多方法可以用来添加一个新的axes。例如,在一个Figure对象上添加一个新的axes:

fig = plt.figure()
ax = fig.add_subplot(111)

其中111表示将Figure分成一行一列,此图在第一行第一列。

设置axes属性

在Matplotlib中,我们可以使用xlim()和ylim()方法来设置图像的X轴和Y轴范围,使用title()方法来设置标题,使用xlabel()和ylabel()方法来设置x轴和y轴标签,使用grid()方法来显示网格线,如下所示:

# 设置ax的属性
fig = plt.figure()
ax = fig.add_subplot(111)

# 设置X轴和Y轴范围
ax.set_xlim([0, 10])
ax.set_ylim([0, 10])

# 设置标题
ax.set_title("Title")

# 设置x轴和y轴标签
ax.set_xlabel("X Label")
ax.set_ylabel("Y Label")

# 显示网格线
ax.grid(True)

上面的代码将创建一个默认大小的Figure和一个带有标题、X轴标签、Y轴标签、X轴和Y轴范围以及网格线的Axes。

绘图方法

Axes对象具有许多绘图方法,包括绘制线条、散点图、柱状图、等高线和等值图等。一些常用的方法和用法如下:

绘制线条

使用plot()方法绘制线条。可以在一个Axes对象上绘制多个线条,每个线条可以通过不同的颜色、线型和标记来进行区分。

fig = plt.figure()
ax = fig.add_subplot(111)
x = [1, 2, 3, 4, 5]
y1 = [1, 2, 3, 4, 5]
y2 = [1, 4, 9, 16, 25]
ax.plot(x, y1, color='red', linestyle='--', marker='o', label='Line 1')
ax.plot(x, y2, color='blue', linestyle='-', marker='x', label='Line 2')
ax.legend(loc='upper left')

上面的代码将在一个大小为默认大小的Figure中创建一个包含两条线条的图像,每条线条都有不同的颜色、线型和标记。其中,loc参数用于指定图例的位置。可以选择的位置包括右上角、左上角、右下角和左下角等。

绘制散点图

使用scatter()方法绘制散点图。通过传递x值和y值列表和大小、颜色和标记等参数来控制散点图的外观。

fig = plt.figure()
ax = fig.add_subplot(111)
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
colors = ['red', 'blue', 'green', 'orange', 'black']
sizes = [50, 100, 150, 200, 250]
ax.scatter(x, y, s=sizes, c=colors, marker='o')

上面的代码将在一个大小为默认大小的Figure中创建一个包含多个具有不同颜色和尺寸的散点的图像。

绘制柱状图

使用bar()方法绘制柱状图。通过传递x值和y值列表和颜色、宽度和边缘等参数来控制柱状图的外观。

fig = plt.figure()
ax = fig.add_subplot(111)
x = ['A', 'B', 'C', 'D', 'E']
y = [10, 8, 6, 4, 2]
colors = ['red', 'blue', 'green', 'orange', 'black']
width = 0.5
edgecolor = 'none'
ax.bar(x, y, width=width, color=colors, edgecolor=edgecolor)

上面的代码将在一个大小为默认大小的Figure中创建一个包含多个不同颜色和尺寸的柱状图。

绘制等高线图

使用contour()方法绘制等高线图。通过传递x值和y值列表、Z值的二维数组和颜色、线宽、线型等参数来控制等高线图的外观。

fig = plt.figure()
ax = fig.add_subplot(111)
x = np.linspace(-2*np.pi, 2*np.pi, 100)
y = np.linspace(-2*np.pi, 2*np.pi, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(X) * np.cos(Y)
cmap=plt.cm.autumn
levels=[-0.9, -0.5, -0.1, 0.1, 0.5, 0.9]
ax.contour(X, Y, Z, cmap=cmap, levels=levels)

上面的代码将在一个大小为默认大小的Figure中创建一个具有不同颜色、线宽和线型的等高线图。

最后,对于所有的绘图方法,可以使用ax.set_xscale()和ax.set_yscale()等方法来设置X轴或Y轴的比例尺,如下所示:

fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_xscale('log')
ax.set_yscale('log')

上面的代码将创建一个包含对数比例尺的X轴和Y轴的图像。

总结

本篇文章介绍了Matplotlib中常用的Figure和axes方法。通过掌握这些方法,可以轻松创建和修改Matplotlib中的图像和绘图元素。同时,Matplotlib还提供了许多其他强大的功能,例如子图、图像或文本注释、导出图像等等,可以根据不同的需求进行使用。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程