import datetime
import numpy as np
from matplotlib import pyplot as plt
import matplotlib.dates as mdates
plt.rcParams["font.sans-serif"]=['SimHei']
hour = 10
step = 60
second = int(float(hour)*60*60)
now = datetime.datetime.now()
MeanValue, SumValue, MeanIndex = 0, 0, 0
delta = datetime.timedelta(seconds=60)
xmin = now - delta
ymax = 0
plt.ion()
plt.figure(1)
ax = plt.subplot(111)
Meanline = []
for i in range(0, second, step):
m = (1500 - 100 + 200 * np.random.random())/380
if ymax < m:
ymax = m
now += delta
SumValue += m
xmax = now
MeanValue = SumValue/(MeanIndex + 1)
MeanIndex += 1
if i == 0:
x = [now - delta, now]
y = [m-1, m]
plt.plot(x, y, "-")
else:
x.pop(0)
x.append(now)
y.pop(0)
y.append(m)
plt.plot(x, y, "-")
if (xmax - xmin) > datetime.timedelta(hours=1):
xmin = xmax - datetime.timedelta(hours=1)
plt.xlim(xmin, xmax)
plt.ylim(0, 1.5*ymax)
ax1 = plt.axhline(y=MeanValue, color="b", linewidth=1, linestyle="--")
Meanline.append(ax1)
if i > 1:
Meanline[0].remove()
Meanline.pop(0)
plt.xticks(rotation=50)
ax.xaxis.set_major_formatter(mdates.DateFormatter("%m-%d %H:%M:%S"))
plt.pause(1)
實時動態掃描數據流
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.