Python 在matplotlib中打印阵列阵列

Python 在matplotlib中打印阵列阵列,python,matplotlib,plot,Python,Matplotlib,Plot,我有一个形状的数组(6416,17,3)。我试图在3D网格中一个接一个地绘制每个条目(17,3),就像是一个视频一样。这是我为visualizer函数编写的代码: def draw_limbs_3d(ax, joints_3d, limb_parents): # ax.clear() for i in range(joints_3d.shape[0]): x_pair = [joints_3d[i, 0], joints_3d[limb_parents[i], 0

我有一个形状的数组(6416,17,3)。我试图在3D网格中一个接一个地绘制每个条目(17,3),就像是一个视频一样。这是我为visualizer函数编写的代码:

def draw_limbs_3d(ax, joints_3d, limb_parents):
    # ax.clear()
    for i in range(joints_3d.shape[0]):
        x_pair = [joints_3d[i, 0], joints_3d[limb_parents[i], 0]]
        y_pair = [joints_3d[i, 1], joints_3d[limb_parents[i], 1]]
        z_pair = [joints_3d[i, 2], joints_3d[limb_parents[i], 2]]
        ax.plot(x_pair, y_pair, zs=z_pair, linewidth=3)

def visualizer(joints_3d):
    joint_parents = [16, 15, 1, 2, 3, 1, 5, 6, 14, 8, 9, 14, 11, 12, 14, 14, 1]
    fig = plt.figure('3D Pose')
    ax_3d = plt.axes(projection='3d')
    plt.ion()
    ax_3d.clear()
    ax_3d.clear()
    ax_3d.view_init(-90, -90)
    ax_3d.set_xlim(-1000, 1000)
    ax_3d.set_ylim(-1000, 1000)
    ax_3d.set_zlim(0, 4000)
    ax_3d.set_xticks([])
    ax_3d.set_yticks([])
    ax_3d.set_zticks([])
    white = (1.0, 1.0, 1.0, 0.0)
    ax_3d.w_xaxis.set_pane_color(white)
    ax_3d.w_yaxis.set_pane_color(white)
    ax_3d.w_xaxis.line.set_color(white)
    ax_3d.w_yaxis.line.set_color(white)
    ax_3d.w_zaxis.line.set_color(white)
    draw_limbs_3d(ax_3d, joints_3d, joint_parents)
我使用此代码在所有条目上运行:

joints_3d = np.load('output.npy')
for joint in joints_3d:
    joint = joint.reshape((17,3))
    visualizer(joint)

这会导致程序崩溃。但它只适用于一个数组,我得到了正确的绘图。如果你能帮助我,我将不胜感激。谢谢。

如果您试图同时显示6416个数字,这肯定会使您的计算机崩溃。(通常你会在20位数后收到警告。)如果你想制作动画,请在谷歌上搜索“matplotlib 3d动画”。@ImportanceOfBeingErnest我会试试,你认为我可以将其应用于这些功能吗?是的。请确保只创建一个图形,并更新其中的所有内容。@ImportanceOfBeingErnest好的,非常感谢,只需稍作修改即可