From 413a147d5a08022e12ad54421521246e1528149f Mon Sep 17 00:00:00 2001 From: Shinnosuke Kondo Date: Sun, 3 Aug 2025 14:52:20 +0900 Subject: [PATCH 1/2] No PCA to see clustering --- plot_data.py | 48 ++++++++++++++++++++++++++++++++++++++++++++++ raw_data_plot.png | Bin 0 -> 37887 bytes 2 files changed, 48 insertions(+) create mode 100644 plot_data.py create mode 100644 raw_data_plot.png diff --git a/plot_data.py b/plot_data.py new file mode 100644 index 0000000..086c502 --- /dev/null +++ b/plot_data.py @@ -0,0 +1,48 @@ + +import pickle +import numpy as np +import matplotlib.pyplot as plt + +def plot_data_from_pickle(pickle_file='data.pickle', output_image='raw_data_plot.png'): + """ + Loads data from a pickle file, and plots the mean of the first two channels against each other. + + Args: + pickle_file (str): Path to the input pickle file. + output_image (str): Path to save the output PNG image. + """ + with open(pickle_file, 'rb') as f: + data = pickle.load(f) + + # Remove the specified data point if it exists + if "20250614_180011_test" in data: + del data["20250614_180011_test"] + + # Extract the means of the first two channels and labels + labels = list(data.keys()) + channel0_means = [] + channel1_means = [] + for key in labels: + # data[key] is a dict {0: [...], 1: [...], 2: [...]} + channel0_means.append(np.mean(data[key][0])) + channel1_means.append(np.mean(data[key][1])) + + # Create a scatter plot + plt.figure(figsize=(10, 8)) + plt.scatter(channel0_means, channel1_means) + + # Add labels to the points + for i, label in enumerate(labels): + plt.annotate(label, (channel0_means[i], channel1_means[i])) + + plt.xlabel('Mean of Channel 0') + plt.ylabel('Mean of Channel 1') + plt.title('Sensor Data (Mean of First Two Channels)') + plt.grid(True) + + # Save the plot + plt.savefig(output_image) + print(f"Plot saved to {output_image}") + +if __name__ == '__main__': + plot_data_from_pickle() diff --git a/raw_data_plot.png b/raw_data_plot.png new file mode 100644 index 0000000000000000000000000000000000000000..4002532f4321a80f6a76bdb213bb639149ef1ec3 GIT binary patch literal 37887 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 GzyAS1@Rw%* literal 0 HcmV?d00001 From 30fab45afa9eeb09d43fad4ab476f8c79c17352f Mon Sep 17 00:00:00 2001 From: Shinnosuke Kondo <2386004+shinnkondo@users.noreply.github.com> Date: Sun, 3 Aug 2025 16:42:58 +0900 Subject: [PATCH 2/2] Update README.md --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 16e59a5..7851c40 100644 --- a/README.md +++ b/README.md @@ -1 +1,12 @@ The plan for the open house event is to host a Jupyter Notebooks server on the Raspberry Pi, which can read data from the attached sensors and perform simple data processing and analysis on previously accumulated data. + +## Protocol +* Pour the liquid to a cup (drinkable portion, like 150ml to 300ml) +* Put sensors into a cup. +* Wait for 1 min +* read values (see the code for duration/frequency) +* For non-water liquid, wash sensors with tap water (and then sm water) +* Wipe liquid from conductivity sensor (but keep PH sensor wet) +* Repeat the process for other liquids + +