code: def _frame_update(index):
      ax.clear()
      ax.scatter(*nodes.T, alpha=0.2, s=100, color="blue")
      for vizedge in edges:
          ax.plot(*vizedge.T, color="gray")
      neighbors = list(G.neighbors(node[0]))
      if index % 5 == 0:
          node[0] = random.choice(neighbors)
      node0 = nodes[node[0]]
      ax.scatter(*node0, alpha=1, marker="s", color="red", s=100)
      ax.view_init(index * 0.2, index * 0.5)
      ax.grid(False)
      ax.set_axis_off()
      plt.tight_layout()
      return
  
file_path: networkx/examples/3d_drawing/plot_3d_rotation_animation.py
imports: import numpy
  import networkx
  import random
  import matplotlib.pyplot
  from matplotlib import animation
label_desc: Use image node_id 3 for calling a global function with example usage: _frame_update(index) without return types