“plt.figure”的作用是什么?

7
import numpy as np
import matplotlib.pyplot as plt

def f(t):
    return np.exp(-t) * np.cos(2*np.pi*t)

t1 = np.arange(0.0, 5.0, 0.1)
t2 = np.arange(0.0, 5.0, 0.02)

plt.figure(1)
plt.subplot(211)
plt.plot(t1, f(t1), 'bo', t2, f(t2), 'k')

plt.subplot(212)
plt.plot(t2, np.cos(2*np.pi*t2), 'r--')
plt.show()

根据官方Matplotlib文档(https://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.figure), figure函数将会:

"如果提供了num参数,且已存在一个带有该id的图形,则激活该图形并返回对它的引用。"

我在Ipython上尝试执行上述操作,没有使用plt.figure,但仍然显示了要求的两个图片。

2个回答

10

有三种情况下使用plt.figure很有用:

  1. 获取图形句柄。 在许多情况下,获取图形句柄是很有用的,即一个变量来存储matplotlib.figure.Figure实例,以便稍后可以使用。例如:

    fig = plt.figure()
    #... other code
    fig.autofmt_xdate()
    
  2. 设置图形参数。 设置某些图形参数的选项是将它们作为参数提供给plt.figure,例如:

  3. plt.figure(figsize=(10,7), dpi=144) 
    
  4. 创建多个图形。 为了在同一脚本中创建多个图形,可以使用plt.figure。例如:

    plt.figure()      # create a figure
    plt.plot([1,2,3])
    plt.figure()      # create another figure
    plt.plot([4,5,6]) # successive commands are plotted to the new figure
    

在很多情况下,其实并不需要使用plt.figure。在pyplot界面中,调用任何绘图命令都足以创建一个图形,您可以始终使用plt.gcf()获取对当前图形的句柄。

从另一个角度来看,通常不仅需要获得对图形的句柄,还需要获得要绘制的坐标轴。在这种情况下,使用plt.subplots更为有利,fig, ax = plt.subplots()


好的,我创建了一个图形(或者说,几个图形)。现在,我该如何引用或选择特定的图形来显示我的图表/图像呢?有编号吗?或者,所有的一切都按顺序依次发生,需要自己记得吗? - Hemanth Bakaya

5

plt.figure会给你一个新的图形,根据所提供的参数,它可以打开一个新的图形或不打开。比较如下:

plt.figure(1)
plt.plot(x1, y1)
plt.plot(x2, y2)

为了

plt.figure(1)
plt.plot(x1, y1)
plt.figure(2)
plt.plot(x2, y2)

转化为

plt.figure(1)
plt.plot(x1, y1)
plt.figure(1)
plt.plot(x2, y2)

你会发现第一个例子和第三个例子相同,这是因为在第三个例子中使用了第二个plt.figure(1)调用来检索相同的图形句柄。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接