Added time to x-axis for heart rate

This commit is contained in:
ayxan 2022-11-19 02:36:16 +04:00
parent 3288a3674e
commit 92d5b83a24

View File

@ -1,6 +1,10 @@
# sourcery skip: list-comprehension
import pandas as pd
import plotly.express as px
import json
import streamlit as st
from datetime import (datetime,
timedelta)
from pathlib import Path
@ -14,9 +18,23 @@ with open(data_dir / 'huawei_health_data.json') as f:
data = json.load(f)
heart_rate = []
for i in range(len(data)):
if data[i]['type'] == 7:
heart_rate.append(float(data[i]['samplePoints'][0]['value']))
for d in data:
if d['type'] == 7:
heart_rate.append(
{
'rate': float(d['samplePoints'][0]['value']),
'time': (datetime.fromtimestamp(
int(str(d['samplePoints'][0]['endTime'])[:10])
) + timedelta(
hours = int(data[0]['timeZone'][1:].replace('0', ''))
)
).strftime("%d-%m-%Y %X")
}
)
heart_rate = pd.DataFrame(heart_rate)
x = heart_rate['time']
y = heart_rate['rate']
st.sidebar.header('Split Data:')
average_number = st.sidebar.number_input(
@ -28,12 +46,24 @@ average_number = st.sidebar.number_input(
if average_number > 1:
heart_rate2 = []
rates = list(y)
for i in range(0, len(heart_rate), average_number):
t = heart_rate[i:i + average_number]
for i in range(0, len(rates), average_number):
t = rates[i:i + average_number]
heart_rate2.append(sum(t) / len(t))
heart_rate = heart_rate2
x = range(len(heart_rate2))
y = heart_rate2
st.plotly_chart(
px.line(x=range(len(heart_rate)), y=heart_rate)
px.line(
x = x, y = y
)
.update_layout(
xaxis = dict(
rangeslider = dict(
visible = True
),
type = "-" # ['-', 'linear', 'log', 'date', 'category', 'multicategory']
)
)
)