|
|
|
from bokeh.plotting import figure, output_file, save, show
|
|
|
|
from bokeh.models import Legend, ColumnDataSource
|
|
|
|
import bokeh.palettes
|
|
|
|
import pandas as pd
|
|
|
|
import numpy as np
|
|
|
|
import random
|
|
|
|
|
|
|
|
# Hour Slots, hardcoded to reduce duplicated processing of data.
|
|
|
|
x_vals = ["00", "01", "02", "03", "04", "05",
|
|
|
|
"06", "07", "08", "09", "10", "11",
|
|
|
|
"12", "13", "14", "15", "16", "17",
|
|
|
|
"18", "19", "20", "21", "22", "23",
|
|
|
|
"24"]
|
|
|
|
dates = []
|
|
|
|
y_vals = []
|
|
|
|
file_data = []
|
|
|
|
for month in range(6, 8, 1) :
|
|
|
|
for day in range(1, 31, 1) :
|
|
|
|
if (day < 10) :
|
|
|
|
d = f"0{day}"
|
|
|
|
else :
|
|
|
|
d = day
|
|
|
|
if day < 13 and month == 6 :
|
|
|
|
print(f"Skipping: data/light-meter-1-hourly-totals/2021-0{month}/2021-0{month}-{d}.csv")
|
|
|
|
else :
|
|
|
|
file_path = f"data/light-meter-1-hourly-totals/2021-0{month}/2021-0{month}-{d}.csv"
|
|
|
|
single_file = pd.read_csv (file_path, sep="," ,header=None,
|
|
|
|
index_col=False, dtype='unicode')
|
|
|
|
dates.append(f"2021-0{month}-{d}")
|
|
|
|
file_data.append(single_file.values[1:])
|
|
|
|
|
|
|
|
p = figure(title="Total Hourly Reading for Light Meter 1 (Andy)",
|
|
|
|
x_axis_label="Hour",
|
|
|
|
y_axis_label="Total Readings",
|
|
|
|
sizing_mode="stretch_both")
|
|
|
|
p.axis.major_label_text_font_size = "12px"
|
|
|
|
p.axis.major_label_standoff = 10
|
|
|
|
|
|
|
|
def random_colour():
|
|
|
|
r = random.randint(0,255)
|
|
|
|
g = random.randint(0,255)
|
|
|
|
b = random.randint(0,255)
|
|
|
|
rgb = [r,g,b]
|
|
|
|
return rgb
|
|
|
|
|
|
|
|
for day in dates :
|
|
|
|
for row in file_data :
|
|
|
|
y_vals = []
|
|
|
|
for data in row :
|
|
|
|
reading = data[1]
|
|
|
|
y_vals.append(reading)
|
|
|
|
p.line(x = np.asarray(x_vals).astype(str),
|
|
|
|
y = np.asarray(y_vals).astype(int),
|
|
|
|
# legend_label=f"{day}",
|
|
|
|
line_color=random_colour())
|
|
|
|
|
|
|
|
output_file("output/lm1-hourly-totals.html",
|
|
|
|
title="Total Hourly Reading for Light Meter 1")
|
|
|
|
save(p)
|