从txt绘制数据。文件:如何仅按特定间隔绘制?

时间:2018-06-27 06:39:12

标签: python matplotlib web web-applications iot

我的txt。该文件具有以下形式的300个读数:(time / reading1 / reading2)

26.6.2018/12:02 20 71
26.6.2018/12:03 21 43
26.6.2018/12:04 21 65
26.6.2018/12:05 19 68
26.6.2018/12:06 20 55

我目前正在使用matplotlib进行绘制,时间在X轴上,值在Y轴上。

我想绘制这些数据而无需在图表上有太多读数。当读数介于某个特定值之间时,我想每3小时绘制一次数据,当读数低于/高于给定值时,则每3分钟绘制一次数据。

我的解决方案是检查读数,如果读数不超过阈值=每3小时打印一次。

如果它们超过阈值=每3分钟打印一次。

但是我对实现这一目标几乎一无所知。

这是我的代码:

def landingpage(request):

with open('C:\Email\mail10.txt') as f:
lines = f.readlines() 
dates = [str(line.split()[0]) for line in lines] # Time as string
y = [float(line.split()[1]) for line in lines] # Temperature data
z = [float(line.split()[2]) for line in lines] # Humidity data

date = [datetime.strptime(x,'%d.%m.%Y/%H:%M') for x in dates] # Converts time strings into datetime format

plt.subplot(2,1,1)

plt.title('Temperature & Humidity', fontsize=15)
plt.ylabel('Temperature' + u'\u2103', fontsize=15)
plt.plot_date(date, y, 'r-')

plt.subplot(2,1,2)
plt.plot_date(date, z, 'b-')
plt.xlabel('Time', fontsize=15)
plt.ylabel('Humidity RH' + u'\u0025', fontsize=15)
plt.xticks(size = 10)
plt.yticks(size = 10)

# Print as HTML
return Response(   
mpld3.show()
)

谢谢!

0 个答案:

没有答案