Rough out plotly plot.
This commit is contained in:
71
pi_temp.py
71
pi_temp.py
@ -48,7 +48,8 @@ from flask import Flask, request, render_template
|
|||||||
import time
|
import time
|
||||||
import datetime
|
import datetime
|
||||||
import arrow
|
import arrow
|
||||||
import plotly.plotly as py
|
import json
|
||||||
|
import plotly
|
||||||
from plotly.graph_objs import *
|
from plotly.graph_objs import *
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
@ -81,6 +82,63 @@ def history():
|
|||||||
time_adjusted_humidities.append([local_timedate.format('YYYY-MM-DD HH:mm'), round(record[2],2)])
|
time_adjusted_humidities.append([local_timedate.format('YYYY-MM-DD HH:mm'), round(record[2],2)])
|
||||||
|
|
||||||
print "rendering history.html with: %s, %s, %s" % (timezone, from_date_str, to_date_str)
|
print "rendering history.html with: %s, %s, %s" % (timezone, from_date_str, to_date_str)
|
||||||
|
|
||||||
|
# Create new record tables so that datetimes are adjusted back to the user browser's time zone.
|
||||||
|
time_series_adjusted_tempreratures = []
|
||||||
|
time_series_adjusted_humidities = []
|
||||||
|
time_series_temprerature_values = []
|
||||||
|
time_series_humidity_values = []
|
||||||
|
|
||||||
|
for record in temperatures:
|
||||||
|
local_timedate = arrow.get(record[0], "YYYY-MM-DD HH:mm").to(timezone)
|
||||||
|
time_series_adjusted_tempreratures.append(local_timedate.format('YYYY-MM-DD HH:mm'))
|
||||||
|
time_series_temprerature_values.append(round(record[2],2))
|
||||||
|
|
||||||
|
for record in humidities:
|
||||||
|
local_timedate = arrow.get(record[0], "YYYY-MM-DD HH:mm").to(timezone)
|
||||||
|
time_series_adjusted_humidities.append(local_timedate.format('YYYY-MM-DD HH:mm')) #Best to pass datetime in text
|
||||||
|
#so that Plotly respects it
|
||||||
|
time_series_humidity_values.append(round(record[2],2))
|
||||||
|
|
||||||
|
|
||||||
|
temp = Scatter(
|
||||||
|
x=time_series_adjusted_tempreratures,
|
||||||
|
y=time_series_temprerature_values,
|
||||||
|
name='Temperature'
|
||||||
|
)
|
||||||
|
hum = Scatter(
|
||||||
|
x=time_series_adjusted_humidities,
|
||||||
|
y=time_series_humidity_values,
|
||||||
|
name='Humidity',
|
||||||
|
yaxis='y2'
|
||||||
|
)
|
||||||
|
|
||||||
|
data = Data([temp, hum])
|
||||||
|
|
||||||
|
layout = Layout(
|
||||||
|
title="Temperature and Humidity in Clayton's Apartment",
|
||||||
|
xaxis=XAxis(
|
||||||
|
type='date',
|
||||||
|
autorange=True
|
||||||
|
),
|
||||||
|
yaxis=YAxis(
|
||||||
|
title='Fahrenheit',
|
||||||
|
type='linear',
|
||||||
|
autorange=True
|
||||||
|
),
|
||||||
|
yaxis2=YAxis(
|
||||||
|
title='Percent',
|
||||||
|
type='linear',
|
||||||
|
autorange=True,
|
||||||
|
overlaying='y',
|
||||||
|
side='right'
|
||||||
|
)
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
fig = Figure(data=data, layout=layout)
|
||||||
|
#plot_url = py.plot(fig, filename='lab_temp_hum')
|
||||||
|
graphJSON = json.dumps(fig, cls=plotly.utils.PlotlyJSONEncoder)
|
||||||
|
|
||||||
return render_template("history.html", timezone = timezone,
|
return render_template("history.html", timezone = timezone,
|
||||||
temp = time_adjusted_temperatures,
|
temp = time_adjusted_temperatures,
|
||||||
@ -90,7 +148,8 @@ def history():
|
|||||||
temp_items = len(temperatures),
|
temp_items = len(temperatures),
|
||||||
query_string = request.query_string, #This query string is used
|
query_string = request.query_string, #This query string is used
|
||||||
#by the Plotly link
|
#by the Plotly link
|
||||||
hum_items = len(humidities))
|
hum_items = len(humidities),
|
||||||
|
graphJSON=graphJSON)
|
||||||
|
|
||||||
def get_records():
|
def get_records():
|
||||||
import sqlite3
|
import sqlite3
|
||||||
@ -198,10 +257,12 @@ def to_plotly():
|
|||||||
)
|
)
|
||||||
|
|
||||||
)
|
)
|
||||||
fig = Figure(data=data, layout=layout)
|
|
||||||
plot_url = py.plot(fig, filename='lab_temp_hum')
|
|
||||||
|
|
||||||
return plot_url
|
fig = Figure(data=data, layout=layout)
|
||||||
|
#plot_url = py.plot(fig, filename='lab_temp_hum')
|
||||||
|
graphJSON = json.dumps(fig, cls=plotly.utils.PlotlyJSONEncoder)
|
||||||
|
|
||||||
|
return graphJSON
|
||||||
|
|
||||||
def validate_date(d):
|
def validate_date(d):
|
||||||
try:
|
try:
|
||||||
|
2
static/javascript/d3.min.js
vendored
Normal file
2
static/javascript/d3.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/javascript/jquery-3.2.1.min.js
vendored
Normal file
4
static/javascript/jquery-3.2.1.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
186991
static/javascript/plotly.js
Normal file
186991
static/javascript/plotly.js
Normal file
File diff suppressed because one or more lines are too long
@ -240,5 +240,22 @@
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<div id='plotly-plot'></div>
|
||||||
|
<footer>
|
||||||
|
<!-- D3.js https://github.com/d3/d3/releases-->
|
||||||
|
<script src="static/javascript/d3.min.js"></script>
|
||||||
|
<!-- jQuery https://jquery.com/download/ -->
|
||||||
|
<script src="static/javascript/jquery-3.2.1.min.js"></script>
|
||||||
|
<!-- Plotly.js https://github.com/plotly/plotly.js/releases/ -->
|
||||||
|
<script src="static/javascript/plotly.js"></script>
|
||||||
|
|
||||||
|
<!--Plot Scaled-D on results.html-->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var graph = {{graphJSON | safe}};
|
||||||
|
Plotly.plot('plotly-plot', graph.data, graph.layout);
|
||||||
|
</script>
|
||||||
|
</footer>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
Reference in New Issue
Block a user