Data processing and plotting for 'Personal Flash' artworks.
https://www.nicolaellisandritherdon.com
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.9 KiB
60 lines
1.9 KiB
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 random_colour(): |
|
r = random.randint(0,255) |
|
g = random.randint(0,255) |
|
b = random.randint(0,255) |
|
rgb = [r,g,b] |
|
return rgb |
|
|
|
def generate_charts (meter_num) : |
|
if (meter_num == 1) : |
|
fig_title = f"Daily Readings for Light Meter 1 (Andy)" |
|
else : |
|
fig_title = f"Daily Readings for Light Meter 2 (Tony)" |
|
|
|
p = figure(title = fig_title, |
|
x_axis_label = "Reading Id. (not same as database)", |
|
y_axis_label = "Light Reading", |
|
sizing_mode = "stretch_both") |
|
p.axis.major_label_text_font_size = "12px" |
|
p.axis.major_label_standoff = 10 |
|
|
|
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] |
|
|
|
x_raw_vals = [] |
|
y_raw_vals = [] |
|
counter = 0 |
|
for row in file_data : |
|
x_raw_vals.append(counter) |
|
counter += 1 |
|
y_raw_vals.append(row[1]) |
|
|
|
x_vals = x_raw_vals # np.asarray(x_raw_vals).astype(int) |
|
y_vals = np.asarray(y_raw_vals).astype(int) |
|
|
|
p.line(x = x_vals, |
|
y = y_vals, |
|
line_width = 2, |
|
line_color = random_colour()) |
|
|
|
output_file(f"output/lm{meter_num}-dailies-overlayed.html", |
|
title=f"Light Meter {meter_num} Daily Overlayed") |
|
save(p) |
|
|
|
print("Generating charts for Light Meter 1...") |
|
generate_charts(1) |
|
print("Generating charts for Light Meter 2...") |
|
generate_charts(2)
|
|
|