一、基本介绍
plt.figure()是matplotlib.pyplot中的一种功能强大的函数,常被用来创建新的绘图窗口及其所对应的绘图对象。它是一个最基础的创建图像对象的函数,所有其他的图像绘制函数都需要先创建一个Figure对象再进行操作。它提供了多种参数来控制图像的大小、分辨率、背景颜色、透明度等,能够满足用户的多样化需求。
二、参数介绍
plt.figure()函数提供了多个参数,主要包括:
1. num: 整数或字符串类型,用于指定图表窗口编号或名称。默认为None,表示创建一个新的图表窗口。
2. figsize: 元组类型,指定图表窗口大小,单位为英寸。默认为(6.4, 4.8)
3. dpi: 整数类型,指定绘图对象的分辨率,即每英寸点数。默认为100
4. facecolor: 字符串类型,指定绘图对象的背景颜色。默认为’w’
5. edgecolor: 字符串类型,指定绘图对象的边框颜色。默认为’w’
6. frameon: 布尔类型,表示是否显示绘图对象的边框。默认为True
7. clear: 布尔类型,表示是否在创建新的绘图窗口前清除之前的图像。默认为False
三、示例代码
import matplotlib.pyplot as plt # 1. 创建一个新的绘图窗口,编号为1,大小为(8, 6),分辨率为100,背景颜色为'g',边框为黑色,且边框宽度为2 fig1 = plt.figure(num=1, figsize=(8, 6), dpi=100, facecolor='g', edgecolor='k', frameon=True) # 2. 创建一个新的绘图窗口,编号为2,大小为(10, 8),分辨率为100,背景颜色为'w',边框为白色,且边框不显示 fig2 = plt.figure(num='test', figsize=(10, 8), dpi=100, facecolor='w', edgecolor='w', frameon=False) # 3. 创建一个新的绘图窗口,编号为3,大小为(6, 4),分辨率为100,背景颜色为'w',边框为白色,且边框宽度为1 fig3 = plt.figure(num=3, figsize=(6, 4), dpi=100, facecolor='w', edgecolor='w', frameon=True) fig3.patch.set_linewidth(1) # 4. 在创建新的绘图窗口前清空之前的图像,并设置新的背景颜色 plt.clf() fig4 = plt.figure(num=4, figsize=(5, 3), dpi=100, facecolor='b', edgecolor='w', frameon=True)
四、应用实例
plt.figure()函数的应用非常广泛,下面将介绍几个比较常见的实例。
1. 绘制多张子图
一般情况下我们需要在一张图中展示多幅子图,这时我们可以通过先创建一张大图,然后在它的基础上绘制多个子图。
import matplotlib.pyplot as plt fig = plt.figure(num=1, figsize=(8, 6), dpi=100) # 创建子图1 ax1 = fig.add_subplot(221) ax1.plot([1,2,3,4],[2,4,6,8]) # 创建子图2 ax2 = fig.add_subplot(222) ax2.plot([1,2,3,4],[1,3,5,7]) # 创建子图3 ax3 = fig.add_subplot(223) ax3.plot([1,2,3,4],[2,5,7,8]) # 创建子图4 ax4 = fig.add_subplot(224) ax4.plot([1,2,3,4],[1,3,5,6]) plt.show()
2. 绘制极轴图
极轴图是一种特殊的图形类型,它是将图像放在一个圆形坐标系上展示,用于绘制径向分布图等。我们可以通过 plt.subplot() 函数创建极轴子图,通过 figsize 参数指定整张图的大小。
import numpy as np import matplotlib.pyplot as plt # 绘制极轴图 r = np.arange(0, 1, 0.001) theta = 2 * np.pi * r fig = plt.figure(figsize=(6, 6), dpi=100) ax = fig.add_subplot(111, projection='polar') ax.plot(theta, r, color='r', linewidth=3) plt.show()
3. 绘制3D图
plt.figure()函数还可以用来创建3D图像对象。我们可以通过 axes 参数指定所需的子图数量和布局,并可通过 figsize 参数调整整张图像的大小。
import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D # 绘制3D图 fig = plt.figure(figsize=(8, 8), dpi=100) ax = fig.add_subplot(111, projection='3d') x = np.arange(-5, 5, 0.1) y = np.arange(-5, 5, 0.1) X, Y = np.meshgrid(x, y) Z = np.sin(np.sqrt(X**2 + Y**2)) ax.plot_surface(X, Y, Z, cmap='rainbow')
4. 绘制带有图例和标题的图表
我们可以通过使用 plt.legend() 和 plt.title() 函数来在图表中添加图例和标题等元素,使图表更加完整。
import numpy as np import matplotlib.pyplot as plt x = np.arange(0, 6 * np.pi, 0.1) y1 = np.sin(x) y2 = np.cos(x) fig = plt.figure(figsize=(8, 6), dpi=100) plt.plot(x, y1, label='sin') plt.plot(x, y2, label='cos') plt.legend(loc='upper right') plt.title('Trigonometric Function') plt.xlabel('x') plt.ylabel('y')
五、小结
通过本文的介绍,我们了解了 plt.figure() 函数的基本概念和用法,其参数的作用及如何创建多幅子图、极轴图、3D图和带有图例和标题的图表等。希望本文能对读者在日常使用matplotlib时有所帮助。
原创文章,作者:UTSUQ,如若转载,请注明出处:https://www.506064.com/n/371628.html