网球课程的3D模拟

时间:2019-05-25 11:31:57

标签: python matplotlib plot 3d

我想模拟3D图中网球的位置。它希望它是一条与网球在被击中后在网球场上的位置相等的线。问题是我的代码绘制了一个蓝色图形,而不是如下面的链接中所示一行。我该怎么做才能使其成为蓝线?

此外,我得到一个错误:

  

TypeError:plot()缺少3个必需的位置参数:'self',   'xs'和'ys'

我不知道它如何影响我的代码结果

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

x=np.array([0,3,5,7,9,11,13,15,17,19,21,23])
y=np.array([0,0.1,0.2,0.3,0.4,0.6,0.9,1,1.2,1.4,1.7,1.9])
z=np.array([1,1.2,1.5,1.7,1.8,1.9,2,1.9,1.8,1.7,1.5,1.2])

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

ax.plot_trisurf(x,y,z,)
plt.show()
Axes3D.plot()

我希望结果是一条蓝线,而不是下图所示的蓝色图形

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以按以下方式使用ax.plot(x,y,z,)plot3D(x,y,z,)。蓝色表面来自plot_trisurf

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

x=np.array([0,3,5,7,9,11,13,15,17,19,21,23])
y=np.array([0,0.1,0.2,0.3,0.4,0.6,0.9,1,1.2,1.4,1.7,1.9])
z=np.array([1,1.2,1.5,1.7,1.8,1.9,2,1.9,1.8,1.7,1.5,1.2])

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

ax.plot3D(x,y,z,) # or ax.plot(x,y,z,)
plt.show()

enter image description here