我如何告诉Matplotlib创建第二个(新的)图,然后在旧的图上创建稍后的图?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (55)

我想要绘制数据,然后创建一个新的图形和绘图数据2,最后回到原来的绘图和绘图数据3,有点像这样:

import numpy as np
import matplotlib as plt

x = arange(5)
y = np.exp(5)
plt.figure()
plt.plot(x, y)

z = np.sin(x)
plt.figure()
plt.plot(x, z)

w = np.cos(x)
plt.figure("""first figure""") # Here's the part I need
plt.plot(x, w)
提问于
用户回答回答于

如果您发现自己经常这样做,那么可能值得研究一下Matplotlib的面向对象接口。就你而言:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(5)
y = np.exp(x)
fig1 = plt.figure()
ax1 = fig1.add_subplot(111)
ax1.plot(x, y)

z = np.sin(x)
fig2 = plt.figure()
ax2 = fig2.add_subplot(111)
ax2.plot(x, z)

w = np.cos(x)
ax1.plot(x, w) # can continue plotting on the first axis

它更冗长,但更清晰和更容易跟踪,特别是几个数字每一个有多个子图。

用户回答回答于

当你调用figure只需对情节进行编号。

x = arange(5)
y = np.exp(5)
plt.figure(0)
plt.plot(x, y)

z = np.sin(x)
plt.figure(1)
plt.plot(x, z)

w = np.cos(x)
plt.figure(0) # Here's the part I need
plt.plot(x, w)

扫码关注云+社区