[英]Python - How to display a single data point on a scatter plot?
I'm trying to display a 3D scatter plots. 我正在尝试显示3D散点图。 The code below works but it displays the current and old data points.
下面的代码可以工作,但是它显示当前和旧数据点。 I would like to display only one at a time.
我想一次只显示一个。 I've tried different options but I can't get it to work properly.
我尝试了其他选项,但无法正常工作。 Any suggestions?
有什么建议么?
Thanks! 谢谢!
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.set_xlim([-1.5, 1.5])
ax.set_ylim([-1.5, 1.5])
ax.set_zlim(0, 1.5)
ax.set_xlabel('x axis')
ax.set_ylabel('y axis')
ax.set_zlabel('z axis')
data = [[-1.0, -1.0, 0.0], [1.0, -1.0, 0.0], [0.0, -1.0, 1.0], [-1.0, 0.0, 1.0]]
def animate(data):
x = data[0]
y = data[1]
z = data[2]
scat = ax.scatter3D(x, y, z, c='r', marker='o')
return
ani = animation.FuncAnimation(fig, animate, data, interval=1000, blit=False, repeat=False)
plt.show()
You can clear the axes in each iteration in the for
loop. 您可以在
for
循环中的每次迭代中清除轴。 Note that you need to take care of the axes limits as well. 请注意,您还需要注意轴的限制。
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.set_xlim([-1.5, 1.5])
ax.set_ylim([-1.5, 1.5])
ax.set_zlim(0, 1.5)
ax.set_xlabel('x axis')
ax.set_ylabel('y axis')
ax.set_zlabel('z axis')
data = [[-1.0, -1.0, 0.0], [1.0, -1.0, 0.0], [0.0, -1.0, 1.0], [-1.0, 0.0, 1.0]]
def animate(data):
x = data[0]
y = data[1]
z = data[2]
plt.cla()
ax.set_xlim([-1.5,1.5])
ax.set_ylim([-1.5,1.5])
ax.set_zlim([-1.5,1.5])
scat = ax.scatter3D(x, y, z, c='r', marker='o')
return
ani = animation.FuncAnimation(fig, animate, data, interval=1000, blit=False, repeat=False)
plt.show()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.