我试图在这个节目中绘制f但是我搞砸了。有人可以看看,告诉我我在哪里弄乱。感谢。
import math
#x is the horizontal distance that the ball has traveled
g=9.81
v=raw_input('Enter an initial velocity:')
theta=raw_input('Enter the angle that the object was thrown at:')
y=raw_input('Enter the initial position of the object on the y-axis:')
t=(2*v*math.sin(theta))/g
x=(0.5)*((v*math.sin(theta))+v)*t
float(v)
float(theta)
float(y)
float(t)
f=x*math.tan(theta)-(1/(2*(v**2)))*((g(x**2))/(math.cos(theta)**2))+y
figure(1)
clf()
plot(f)
xlabel('x')
ylabel('y')
show()
答案 0 :(得分:1)
首先,我会导入numpy和matplotlib
import numpy as np
import matplotlib.pyplot as plt
然后,您必须将字符串输入转换为浮点数,因为您可以使用eval。
initial_velo = eval(raw_input("Whatever you like: "))
...
然后,为了使用matplotlib进行绘图,您实际上必须创建一个值列表(就像收集实际数据然后将其输入计算机然后绘制单个数据点一样)。为此,我喜欢使用numpy import中的linspace:
time_steps = np.linspace(0, t, steps)
# steps gives the numbers of intervals your time from 0 to t is splitted into
现在您将函数x和f创建为t的函数。它们也必须是类型列表。最后,您可以通过以下方式绘制您想要的内容:
plt.figure(1)
plt.plot(time_steps, f)
plt.xlabel("x")
plt.ylabel("y")
plt.show()
但也许您还应该看看如何在matplotlib doc中绘制内容。 numpy也有很棒的文档。