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 plotly.express as px
import json import json
import streamlit as st import streamlit as st
from datetime import (datetime,
timedelta)
from pathlib import Path from pathlib import Path
@ -14,9 +18,23 @@ with open(data_dir / 'huawei_health_data.json') as f:
data = json.load(f) data = json.load(f)
heart_rate = [] heart_rate = []
for i in range(len(data)): for d in data:
if data[i]['type'] == 7: if d['type'] == 7:
heart_rate.append(float(data[i]['samplePoints'][0]['value'])) 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:') st.sidebar.header('Split Data:')
average_number = st.sidebar.number_input( average_number = st.sidebar.number_input(
@ -28,12 +46,24 @@ average_number = st.sidebar.number_input(
if average_number > 1: if average_number > 1:
heart_rate2 = [] heart_rate2 = []
rates = list(y)
for i in range(0, len(heart_rate), average_number): for i in range(0, len(rates), average_number):
t = heart_rate[i:i + average_number] t = rates[i:i + average_number]
heart_rate2.append(sum(t) / len(t)) heart_rate2.append(sum(t) / len(t))
heart_rate = heart_rate2 x = range(len(heart_rate2))
y = heart_rate2
st.plotly_chart( 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']
)
)
) )