A Year of Data
Xmas is a pretty dead time for me, so i finally got round to programming something to export the data from the sql db and then more importantly graph it.
I have struggled for ages trying to use matplotlib and was close to giving up then i stumbled across bokeh and magic happened, a gift at xmas time :smile: in short a few simple lines of code and i now have a scalable graph of data that works on this site as well as the dashboard monitor. Below is an image of the output;
The code used to produce the above is very simple even an idiot like me can get it to work :open_mouth: ;
python code snippet start
from bokeh.plotting import figure, output_file, show, save
from bokeh.models import DatetimeTickFormatter, BoxAnnotation
from bokeh.embed import json_item
# output to static HTML file
output_file("lines.html")
# create a new plot with a title and axis labels
p = figure(title='A year of data - 2019', x_axis_label='Time',x_axis_type='datetime', y_axis_label='DegC',toolbar_location="above")
p.xaxis.formatter=DatetimeTickFormatter(
hours="%H",
minutes="%M",
seconds="%S")
low_box = BoxAnnotation(top=15, fill_alpha=0.2, fill_color='blue')
mid_box = BoxAnnotation(bottom=15, top=25, fill_alpha=0.2, fill_color='green')
high_box = BoxAnnotation(bottom=25, fill_alpha=0.2, fill_color='red')
p.add_layout(low_box)
p.add_layout(mid_box)
p.add_layout(high_box)
# add a line renderer with legend and line thickness
p.line(x, data_ext, legend_label='External', line_color="blue", line_width=1)
p.line(x, data_fr, legend_label='Frontroom', line_color="red", line_width=1)
p.line(x, data_bd, legend_label='Bedroom', line_color="green", line_width=1)
# plot columns
# p = figure(plot_width=800, plot_height=400)
# p.vbar(x, width=0.5, bottom=0,
# top=data_ext, color="firebrick")
show(p)
# save(p)
python code snippet end