98 changes: 55 additions & 43 deletions src/Resources/xml/home-perspectives.xml
Original file line number Diff line number Diff line change
Expand Up @@ -392,7 +392,7 @@
<property name="lastN" type="int" value="7" />
<property name="lastNX" type="int" value="0" />
<property name="prevN" type="int" value="0" />
<property name="settings" type="LTMSettings" value="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" />
<property name="settings" type="LTMSettings" value="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" />
<property name="useSelected" type="int" value="4" />
</chart>
<chart id="7" name="" title="VO2 Scores" >
Expand All @@ -418,7 +418,7 @@
<property name="lastN" type="int" value="7" />
<property name="lastNX" type="int" value="0" />
<property name="prevN" type="int" value="0" />
<property name="settings" type="LTMSettings" value="/////wAAABwATABhAHMAdAAgADEAMgAgAG0AbwBuAHQAaABzACWHLgAAAAD/ACWImgAAAAD/AAAAAQAB////////////////AAAAFQAAAAQAAAAJAAAAABAASAByAHYAXwAtAF8ASABSAAAADgBSAGUAcwB0ACAASABSAAAAEABIAHIAdgAgAC0AIABIAFIAAAAGAGIAcABtAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG4AAABb//////////8B//88PLS0tLQAAAAAAAA/8AAAAAAAAAAAAAAB//8AAAAAAAAAAAAAAAAAAAAD5wAADhD/////AAAACgAAAAEAAAAAAQAAAAYAYwBwADIAAAAAAAAAAAAADhAAAAAAAAAAAAAGAGIAcABtAAABBAAjACAAdAB5AHAAZQAgAGkAbgAgAGEAIABmAG8AcgBtAHUAbABhACAAdABvACAAdQBzAGUACgAjACAAZgBvAHIAIABlAC4AZwAuACAAQgBpAGsAZQBTAHQAcgBlAHMAcwAgAC8AIABEAHUAcgBhAHQAaQBvAG4ACgAjACAAYQBzACAAeQBvAHUAIAB0AHkAcABlACAAdABoAGUAIABhAHYAYQBpAGwAYQBiAGwAZQAgAG0AZQB0AHIAaQBjAHMACgAjACAAdwBpAGwAbAAgAGIAZQAgAG8AZgBmAGUAcgBlAGQAIABiAHkAIABhAHUAdABvAGMAbwBtAHAAbABlAHQAZQAKAAAAAQAAAA4AcwBlAGEAcgBjAGgAOgAAAAEAAAABAQEAAAAAFgBwAG8AdwBlAHIAXwBpAG4AZABlAHgAAAAIAAAAACoAMgAwAG0AXwBjAHIAaQB0AGkAYwBhAGwAXwBwAG8AdwBlAHIAXwBoAHIAAAAoADIAMAAgAG0AaQBuACAAUABlAGEAawAgAFAAbwB3AGUAcgAgAEgAUgAAADYAVgBPADIAIABTAGMAbwByAGUAIABCAGkAawBlACAAKABBAHYAZwAuACAAUABvAHcAZQByACkAAAAWAG0AbABPADIALwBtAGkAbgAvAGsAZwAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAd/////8AAAABAf//AQEBAScnAAAAAAAAP/AAAAAAAAAAAAAAAf//AAAAAAAAAAAAAAAAAAAAA+cAAA4Q/////wAAAAoAAAABAAAAAAAAAAAGAGMAcAAyAAAAAAAAAAAAAA4QAAEAAAAAAAAABgBiAHAAbQAAAN4AIwAgAFYATwAyACAAUwBjAG8AcgBlACAAQgBpAGsAZQAKAEkAcwBvAFAAbwB3AGUAcgAvADcANQAqADEAMAAwADAALwBBAHQAaABsAGUAdABlAF8AVwBlAGkAZwBoAHQALwAoACgAQQB2AGUAcgBhAGcAZQBfAEgAZQBhAHIAdABfAFIAYQB0AGUALQBjAG8AbgBmAGkAZwAoAHIAaAByACkAKQAvACgAYwBvAG4AZgBpAGcAKABtAGEAeABoAHIAKQAtAGMAbwBuAGYAaQBnACgAcgBoAHIAKQApACkAAAACAAAAkABmAGkAbAB0AGUAcgA6AGkAcwBSAGkAZABlACAAJgAmACAARABhAHQAYQAgAGMAbwBuAHQAYQBpAG4AcwAgACIASAAiACAAJgAmACAARABhAHQAYQAgAGMAbwBuAHQAYQBpAG4AcwAgACIAUAAiACAAJgAmACAARAB1AHIAYQB0AGkAbwBuAD4AMQA4ADAAMAAAAAAAAAAAAQEA/////wAAAAgA/////wAAAAAAAAAyAFYATwAyACAAUwBjAG8AcgBlACAAUgB1AG4AIAAoAEEAdgBnAC4AIABQAGEAYwBlACkAAAAWAG0AbABPADIALwBtAGkAbgAvAGsAZwAAAAAAAQAAAAAAAAAAAAAAAAEAAH9uAAB//s5/icAAAAAANJolwP////8AAAAAAf////9VVQAAAAAAAAAAP/AAAAAAAAAAAAAAAf//AAAAAAAAAAAAAAAAAAAAA+cAAA4Q/////wAAAAoAAAABAAAAAAAAAAAGAGMAcAAyAAAAAAAAAAAAAA4QAAEAAAAA/////wAAALYAIwAgAFYATwAyACAAUwBjAG8AcgBlACAAUgB1AG4ACgAoADIAMQAwAC8AeABQAGEAYwBlACkALwAoACgAQQB2AGUAcgBhAGcAZQBfAEgAZQBhAHIAdABfAFIAYQB0AGUALQBjAG8AbgBmAGkAZwAoAHIAaAByACkAKQAvACgAYwBvAG4AZgBpAGcAKABtAGEAeABoAHIAKQAtAGMAbwBuAGYAaQBnACgAcgBoAHIAKQApACkACgAAAAIAAAC+AGYAaQBsAHQAZQByADoAaQBzAFIAdQBuACAAJgAmACAAQQB2AGUAcgBhAGcAZQBfAEgAZQBhAHIAdABfAFIAYQB0AGUAPgAwACAAJgAmACAAQQB2AGUAcgBhAGcAZQBfAFMAcABlAGUAZAA+ADgAIAAmACYAIABEAGEAdABhACAAYwBvAG4AdABhAGkAbgBzACAAIgBHACIAIAAmACYAIABEAHUAcgBhAHQAaQBvAG4AIAA+ACAAMQAyADAAMAAAAAAAAAAAAQEA/////wAAAAgAAAAAHgBWAE8AMgBtAGEAeABfAGQAZQB0AGUAYwB0AGUAZAAAAB4AVgBPADIAbQBhAHgAIABkAGUAdABlAGMAdABlAGQAAAAeAFYATwAyAG0AYQB4ACAAKABHAGEAcgBtAGkAbgApAAAAFgBtAGwATwAyAC8AbQBpAG4ALwBrAGcAAAAAAAEAAAAAAAAAAAAAAAABAAB//wAAAAAAAAFrAAAAACBX4bD//////////wH//wEBAQFiYgAAAAAAAD/wAAAAAAAAAAAAAAH//wAAAAAAAAAAAAAAAAAAAAAAAAAOEP////8AAAAKAAAAAQAAAAAAAAAABgBjAHAAMgAAAAAAAAAAAAAOEAEBAAAAAAAAAAAAAAAeAFYATwAyAG0AYQB4AF8AZABlAHQAZQBjAHQAZQBkAAAAAgAAAA4AZgBpAGwAdABlAHIAOgAAAAAAAAAAAQEB/////wAAAAAAAw==" />
<property name="settings" type="LTMSettings" value="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" />
<property name="useSelected" type="int" value="4" />
</chart>
<chart id="33" name="" title="Run CV" >
Expand Down Expand Up @@ -466,44 +466,6 @@
<property name="ridePlotMode" type="int" value="0" />
<property name="useSelected" type="int" value="4" />
</chart>
<chart id="39" name="" title="Run Profile" >
<property name="title" type="QString" value="Run Profile" />
<property name="subtitle" type="QString" value="" />
<property name="widthFactor" type="double" value="2" />
<property name="heightFactor" type="double" value="2" />
<property name="style" type="int" value="0" />
<property name="resizable" type="bool" value="0" />
<property name="script" type="QString" value="## CHART SIZING\nGC.page(width=800, height=600)\n\n## PULL THE ACTIVITY METRICS FROM GC RECORDS\nmm &lt;- GC.season.meanmax(all=FALSE, filter=&quot;isRun&lt;&gt;0&quot;, compare=FALSE)\nathlete &lt;- GC.athlete()\nseasons &lt;- GC.season(compare=TRUE)\n\n## MANIPULATE THE DATA\n# mean maximal speed in m/s from 1s to 1h30&apos; (OJO con el ultimo ****)\nspeed &lt;- mm$speed[2:12000]/3.6\n# pace from speed in min/km\npace &lt;- (1000/60)/speed\n# distance from mean maximal speed\ndistance &lt;- round(speed*(1:length(pace))/1000,1)\n\ndistance.value &lt;- c(0, 0.4, 0.8, 1.5, 5, 10, 21.1, 42.2)\ndistance.name &lt;-c (&quot;&quot;, &quot;400m&quot;, &quot;800m&quot;, &quot;1500m&quot;, &quot;5k&quot;, &quot;10k&quot;, &quot;1/2 Mar&quot;, &quot;Marathon&quot;)\n\ndf.working &lt;- data.frame(distance, pace, speed)\ndf.working &lt;- subset(df.working, distance==distance.value)\ndf.working &lt;- aggregate(.~distance, df.working, mean)\nnames(df.working)[names(df.working)==&quot;distance&quot;] &lt;- &quot;distance.value&quot;\n\n## Account for Different Genders\nifelse (athlete$gender==&apos;male&apos;, index.TOP&lt;-c(NA, 9.26, 7.93, 7.28, 6.6, 6.34, 6.02, 5.72), index.TOP&lt;-c(NA, 8.4, 7.06, 6.52, 5.87, 5.4, 5.19))\nifelse (athlete$gender==&apos;male&apos;, index.BOT&lt;-c(NA, 3.27, 2.8, 2.57, 2.33, 2.24, 2.13, 2.02), index.BOT&lt;-c(NA, 2.97, 2.5, 2.3, 2.08, 1.91, 1.84))\n\n## Build the DataFrame\ndf.final &lt;- data.frame(distance.value, distance.name)\ndf.final &lt;- merge(df.final, df.working, all.x=TRUE)\nindex &lt;-((df.final$speed-index.BOT)/(index.TOP-index.BOT))*10\ndf.final &lt;- cbind(df.final, index)\n\n## Round the Numbers to make the frame more readable\ndf.final$pace &lt;- round(df.final$pace, 2)\ndf.final$speed &lt;- round(df.final$speed, 2)\ndf.final$index &lt;- round(df.final$index, 2)\n\n## Remove Wacky Values off the Scale\ndf.final$index &lt;- ifelse(df.final$index&lt;0, NA, df.final$index)\ndf.final$index &lt;- ifelse(df.final$index&gt;10, NA, df.final$index)\n\n## Athlete Phenotype\npheno.lbl &lt;- c(NA, &quot;1. T-MD&quot;, &quot;1. T-MD&quot;, &quot;2. T-LD&quot;, &quot;2. T-LD&quot;, &quot;2. T-LD&quot;, &quot;3. Mar&quot;, &quot;3. Mar&quot;)\ndf.pheno &lt;- data.frame(pheno.lbl, df.final$index)\ndf.pheno &lt;- aggregate(.~pheno.lbl, df.pheno, max, na.rm=TRUE, na.action=&quot;na.pass&quot;)\n# df.pheno[ is.na(df.pheno) ] &lt;- NA \n# df.pheno[which(!is.finite(df.pheno))] &lt;- NA\nis.na(df.pheno)&lt;-sapply(df.pheno, is.infinite)\ndf.pheno[is.na(df.pheno)]&lt;-NA\n\npheno.allrounderband = 1\npheno.best &lt;- which(df.pheno$frame.index==max(df.pheno$frame.index, na.rm=TRUE))\n\nif (sum(is.na(df.pheno$frame.index))&gt;0) {\n phenotype=&quot;Not Enough Datapoints&quot;\n} else if (max(df.pheno$frame.index, na.rm=TRUE)-min(df.pheno$frame.index, na.rm=TRUE)&lt;pheno.allrounderband) {\n phenotype=&quot;All-Rounder&quot;\n} else if (pheno.best==1) {\n phenotype&lt;-&quot;Track - Middle Distance&quot;\n} else if (pheno.best==2) {\n phenotype&lt;-&quot;Track - Long Distance&quot;\n} else\n phenotype&lt;-&quot;Marathoner&quot;\n\n## CHART INPUTS &amp; SETTINGS\nchart.lbl.yaxis&lt;-c(&quot;Untrained&quot;, &quot;Novice&quot;, &quot;Fair&quot;, &quot;Moderate&quot;, &quot;Good&quot;, &quot;Very Good&quot;, &quot;NCAA Div.3&quot;, &quot;NCAA Div.1&quot;, &quot;World Class&quot;)\nchart.lbl.sub = &quot;Run Distance&quot;\nchart.lbl.title = paste0(&quot;Runner Pace Profile &quot;, &quot; (&quot;, seasons$name, &quot;)&quot;)\nchart.in.textsize=1\nchart.in.chart.color1=&quot;Red&quot;\nchart.in.chart.color2=&quot;White&quot;\nchart.indices.posy&lt;-c(0, 0.87, 1.9, 3.08, 4.39, 5.74, 7.01, 7.98, 10)\n\n## Bar Value Labels\nchart.lbl.posx&lt;-c(0.8, 2, 3.2, 4.4, 5.6, 6.8, 8, 9.2)-0.15\nchart.lbl.posy&lt;-c(df.final$index-0.3)\nchart.in.textscale = 0.9\n\n## Make the M:SS Labels\nchart.lbl.val.minute &lt;- as.integer(df.final$pace)\nchart.lbl.val.second &lt;- round((df.final$pace-as.integer(df.final$pace))*60, 0)\nchart.lbl.val.second &lt;- sprintf(&quot;%02i&quot;, chart.lbl.val.second)\nchart.lbl.val.pace &lt;- paste0(chart.lbl.val.minute, &quot;:&quot;, chart.lbl.val.second, &quot;/km&quot;)\n\n## Total Event Time Labels\nchart.lbl.val.totaltime &lt;- (df.final$pace*df.final$distance.value)/1440\nchart.lbl.val.totaltime &lt;- format(as.POSIXct(Sys.Date() + chart.lbl.val.totaltime), &quot;%H:%M:%S&quot;, tz=&quot;UTC&quot;)\n\n## Summary Box Labels\nchart.summarybox.text &lt;- c(paste0(&quot;Athlete: &quot;, athlete$name), paste0(&quot;Gender: &quot;, athlete$gender), paste0(&quot;Weight: &quot;, athlete$weight, &quot;kg&quot;), paste0(&quot;Phenotype: &quot;, phenotype))\nchart.summarybox.posy &lt;- c(9.6, 9.2, 8.8, 8.4)\n\n## PLOT THE CHART\n## BarPlot\nbarplot(rep(NA, length(df.final$index)),\n xlim=c(0, 9.6),\n ylim=c(0, 10),\n main=chart.lbl.title,\n cex.main=1.5,\n font.main=2,\n sub=chart.lbl.sub,\n font.xlab=2,\n col=heat.colors(9),\n names.arg=df.final$distance.name,\n yaxt=&apos;n&apos;,\n space=0.2,\n col.axis=chart.in.chart.color2,\n col.sub=chart.in.chart.color2)\n\n## Reference Lines\nabline(h=chart.indices.posy, slope=0, col=&quot;gray50&quot;, lty=3)\ntext(0.42, chart.indices.posy+(0.2), chart.lbl.yaxis, cex=chart.in.textsize, col=chart.in.chart.color2)\nabline(h=10, slope=0, col=&quot;gray50&quot;, lty=3)\ntext(0.42, 10-(0.3), &quot;World Record&quot;, cex=chart.in.textsize, col=chart.in.chart.color2)\n\n## Plot the Barplot over the Reference Lines\nbarplot(df.final$index,\n add=T,\n col=heat.colors(9),\n yaxt=&apos;n&apos;,\n border=FALSE)\n\n## Bar Value Labels\ntext(chart.lbl.posx, chart.lbl.posy, chart.lbl.val.pace, col=&quot;black&quot;, cex=chart.in.textsize*chart.in.textscale)\ntext(chart.lbl.posx, chart.lbl.posy-0.4, chart.lbl.val.totaltime, col=&quot;black&quot;, cex=chart.in.textsize*chart.in.textscale)\n\n## Summary Box Labels\ntext(8.5, chart.summarybox.posy, chart.summarybox.text, cex=chart.in.textsize*chart.in.textscale, col=chart.in.chart.color1)\n\nprint(df.pheno)\nprint(df.final)\nprint(df.working)" />
<property name="state" type="QString" value="" />
<property name="plotOnChart" type="bool" value="0" />
<property name="showConsole" type="bool" value="0" />
</chart>
<chart id="7" name="" title="Weekly Distance" >
<property name="title" type="QString" value="Weekly Distance" />
<property name="subtitle" type="QString" value="Distance" />
<property name="widthFactor" type="double" value="2" />
<property name="heightFactor" type="double" value="2" />
<property name="style" type="int" value="0" />
<property name="resizable" type="bool" value="0" />
<property name="preset" type="bool" value="0" />
<property name="bin" type="int" value="1" />
<property name="shade" type="bool" value="0" />
<property name="data" type="bool" value="0" />
<property name="stack" type="bool" value="0" />
<property name="stackWidth" type="int" value="3" />
<property name="legend" type="bool" value="1" />
<property name="events" type="bool" value="0" />
<property name="banister" type="bool" value="1" />
<property name="filter" type="QString" value="search:" />
<property name="fromDate" type="QDate" value="Sat Jan 1 2000" />
<property name="toDate" type="QDate" value="Sat Jan 1 2000" />
<property name="startDate" type="QDate" value="Sun Dec 20 2020" />
<property name="lastN" type="int" value="7" />
<property name="lastNX" type="int" value="0" />
<property name="prevN" type="int" value="0" />
<property name="settings" type="LTMSettings" value="/////wAAABwATABhAHMAdAAgADEAMgAgAG0AbwBuAHQAaABzACWHLAAAAAD/ACWImgAAAAD/AAAAAgAB////////////////AAAAFQAAAAMAAAAIAP////8AAAAAAAAACABTAHcAaQBtAAAABABrAG0AAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAADI1pgAAAAAAwZvUAAAAAB/////wH//6qq/////wAAAAAAAD/wAAAAAAAAAAAAAAH//wAAAAAAAAAAAAAAAAAAAAPnAAAOEP////8AAAAKAAAABAAAAAAAAAAADAAyACAAUABhAHIAbQAAAAAAAAPnAAAOEAABAAAAAP////8AAAAyACMAIABTAHcAaQBtAAoARABpAHMAdABhAG4AYwBlAF8AUwB3AGkAbQAvADEAMAAwADAAAAAAAAAAIABmAGkAbAB0AGUAcgA6AGkAcwBTAHcAaQBtADwAPgAwAAAAAAAAAAABAQD/////AAAACAD/////AAAAAAAAAAgAQgBpAGsAZQAAAAQAawBtAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAyNaYAAAAAAMGb1AAAAAAf////8B//9VVf//f38AAAAAAAA/8AAAAAAAAAAAAAAB//8AAAAAAAAAAAAAAAAAAAAD5wAADhD/////AAAACgAAAAQAAAAAAAAAAAwAMgAgAFAAYQByAG0AAAAAAAAD5wAADhAAAQAAAAD/////AAAAHgAjACAAQgBpAGsAZQAKAEQAaQBzAHQAYQBuAGMAZQAAAAAAAAAmAGYAaQBsAHQAZQByADoAUwBwAG8AcgB0AD0AIgBCAGkAawBlACIAAAAAAAAAAAEBAP////8AAAAIAP////8AAAAAAAAABgBSAHUAbgAAAAQAawBtAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAyNaYAAAAAAMGb1AAAAAAf////8B/////6qqf38AAAAAAAA/8AAAAAAAAAAAAAAB//8AAAAAAAAAAAAAAAAAAAAD5wAADhD/////AAAACgAAAAQAAAAAAAAAAAwAMgAgAFAAYQByAG0AAAAAAAAD5wAADhAAAQAAAAD/////AAAAHAAjACAAUgB1AG4ACgBEAGkAcwB0AGEAbgBjAGUAAAAAAAAAHgBmAGkAbAB0AGUAcgA6AGkAcwBSAHUAbgA8AD4AMAAAAAAAAAAAAQEA/////wAAAAAAAw==" />
<property name="useSelected" type="int" value="0" />
</chart>
<chart id="33" name="" title="Swim CV" >
<property name="title" type="QString" value="Swim CV" />
<property name="subtitle" type="QString" value="" />
Expand Down Expand Up @@ -549,6 +511,56 @@
<property name="ridePlotMode" type="int" value="0" />
<property name="useSelected" type="int" value="0" />
</chart>
<chart id="7" name="" title="Weekly Distance" >
<property name="title" type="QString" value="Weekly Distance" />
<property name="subtitle" type="QString" value="Distance" />
<property name="widthFactor" type="double" value="2" />
<property name="heightFactor" type="double" value="2" />
<property name="style" type="int" value="0" />
<property name="resizable" type="bool" value="0" />
<property name="preset" type="bool" value="0" />
<property name="bin" type="int" value="1" />
<property name="shade" type="bool" value="0" />
<property name="data" type="bool" value="0" />
<property name="stack" type="bool" value="0" />
<property name="stackWidth" type="int" value="3" />
<property name="legend" type="bool" value="1" />
<property name="events" type="bool" value="0" />
<property name="banister" type="bool" value="1" />
<property name="filter" type="QString" value="search:" />
<property name="fromDate" type="QDate" value="Sat Jan 1 2000" />
<property name="toDate" type="QDate" value="Sat Jan 1 2000" />
<property name="startDate" type="QDate" value="Sun Dec 20 2020" />
<property name="lastN" type="int" value="7" />
<property name="lastNX" type="int" value="0" />
<property name="prevN" type="int" value="0" />
<property name="settings" type="LTMSettings" value="/////wAAABwATABhAHMAdAAgADEAMgAgAG0AbwBuAHQAaABzACWHLAAAAAD/ACWImgAAAAD/AAAAAgAB////////////////AAAAFQAAAAMAAAAIAP////8AAAAAAAAACABTAHcAaQBtAAAABABrAG0AAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAADI1pgAAAAAAwZvUAAAAAB/////wH//6qq/////wAAAAAAAD/wAAAAAAAAAAAAAAH//wAAAAAAAAAAAAAAAAAAAAPnAAAOEP////8AAAAKAAAABAAAAAAAAAAADAAyACAAUABhAHIAbQAAAAAAAAPnAAAOEAABAAAAAP////8AAAAyACMAIABTAHcAaQBtAAoARABpAHMAdABhAG4AYwBlAF8AUwB3AGkAbQAvADEAMAAwADAAAAAAAAAAIABmAGkAbAB0AGUAcgA6AGkAcwBTAHcAaQBtADwAPgAwAAAAAAAAAAABAQD/////AAAACAD/////AAAAAAAAAAgAQgBpAGsAZQAAAAQAawBtAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAyNaYAAAAAAMGb1AAAAAAf////8B//9VVf//f38AAAAAAAA/8AAAAAAAAAAAAAAB//8AAAAAAAAAAAAAAAAAAAAD5wAADhD/////AAAACgAAAAQAAAAAAAAAAAwAMgAgAFAAYQByAG0AAAAAAAAD5wAADhAAAQAAAAD/////AAAAHgAjACAAQgBpAGsAZQAKAEQAaQBzAHQAYQBuAGMAZQAAAAAAAAAmAGYAaQBsAHQAZQByADoAUwBwAG8AcgB0AD0AIgBCAGkAawBlACIAAAAAAAAAAAEBAP////8AAAAIAP////8AAAAAAAAABgBSAHUAbgAAAAQAawBtAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAyNaYAAAAAAMGb1AAAAAAf////8B/////6qqf38AAAAAAAA/8AAAAAAAAAAAAAAB//8AAAAAAAAAAAAAAAAAAAAD5wAADhD/////AAAACgAAAAQAAAAAAAAAAAwAMgAgAFAAYQByAG0AAAAAAAAD5wAADhAAAQAAAAD/////AAAAHAAjACAAUgB1AG4ACgBEAGkAcwB0AGEAbgBjAGUAAAAAAAAAHgBmAGkAbAB0AGUAcgA6AGkAcwBSAHUAbgA8AD4AMAAAAAAAAAAAAQEA/////wAAAAAAAw==" />
<property name="useSelected" type="int" value="0" />
</chart>
<chart id="39" name="" title="Run Profile (R)" >
<property name="title" type="QString" value="Run Profile (R)" />
<property name="subtitle" type="QString" value="" />
<property name="widthFactor" type="double" value="2" />
<property name="heightFactor" type="double" value="2" />
<property name="style" type="int" value="0" />
<property name="resizable" type="bool" value="0" />
<property name="script" type="QString" value="## CHART SIZING\nGC.page(width=800, height=600)\n\n## PULL THE ACTIVITY METRICS FROM GC RECORDS\nmm &lt;- GC.season.meanmax(all=FALSE, filter=&quot;isRun&lt;&gt;0&quot;, compare=FALSE)\nathlete &lt;- GC.athlete()\nseasons &lt;- GC.season(compare=TRUE)\n\n## MANIPULATE THE DATA\n# mean maximal speed in m/s from 1s to 1h30&apos; (OJO con el ultimo ****)\nspeed &lt;- mm$speed[2:12000]/3.6\n# pace from speed in min/km\npace &lt;- (1000/60)/speed\n# distance from mean maximal speed\ndistance &lt;- round(speed*(1:length(pace))/1000,1)\n\ndistance.value &lt;- c(0, 0.4, 0.8, 1.5, 5, 10, 21.1, 42.2)\ndistance.name &lt;-c (&quot;&quot;, &quot;400m&quot;, &quot;800m&quot;, &quot;1500m&quot;, &quot;5k&quot;, &quot;10k&quot;, &quot;1/2 Mar&quot;, &quot;Marathon&quot;)\n\ndf.working &lt;- data.frame(distance, pace, speed)\ndf.working &lt;- subset(df.working, distance==distance.value)\ndf.working &lt;- aggregate(.~distance, df.working, mean)\nnames(df.working)[names(df.working)==&quot;distance&quot;] &lt;- &quot;distance.value&quot;\n\n## Account for Different Genders\nifelse (athlete$gender==&apos;male&apos;, index.TOP&lt;-c(NA, 9.26, 7.93, 7.28, 6.6, 6.34, 6.02, 5.72), index.TOP&lt;-c(NA, 8.4, 7.06, 6.52, 5.87, 5.4, 5.19))\nifelse (athlete$gender==&apos;male&apos;, index.BOT&lt;-c(NA, 3.27, 2.8, 2.57, 2.33, 2.24, 2.13, 2.02), index.BOT&lt;-c(NA, 2.97, 2.5, 2.3, 2.08, 1.91, 1.84))\n\n## Build the DataFrame\ndf.final &lt;- data.frame(distance.value, distance.name)\ndf.final &lt;- merge(df.final, df.working, all.x=TRUE)\nindex &lt;-((df.final$speed-index.BOT)/(index.TOP-index.BOT))*10\ndf.final &lt;- cbind(df.final, index)\n\n## Round the Numbers to make the frame more readable\ndf.final$pace &lt;- round(df.final$pace, 2)\ndf.final$speed &lt;- round(df.final$speed, 2)\ndf.final$index &lt;- round(df.final$index, 2)\n\n## Remove Wacky Values off the Scale\ndf.final$index &lt;- ifelse(df.final$index&lt;0, NA, df.final$index)\ndf.final$index &lt;- ifelse(df.final$index&gt;10, NA, df.final$index)\n\n## Athlete Phenotype\npheno.lbl &lt;- c(NA, &quot;1. T-MD&quot;, &quot;1. T-MD&quot;, &quot;2. T-LD&quot;, &quot;2. T-LD&quot;, &quot;2. T-LD&quot;, &quot;3. Mar&quot;, &quot;3. Mar&quot;)\ndf.pheno &lt;- data.frame(pheno.lbl, df.final$index)\ndf.pheno &lt;- aggregate(.~pheno.lbl, df.pheno, max, na.rm=TRUE, na.action=&quot;na.pass&quot;)\n# df.pheno[ is.na(df.pheno) ] &lt;- NA \n# df.pheno[which(!is.finite(df.pheno))] &lt;- NA\nis.na(df.pheno)&lt;-sapply(df.pheno, is.infinite)\ndf.pheno[is.na(df.pheno)]&lt;-NA\n\npheno.allrounderband = 1\npheno.best &lt;- which(df.pheno$frame.index==max(df.pheno$frame.index, na.rm=TRUE))\n\nif (sum(is.na(df.pheno$frame.index))&gt;0) {\n phenotype=&quot;Not Enough Datapoints&quot;\n} else if (max(df.pheno$frame.index, na.rm=TRUE)-min(df.pheno$frame.index, na.rm=TRUE)&lt;pheno.allrounderband) {\n phenotype=&quot;All-Rounder&quot;\n} else if (pheno.best==1) {\n phenotype&lt;-&quot;Track - Middle Distance&quot;\n} else if (pheno.best==2) {\n phenotype&lt;-&quot;Track - Long Distance&quot;\n} else\n phenotype&lt;-&quot;Marathoner&quot;\n\n## CHART INPUTS &amp; SETTINGS\nchart.lbl.yaxis&lt;-c(&quot;Untrained&quot;, &quot;Novice&quot;, &quot;Fair&quot;, &quot;Moderate&quot;, &quot;Good&quot;, &quot;Very Good&quot;, &quot;NCAA Div.3&quot;, &quot;NCAA Div.1&quot;, &quot;World Class&quot;)\nchart.lbl.sub = &quot;Run Distance&quot;\nchart.lbl.title = paste0(&quot;Runner Pace Profile &quot;, &quot; (&quot;, seasons$name, &quot;)&quot;)\nchart.in.textsize=1\nchart.in.chart.color1=&quot;Red&quot;\nchart.in.chart.color2=&quot;White&quot;\nchart.indices.posy&lt;-c(0, 0.87, 1.9, 3.08, 4.39, 5.74, 7.01, 7.98, 10)\n\n## Bar Value Labels\nchart.lbl.posx&lt;-c(0.8, 2, 3.2, 4.4, 5.6, 6.8, 8, 9.2)-0.15\nchart.lbl.posy&lt;-c(df.final$index-0.3)\nchart.in.textscale = 0.9\n\n## Make the M:SS Labels\nchart.lbl.val.minute &lt;- as.integer(df.final$pace)\nchart.lbl.val.second &lt;- round((df.final$pace-as.integer(df.final$pace))*60, 0)\nchart.lbl.val.second &lt;- sprintf(&quot;%02i&quot;, chart.lbl.val.second)\nchart.lbl.val.pace &lt;- paste0(chart.lbl.val.minute, &quot;:&quot;, chart.lbl.val.second, &quot;/km&quot;)\n\n## Total Event Time Labels\nchart.lbl.val.totaltime &lt;- (df.final$pace*df.final$distance.value)/1440\nchart.lbl.val.totaltime &lt;- format(as.POSIXct(Sys.Date() + chart.lbl.val.totaltime), &quot;%H:%M:%S&quot;, tz=&quot;UTC&quot;)\n\n## Summary Box Labels\nchart.summarybox.text &lt;- c(paste0(&quot;Athlete: &quot;, athlete$name), paste0(&quot;Gender: &quot;, athlete$gender), paste0(&quot;Weight: &quot;, athlete$weight, &quot;kg&quot;), paste0(&quot;Phenotype: &quot;, phenotype))\nchart.summarybox.posy &lt;- c(9.6, 9.2, 8.8, 8.4)\n\n## PLOT THE CHART\n## BarPlot\nbarplot(rep(NA, length(df.final$index)),\n xlim=c(0, 9.6),\n ylim=c(0, 10),\n main=chart.lbl.title,\n cex.main=1.5,\n font.main=2,\n sub=chart.lbl.sub,\n font.xlab=2,\n col=heat.colors(9),\n names.arg=df.final$distance.name,\n yaxt=&apos;n&apos;,\n space=0.2,\n col.axis=chart.in.chart.color2,\n col.sub=chart.in.chart.color2)\n\n## Reference Lines\nabline(h=chart.indices.posy, slope=0, col=&quot;gray50&quot;, lty=3)\ntext(0.42, chart.indices.posy+(0.2), chart.lbl.yaxis, cex=chart.in.textsize, col=chart.in.chart.color2)\nabline(h=10, slope=0, col=&quot;gray50&quot;, lty=3)\ntext(0.42, 10-(0.3), &quot;World Record&quot;, cex=chart.in.textsize, col=chart.in.chart.color2)\n\n## Plot the Barplot over the Reference Lines\nbarplot(df.final$index,\n add=T,\n col=heat.colors(9),\n yaxt=&apos;n&apos;,\n border=FALSE)\n\n## Bar Value Labels\ntext(chart.lbl.posx, chart.lbl.posy, chart.lbl.val.pace, col=&quot;black&quot;, cex=chart.in.textsize*chart.in.textscale)\ntext(chart.lbl.posx, chart.lbl.posy-0.4, chart.lbl.val.totaltime, col=&quot;black&quot;, cex=chart.in.textsize*chart.in.textscale)\n\n## Summary Box Labels\ntext(8.5, chart.summarybox.posy, chart.summarybox.text, cex=chart.in.textsize*chart.in.textscale, col=chart.in.chart.color1)\n\nprint(df.pheno)\nprint(df.final)\nprint(df.working)" />
<property name="state" type="QString" value="" />
<property name="plotOnChart" type="bool" value="0" />
<property name="showConsole" type="bool" value="0" />
</chart>
<chart id="39" name="" title="Tri Mix (R)" >
<property name="title" type="QString" value="Tri Mix (R)" />
<property name="subtitle" type="QString" value="" />
<property name="widthFactor" type="double" value="2" />
<property name="heightFactor" type="double" value="2" />
<property name="style" type="int" value="0" />
<property name="resizable" type="bool" value="0" />
<property name="script" type="QString" value="## R-chart script.\n## For use with GoldenCheetah.\n## tested on GC.version() is &quot;DEV-V3.5 1705&quot;\n##\n\npie=TRUE ##FALSE\nsportlist=c(&quot;Swim&quot;,&quot;Bike&quot;, &quot;Run&quot;, &quot;Strength&quot;)\neco=c(3, 1/5, 1, 0)\ncolor=c(&quot;#578cb5&quot;,&quot;#85a67a&quot;, &quot;#ffaa7f&quot;,&quot;#ffd64d&quot;)\n\npar(mfrow=c(2,2), mar=c(3,3,3,3))\n##layout(matrix(c(1,2,3,4), 2, 2, byrow = TRUE), widths=c(1,1), heights=c(1,1))\n\n##Get metrics\nmetrics&lt;- GC.season.metrics(all=FALSE, filter=&quot;&quot;, compare=FALSE)\n\n##Filter Walks\n#metrics&lt;-metrics[metrics$Workout_Code!=&quot;Walk&quot;,]\n\n##Count Weeks\nweeks &lt;- 1\nif (length(metrics$date)&gt;0) {\n weeks &lt;- max( (as.numeric(metrics$date[length(metrics$date)]-metrics$date[1])+1)/7, 1)\n}\n\nmetriclist&lt;- c()\ntrg&lt;- c();time&lt;-c();distance&lt;-c()\nfor(a in 1:length(sportlist)) {\n metriclist[[a]]&lt;-metrics[which(metrics$Sport==sportlist[a]),]\n trg[a]&lt;-length(metriclist[[a]]$Sport)\n if (trg[a]&gt;0) {\n time[a]&lt;-Reduce(&quot;+&quot;,metriclist[[a]]$Duration)\n distance[a]&lt;-Reduce(&quot;+&quot;,metriclist[[a]]$Distance)\n } else {\n time[a]&lt;-0\n distance[a]&lt;-0\n }\n}\n\ntrg&lt;-trg/weeks\ntime[is.na(time)]&lt;-0\ntime&lt;-time%/%weeks\ndistance[is.na(distance)]&lt;-0\ndistance&lt;-distance/weeks\n\nheader1&lt;-sprintf(&quot;Activities (%.1f/wk)&quot;, sum(trg))\nheader2&lt;-sprintf(&quot;Duration (%d:%02d:%02d/wk)&quot;, sum(time)%/%3600, sum(time)%/%60%%60, sum(time)%%60)\nheader3&lt;-sprintf(&quot;Distance (ECO %.1f/wk)&quot;, sum(distance*eco))\n\nif (pie==TRUE){\n pie(trg, labels=sprintf(&quot;%s %.1f&quot;,sportlist,trg), main=header1, col=color)\n pie(time, labels=sprintf(&quot;%s %d:%02d:%02d&quot;,sportlist,time%/%3600,time%/%60%%60,time%%60), main=header2, col=color)\n pie(distance*eco, labels=sprintf(&quot;%s %.1f km (%.1f)&quot;,sportlist,distance,distance*eco), main=header3, col=color)\n plot.new()\n }else{\n barplot(trg, names.arg=sprintf(&quot;%s %.1f&quot;,sportlist,trg), main=header1, col=color, space=0, axes=FALSE)\n barplot(time, names.arg=sprintf(&quot;%s %d:%02d:%02d&quot;,sportlist,time%/%3600,time%/%60%%60,time%%60), main=header2, col=color, space=0, axes=FALSE)\n barplot(distance*eco, names.arg=sprintf(&quot;%s %.1f&quot;,sportlist,distance), main=header3, col=color, space=0, axes=FALSE)\n plot.new()\n }\n\ntitle&lt;-sprintf(&quot;%s (%.1f weeks)&quot;, GC.season()$name, weeks)\nlegend(x=&quot;center&quot;, title=title, legend=sportlist, fill=color, border=&quot;white&quot;, cex=2, bty=&quot;n&quot;)\n##plot.new()\n" />
<property name="state" type="QString" value="" />
<property name="plotOnChart" type="bool" value="0" />
<property name="showConsole" type="bool" value="0" />
</chart>
</layout>
<layout name="Measures" style="0" type="8" expression="" trainswitch="0">
<chart id="45" name="" title="Weight History" >
Expand Down Expand Up @@ -592,7 +604,7 @@
<property name="lastN" type="int" value="7" />
<property name="lastNX" type="int" value="0" />
<property name="prevN" type="int" value="0" />
<property name="settings" type="LTMSettings" value="/////wAAABwATABhAHMAdAAgADEAMgAgAG0AbwBuAHQAaABzACWHLgAAAAD/ACWImgAAAAD/AAAAAQAB////////////////AAAAFQAAAAIAAAAJAAAAACoASAByAHYAXwAtAF8AUgBlAGMAbwB2AGUAcgB5AF8AUABvAGkAbgB0AHMAAAAmAEgAUgBWACAAUgBlAGMAbwB2AGUAcgB5ACAAUABvAGkAbgB0AHMAAAAqAEgAcgB2ACAALQAgAFIAZQBjAG8AdgBlAHIAeQAgAFAAbwBpAG4AdABzAAAAFABSAGUAYwAuAFAAbwBpAG4AdABzAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAABuAAAAWwAAAAAAAAAA//////////8B/////wAAAAAAAAAAAAA/8AAAAAAAAAAAAAAB//8AAAAAAAAAAAAAAAAAAAAABwAADhD/////AAAACgAAAAEAAAAAAQAAAAwAMgAgAFAAYQByAG0AAAAAAAAAAAAADhAAAAAAAAAAAAAAAAAA9gAjACAAdAB5AHAAZQAgAGkAbgAgAGEAIABmAG8AcgBtAHUAbABhACAAdABvACAAdQBzAGUACgAjACAAZgBvAHIAIABlAC4AZwAuACAAVABTAFMAIAAvACAARAB1AHIAYQB0AGkAbwBuAAoAIwAgAGEAcwAgAHkAbwB1ACAAdAB5AHAAZQAgAHQAaABlACAAYQB2AGEAaQBsAGEAYgBsAGUAIABtAGUAdAByAGkAYwBzAAoAIwAgAHcAaQBsAGwAIABiAGUAIABvAGYAZgBlAHIAZQBkACAAYgB5ACAAYQB1AHQAbwBjAG8AbQBwAGwAZQB0AGUACgAAAAEAAAAOAHMAZQBhAHIAYwBoADoAAAABAAAABwEBAAAAABYAcABvAHcAZQByAF8AaQBuAGQAZQB4AAAACQAAAAAQAEgAcgB2AF8ALQBfAEgAUgAAAA4AUgBlAHMAdAAgAEgAUgAAABAASAByAHYAIAAtACAASABSAAAABgBiAHAAbQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAbgAAAFsAAAAAAAAAAP//////////Af//rKysrAAAAAAAAAAAP/AAAAAAAAAAAAAAAf//AAAAAAAAAAAAAAAAAAAAAAAAAA4Q/////wAAAAoAAAABAAAAAAEAAAAGAGMAcAAyAAAABAAAAAAAAA4QAAAAAAAAAAAABgBiAHAAbQAAAPYAIwAgAHQAeQBwAGUAIABpAG4AIABhACAAZgBvAHIAbQB1AGwAYQAgAHQAbwAgAHUAcwBlAAoAIwAgAGYAbwByACAAZQAuAGcALgAgAFQAUwBTACAALwAgAEQAdQByAGEAdABpAG8AbgAKACMAIABhAHMAIAB5AG8AdQAgAHQAeQBwAGUAIAB0AGgAZQAgAGEAdgBhAGkAbABhAGIAbABlACAAbQBlAHQAcgBpAGMAcwAKACMAIAB3AGkAbABsACAAYgBlACAAbwBmAGYAZQByAGUAZAAgAGIAeQAgAGEAdQB0AG8AYwBvAG0AcABsAGUAdABlAAoAAAABAAAADgBzAGUAYQByAGMAaAA6AAAAAQAAAAEBAQAAAAAWAHAAbwB3AGUAcgBfAGkAbgBkAGUAeAAAAAAAAw==" />
<property name="settings" type="LTMSettings" value="/////wAAABwATABhAHMAdAAgADEAMgAgAG0AbwBuAHQAaABzACWHLwAAAAD/ACWImwAAAAD/AAAAAQAB////////////////AAAAFQAAAAIAAAAJAAAAACoASAByAHYAXwAtAF8AUgBlAGMAbwB2AGUAcgB5AF8AUABvAGkAbgB0AHMAAAAmAEgAUgBWACAAUgBlAGMAbwB2AGUAcgB5ACAAUABvAGkAbgB0AHMAAAAqAEgAcgB2ACAALQAgAFIAZQBjAG8AdgBlAHIAeQAgAFAAbwBpAG4AdABzAAAAFABSAGUAYwAuAFAAbwBpAG4AdABzAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAABuAAAAWwAAAAAAAAAA//////////8B/////wAAAAAAAAAAAAA/8AAAAAAAAAAAAAAB//8AAAAAAAAAAAAAAAAAAAAABwAADhD/////AAAACgAAAAEAAAAAAQAAAAwAMgAgAFAAYQByAG0AAAAAAAAAAAAADhAAAAAAAAAAAAAAAAAA9gAjACAAdAB5AHAAZQAgAGkAbgAgAGEAIABmAG8AcgBtAHUAbABhACAAdABvACAAdQBzAGUACgAjACAAZgBvAHIAIABlAC4AZwAuACAAVABTAFMAIAAvACAARAB1AHIAYQB0AGkAbwBuAAoAIwAgAGEAcwAgAHkAbwB1ACAAdAB5AHAAZQAgAHQAaABlACAAYQB2AGEAaQBsAGEAYgBsAGUAIABtAGUAdAByAGkAYwBzAAoAIwAgAHcAaQBsAGwAIABiAGUAIABvAGYAZgBlAHIAZQBkACAAYgB5ACAAYQB1AHQAbwBjAG8AbQBwAGwAZQB0AGUACgAAAAEAAAAOAHMAZQBhAHIAYwBoADoAAAABAAAABwEBAAAAABYAcABvAHcAZQByAF8AaQBuAGQAZQB4AAAACQAAAAAQAEgAcgB2AF8ALQBfAEgAUgAAAA4AUgBlAHMAdAAgAEgAUgAAABAASAByAHYAIAAtACAASABSAAAABgBiAHAAbQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAbgAAAFsAAAAAAAAAAP//////////Af//rKysrAAAAAAAAAAAP/AAAAAAAAAAAAAAAf//AAAAAAAAAAAAAAAAAAAAAAAAAA4Q/////wAAAAoAAAABAAAAAAEAAAAGAGMAcAAyAAAABAAAAAAAAA4QAAAAAAAAAAAABgBiAHAAbQAAAPYAIwAgAHQAeQBwAGUAIABpAG4AIABhACAAZgBvAHIAbQB1AGwAYQAgAHQAbwAgAHUAcwBlAAoAIwAgAGYAbwByACAAZQAuAGcALgAgAFQAUwBTACAALwAgAEQAdQByAGEAdABpAG8AbgAKACMAIABhAHMAIAB5AG8AdQAgAHQAeQBwAGUAIAB0AGgAZQAgAGEAdgBhAGkAbABhAGIAbABlACAAbQBlAHQAcgBpAGMAcwAKACMAIAB3AGkAbABsACAAYgBlACAAbwBmAGYAZQByAGUAZAAgAGIAeQAgAGEAdQB0AG8AYwBvAG0AcABsAGUAdABlAAoAAAABAAAADgBzAGUAYQByAGMAaAA6AAAAAQAAAAEBAQAAAAAWAHAAbwB3AGUAcgBfAGkAbgBkAGUAeAAAAAAAAw==" />
<property name="useSelected" type="int" value="4" />
</chart>
<chart id="44" name="" title="HRV Trends" >
Expand All @@ -614,7 +626,7 @@
<property name="heightFactor" type="double" value="2" />
<property name="style" type="int" value="0" />
<property name="resizable" type="bool" value="0" />
<property name="settings" type="QString" value="{ &quot;title&quot;: &quot;Energy Intake and Expenditure &quot;,\n&quot;description&quot;: &quot;Energy Intake from Nutrition:sl:/Energy Measures:sl:n:sl:nEnergy Expenditure = NEEE + ExEE:sl:n:sl:nNon Exercise Energy Expenditure (NEEE) from Mifflin St Jeor equation for BMR with Activity Factor:sl:n:sl:nExercise Energy Expenditure from Calories metric (based on Duration, Average HR, Sex and Age) &quot;,\n&quot;type&quot;: 1,\n&quot;animate&quot;: false,\n&quot;intervalrefresh&quot;: false,\n&quot;legendpos&quot;: 3,\n&quot;stack&quot;: false,\n&quot;orientation&quot;: 2,\n&quot;bgcolor&quot;: &quot;#010102&quot;, \n&quot;scale&quot;: 1,\n&quot;SERIES&quot;: [\n{ &quot;name&quot;: &quot;Intake &quot;, &quot;group&quot;: &quot; &quot;, &quot;xname&quot;: &quot;Date &quot;, &quot;yname&quot;: &quot;kCal &quot;, &quot;program&quot;: &quot;{:sl:n finalise {:sl:n xx &lt;- measures(:qu:Nutrition:qu:, :qu:date:qu:);:sl:n yy &lt;- measures(:qu:Nutrition:qu:, :qu:Energy:qu:);:sl:n avg &lt;- mean(yy);:sl:n annotate(label, :qu:Avg Intake:qu:, round(avg));:sl:n }:sl:n:sl:n x { xx; }:sl:n y { yy; }:sl:n}:sl:n &quot;, &quot;line&quot;: 1, &quot;symbol&quot;: 0, &quot;size&quot;: 0, &quot;color&quot;: &quot;#55ffff&quot;, &quot;opacity&quot;: 1, &quot;legend&quot;: true, &quot;opengl&quot;: true, &quot;datalabels&quot;: false, &quot;aggregate&quot;: 1, &quot;fill&quot;: false},\n{ &quot;name&quot;: &quot;NEEE &quot;, &quot;group&quot;: &quot; &quot;, &quot;xname&quot;: &quot;Date &quot;, &quot;yname&quot;: &quot;kCal &quot;, &quot;program&quot;: &quot;{:sl:n finalise {:sl:n xx &lt;- measures(:qu:Body:qu:, :qu:date:qu:);:sl:n:sl:n # Mifflin St Jeor equation for BMR:sl:n m &lt;- measures(:qu:Body:qu:, :qu:WEIGHTKG:qu:); # mass(kg):sl:n h &lt;- config(height); # height(m):sl:n age &lt;- (xx-config(dob)):sl:/365; # age(y):sl:n s &lt;- config(sex)=:qu:Male:qu: ? 5 : -161;#sex(kCal):sl:n bmr &lt;- 10*m + 625*h - 5*age + s;:sl:n:sl:n # Activity Factor (excluding Excercise):sl:n actFactor &lt;- 1.2; # Mostly sedentary:sl:n:sl:n # Non-Exercise Energy Expenditure:sl:n yy &lt;- round(bmr*actFactor);:sl:n:sl:n avg &lt;- mean(yy);:sl:n annotate(label, :qu:Avg NonEx:qu:, round(avg));:sl:n }:sl:n x { xx; }:sl:n y { yy; }:sl:n}:sl:n &quot;, &quot;line&quot;: 1, &quot;symbol&quot;: 0, &quot;size&quot;: 0, &quot;color&quot;: &quot;#ffaaff&quot;, &quot;opacity&quot;: 1, &quot;legend&quot;: true, &quot;opengl&quot;: true, &quot;datalabels&quot;: false, &quot;aggregate&quot;: 1, &quot;fill&quot;: false},\n{ &quot;name&quot;: &quot;ExEE &quot;, &quot;group&quot;: &quot; &quot;, &quot;xname&quot;: &quot;Date &quot;, &quot;yname&quot;: &quot;kCal &quot;, &quot;program&quot;: &quot;{:sl:n finalise {:sl:n xx &lt;- measures(:qu:Body:qu:, :qu:date:qu:);:sl:n:sl:n # Exercise Energy Expenditure:sl:n # Aggregate for multiple sessions on a day:sl:n exee &lt;- aggregate(metrics(Calories), metrics(date), sum);:sl:n exdd &lt;- aggregate(metrics(date), metrics(date), mean);:sl:n # Add 0s on rest days (not found on exdd):sl:n yy &lt;- round(sapply(xx, exdd[lowerbound(exdd, x)]=x ? exee[lowerbound(exdd,x)] : 0));:sl:n:sl:n avg &lt;- mean(yy);:sl:n annotate(label, :qu:Avg Exercise:qu:, round(avg));:sl:n }:sl:n x { xx; }:sl:n y { yy; }:sl:n} &quot;, &quot;line&quot;: 1, &quot;symbol&quot;: 0, &quot;size&quot;: 0, &quot;color&quot;: &quot;#55ff7f&quot;, &quot;opacity&quot;: 1, &quot;legend&quot;: true, &quot;opengl&quot;: true, &quot;datalabels&quot;: false, &quot;aggregate&quot;: 1, &quot;fill&quot;: false},\n{ &quot;name&quot;: &quot;Expend &quot;, &quot;group&quot;: &quot; &quot;, &quot;xname&quot;: &quot;Date &quot;, &quot;yname&quot;: &quot;kCal &quot;, &quot;program&quot;: &quot;{:sl:n finalise {:sl:n xx &lt;- curve(NEEE, x);:sl:n yy &lt;- curve(NEEE, y) + curve(ExEE, y);:sl:n avg &lt;- mean(yy);:sl:n annotate(label, :qu:Avg Expend:qu:, round(avg));:sl:n }:sl:n:sl:n x { xx; }:sl:n y { yy; }:sl:n}:sl:n &quot;, &quot;line&quot;: 1, &quot;symbol&quot;: 0, &quot;size&quot;: 0, &quot;color&quot;: &quot;#ff0000&quot;, &quot;opacity&quot;: 1, &quot;legend&quot;: true, &quot;opengl&quot;: true, &quot;datalabels&quot;: false, &quot;aggregate&quot;: 1, &quot;fill&quot;: false},\n{ &quot;name&quot;: &quot;Balance &quot;, &quot;group&quot;: &quot; &quot;, &quot;xname&quot;: &quot;Date &quot;, &quot;yname&quot;: &quot;kCal &quot;, &quot;program&quot;: &quot;{:sl:n finalise {:sl:n xx &lt;- curve(Expend, x);:sl:n yy &lt;- curve(Intake, y) - curve(Expend, y);:sl:n avg &lt;- mean(yy);:sl:n annotate(label, :qu:Avg Balance:qu:, round(avg));:sl:n }:sl:n:sl:n x { xx; }:sl:n y { yy; }:sl:n}:sl:n &quot;, &quot;line&quot;: 1, &quot;symbol&quot;: 0, &quot;size&quot;: 0, &quot;color&quot;: &quot;#ffff00&quot;, &quot;opacity&quot;: 1, &quot;legend&quot;: true, &quot;opengl&quot;: true, &quot;datalabels&quot;: false, &quot;aggregate&quot;: 1, &quot;fill&quot;: false} ]\n,\n&quot;AXES&quot;: [\n{ &quot;name&quot;: &quot;Date &quot;, &quot;type&quot;: 1, &quot;orientation&quot;: 1, &quot;align&quot;: 1, &quot;minx&quot;: 0, &quot;maxx&quot;: 0, &quot;miny&quot;: 0, &quot;maxy&quot;: 0, &quot;smooth&quot;: 0, &quot;groupby&quot;: 0, &quot;visible&quot;: true, &quot;fixed&quot;: false, &quot;log&quot;: false, &quot;minorgrid&quot;: false, &quot;majorgrid&quot;: true, &quot;labelcolor&quot;: &quot;#2684f6&quot;, &quot;axiscolor&quot;: &quot;#2684f6&quot;},\n{ &quot;name&quot;: &quot;kCal &quot;, &quot;type&quot;: 0, &quot;orientation&quot;: 2, &quot;align&quot;: 1, &quot;minx&quot;: 0, &quot;maxx&quot;: 0, &quot;miny&quot;: 0, &quot;maxy&quot;: 0, &quot;smooth&quot;: 0, &quot;groupby&quot;: 0, &quot;visible&quot;: true, &quot;fixed&quot;: false, &quot;log&quot;: false, &quot;minorgrid&quot;: false, &quot;majorgrid&quot;: true, &quot;labelcolor&quot;: &quot;#55ffff&quot;, &quot;axiscolor&quot;: &quot;#55ffff&quot;} ]\n}" />
<property name="settings" type="QString" value="{ &quot;title&quot;: &quot;Energy Intake and Expenditure &quot;,\n&quot;description&quot;: &quot;Energy Intake from Nutrition:sl:/Energy Measures:sl:n:sl:nEnergy Expenditure = NEEE + ExEE:sl:n:sl:nNon Exercise Energy Expenditure (NEEE) from Mifflin St Jeor equation for BMR with Activity Factor:sl:n:sl:nExercise Energy Expenditure from Calories metric (based on Duration, Average HR, Sex and Age) &quot;,\n&quot;type&quot;: 1,\n&quot;animate&quot;: false,\n&quot;intervalrefresh&quot;: false,\n&quot;legendpos&quot;: 3,\n&quot;stack&quot;: false,\n&quot;orientation&quot;: 2,\n&quot;bgcolor&quot;: &quot;#010102&quot;, \n&quot;scale&quot;: 1,\n&quot;SERIES&quot;: [\n{ &quot;name&quot;: &quot;Intake &quot;, &quot;group&quot;: &quot; &quot;, &quot;xname&quot;: &quot;Date &quot;, &quot;yname&quot;: &quot;kCal &quot;, &quot;program&quot;: &quot;{:sl:n finalise {:sl:n xx &lt;- measures(:qu:Nutrition:qu:, :qu:date:qu:);:sl:n yy &lt;- measures(:qu:Nutrition:qu:, :qu:Energy:qu:);:sl:n avg &lt;- mean(yy);:sl:n annotate(label, :qu:Avg Intake:qu:, round(avg));:sl:n }:sl:n:sl:n x { xx; }:sl:n y { yy; }:sl:n}:sl:n &quot;, &quot;line&quot;: 1, &quot;symbol&quot;: 0, &quot;size&quot;: 0, &quot;color&quot;: &quot;#47d5d5&quot;, &quot;opacity&quot;: 1, &quot;legend&quot;: true, &quot;opengl&quot;: true, &quot;datalabels&quot;: false, &quot;aggregate&quot;: 1, &quot;fill&quot;: false},\n{ &quot;name&quot;: &quot;NEEE &quot;, &quot;group&quot;: &quot; &quot;, &quot;xname&quot;: &quot;Date &quot;, &quot;yname&quot;: &quot;kCal &quot;, &quot;program&quot;: &quot;{:sl:n finalise {:sl:n xx &lt;- measures(:qu:Body:qu:, :qu:date:qu:);:sl:n:sl:n # Mifflin St Jeor equation for BMR:sl:n m &lt;- measures(:qu:Body:qu:, :qu:WEIGHTKG:qu:); # mass(kg):sl:n h &lt;- config(height); # height(m):sl:n age &lt;- (xx-config(dob)):sl:/365; # age(y):sl:n s &lt;- config(sex)=:qu:Male:qu: ? 5 : -161;#sex(kCal):sl:n bmr &lt;- 10*m + 625*h - 5*age + s;:sl:n:sl:n # Activity Factor (excluding Excercise):sl:n actFactor &lt;- 1.2; # Mostly sedentary:sl:n:sl:n # Non-Exercise Energy Expenditure:sl:n yy &lt;- round(bmr*actFactor);:sl:n:sl:n avg &lt;- mean(yy);:sl:n annotate(label, :qu:Avg NonEx:qu:, round(avg));:sl:n }:sl:n x { xx; }:sl:n y { yy; }:sl:n}:sl:n &quot;, &quot;line&quot;: 1, &quot;symbol&quot;: 0, &quot;size&quot;: 0, &quot;color&quot;: &quot;#d58ed5&quot;, &quot;opacity&quot;: 1, &quot;legend&quot;: true, &quot;opengl&quot;: true, &quot;datalabels&quot;: false, &quot;aggregate&quot;: 1, &quot;fill&quot;: false},\n{ &quot;name&quot;: &quot;ExEE &quot;, &quot;group&quot;: &quot; &quot;, &quot;xname&quot;: &quot;Date &quot;, &quot;yname&quot;: &quot;kCal &quot;, &quot;program&quot;: &quot;{:sl:n finalise {:sl:n xx &lt;- measures(:qu:Body:qu:, :qu:date:qu:);:sl:n:sl:n # Exercise Energy Expenditure:sl:n # Aggregate for multiple sessions on a day:sl:n exee &lt;- aggregate(metrics(Calories), metrics(date), sum);:sl:n exdd &lt;- aggregate(metrics(date), metrics(date), mean);:sl:n # Add 0s on rest days (not found on exdd):sl:n yy &lt;- round(sapply(xx, exdd[lowerbound(exdd, x)]=x ? exee[lowerbound(exdd,x)] : 0));:sl:n:sl:n avg &lt;- mean(yy);:sl:n annotate(label, :qu:Avg Exercise:qu:, round(avg));:sl:n }:sl:n x { xx; }:sl:n y { yy; }:sl:n} &quot;, &quot;line&quot;: 1, &quot;symbol&quot;: 0, &quot;size&quot;: 0, &quot;color&quot;: &quot;#40bf5d&quot;, &quot;opacity&quot;: 1, &quot;legend&quot;: true, &quot;opengl&quot;: true, &quot;datalabels&quot;: false, &quot;aggregate&quot;: 1, &quot;fill&quot;: false},\n{ &quot;name&quot;: &quot;Expend &quot;, &quot;group&quot;: &quot; &quot;, &quot;xname&quot;: &quot;Date &quot;, &quot;yname&quot;: &quot;kCal &quot;, &quot;program&quot;: &quot;{:sl:n finalise {:sl:n xx &lt;- curve(NEEE, x);:sl:n yy &lt;- curve(NEEE, y) + curve(ExEE, y);:sl:n avg &lt;- mean(yy);:sl:n annotate(label, :qu:Avg Expend:qu:, round(avg));:sl:n }:sl:n:sl:n x { xx; }:sl:n y { yy; }:sl:n}:sl:n &quot;, &quot;line&quot;: 1, &quot;symbol&quot;: 0, &quot;size&quot;: 0, &quot;color&quot;: &quot;#ff0000&quot;, &quot;opacity&quot;: 1, &quot;legend&quot;: true, &quot;opengl&quot;: true, &quot;datalabels&quot;: false, &quot;aggregate&quot;: 1, &quot;fill&quot;: false},\n{ &quot;name&quot;: &quot;Balance &quot;, &quot;group&quot;: &quot; &quot;, &quot;xname&quot;: &quot;Date &quot;, &quot;yname&quot;: &quot;kCal &quot;, &quot;program&quot;: &quot;{:sl:n finalise {:sl:n xx &lt;- curve(Expend, x);:sl:n yy &lt;- curve(Intake, y) - curve(Expend, y);:sl:n avg &lt;- mean(yy);:sl:n annotate(label, :qu:Avg Balance:qu:, round(avg));:sl:n }:sl:n:sl:n x { xx; }:sl:n y { yy; }:sl:n}:sl:n &quot;, &quot;line&quot;: 1, &quot;symbol&quot;: 0, &quot;size&quot;: 0, &quot;color&quot;: &quot;#b6b600&quot;, &quot;opacity&quot;: 1, &quot;legend&quot;: true, &quot;opengl&quot;: true, &quot;datalabels&quot;: false, &quot;aggregate&quot;: 1, &quot;fill&quot;: false} ]\n,\n&quot;AXES&quot;: [\n{ &quot;name&quot;: &quot;Date &quot;, &quot;type&quot;: 1, &quot;orientation&quot;: 1, &quot;align&quot;: 1, &quot;minx&quot;: 0, &quot;maxx&quot;: 0, &quot;miny&quot;: 0, &quot;maxy&quot;: 0, &quot;smooth&quot;: 0, &quot;groupby&quot;: 0, &quot;visible&quot;: true, &quot;fixed&quot;: false, &quot;log&quot;: false, &quot;minorgrid&quot;: false, &quot;majorgrid&quot;: true, &quot;labelcolor&quot;: &quot;#2684f6&quot;, &quot;axiscolor&quot;: &quot;#2684f6&quot;},\n{ &quot;name&quot;: &quot;kCal &quot;, &quot;type&quot;: 0, &quot;orientation&quot;: 2, &quot;align&quot;: 1, &quot;minx&quot;: 0, &quot;maxx&quot;: 0, &quot;miny&quot;: 0, &quot;maxy&quot;: 0, &quot;smooth&quot;: 0, &quot;groupby&quot;: 0, &quot;visible&quot;: true, &quot;fixed&quot;: false, &quot;log&quot;: false, &quot;minorgrid&quot;: false, &quot;majorgrid&quot;: true, &quot;labelcolor&quot;: &quot;#47d5d5&quot;, &quot;axiscolor&quot;: &quot;#47d5d5&quot;} ]\n}" />
</chart>
<chart id="45" name="" title="Nutrition" >
<property name="title" type="QString" value="Nutrition" />
Expand All @@ -623,7 +635,7 @@
<property name="heightFactor" type="double" value="2" />
<property name="style" type="int" value="0" />
<property name="resizable" type="bool" value="0" />
<property name="settings" type="QString" value="{ &quot;title&quot;: &quot;Macro Nutrient Distribution &quot;,\n&quot;description&quot;: &quot;PRO:sl:/CHO:sl:/FAT as % of Energy intake and relative to body weight (g:sl:/kg) &quot;,\n&quot;type&quot;: 1,\n&quot;animate&quot;: false,\n&quot;intervalrefresh&quot;: false,\n&quot;legendpos&quot;: 3,\n&quot;stack&quot;: false,\n&quot;orientation&quot;: 2,\n&quot;bgcolor&quot;: &quot;#010102&quot;, \n&quot;scale&quot;: 1,\n&quot;SERIES&quot;: [\n{ &quot;name&quot;: &quot;PRO% &quot;, &quot;group&quot;: &quot; &quot;, &quot;xname&quot;: &quot;Date% &quot;, &quot;yname&quot;: &quot;% &quot;, &quot;program&quot;: &quot;{:sl:n finalise {:sl:n xx &lt;- measures(:qu:Nutrition:qu:, :qu:date:qu:);:sl:n yy &lt;- 400*measures(:qu:Nutrition:qu:, :qu:PRO:qu:):sl:/measures(:qu:Nutrition:qu:, :qu:Energy:qu:);:sl:n:sl:n avg &lt;- 400*sum(measures(:qu:Nutrition:qu:, :qu:PRO:qu:)):sl:/sum(measures(:qu:Nutrition:qu:, :qu:Energy:qu:));:sl:n annotate(label, :qu:Avg PRO %:qu:, round(avg));:sl:n }:sl:n:sl:n x { xx; }:sl:n y { yy; }:sl:n}:sl:n &quot;, &quot;line&quot;: 1, &quot;symbol&quot;: 0, &quot;size&quot;: 0, &quot;color&quot;: &quot;#ffff7f&quot;, &quot;opacity&quot;: 1, &quot;legend&quot;: true, &quot;opengl&quot;: true, &quot;datalabels&quot;: false, &quot;aggregate&quot;: 1, &quot;fill&quot;: false},\n{ &quot;name&quot;: &quot;CHO% &quot;, &quot;group&quot;: &quot; &quot;, &quot;xname&quot;: &quot;Date% &quot;, &quot;yname&quot;: &quot;% &quot;, &quot;program&quot;: &quot;{:sl:n finalise {:sl:n xx &lt;- measures(:qu:Nutrition:qu:, :qu:date:qu:);:sl:n yy &lt;- 400*measures(:qu:Nutrition:qu:, :qu:CHO:qu:):sl:/measures(:qu:Nutrition:qu:, :qu:Energy:qu:);:sl:n:sl:n avg &lt;- 400*sum(measures(:qu:Nutrition:qu:, :qu:CHO:qu:)):sl:/sum(measures(:qu:Nutrition:qu:, :qu:Energy:qu:));:sl:n annotate(label, :qu:Avg CHO %:qu:, round(avg));:sl:n }:sl:n:sl:n x { xx; }:sl:n y { yy; }:sl:n}:sl:n &quot;, &quot;line&quot;: 1, &quot;symbol&quot;: 0, &quot;size&quot;: 0, &quot;color&quot;: &quot;#55ff7f&quot;, &quot;opacity&quot;: 1, &quot;legend&quot;: true, &quot;opengl&quot;: true, &quot;datalabels&quot;: false, &quot;aggregate&quot;: 1, &quot;fill&quot;: false},\n{ &quot;name&quot;: &quot;FAT% &quot;, &quot;group&quot;: &quot; &quot;, &quot;xname&quot;: &quot;Date% &quot;, &quot;yname&quot;: &quot;% &quot;, &quot;program&quot;: &quot;{:sl:n finalise {:sl:n xx &lt;- measures(:qu:Nutrition:qu:, :qu:date:qu:);:sl:n yy &lt;- 900*measures(:qu:Nutrition:qu:, :qu:FAT:qu:):sl:/measures(:qu:Nutrition:qu:, :qu:Energy:qu:);:sl:n:sl:n avg &lt;- 900*sum(measures(:qu:Nutrition:qu:, :qu:FAT:qu:)):sl:/sum(measures(:qu:Nutrition:qu:, :qu:Energy:qu:));:sl:n annotate(label, :qu:Avg FAT %:qu:, round(avg));:sl:n }:sl:n:sl:n x { xx; }:sl:n y { yy; }:sl:n} &quot;, &quot;line&quot;: 1, &quot;symbol&quot;: 0, &quot;size&quot;: 0, &quot;color&quot;: &quot;#ffaa7f&quot;, &quot;opacity&quot;: 1, &quot;legend&quot;: true, &quot;opengl&quot;: true, &quot;datalabels&quot;: false, &quot;aggregate&quot;: 1, &quot;fill&quot;: false},\n{ &quot;name&quot;: &quot;PRO &quot;, &quot;group&quot;: &quot; &quot;, &quot;xname&quot;: &quot;Date &quot;, &quot;yname&quot;: &quot;g:sl:/kg &quot;, &quot;program&quot;: &quot;{:sl:n finalise {:sl:n xx &lt;- measures(:qu:Nutrition:qu:, :qu:date:qu:);:sl:n yy &lt;- measures(:qu:Nutrition:qu:, :qu:PRO:qu:):sl:/measures(:qu:Body:qu:, :qu:WEIGHTKG:qu:);:sl:n:sl:n avg &lt;- mean(yy);:sl:n annotate(label, :qu:Avg PRO g:sl:/kg:qu:, round(10*avg):sl:/10);:sl:n }:sl:n:sl:n x { xx; }:sl:n y { yy; }:sl:n}:sl:n &quot;, &quot;line&quot;: 1, &quot;symbol&quot;: 0, &quot;size&quot;: 0, &quot;color&quot;: &quot;#ffff7f&quot;, &quot;opacity&quot;: 1, &quot;legend&quot;: true, &quot;opengl&quot;: true, &quot;datalabels&quot;: false, &quot;aggregate&quot;: 1, &quot;fill&quot;: false},\n{ &quot;name&quot;: &quot;CHO &quot;, &quot;group&quot;: &quot; &quot;, &quot;xname&quot;: &quot;Date &quot;, &quot;yname&quot;: &quot;g:sl:/kg &quot;, &quot;program&quot;: &quot;{:sl:n finalise {:sl:n xx &lt;- measures(:qu:Nutrition:qu:, :qu:date:qu:);:sl:n yy &lt;- measures(:qu:Nutrition:qu:, :qu:CHO:qu:):sl:/measures(:qu:Body:qu:, :qu:WEIGHTKG:qu:);:sl:n:sl:n avg &lt;- mean(yy);:sl:n annotate(label, :qu:Avg CHO g:sl:/kg:qu:, round(10*avg):sl:/10);:sl:n }:sl:n:sl:n x { xx; }:sl:n y { yy; }:sl:n}:sl:n &quot;, &quot;line&quot;: 1, &quot;symbol&quot;: 0, &quot;size&quot;: 0, &quot;color&quot;: &quot;#55ff7f&quot;, &quot;opacity&quot;: 1, &quot;legend&quot;: true, &quot;opengl&quot;: true, &quot;datalabels&quot;: false, &quot;aggregate&quot;: 1, &quot;fill&quot;: false},\n{ &quot;name&quot;: &quot;FAT &quot;, &quot;group&quot;: &quot; &quot;, &quot;xname&quot;: &quot;Date &quot;, &quot;yname&quot;: &quot;g:sl:/kg &quot;, &quot;program&quot;: &quot;{:sl:n finalise {:sl:n xx &lt;- measures(:qu:Nutrition:qu:, :qu:date:qu:);:sl:n yy &lt;- measures(:qu:Nutrition:qu:, :qu:FAT:qu:):sl:/measures(:qu:Body:qu:, :qu:WEIGHTKG:qu:);:sl:n:sl:n avg &lt;- mean(yy);:sl:n annotate(label, :qu:Avg FAT g:sl:/kg:qu:, round(10*avg):sl:/10);:sl:n }:sl:n:sl:n x { xx; }:sl:n y { yy; }:sl:n}:sl:n &quot;, &quot;line&quot;: 1, &quot;symbol&quot;: 0, &quot;size&quot;: 0, &quot;color&quot;: &quot;#ffaa7f&quot;, &quot;opacity&quot;: 1, &quot;legend&quot;: true, &quot;opengl&quot;: true, &quot;datalabels&quot;: false, &quot;aggregate&quot;: 1, &quot;fill&quot;: false} ]\n,\n&quot;AXES&quot;: [\n{ &quot;name&quot;: &quot;Date% &quot;, &quot;type&quot;: 1, &quot;orientation&quot;: 1, &quot;align&quot;: 1, &quot;minx&quot;: 0, &quot;maxx&quot;: 0, &quot;miny&quot;: 0, &quot;maxy&quot;: 0, &quot;smooth&quot;: 0, &quot;groupby&quot;: 0, &quot;visible&quot;: true, &quot;fixed&quot;: false, &quot;log&quot;: false, &quot;minorgrid&quot;: false, &quot;majorgrid&quot;: true, &quot;labelcolor&quot;: &quot;#2684f6&quot;, &quot;axiscolor&quot;: &quot;#2684f6&quot;},\n{ &quot;name&quot;: &quot;% &quot;, &quot;type&quot;: 0, &quot;orientation&quot;: 2, &quot;align&quot;: 1, &quot;minx&quot;: 0, &quot;maxx&quot;: 0, &quot;miny&quot;: 0, &quot;maxy&quot;: 100, &quot;smooth&quot;: 0, &quot;groupby&quot;: 0, &quot;visible&quot;: true, &quot;fixed&quot;: true, &quot;log&quot;: false, &quot;minorgrid&quot;: false, &quot;majorgrid&quot;: true, &quot;labelcolor&quot;: &quot;#ffff7f&quot;, &quot;axiscolor&quot;: &quot;#ffff7f&quot;},\n{ &quot;name&quot;: &quot;Date &quot;, &quot;type&quot;: 1, &quot;orientation&quot;: 1, &quot;align&quot;: 1, &quot;minx&quot;: 0, &quot;maxx&quot;: 0, &quot;miny&quot;: 0, &quot;maxy&quot;: 0, &quot;smooth&quot;: 0, &quot;groupby&quot;: 0, &quot;visible&quot;: true, &quot;fixed&quot;: false, &quot;log&quot;: false, &quot;minorgrid&quot;: false, &quot;majorgrid&quot;: true, &quot;labelcolor&quot;: &quot;#2684f6&quot;, &quot;axiscolor&quot;: &quot;#2684f6&quot;},\n{ &quot;name&quot;: &quot;g:sl:/kg &quot;, &quot;type&quot;: 0, &quot;orientation&quot;: 2, &quot;align&quot;: 1, &quot;minx&quot;: 0, &quot;maxx&quot;: 0, &quot;miny&quot;: 0, &quot;maxy&quot;: 0, &quot;smooth&quot;: 0, &quot;groupby&quot;: 0, &quot;visible&quot;: true, &quot;fixed&quot;: false, &quot;log&quot;: false, &quot;minorgrid&quot;: false, &quot;majorgrid&quot;: true, &quot;labelcolor&quot;: &quot;#ffff7f&quot;, &quot;axiscolor&quot;: &quot;#ffff7f&quot;} ]\n}" />
<property name="settings" type="QString" value="{ &quot;title&quot;: &quot;Macro Nutrient Distribution &quot;,\n&quot;description&quot;: &quot;PRO:sl:/CHO:sl:/FAT as % of Energy intake and relative to body weight (g:sl:/kg) &quot;,\n&quot;type&quot;: 1,\n&quot;animate&quot;: false,\n&quot;intervalrefresh&quot;: false,\n&quot;legendpos&quot;: 3,\n&quot;stack&quot;: false,\n&quot;orientation&quot;: 2,\n&quot;bgcolor&quot;: &quot;#010102&quot;, \n&quot;scale&quot;: 1,\n&quot;SERIES&quot;: [\n{ &quot;name&quot;: &quot;PRO% &quot;, &quot;group&quot;: &quot; &quot;, &quot;xname&quot;: &quot;Date% &quot;, &quot;yname&quot;: &quot;% &quot;, &quot;program&quot;: &quot;{:sl:n finalise {:sl:n xx &lt;- measures(:qu:Nutrition:qu:, :qu:date:qu:);:sl:n yy &lt;- 400*measures(:qu:Nutrition:qu:, :qu:PRO:qu:):sl:/measures(:qu:Nutrition:qu:, :qu:Energy:qu:);:sl:n:sl:n avg &lt;- 400*sum(measures(:qu:Nutrition:qu:, :qu:PRO:qu:)):sl:/sum(measures(:qu:Nutrition:qu:, :qu:Energy:qu:));:sl:n annotate(label, :qu:Avg PRO %:qu:, round(avg));:sl:n }:sl:n:sl:n x { xx; }:sl:n y { yy; }:sl:n}:sl:n &quot;, &quot;line&quot;: 1, &quot;symbol&quot;: 0, &quot;size&quot;: 0, &quot;color&quot;: &quot;#c7c763&quot;, &quot;opacity&quot;: 1, &quot;legend&quot;: true, &quot;opengl&quot;: true, &quot;datalabels&quot;: false, &quot;aggregate&quot;: 1, &quot;fill&quot;: false},\n{ &quot;name&quot;: &quot;CHO% &quot;, &quot;group&quot;: &quot; &quot;, &quot;xname&quot;: &quot;Date% &quot;, &quot;yname&quot;: &quot;% &quot;, &quot;program&quot;: &quot;{:sl:n finalise {:sl:n xx &lt;- measures(:qu:Nutrition:qu:, :qu:date:qu:);:sl:n yy &lt;- 400*measures(:qu:Nutrition:qu:, :qu:CHO:qu:):sl:/measures(:qu:Nutrition:qu:, :qu:Energy:qu:);:sl:n:sl:n avg &lt;- 400*sum(measures(:qu:Nutrition:qu:, :qu:CHO:qu:)):sl:/sum(measures(:qu:Nutrition:qu:, :qu:Energy:qu:));:sl:n annotate(label, :qu:Avg CHO %:qu:, round(avg));:sl:n }:sl:n:sl:n x { xx; }:sl:n y { yy; }:sl:n}:sl:n &quot;, &quot;line&quot;: 1, &quot;symbol&quot;: 0, &quot;size&quot;: 0, &quot;color&quot;: &quot;#46d367&quot;, &quot;opacity&quot;: 1, &quot;legend&quot;: true, &quot;opengl&quot;: true, &quot;datalabels&quot;: false, &quot;aggregate&quot;: 1, &quot;fill&quot;: false},\n{ &quot;name&quot;: &quot;FAT% &quot;, &quot;group&quot;: &quot; &quot;, &quot;xname&quot;: &quot;Date% &quot;, &quot;yname&quot;: &quot;% &quot;, &quot;program&quot;: &quot;{:sl:n finalise {:sl:n xx &lt;- measures(:qu:Nutrition:qu:, :qu:date:qu:);:sl:n yy &lt;- 900*measures(:qu:Nutrition:qu:, :qu:FAT:qu:):sl:/measures(:qu:Nutrition:qu:, :qu:Energy:qu:);:sl:n:sl:n avg &lt;- 900*sum(measures(:qu:Nutrition:qu:, :qu:FAT:qu:)):sl:/sum(measures(:qu:Nutrition:qu:, :qu:Energy:qu:));:sl:n annotate(label, :qu:Avg FAT %:qu:, round(avg));:sl:n }:sl:n:sl:n x { xx; }:sl:n y { yy; }:sl:n} &quot;, &quot;line&quot;: 1, &quot;symbol&quot;: 0, &quot;size&quot;: 0, &quot;color&quot;: &quot;#ffaa7f&quot;, &quot;opacity&quot;: 1, &quot;legend&quot;: true, &quot;opengl&quot;: true, &quot;datalabels&quot;: false, &quot;aggregate&quot;: 1, &quot;fill&quot;: false},\n{ &quot;name&quot;: &quot;PRO &quot;, &quot;group&quot;: &quot; &quot;, &quot;xname&quot;: &quot;Date &quot;, &quot;yname&quot;: &quot;g:sl:/kg &quot;, &quot;program&quot;: &quot;{:sl:n finalise {:sl:n xx &lt;- measures(:qu:Nutrition:qu:, :qu:date:qu:);:sl:n yy &lt;- measures(:qu:Nutrition:qu:, :qu:PRO:qu:):sl:/measures(:qu:Body:qu:, :qu:WEIGHTKG:qu:);:sl:n:sl:n avg &lt;- mean(yy);:sl:n annotate(label, :qu:Avg PRO g:sl:/kg:qu:, round(10*avg):sl:/10);:sl:n }:sl:n:sl:n x { xx; }:sl:n y { yy; }:sl:n}:sl:n &quot;, &quot;line&quot;: 1, &quot;symbol&quot;: 0, &quot;size&quot;: 0, &quot;color&quot;: &quot;#c7c763&quot;, &quot;opacity&quot;: 1, &quot;legend&quot;: true, &quot;opengl&quot;: true, &quot;datalabels&quot;: false, &quot;aggregate&quot;: 1, &quot;fill&quot;: false},\n{ &quot;name&quot;: &quot;CHO &quot;, &quot;group&quot;: &quot; &quot;, &quot;xname&quot;: &quot;Date &quot;, &quot;yname&quot;: &quot;g:sl:/kg &quot;, &quot;program&quot;: &quot;{:sl:n finalise {:sl:n xx &lt;- measures(:qu:Nutrition:qu:, :qu:date:qu:);:sl:n yy &lt;- measures(:qu:Nutrition:qu:, :qu:CHO:qu:):sl:/measures(:qu:Body:qu:, :qu:WEIGHTKG:qu:);:sl:n:sl:n avg &lt;- mean(yy);:sl:n annotate(label, :qu:Avg CHO g:sl:/kg:qu:, round(10*avg):sl:/10);:sl:n }:sl:n:sl:n x { xx; }:sl:n y { yy; }:sl:n}:sl:n &quot;, &quot;line&quot;: 1, &quot;symbol&quot;: 0, &quot;size&quot;: 0, &quot;color&quot;: &quot;#46d367&quot;, &quot;opacity&quot;: 1, &quot;legend&quot;: true, &quot;opengl&quot;: true, &quot;datalabels&quot;: false, &quot;aggregate&quot;: 1, &quot;fill&quot;: false},\n{ &quot;name&quot;: &quot;FAT &quot;, &quot;group&quot;: &quot; &quot;, &quot;xname&quot;: &quot;Date &quot;, &quot;yname&quot;: &quot;g:sl:/kg &quot;, &quot;program&quot;: &quot;{:sl:n finalise {:sl:n xx &lt;- measures(:qu:Nutrition:qu:, :qu:date:qu:);:sl:n yy &lt;- measures(:qu:Nutrition:qu:, :qu:FAT:qu:):sl:/measures(:qu:Body:qu:, :qu:WEIGHTKG:qu:);:sl:n:sl:n avg &lt;- mean(yy);:sl:n annotate(label, :qu:Avg FAT g:sl:/kg:qu:, round(10*avg):sl:/10);:sl:n }:sl:n:sl:n x { xx; }:sl:n y { yy; }:sl:n}:sl:n &quot;, &quot;line&quot;: 1, &quot;symbol&quot;: 0, &quot;size&quot;: 0, &quot;color&quot;: &quot;#ffaa7f&quot;, &quot;opacity&quot;: 1, &quot;legend&quot;: true, &quot;opengl&quot;: true, &quot;datalabels&quot;: false, &quot;aggregate&quot;: 1, &quot;fill&quot;: false} ]\n,\n&quot;AXES&quot;: [\n{ &quot;name&quot;: &quot;Date% &quot;, &quot;type&quot;: 1, &quot;orientation&quot;: 1, &quot;align&quot;: 1, &quot;minx&quot;: 0, &quot;maxx&quot;: 0, &quot;miny&quot;: 0, &quot;maxy&quot;: 0, &quot;smooth&quot;: 0, &quot;groupby&quot;: 0, &quot;visible&quot;: true, &quot;fixed&quot;: false, &quot;log&quot;: false, &quot;minorgrid&quot;: false, &quot;majorgrid&quot;: true, &quot;labelcolor&quot;: &quot;#2684f6&quot;, &quot;axiscolor&quot;: &quot;#2684f6&quot;},\n{ &quot;name&quot;: &quot;% &quot;, &quot;type&quot;: 0, &quot;orientation&quot;: 2, &quot;align&quot;: 1, &quot;minx&quot;: 0, &quot;maxx&quot;: 0, &quot;miny&quot;: 0, &quot;maxy&quot;: 100, &quot;smooth&quot;: 0, &quot;groupby&quot;: 0, &quot;visible&quot;: true, &quot;fixed&quot;: true, &quot;log&quot;: false, &quot;minorgrid&quot;: false, &quot;majorgrid&quot;: true, &quot;labelcolor&quot;: &quot;#c7c763&quot;, &quot;axiscolor&quot;: &quot;#c7c763&quot;},\n{ &quot;name&quot;: &quot;Date &quot;, &quot;type&quot;: 1, &quot;orientation&quot;: 1, &quot;align&quot;: 1, &quot;minx&quot;: 0, &quot;maxx&quot;: 0, &quot;miny&quot;: 0, &quot;maxy&quot;: 0, &quot;smooth&quot;: 0, &quot;groupby&quot;: 0, &quot;visible&quot;: true, &quot;fixed&quot;: false, &quot;log&quot;: false, &quot;minorgrid&quot;: false, &quot;majorgrid&quot;: true, &quot;labelcolor&quot;: &quot;#2684f6&quot;, &quot;axiscolor&quot;: &quot;#2684f6&quot;},\n{ &quot;name&quot;: &quot;g:sl:/kg &quot;, &quot;type&quot;: 0, &quot;orientation&quot;: 2, &quot;align&quot;: 1, &quot;minx&quot;: 0, &quot;maxx&quot;: 0, &quot;miny&quot;: 0, &quot;maxy&quot;: 0, &quot;smooth&quot;: 0, &quot;groupby&quot;: 0, &quot;visible&quot;: true, &quot;fixed&quot;: false, &quot;log&quot;: false, &quot;minorgrid&quot;: false, &quot;majorgrid&quot;: true, &quot;labelcolor&quot;: &quot;#c7c763&quot;, &quot;axiscolor&quot;: &quot;#c7c763&quot;} ]\n}" />
</chart>
</layout>
</layouts>