PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Friday, October 7, 2022

[FIXED] How to create a plot that summarizes multiple daily profiles?

 October 07, 2022     pandas, python, statistics     No comments   

Issue

I am a type 1 diabetic and wear a continuous glucose monitor that measures my blood glucose levels every 5 minutes. The company that makes the CGM generates a report with a graph that looks like the figure at the bottom of this post. My goal is to learn how to recreate this graph for myself in a Jupyter notebook.

The data that I have, for example, looks like this:

Timestamp Glucose Value (mg/dL)
2021-07-11 00:11:25 116.0
2021-07-11 00:16:25 118.0
2021-07-11 00:21:25 121.0
2021-07-11 00:26:24 123.0
2021-07-11 00:31:25 124.0

The graph is using data from a 30 day period and summarizing the distribution of values at each point in time. Is there a name for this type of graph, and how can I create it myself using Pandas/matplotlib/seaborn?

So far, I have tried creating a graph with the IQR split by day which is rather easy - using ploty:

glucose['Day'] = glucose['Timestamp'].dt.day_name()

fig = px.box(glucose, x="Day", y="Glucose Value (mg/dL)",
         points="all", color='Day')
fig.show()

But now I am unsure how to easily calculate the IQR for specific time periods and average them.

Thank you so much for your help!

enter image description here


Solution

Answering my own question with help from the links that Joe provided in the comments:

I was able to group the dataframe by hour, then use .quantile to generate a new dataframe with rows as hours and columns as 10%, 25%, 50%, 75%, and 90%. From there it was a matter of simple formatting with matplotlib to copy the original one.

grouped = df.groupby([df['Timestamp'].dt.hour])
i = grouped['bgl'].quantile([.1, .25, .5, .75, .9]).unstack()

Thanks a lot Joe! ambulatory-glucose-profile



Answered By - walker967
Answer Checked By - Robin (PHPFixing Admin)
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © PHPFixing