Displaying charts with Matplotlib
For beginning:
from matplotlib import pyplot as plt
from numpy import sin, arange, pi
if __name__ == '__main__':
T = 5.
t = arange(0, T, T / 1000)
x = [sin(2 * pi / T * 5 * i) for i in t] # 5 sin periods
plt.plot(t, x)
plt.show()

Let's prettify charts:
if __name__ == '__main__':
T = 5.
t = arange(0, T, T / 1000)
x = [sin(2 * pi / T * 5 * i) for i in t] # 5 sin periods
fig = plt.figure(1)
fig.canvas.set_window_title('sin chart example')
plt.plot(t, x)
plt.title('sin(t)')
plt.xlabel('t')
plt.ylabel('sin')
plt.show()

More charts:
if __name__ == '__main__':
T = 5.
t = arange(0, T, T / 1000)
x1 = [sin(2 * pi / T * 5 * i) for i in t] # 5 sin periods
x2 = [sin(2 * pi / T * 1 * i) for i in t] # 1 sin periods
fig = plt.figure(1)
fig.canvas.set_window_title('sin chart example')
plt.plot(t, x1, 'r-', t, x2, 'g-')
plt.title('sin(t)')
plt.xlabel('t')
plt.ylabel('sin')
plt.show()

if __name__ == '__main__':
T = 5.
t = arange(0, T, T / 1000)
x1 = [sin(2 * pi / T * 5 * i) for i in t] # 5 sin periods
x2 = [sin(2 * pi / T * 1 * i) for i in t] # 1 sin periods
fig = plt.figure(1)
fig.canvas.set_window_title('sin chart example')
plt.subplot(121)
plt.plot(t, x1, 'r-')
plt.title('sin(t)')
plt.xlabel('t')
plt.ylabel('sin')
plt.subplot(122)
plt.plot(t, x2, 'g-')
plt.show()

if __name__ == '__main__':
T = 5.
t = arange(0, T, T / 1000)
x1 = [sin(2 * pi / T * 5 * i) for i in t] # 5 sin periods
x2 = [sin(2 * pi / T * 1 * i) for i in t] # 1 sin periods
fig1 = plt.figure(1)
fig1.canvas.set_window_title('sin chart example 1')
plt.plot(t, x1)
plt.title('sin(t)')
plt.xlabel('t')
plt.ylabel('sin')
fig2 = plt.figure(2)
fig2.canvas.set_window_title('sin chart example 2')
plt.plot(t, x2)
plt.show()

Legend:
if __name__ == '__main__':
T = 5.
t = arange(0, T, T / 1000)
x1 = [sin(2 * pi / T * 5 * i) for i in t] # 5 sin periods
x2 = [sin(2 * pi / T * 1 * i) for i in t] # 1 sin periods
fig = plt.figure(1)
fig.canvas.set_window_title('sin chart example')
p1, p2 = plt.plot(t, x1, 'r-', t, x2, 'g-')
plt.title('sin(t)')
plt.xlabel('t')
plt.ylabel('sin')
plt.legend([p1, p2], ['5 periods', '1 period'])
plt.show()

Links:
UPD 2017-11-25
An alternative: Bokeh.
Licensed under CC BY-SA 3.0