问题是Figure
屏幕上显示了 2 个单独的对象。每个Figure
对象都包含一个Axes
对象。如何用图 2 中的Axes
对象覆盖/替换图 1 中的Axes
对象?
换句话说:
- 我们有一些称为 A 的数据。
- 我们绘制称为 A 的数据。
- 该图以新图形返回并显示。
- 我们有一些称为 B 的数据。
- 我们绘制名为 B 的数据。
- 现在我们要将
Axes
包含数据 B 复制并覆盖到Axes
包含数据 A
import matplotlib.pyplot as plt
import numpy as np
plt.ion()
# Draw the first figure and plot
x_1 = np.linspace(0, 10*np.pi, 100)
y_1 = np.sin(x_1)
figure_1 = plt.figure()
axes_1 = figure_1.add_subplot(111)
line_1, = axes_1.plot(x_1, y_1, 'b-')
figure_1.canvas.draw()
# Draw the second figure and plot
x_2 = np.linspace(0, 9*np.pi, 100)
y_2 = np.sin(x_2)
figure_2 = plt.figure()
axes_2 = figure_2.add_subplot(111)
line_2 = axes_2.plot(x_2, y_2, 'r-')
figure_2.canvas.draw()
# Now clear figure_1's axes and replace it with figure_2's axis
figure_1.get_axes()[0].clear()
figure_1.add_axes(axes_2)
figure_1.canvas.draw()
print("Done")
用的add_axes()
方法就是养ValueError "The Axes must have been created in the present figure"
。
有没有办法将 Axes 从当前图形中分离出来,以便可以将其添加到另一个图形中?
有这个问题解决了复制轴并在新图中显示的问题,但是我想在现有图中显示它。