LINUX.ORG.RU

История изменений

Исправление I-Love-Microsoft, (текущая версия) :

Вот код, не весь - опущена загрузка из файла, всё прекрасно рисуется и причем правильно. Но есть вопросы: 1) объявление linspace 2) информация о типе...

from collections import namedtuple
measure = namedtuple("measure", "acc gyr")

... тут заполняются данные из файла, каждый элемент data - это measure (named tuple с полями acc и gyr)

time = numpy.linspace(0., .02 * len(data), len(data))
ax = numpy.linspace(0., 0., len(data))
ay = numpy.linspace(0., 0., len(data))
az = numpy.linspace(0., 0., len(data))
gx = numpy.linspace(0., 0., len(data))
gy = numpy.linspace(0., 0., len(data))
gz = numpy.linspace(0., 0., len(data))
for i in range(0, len(data)):
    ax[i], ay[i], az[i] = data[i].acc
    gx[i], gy[i], gz[i] = data[i].gyr
plt.figure().canvas.set_window_title("graph")
pylab.subplot(211)
pylab.title("accelerometer")
pylab.plot(time, ax, "-r")
pylab.plot(time, ay, "-g")
pylab.plot(time, az, "-b")

pylab.subplot(212)
pylab.title("gyroscope")
pylab.plot(time, gx, "-r")
pylab.plot(time, gy, "-g")
pylab.plot(time, gz, "-b")
pylab.show()

1) Есть ли способ задать linspace сразу для всех этих переменных. А то не няшно - 6 одинаковых строк...

2) И правильно ли я беру данные из namedtuple? Ведь как только мы выходим из функции например, то мы теряем информацию что data это named tuple и у него есть поля acc и gyr. А как вернуть информацию что это data это measure??? Когда я был в функции загрузки из файла, то я мог присваивать полям значения в m = measure(acc = a, gyr = g):

def parse(file):
    print file
    d = []
    f = file.readlines()
    #print f
    for i in range(0, len(f)):
        f[i] = f[i].rstrip()
        if len(f[i]) != 65: f[i] = ""
    f = filter(None, f)
    for i in range(0, len(f)):
        s = f[i].split()
        a = float(s[3]), float(s[4]), float(s[5])
        g = float(s[0]), float(s[1]), float(s[2])
        m = measure(acc = a, gyr = g)
        d.append(m)
    return d

Исправление I-Love-Microsoft, :

Вот код, не весь - опущена загрузка из файла, всё прекрасно рисуется и причем правильно. Но есть вопросы: 1) объявление linspace 2) информация о типе...

from collections import namedtuple
measure = namedtuple("measure", "acc gyr")

... тут заполняются данные из файла, каждый элемент data - это measure (named tuple с полями acc и gyr)

time = numpy.linspace(0., .02 * len(data), len(data))
ax = numpy.linspace(0., 0., len(data))
ay = numpy.linspace(0., 0., len(data))
az = numpy.linspace(0., 0., len(data))
gx = numpy.linspace(0., 0., len(data))
gy = numpy.linspace(0., 0., len(data))
gz = numpy.linspace(0., 0., len(data))
for i in range(0, len(data)):
    ax[i], ay[i], az[i] = data[i].acc
    gx[i], gy[i], gz[i] = data[i].gyr
plt.figure().canvas.set_window_title("graph")
pylab.subplot(211)
pylab.title("accelerometer")
pylab.plot(time, ax, "-r")
pylab.plot(time, ay, "-g")
pylab.plot(time, az, "-b")

pylab.subplot(212)
pylab.title("gyroscope")
pylab.plot(time, gx, "-r")
pylab.plot(time, gy, "-g")
pylab.plot(time, gz, "-b")
pylab.show()

1) Есть ли способ задать linspace сразу для всех этих переменных. А то не няшно - 6 одинаковых строк...

2) И правильно ли я беру данные из namedtuple? Ведь как только мы выходим из функции например, то мы теряем информацию что data это named tuple и у него есть поля acc и gyr. А как вернуть информацию что это data это measure??? Когда я был в функции загрузки из файла, то я видел все поля:

def parse(file):
    print file
    d = []
    f = file.readlines()
    #print f
    for i in range(0, len(f)):
        f[i] = f[i].rstrip()
        if len(f[i]) != 65: f[i] = ""
    f = filter(None, f)
    for i in range(0, len(f)):
        s = f[i].split()
        a = float(s[3]), float(s[4]), float(s[5])
        g = float(s[0]), float(s[1]), float(s[2])
        m = measure(acc = a, gyr = g)
        d.append(m)
    return d

Исправление I-Love-Microsoft, :

Вот код, не весь - опущена загрузка из файла, всё прекрасно рисуется и причем правильно. Но есть вопросы: 1) объявление linspace 2) информация о типе...

from collections import namedtuple
measure = namedtuple("measure", "acc gyr")

... тут заполняются данные из файла, каждый элемент data - это measure (named tuple с полями acc и gyr)

time = numpy.linspace(0., .02 * len(data), len(data))
ax = numpy.linspace(0., 0., len(data))
ay = numpy.linspace(0., 0., len(data))
az = numpy.linspace(0., 0., len(data))
gx = numpy.linspace(0., 0., len(data))
gy = numpy.linspace(0., 0., len(data))
gz = numpy.linspace(0., 0., len(data))
for i in range(0, len(data)):
    ax[i], ay[i], az[i] = data[i].acc
    gx[i], gy[i], gz[i] = data[i].gyr
plt.figure().canvas.set_window_title("graph")
pylab.subplot(211)
pylab.title("accelerometer")
pylab.plot(time, ax, "-r")
pylab.plot(time, ay, "-g")
pylab.plot(time, az, "-b")

pylab.subplot(212)
pylab.title("gyroscope")
pylab.plot(time, gx, "-r")
pylab.plot(time, gy, "-g")
pylab.plot(time, gz, "-b")
pylab.show()

1) Есть ли способ задать linspace сразу для всех этих переменных. А то не няшно - 6 одинаковых строк...

2) И правильно ли я беру данные из namedtuple? Ведь как только мы выходим функции например, то мы теряем информацию что data это named tuple и у него есть поля acc и gyr. А как вернуть информацию что это data это measure???

Исходная версия I-Love-Microsoft, :

from collections import namedtuple
measure = namedtuple("measure", "acc gyr")

... тут заполняются данные из файла, каждый элемент data - это measure (named tuple с полями acc и gyr)

time = numpy.linspace(0., .02 * len(data), len(data))
ax = numpy.linspace(0., 0., len(data))
ay = numpy.linspace(0., 0., len(data))
az = numpy.linspace(0., 0., len(data))
gx = numpy.linspace(0., 0., len(data))
gy = numpy.linspace(0., 0., len(data))
gz = numpy.linspace(0., 0., len(data))
for i in range(0, len(data)):
    ax[i], ay[i], az[i] = data[i].acc
    gx[i], gy[i], gz[i] = data[i].gyr
plt.figure().canvas.set_window_title("graph")
pylab.subplot(211)
pylab.title("accelerometer")
pylab.plot(time, ax, "-r")
pylab.plot(time, ay, "-g")
pylab.plot(time, az, "-b")

pylab.subplot(212)
pylab.title("gyroscope")
pylab.plot(time, gx, "-r")
pylab.plot(time, gy, "-g")
pylab.plot(time, gz, "-b")
pylab.show()

1) Есть ли способ задать linspace сразу для всех этих переменных. А то не няшно - 6 одинаковых строк...

2) И правильно ли я беру данные из namedtuple? Ведь как только мы выходим функции например, то мы теряем информацию что data это named tuple и у него есть поля acc и gyr. А как вернуть информацию что это data это measure???