0

问题是Figure屏幕上显示了 2 个单独的对象。每个Figure对象都包含一个Axes对象。如何用图 2 中的Axes对象覆盖/替换图 1 中的Axes对象?

换句话说:

  1. 我们有一些称为 A 的数据。
  2. 我们绘制称为 A 的数据。
  3. 该图以新图形返回并显示。
  4. 我们有一些称为 B 的数据。
  5. 我们绘制名为 B 的数据。
  6. 现在我们要将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 从当前图形中分离出来,以便可以将其添加到另一个图形中?

这个问题解决了复制轴并在新图中显示的问题,但是我想在现有图中显示它。

4

1 回答 1

0
import matplotlib.pyplot as plt
import numpy as np

# b: blue, g: green, r: red, c: cyan, m: magenta, y: yellow, k: black, w: white

##################################################################################
# EQUATIONS
##################################################################################

x_1 = np.linspace(0, 10*np.pi, 100)
y_1 = np.sin(x_1)

#If you change the equation with a conditional/loop, you will change the plot

##################################################################################
# LABELING
##################################################################################

plt.xlabel('x axis')
plt.ylabel('y axis')
plt.title('Data_VIsualization')

##################################################################################
# PLOTTING
##################################################################################

plt.plot(x_1, y_1, color='b', linestyle='--')
plt.show()
于 2020-11-15T18:03:14.480 回答