繁体   English   中英

Python-如何在散点图上显示单个数据点?

[英]Python - How to display a single data point on a scatter plot?

我正在尝试显示3D散点图。 下面的代码可以工作,但是它显示当前和旧数据点。 我想一次只显示一个。 我尝试了其他选项,但无法正常工作。 有什么建议么?

谢谢!

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()

您可以在for循环中的每次迭代中清除轴。 请注意,您还需要注意轴的限制。

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM