Grafiken Spiegelverkehrt
Verfasst: Mittwoch 26. Dezember 2018, 12:52
Hallo,
kann mir irgendwer vlt. erklären warum ich meine Grafiken wenn ich die Funktion datatime ausführe so bekomme das links der älteste und rechts der neuste Wert angezeigt wird und in der Funktion data dies genau andersherum angezeigt wird obwohl sie gleich aufgebaut ist wie datatime?
kann mir irgendwer vlt. erklären warum ich meine Grafiken wenn ich die Funktion datatime ausführe so bekomme das links der älteste und rechts der neuste Wert angezeigt wird und in der Funktion data dies genau andersherum angezeigt wird obwohl sie gleich aufgebaut ist wie datatime?
Code: Alles auswählen
PLOTS = {
'luftfeuchtigkeit': {
'label1': 'Luftfeuchtigkeit innen',
'label2': 'Luftfeuchtigkeit ausen',
'ylabel': 'Luftfeuchtigkeit in %',
'rowone': 1,
'rowtwo': 3
},
'temperatur': {
'label1': 'Temperatur innen',
'label2': 'Temperatur ausen',
'ylabel': 'Temperatur in °C',
'rowone': 2,
'rowtwo': 4
},
'erdfeuchtigkeit': {
'label1': 'Erdfeuchtigkeit',
'ylabel': 'Erdfeuchtigkeit ins %',
'rowone': 5
},
'lux': {
'label1': 'Lichtitensität(lux)',
'ylabel': 'Lichtitensität in Lux',
'rowone': 6
},
}
app = Flask(__name__)
@app.route('/image/<datatype>.png/<start>/<end>', methods=['GET', 'POST'])
def datatime(datatype, start, end):
time = []
wertone = []
werttwo = []
rowone = 1
rowtwo = 3
my_dpi=96
conn = psycopg2.connect( port = "5432")
print ("Opened database " + datatype + " successfully")
cur = conn.cursor()
cur.execute("SELECT TIMESTAMP, LUFTFEUCHTIGKEITDRIN, TEMPERATURDRIN, LUFTFEUCHTIGKEITAUSEN, TEMPERATURAUSEN, ERDFEUCHTIGKEIT, LUX from MESSDATEN WHERE TIMESTAMP BETWEEN '{0}' AND '{1}'".format(start, end))
rows = cur.fetchall()
plot = PLOTS[datatype]
for row in rows:
time.append(row[0])
wertone.append(row[plot['rowone']])
if datatype == 'luftfeuchtigkeit' or datatype == 'temperatur':
werttwo.append(row[plot['rowtwo']])
fig, ax = plt.subplots(figsize=(600/my_dpi, 400/my_dpi), dpi=my_dpi)
ax.plot(time, wertone, label=plot['label1'])
if datatype == 'luftfeuchtigkeit' or datatype == 'temperatur':
ax.plot(time, werttwo, label=plot['label2'])
ax.grid(True)
fig.legend()
ax.set_ylabel(plot['ylabel'])
fig.autofmt_xdate()
buffer = io.BytesIO()
plt.savefig(buffer, format = 'png')
plot_data = buffer.getvalue()
response = make_response(plot_data)
response.headers['Content-type'] = 'image/png'
return response
@app.route('/image/<datatype>.png/<ask_length>', methods=['GET', 'POST'])
def data(datatype, ask_length):
time = []
wertone = []
werttwo = []
rowone = 1
rowtwo = 3
my_dpi=96
ask_length = int(ask_length)
conn = psycopg2.connect( port = "5432")
print ("Opened database " + datatype + " successfully")
cur = conn.cursor()
cur.execute("SELECT TIMESTAMP, LUFTFEUCHTIGKEITDRIN, TEMPERATURDRIN, LUFTFEUCHTIGKEITAUSEN, TEMPERATURAUSEN, ERDFEUCHTIGKEIT, LUX FROM messdaten ORDER BY timestamp DESC LIMIT '{0}'".format(ask_length))
rows = cur.fetchall()
plot = PLOTS[datatype]
for row in rows:
time.append(row[0])
wertone.append(row[plot['rowone']])
if datatype == 'luftfeuchtigkeit' or datatype == 'temperatur':
werttwo.append(row[plot['rowtwo']])
fig, ax = plt.subplots(figsize=(600/my_dpi, 400/my_dpi), dpi=my_dpi)
ax.plot(time, wertone, label=plot['label1'])
if datatype == 'luftfeuchtigkeit' or datatype == 'temperatur':
ax.plot(time, werttwo, label=plot['label2'])
ax.grid(True)
fig.legend()
ax.set_ylabel(plot['ylabel'])
fig.autofmt_xdate()
buffer = io.BytesIO()
plt.savefig(buffer, format = 'png')
plot_data = buffer.getvalue()
response = make_response(plot_data)
response.headers['Content-type'] = 'image/png'
return response
@app.route('/', methods=['GET', 'POST'])
@app.route('/index', methods=['GET', 'POST'])
def index():
start_date = "2018-01-01"
start_time = "01:01"
start = start_date + "_" + start_time
end_date = "2019-01-01"
end_time = "01:01"
end = end_date + "_" + end_time
data_one = ""
srcluft = '/image/'
srctemp = '/image/'
srcerde = '/image/'
srclux = '/image/'
srcluftask = '/image/'
srctempask = '/image/'
srcerdeask = '/image/'
srcluxask = '/image/'
last = ""
ask_length = ""
if request.method == 'GET':
ask_length = "24"
datatype = 'luftfeuchtigkeit'
srcluftask = '/image/' + datatype + '.png/' + ask_length
data(datatype, ask_length)
datatype = 'temperatur'
srctempask = '/image/' + datatype + '.png/' + ask_length
data(datatype, ask_length)
datatype = 'erdfeuchtigkeit'
srcerdeask = '/image/' + datatype + '.png/' + ask_length
data(datatype, ask_length)
datatype = 'lux'
srcluxask = '/image/' + datatype + '.png/' + ask_length
data(datatype, ask_length)
elif request.method == 'POST':
if 'rr' in request.form:
last = request.form['rr']
if last == 'tag':
ask_length = "24"
datatype = 'luftfeuchtigkeit'
srcluftask = '/image/' + datatype + '.png/' + ask_length
data(datatype, ask_length)
datatype = 'temperatur'
srctempask = '/image/' + datatype + '.png/' + ask_length
data(datatype, ask_length)
datatype = 'erdfeuchtigkeit'
srcerdeask = '/image/' + datatype + '.png/' + ask_length
data(datatype, ask_length)
datatype = 'lux'
srcluxask = '/image/' + datatype + '.png/' + ask_length
data(datatype, ask_length)
elif last == 'woche':
ask_length = "168"
datatype = 'luftfeuchtigkeit'
srcluftask = '/image/' + datatype + '.png/' + ask_length
data(datatype, ask_length)
datatype = 'temperatur'
srctempask = '/image/' + datatype + '.png/' + ask_length
data(datatype, ask_length)
datatype = 'erdfeuchtigkeit'
srcerdeask = '/image/' + datatype + '.png/' + ask_length
data(datatype, ask_length)
datatype = 'lux'
srcluxask = '/image/' + datatype + '.png/' + ask_length
else:
ask_length = "720"
datatype = 'luftfeuchtigkeit'
srcluftask = '/image/' + datatype + '.png/' + ask_length
data(datatype, ask_length)
datatype = 'temperatur'
srctempask = '/image/' + datatype + '.png/' + ask_length
data(datatype, ask_length)
datatype = 'erdfeuchtigkeit'
srcerdeask = '/image/' + datatype + '.png/' + ask_length
data(datatype, ask_length)
datatype = 'lux'
srcluxask = '/image/' + datatype + '.png/' + ask_length
elif 'date' in request.form:
print ('date')
start_date = request.form['start_date']
start_time = request.form['start_time']
start = start_date + "_" + start_time
end_date = request.form['end_date']
end_time = request.form['end_time']
end = end_date + "_" + end_time
data_one = 2
datatype = 'luftfeuchtigkeit'
srcluft = '/image/' + datatype + '.png/' + start + '/' + end
datatime(datatype, start, end)
datatype = 'temperatur'
srctemp = '/image/' + datatype + '.png/' + start + '/' + end
datatime(datatype, start, end)
datatype = 'erdfeuchtigkeit'
srcerde = '/image/' + datatype + '.png/' + start + '/' + end
datatime(datatype, start, end)
datatype = 'lux'
srclux = '/image/' + datatype + '.png/' + start + '/' + end
datatime(datatype, start, end)
#letzter tag
ask_length = "24"
datatype = 'luftfeuchtigkeit'
srcluftask = '/image/' + datatype + '.png/' + ask_length
data(datatype, ask_length)
datatype = 'temperatur'
srctempask = '/image/' + datatype + '.png/' + ask_length
data(datatype, ask_length)
datatype = 'erdfeuchtigkeit'
srcerdeask = '/image/' + datatype + '.png/' + ask_length
data(datatype, ask_length)
datatype = 'lux'
srcluxask = '/image/' + datatype + '.png/' + ask_length
data(datatype, ask_length)
conn = psycopg2.connect(port = "5432")
print ("Opened database successfully")
cur = conn.cursor()
cur.execute("SELECT timestamp, luftfeuchtigkeitdrin, temperaturdrin, luftfeuchtigkeitausen, temperaturausen, erdfeuchtigkeit, lux FROM messdaten ORDER BY timestamp DESC LIMIT 1")
row = cur.fetchall()
row = str(row)
row = row.replace("(", "")
row = row.replace(")", "")
row = row.replace("[", "")
row = row.replace("]", "")
row = row.replace("'", "")
timestamp, luftfeuchtigkeitdrin, temperaturdrin, luftfeuchtigkeitausen, temperaturausen, erdfeuchtigkeit, lux = row.split(", ")
return render_template('index.html', data_one=data_one, srcluftask=srcluftask, srctempask=srctempask, srcerdeask=srcerdeask, srcluxask=srcluxask, srcluft=srcluft, srctemp=srctemp, srcerde=srcerde, srclux=srclux, timestamp=timestamp, luftfeuchtigkeitdrin=luftfeuchtigkeitdrin, temperaturdrin=temperaturdrin, luftfeuchtigkeitausen=luftfeuchtigkeitausen, temperaturausen=temperaturausen, erdfeuchtigkeit=erdfeuchtigkeit, lux=lux)
if __name__ == '__main__': app.run(debug=True)