Plot square wave

Peter Otten __peter__ at
Wed Jan 18 11:09:28 EST 2012

Yigit Turgut wrote:

> Problem is I get a sawtooth instead of a square wave. I know that I
> need to define points between 0,1,2 time integer values to achieve
> this. But I hope there is a python trick that will yield this
> time,data plot to a square wave?

There is no "Python trick", pylab is showing the data you provide. To get a 
square wave you need two y values per x value, for example

import pylab

time = [0, 0, 1, 1, 2, 2, 3, 3, 4, 4]
data = [0, 1, 1, 0, 0, 1, 1, 0, 0, 1]
pylab.plot(time, data)
pylab.ylim(-.1, 1.1) # so you see the horizontal lines of the graph
pylab.xlim(-.1, 4.1)

A general advice: try the individual aspects of your script (plotting, 
pygame flicker, data i/o) separately to make sure you understand them well 
enough before putting them together in the final version of your code.

More information about the Python-list mailing list