Проблема с выводом графика
Пытаюсь вывести график оцифрованной синусоиды, но бестолку- выводится только графическое окно без графика. Помогите, пожалуйста, разобраться.
import matplotlib.pyplot as plt
import matplotlib
from math import sin, pi
from pylab import *
import os
xmax = 10 #интервал в секундах
x = 0
freq = 4 #частота дискретизации в Гц
ff = 0.6
xstep = 1 / freq
bits = 6
mult = 1 << (bits - 1)
result = []
while x < xmax:
y = math.sin(x*ff)
dig = int(y * mult)
result.append(dig)
x += xstep
plt.plot(x,y)
plt.grid(True)
plt.show()
Ответы (2 шт):
Автор решения: Danis
→ Ссылка
График нужно отрисовавать один раз, и нужно передавать список
import matplotlib.pyplot as plt
import matplotlib
from math import sin, pi
from pylab import *
import os
xmax = 10 #интервал в секундах
x = 0
freq = 4 #частота дискретизации в Гц
ff = 0.6
xstep = 1 / freq
bits = 6
mult = 1 << (bits - 1)
result = []
while x < xmax:
y = math.sin(x*ff)
dig = int(y * mult)
result.append(dig)
x += xstep
plt.plot(result)
plt.grid(True)
plt.show()
Автор решения: AivanF.
→ Ссылка
Я немного затянул с ответом, но поправил код-стайл, а также добавил в отображении использование реальных значений оси абсцисс:
import matplotlib.pyplot as plt
import math
xmax = 10 # интервал в секундах
x = 0.0
freq = 4 # частота дискретизации в Гц
ff = 0.6
xstep = 1 / freq
bits = 6
mult = 1 << (bits - 1)
xs = []
ys = []
digs = []
while x < xmax:
y = math.sin(x * ff)
dig = int(y * mult)
xs.append(x)
ys.append(y)
digs.append(dig)
x += xstep
plt.plot(xs, ys)
plt.plot(xs, digs)
plt.grid(True)
plt.show()