mash-server/bettwaage-plotter/data_analysis.ipynb

119 lines
33 KiB
Text
Raw Permalink Normal View History

2024-05-17 09:48:14 +02:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"import json\n",
"\n",
"with open(\"latest_history.json\", \"r\") as fp:\n",
" data = json.load(fp)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [],
"source": [
"data = data[int(-60 * 60 * 14.5):int(-60 * 60 * 13)]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Total bed weight: 78.98908\n"
]
}
],
"source": [
"# Get rough value for empty bed weight per leg\n",
"rough_bed_weight = 80\n",
"bed_only_weight = {}\n",
"for d in data:\n",
" if d[\"total\"] < rough_bed_weight:\n",
" bed_only_weight = {\n",
" \"tl\": d[\"tl\"],\n",
" \"tr\": d[\"tr\"],\n",
" \"bl\": d[\"bl\"],\n",
" \"br\": d[\"br\"],\n",
" }\n",
" total_bed_only_weight = sum(bed_only_weight.values())\n",
" break\n",
"\n",
"print(f\"Total bed weight: {total_bed_only_weight}\")"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"y = [d[\"total\"] - total_bed_only_weight for d in data]\n",
"y = [(i if i > 10 else None) for i in y]\n",
"\n",
"x = [i for i in range(len(y))]"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"fig, ax = plt.subplots()\n",
"\n",
"ax.set_xlabel(\"Time (s)\")\n",
"ax.set_ylabel(\"Weight (kg)\")\n",
"\n",
"ax.plot(x, y, color=\"tab:blue\")\n",
"\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.12"
}
},
"nbformat": 4,
"nbformat_minor": 2
}