深入浅出matplotlib — plt.figure()详解

一、基本介绍

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
UTSUQ的头像UTSUQ
上一篇 2025-04-23 18:08
下一篇 2025-04-23 18:08

相关推荐

  • Python最强大的制图库——Matplotlib

    Matplotlib是Python中最强大的数据可视化工具之一,它提供了海量的制图、绘图、绘制动画的功能,通过它可以轻松地展示数据的分布、比较和趋势。下面将从多个方面对Matplo…

    编程 2025-04-29
  • Python三大:NumPy、Pandas、matplotlib

    本文将详细介绍三大Python数据处理及可视化库——NumPy、Pandas以及matplotlib,为读者提供从基础使用到应用场景的全面掌握。 一、NumPy NumPy是Pyt…

    编程 2025-04-27
  • Python画图:Matplotlib的使用

    Matplotlib是Python中最常用的画图库之一。它可以轻松地创建各种类型的图表,包括直方图、散点图、线图、饼图等等。本文将从以下几个方面对Matplotlib的使用进行详细…

    编程 2025-04-27
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • 详解eclipse设置

    一、安装与基础设置 1、下载eclipse并进行安装。 2、打开eclipse,选择对应的工作空间路径。 File -> Switch Workspace -> [选择…

    编程 2025-04-25
  • C语言贪吃蛇详解

    一、数据结构和算法 C语言贪吃蛇主要运用了以下数据结构和算法: 1. 链表 typedef struct body { int x; int y; struct body *nex…

    编程 2025-04-25
  • Python输入输出详解

    一、文件读写 Python中文件的读写操作是必不可少的基本技能之一。读写文件分别使用open()函数中的’r’和’w’参数,读取文件…

    编程 2025-04-25
  • nginx与apache应用开发详解

    一、概述 nginx和apache都是常见的web服务器。nginx是一个高性能的反向代理web服务器,将负载均衡和缓存集成在了一起,可以动静分离。apache是一个可扩展的web…

    编程 2025-04-25
  • MPU6050工作原理详解

    一、什么是MPU6050 MPU6050是一种六轴惯性传感器,能够同时测量加速度和角速度。它由三个传感器组成:一个三轴加速度计和一个三轴陀螺仪。这个组合提供了非常精细的姿态解算,其…

    编程 2025-04-25

发表回复

登录后才能评论