#!/usr/bin/python3 import csv from datetime import datetime, date, timedelta from matplotlib import pyplot as plt filename = 'log.csv' ''' Time,TS,CO2,Temp 21:02:02,0,661,24 21:02:08,5021,657,24 ''' def parsedatetime(timevalue, currentdate): dt = datetime.strptime(timevalue, '%H:%M:%S') return datetime.combine(currentdate, dt.time()) with open(filename) as f: reader = csv.reader(f) headers = next(reader) time = [] co2 = [] temp = [] startdate = date(2020, 10, 22) for row in reader: dt = parsedatetime(row[0], startdate) if len(time) > 0 and dt - time[-1] < timedelta(hours=-2): # DST switch! startdate += timedelta(days=1) dt += timedelta(days=1) time.append(dt) co2.append(int(row[2])) temp.append(int(row[3])) plt.plot(time, co2, c = 'red') plt.title('CO₂') plt.xlabel('time') plt.ylabel('ppm') plt.tick_params(axis = 'both', which = 'major') plt.gca().twinx() plt.plot(time, temp, c = 'blue') plt.show()