Browse Source
The script now processes all the daily files for both Light Meters. Each day, for each Light Meter, has their own chart (HTML) made as the output of the script.master
Craig Oates
1 year ago
2 changed files with 55 additions and 40 deletions
@ -0,0 +1,55 @@
|
||||
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 |
||||
import glob |
||||
import os |
||||
|
||||
def generate_charts (meter_num) : |
||||
files = glob.glob(f"data/light-meter-{meter_num}/*.csv") |
||||
for file_path in files : |
||||
single_file = pd.read_csv (file_path, sep="," ,header=None, |
||||
index_col=False, dtype='unicode') |
||||
file_data = single_file.values[1:] |
||||
file_name = os.path.splitext(os.path.basename(file_path))[0] |
||||
|
||||
if (meter_num == 1) : |
||||
fig_title = f"Readings for Light Meter 1 (Andy) on {file_name}" |
||||
else : |
||||
fig_title = f"Readings for Light Meter 2 (Tony) on {file_name}" |
||||
|
||||
p = figure(title = fig_title, |
||||
x_axis_label = "Date", |
||||
y_axis_label = "Light Reading", |
||||
x_axis_type = 'datetime', |
||||
sizing_mode = "stretch_both") |
||||
p.axis.major_label_text_font_size = "12px" |
||||
p.axis.major_label_standoff = 10 |
||||
# p.yaxis.fixed_location = 0 |
||||
|
||||
x_raw_vals = [] |
||||
y_raw_vals = [] |
||||
for row in file_data : |
||||
x_raw_vals.append(row[0]) |
||||
y_raw_vals.append(row[1]) |
||||
|
||||
x_vals = pd.to_datetime(x_raw_vals) |
||||
y_vals = np.asarray(y_raw_vals).astype(int) |
||||
|
||||
if (meter_num == 1) : |
||||
color = "blue" |
||||
else : |
||||
color = "orange" |
||||
|
||||
p.line(x = x_vals, y = y_vals, line_width = 2, line_color = color) |
||||
|
||||
output_file(f"output/lm{meter_num}-{file_name}.html", |
||||
title=f"Light Meter 1: {file_name}") |
||||
save(p) |
||||
|
||||
print("Generating charts for Light Meter 1...") |
||||
generate_charts(1) |
||||
print("Generating charts for Light Meter 2...") |
||||
generate_charts(2) |
@ -1,40 +0,0 @@
|
||||
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 |
||||
|
||||
def random_colour(): |
||||
r = random.randint(0,255) |
||||
g = random.randint(0,255) |
||||
b = random.randint(0,255) |
||||
rgb = [r,g,b] |
||||
return rgb |
||||
|
||||
file_path = "data/light-meter-1/2021-06-17.csv" |
||||
single_file = pd.read_csv (file_path, sep="," ,header=None, |
||||
index_col=False, dtype='unicode') |
||||
file_data = single_file.values[1:] |
||||
# print(file_data) |
||||
|
||||
p = figure(title="Readings for Light Meter 1 (Andy) on INSERT DATE HERE", |
||||
x_axis_label="Date", |
||||
y_axis_label="Reading", |
||||
x_axis_type='datetime', |
||||
sizing_mode="stretch_both") |
||||
p.axis.major_label_text_font_size = "12px" |
||||
p.axis.major_label_standoff = 10 |
||||
|
||||
x_raw_vals = [] |
||||
y_vals = [] |
||||
for row in file_data : |
||||
x_raw_vals.append(row[0]) |
||||
y_vals.append(row[1]) |
||||
|
||||
x_vals = pd.to_datetime(x_raw_vals) |
||||
p.line(x = x_vals, y = y_vals, line_width = 2) |
||||
|
||||
output_file("output/lm1-INSERT-DATE-HERE.html", |
||||
title="Light Meter 1: INSERT DATE HERE") |
||||
save(p) |
Loading…
Reference in new issue