On 12/26/2011 05:27 AM, Yigit Turgut wrote:
On Dec 25, 7:06 pm, Rick Johnson<rantingrickjohn...@gmail.com>  wrote:
On Dec 25, 9:33 am, Yigit Turgut<y.tur...@gmail.com>  wrote:
Hi all,

I have a text file as following;

0.200047        0.000000
0.200053        0.160000
0.200059        0.000000
0.200065        0.080000
0.200072        0.000000
0.200078        0.160000

And I am trying to plot it with ;

filenames = sys.argv[1:]
if len(filenames) == 0:
     filenames = [sys.stdin]
for filename in filenames:
     t,y1 = numpy.genfromtxt(filename, unpack=True)
     pyplot.plot(t,y1)
     pyplot.show()

But graph seems weird, not as it supposed to be. Any ideas ?

Interesting. Of course "weird" leaves a LOT to be desired. On a scale
of 1-10, how "weird" is the result?

I apply a 1Khz test signal just to see if things run smoothly, but I
see spikes at lower and higher ends (logic 0,1) where I should see a
clean rectangle pwm signal. By the look of it I say weirdness is
around 3/10.

What are you expecting? Your data produces something that looks like the plot on the right of this screenshot (http://i44.tinypic.com/wwhlvp.jpg), I don't see anything weird with that; if you are expecting a square-wave-like plot (like on the left), then you should use a square-wave-like data, pyplot wouldn't magically transform a spiked-plot to squared-plot.

Here's what I use to convert the data on right plot to data on left plot, I don't know much about numpy so it might be possible to do it more efficiently or numpy might even have something like it already.

from itertools import izip_longest
def to_square(t, y1):
    sq_data = [[], []]
    for x,y, xn in izip_longest(data[0], data[1], data[0][1:]):
        sq_data[0].append(x)
        sq_data[1].append(y)
        sq_data[0].append(xn)
        sq_data[1].append(y)
    return numpy.array(sq_data, dtype=float)

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to