def plot_3d_ball_trajectory(var, filename, r=0.05):
var = np.asarray(var)
# Normalize directions
var -= var.min(axis=0)
var /= var.max(axis=0)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
for x, y, z in var:
p = mpatches.Circle((x, y), r, ec="none")
ax.add_patch(p)
art3d.pathpatch_2d_to_3d(p, z=0, zdir="z")
p = mpatches.Circle((x, z), r, ec="none")
ax.add_patch(p)
art3d.pathpatch_2d_to_3d(p, z=0, zdir="y")
p = mpatches.Circle((y, z), r, ec="none")
ax.add_patch(p)
art3d.pathpatch_2d_to_3d(p, z=0, zdir="x")
# ax.scatter(x, y, z, s=100)
# ax.plot(var[:, 0], var[:, 1], zs=var[:, 2])
ax.view_init(azim=45, elev=30)
ax.set_xlim3d(-0.1, 1.1)
ax.set_ylim3d(-0.1, 1.1)
ax.set_zlim3d(-0.1, 1.1)
plt.savefig(filename, format='png', bbox_inches='tight', dpi=80)
plt.close(fig)
# plt.show()
评论列表
文章目录