[Tutor] How to plot amount of lines but the amount is a input

Tom Xu xupeng.psu at gmail.com
Wed Dec 30 01:04:00 EST 2015


Dear Pythoneers,

sorry for bothering. I want to draw several curves in one graph, but the
amount of curves is not a fixed number.
My homework is below:
-------------------------------------------------------------------
import matplotlib.pyplot as plt
import math

if __name__=='__main__':
    try:
        n=int(input('how many curves? '))
        ulist=[]
        thetalist=[]
        for i in range(n):
            ulist.append(float(input('Enter velocity: ')))
            thetalist.append(float(input('Enter angle: ')))
    except ValueError:
        print('invalid input')
    else:
*        generateFr(?????) # here I want to draw several curves with
ulist[0], thetalist[0], ulist[1], thetalist[1]... ... ulist[n-1],
thetalist[n-1]*

def generateFr(u, theta):
    theta=math.radians(theta)
    g=9.8

    tflight=2*u*math.sin(theta)/g
    intervals=frange(0, tflight, 0.001)

    x=[]
    y=[]
    for t in intervals:
        x.append(u*math.cos(theta)*t)
        y.append(u*math.sin(theta)*t - 0.5*g*t*t)
    drawgraph(x, y)

def frange(start, final, increment):
    numbers=[]
    while start<final:
        numbers.append(start)
        start+=increment
    return numbers

def drawgraph(x, y):
    plt.plot(x, y)
    plt.xlabel('x-coordinate')
    plt.ylabel('y-coordinate')
    plt.title('Projectile motion')
------------------------------------------------------------------------------

Thank you very much. I hope I describe my question clearly.

Tom


More information about the Tutor mailing list