Python 循环中的 3D 图形干净图像
3D graphic clean image in loop in Python
我在一个循环中有这个图,问题是它为每次迭代打开一个新图像,我的 plt.clf() 似乎不起作用,我该如何解决这个问题?
plt.ion()
for k in range(1,10):
for i in range(0,len(x)):
for j in range(0,len(x[i])-1):
plt.clf()
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.set_title('Iteration %s\n' % (str(k)))
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.set_xlim(-1, 1)
ax.set_ylim(-1, 1)
ax.set_zlim(-1, 1)
plt.show()
plt.pause(0.05)
我隐藏了代码,因为我相信问题出现在我发布在这里的那段代码中
P.S.: 我正在使用:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
这里的问题是每次迭代设置 fig = plt.figure()
,然后使用 plt.gcf().clear()
清理绘图,您应该这样做:
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
plt.ion()
x = [[1,5],[2,4]]
fig = plt.figure()
for k in range(1,10):
for i in range(0,len(x)):
for j in range(0,len(x[i])-1):
ax = fig.add_subplot(111, projection='3d')
ax.set_title('Iteration %s\n' % (str(k)))
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.set_xlim(-1, 1)
ax.set_ylim(-1, 1)
ax.set_zlim(-1, 1)
plt.show()
plt.pause(0.5)
plt.gcf().clear()
我在一个循环中有这个图,问题是它为每次迭代打开一个新图像,我的 plt.clf() 似乎不起作用,我该如何解决这个问题?
plt.ion()
for k in range(1,10):
for i in range(0,len(x)):
for j in range(0,len(x[i])-1):
plt.clf()
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.set_title('Iteration %s\n' % (str(k)))
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.set_xlim(-1, 1)
ax.set_ylim(-1, 1)
ax.set_zlim(-1, 1)
plt.show()
plt.pause(0.05)
我隐藏了代码,因为我相信问题出现在我发布在这里的那段代码中
P.S.: 我正在使用:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
这里的问题是每次迭代设置 fig = plt.figure()
,然后使用 plt.gcf().clear()
清理绘图,您应该这样做:
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
plt.ion()
x = [[1,5],[2,4]]
fig = plt.figure()
for k in range(1,10):
for i in range(0,len(x)):
for j in range(0,len(x[i])-1):
ax = fig.add_subplot(111, projection='3d')
ax.set_title('Iteration %s\n' % (str(k)))
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.set_xlim(-1, 1)
ax.set_ylim(-1, 1)
ax.set_zlim(-1, 1)
plt.show()
plt.pause(0.5)
plt.gcf().clear()