在Python 2.7中绘制函数

时间:2015-12-11 21:43:06

标签: python python-2.7

我试图在这个节目中绘制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()

1 个答案:

答案 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也有很棒的文档。