diff --git a/.gitignore b/.gitignore index e636b806..246f2203 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ report/.ipynb_checkpoints/ *.kdev4 .kdev4/ .vscode/ +report/report-env +report/ \ No newline at end of file diff --git a/app/conf/joystick_trigger_8bitdo.ini b/app/conf/joystick_trigger_8bitdo.ini index 94ad5b78..4dfbafaa 100644 --- a/app/conf/joystick_trigger_8bitdo.ini +++ b/app/conf/joystick_trigger_8bitdo.ini @@ -20,7 +20,7 @@ Ax0 cartesian_xyz 0 //Important: you can execute only one-word commands or scripts [BUTTONS_EXECUTE] -button5 /usr/local/src/robot/assistive-rehab/app/scripts/speech_trigger.sh +button4 /usr/local/src/robot/assistive-rehab/app/scripts/speech_trigger.sh // **** Buttons **** // button0 A diff --git a/app/scripts/AssistiveRehab-TUG_manual_mode.xml b/app/scripts/AssistiveRehab-TUG_manual_mode.xml new file mode 100644 index 00000000..9b2b5f32 --- /dev/null +++ b/app/scripts/AssistiveRehab-TUG_manual_mode.xml @@ -0,0 +1,540 @@ + +Assistive Rehabilitation TUG Manual App + + yarpdev + --device AudioRecorderWrapper --subdevice portaudioRecorder --name /microphone --min_samples_over_network 4000 --max_samples_over_network 4000 --AUDIO_BASE::channels 1 --AUDIO_BASE::samples 16000 --AUDIO_BASE::rate 16000 + r1-torso + + + + yarpdev + --device speech --lingware-context speech --default-language it-IT --robot r1 --pitch 80 --speed 110 + r1-face + + + + iSpeak + --package speech-dev + r1-face + + + + yarpdev + --device faceDisplayServer + r1-face + + + + faceExpressionImage + r1-face + + + + googleSpeech + --language_code it-IT + container-speech + + + + googleSpeechProcess + container-speech + + + + yarprobotinterface + --context AssistiveRehab --config realsense2_remote_etapas_l515.xml + r1-torso + + + + yarprobotinterface + --config /home/user1/tour-guide-robot/app/navigation2/conf/robotInterface/realsenseRepeater.xml + container-openpose + + + + yarpOpenPose + --context openPoseStuff --from yarpOpenPose_1p7.ini + container-openpose + + + + joystickCtrl + --context AssistiveRehab --from jostick_trigger_8bitdo.ini + container-console + + + + objectsPropertiesCollector + --name opc --no-load-db --no-save-db --sync-bc 0.1 + container-console + + + + skeletonViewer + --x 1120 --y 10 --show-floor on --camera-viewup '(1.0 0.0 0.0)' --camera-position '(-4.0 -2.0 8.0)' --camera-focalpoint '(0.0 -2.0 0.0)' --grid-resolution '(100 100)' + container-console + + + + lineDetector + --camera::remote /cer/realsense_repeater + container-console + + + + skeletonRetriever + --camera::fov "(43 70)" --depth::enable true --depth::kernel-size 8 --depth::iterations 1 --depth::min-distance 0.5 --depth::max-distance 6.0 --filter-keypoint-order 8 + container-console + + + + skeletonLocker + + container-console + + + + robotSkeletonPublisher + --robot cer + container-console + + + + attentionManager + --frame world + container-console + + + + motionAnalyzer + + container-console + + + + managerTUG + --lock false --max-timeout 30.0 --engage-azimuth "(50.0 160.0)" --starting-pose "(2 -4.0 110.0)" + container-console + + + + cer_gaze-controller + --cameras::file /projects/cer/build/share/CER/contexts/cameraCalibration/cerEyes_480x640.ini + container-console + + + + navController + --velocity-angular-saturation 15.0 --distance-target 1.8 + container-console + + + + obstacleDetector + --robot cer --dist-obstacle 0.6 + container-console + + + + ctpService + --robot cer --part right_arm + container-console + + + + ctpService + --robot cer --part left_arm + container-console + + + + eventCollector + + container-console + + + + yarpview + --name /viewer/depth --x 10 --y 40 --p 50 + container-console + + + + yarpview + --name /viewer/depth2 --x 10 --y 40 --p 50 + container-console + + + + yarpview + --name /viewer/skeleton --x 380 --y 40 --p 50 + container-console + + + + yarpview + --name /viewer/line --x 770 --y 40 --p 50 + container-console + + + + yarpview + --name /viewer/obstacles --w 400 --h 400 --p 50 --compact + container-console + + + + yarpscope + --context AssistiveRehab --xml motionAnalyzer-scope.xml + container-console + + + + /joystickCtrl:o + /baseControl/input/joystick:i + tcp+recv.portmonitor+type.dll+file.joy2vel + + + + /iSpeak/speech-dev/rpc + /r1/speech:rpc + fast_tcp + + + + /iSpeak/r1:rpc + /faceExpressionImage/rpc + fast_tcp + + + + /faceExpressionImage/image:o + /robot/faceDisplay/image:i + fast_tcp + + + + /iSpeak/speech-dev/rpc + /r1/speech:rpc + fast_tcp + + + + /iSpeak/r1:rpc + /faceExpressionImage/rpc + fast_tcp + > + + + /cer/realsense_repeater/rgbImage:o + /yarpOpenPose/image:i + fast_tcp+send.portmonitor+type.dll+file.image_rotation+options_rotate.rotate_cw + + + + /cer/realsense_repeater/depthImage:o + /yarpOpenPose/float:i + fast_tcp+send.portmonitor+type.dll+file.image_rotation_d+options_rotate.rotate_cw + + + + /yarpOpenPose/float:o + /skeletonRetriever/depth:i + fast_tcp + + + + /yarpOpenPose/target:o + /skeletonRetriever/skeletons:i + fast_tcp + + + + /skeletonRetriever/opc:rpc + /opc/rpc + fast_tcp + + + + /managerTUG/opc:rpc + /opc/rpc + fast_tcp + + + + /cer_gaze-controller/state:o + /skeletonRetriever/gaze:i + fast_tcp + + + + /navController/state:o + /skeletonRetriever/nav:i + fast_tcp + + + + /opc/broadcast:o + /skeletonLocker/opc:i + fast_tcp + + + + /skeletonLocker/opc:rpc + /opc/rpc + fast_tcp + + + + /opc/broadcast:o + /attentionManager/opc:i + fast_tcp + + + + /attentionManager/gaze/cmd:rpc + /cer_gaze-controller/rpc + fast_tcp + + + + /cer_gaze-controller/state:o + /attentionManager/gaze/state:i + fast_tcp + + + + /cer/realsense_repeater/rgbImage:o + /lineDetector/img:i + fast_tcp+send.portmonitor+type.dll+file.image_rotation+options_rotate.rotate_cw + + + + /cer_gaze-controller/state:o + /lineDetector/gaze/state:i + fast_tcp + + + + /lineDetector/opc:rpc + /opc/rpc + fast_tcp + + + + /lineDetector/nav:rpc + /navController/rpc + fast_tcp + + + + /lineDetector/viewer:rpc + /skeletonViewer:rpc + fast_tcp + + + + /motionAnalyzer/opc + /opc/rpc + fast_tcp + + + + /yarpOpenPose/float:o + /viewer/depth + fast_tcp+recv.portmonitor+type.dll+file.depthimage_to_mono + + + + /skeletonRetriever/depth:o + /viewer/depth2 + fast_tcp+recv.portmonitor+type.dll+file.depthimage_to_mono + + + + /lineDetector/img:o + /viewer/line + mjpeg + + + + /yarpOpenPose/image:o + /viewer/skeleton + mjpeg + + + + /robotSkeletonPublisher/opc:rpc + /opc/rpc + fast_tcp + + + + /navController/state:o + /robotSkeletonPublisher/nav:i + fast_tcp + + + + /robotSkeletonPublisher/viewer:o + /skeletonViewer:i + fast_tcp + + + + /skeletonLocker/viewer:o + /skeletonViewer:i + fast_tcp + + + + /skeletonRetriever/viewer:o + /skeletonViewer:i + fast_tcp + + + + /opc/broadcast:o + /navController/opc:i + fast_tcp + + + + /managerTUG/attention:rpc + /attentionManager/cmd:rpc + fast_tcp + + + + /managerTUG/analyzer:rpc + /motionAnalyzer/cmd + fast_tcp + + + + /motionAnalyzer/nav:cmd + /navController/rpc + fast_tcp + + + + /managerTUG/speech:o + /iSpeak + fast_tcp + + + + /managerTUG/speech:rpc + /iSpeak/rpc + fast_tcp + + + + /microphone/audio:o + /googleSpeech/sound:i + fast_tcp + + + + /googleSpeech/commands:rpc + /microphone/rpc + fast_tcp + + + + /googleSpeech/result:o + /googleSpeechProcess/text:i + fast_tcp + + + + /managerTUG/navigation:rpc + /navController/rpc + fast_tcp + + + + /managerTUG/locker:rpc + /skeletonLocker/rpc + fast_tcp + + + + /googleSpeechProcess/result:o + /managerTUG/answer:i + fast_tcp + + + + /opc/broadcast:o + /managerTUG/opc:i + fast_tcp + + + + /managerTUG/trigger:rpc + /googleSpeech/rpc + fast_tcp + + + + /managerTUG/left_arm:rpc + /ctpservice/left_arm/rpc + fast_tcp + + + + /managerTUG/right_arm:rpc + /ctpservice/right_arm/rpc + fast_tcp + + + + /managerTUG/collector:rpc + /eventCollector/cmd + fast_tcp + + + + /obstacleDetector/obstacle:o + /managerTUG/obstacle:i + fast_tcp + + + + /obstacleDetector/nav:rpc + /navController/rpc + fast_tcp + + + + /obstacleDetector/viewer:o + /viewer/obstacles + mjpeg + + + + /googleSpeech/status:o + /eventCollector/speech:i + fast_tcp + + + + /googleSpeechProcess/status:o + /eventCollector/speech-process:i + fast_tcp + + + + /obstacleDetector/obstacle:o + /eventCollector/obstacle:i + fast_tcp + + + + /managerTUG/skeletonError:o + /eventCollector/skeleton:i + fast_tcp + + diff --git a/app/scripts/AssistiveRehab-dumpers-real.xml b/app/scripts/AssistiveRehab-dumpers-real.xml index ad9736c4..9631a974 100644 --- a/app/scripts/AssistiveRehab-dumpers-real.xml +++ b/app/scripts/AssistiveRehab-dumpers-real.xml @@ -94,11 +94,11 @@ Connection Camera - + /cer/realsense_repeater/depthImage:o diff --git a/app/scripts/AssistiveRehab-replay.xml b/app/scripts/AssistiveRehab-replay.xml index e02f1c52..bd950693 100644 --- a/app/scripts/AssistiveRehab-replay.xml +++ b/app/scripts/AssistiveRehab-replay.xml @@ -9,7 +9,7 @@ skeletonRetriever - --camera::fov "(86 57)" --depth::enable false --depth::kernel-size 3 --depth::iterations 1 --depth::min-distance 0.5 --depth::max-distance 6.0 --filter-keypoint-order 4 + --camera::fov "(43 55)" --depth::enable false --depth::kernel-size 3 --depth::iterations 1 --depth::min-distance 0.5 --depth::max-distance 6.0 --filter-keypoint-order 4 /opc/rpc @@ -24,7 +24,7 @@ navController - --velocity-angular-saturation 15.0 --distance-target 2.5 + --velocity-angular-saturation 15.0 --distance-target 2.5 --offline_mode 1 --no_odom_data 1 container @@ -59,7 +59,7 @@ - /yarpOpenPose/float:o + /cer/realsense_repeater/depthImage:o /skeletonRetriever/depth:i fast_tcp @@ -77,13 +77,13 @@ - /yarpOpenPose/float:o + /cer/realsense_repeater/depthImage:o /viewer/depth fast_tcp+recv.portmonitor+type.dll+file.depthimage_to_mono - /yarpOpenPose/image:o + /cer/realsense_repeater/rgbImage:o /viewer/skeleton mjpeg diff --git a/docker/compose/docker-compose-replay.yml b/docker/compose/docker-compose-replay.yml index 898fcd68..ab0ab893 100644 --- a/docker/compose/docker-compose-replay.yml +++ b/docker/compose/docker-compose-replay.yml @@ -32,8 +32,8 @@ x-fdg-basic: &fdg-basic - "/tmp/.X11-unix:/tmp/.X11-unix" - "${XAUTHORITY}:/root/.Xauthority" - "${HOME}/.config/yarp:/root/.config/yarp" - - "${HOME}/skld:/root/skeletonDumper" - - "${HOME}/etapas-results/motion-analysis:/root/.local/share/yarp/contexts/motionAnalyzer" #for saving the results from motionAnalyzer + - "${HOME}/dev_iit/assistive-rehab/data_exp/:/root/skeletonDumper" + - "${HOME}/dev_iit/assistive-rehab/data_exp/file_mat:/root/.local/share/yarp/contexts/motionAnalyzer" #for saving the results from motionAnalyzer network_mode: "host" privileged: true diff --git a/modules/CMakeLists.txt b/modules/CMakeLists.txt index 254693a9..543ce046 100644 --- a/modules/CMakeLists.txt +++ b/modules/CMakeLists.txt @@ -2,7 +2,8 @@ # All Rights Reserved. # Authors: Ugo Pattacini -add_subdirectory(lineDetector_new) +#add_subdirectory(lineDetector_new) +add_subdirectory(lineDetector) add_subdirectory(motionAnalyzer) add_subdirectory(skeletonViewer) add_subdirectory(skeletonRetriever) diff --git a/modules/attentionManager/src/main.cpp b/modules/attentionManager/src/main.cpp index bfc54fcc..003c9342 100644 --- a/modules/attentionManager/src/main.cpp +++ b/modules/attentionManager/src/main.cpp @@ -236,14 +236,14 @@ class Attention : public RFModule, public attentionManager_IDL (*s)[KeyPointTag::hand_left]->isUpdated()) { if (k*(((*s)[KeyPointTag::elbow_left]->getPoint()[dir]- - (*s)[KeyPointTag::hand_left]->getPoint()[dir]))>0) + (*s)[KeyPointTag::hand_left]->getPoint()[dir]))>0.15) return true; } if ((*s)[KeyPointTag::elbow_right]->isUpdated() && (*s)[KeyPointTag::hand_right]->isUpdated()) { if (k*(((*s)[KeyPointTag::elbow_right]->getPoint()[dir]- - (*s)[KeyPointTag::hand_right]->getPoint()[dir]))>0) + (*s)[KeyPointTag::hand_right]->getPoint()[dir]))>0.15) return true; } return false; @@ -361,15 +361,18 @@ class Attention : public RFModule, public attentionManager_IDL /****************************************************************/ bool set_gaze_T(const double T) const { - Bottle cmd,rep; - cmd.addVocab32("set"); - cmd.addString("T"); - cmd.addFloat64(T); - if (gazeCmdPort.write(cmd,rep)) - { - return (rep.get(0).asVocab32()==ack); - } - return false; + //TODO: temporary hack to fix the gaze + // Bottle cmd,rep; + // cmd.addVocab32("set"); + // cmd.addString("T"); + // cmd.addFloat64(T); + // if (gazeCmdPort.write(cmd,rep)) + // { + // return (rep.get(0).asVocab32()==ack); + // } + // return false; + + return true; } /****************************************************************/ @@ -389,41 +392,44 @@ class Attention : public RFModule, public attentionManager_IDL } options.put("target-location",loc.get(0)); - Bottle cmd,rep; - cmd.addVocab32("look"); - cmd.addList().read(options); - if (gazeCmdPort.write(cmd,rep)) - { - return (rep.get(0).asVocab32()==ack); - } - return false; + //TODO: fbrand temporary hack to fix the gaze + // Bottle cmd,rep; + // cmd.addVocab32("look"); + // cmd.addList().read(options); + // if (gazeCmdPort.write(cmd,rep)) + // { + // return (rep.get(0).asVocab32()==ack); + // } + // return false; + return true; } /****************************************************************/ bool wait_motion_done() { - Bottle cmd; - cmd.addVocab32("get"); - cmd.addVocab32("done"); - - const double t0=Time::now(); - while (Time::now()-t00) - { - return true; - } - } - } - } - return false; + // Bottle cmd; + // cmd.addVocab32("get"); + // cmd.addVocab32("done"); + + // const double t0=Time::now(); + // while (Time::now()-t00) + // { + // return true; + // } + // } + // } + // } + // return false; + return true; } /****************************************************************/ diff --git a/modules/eventCollector/src/collector.cpp b/modules/eventCollector/src/collector.cpp index 110622a5..9af1fdfe 100644 --- a/modules/eventCollector/src/collector.cpp +++ b/modules/eventCollector/src/collector.cpp @@ -55,6 +55,7 @@ class Collector : public RFModule, public eventCollector_IDL RpcServer rpcPort; BufferedPort googleSpeechPort; BufferedPort googleProcessPort; + BufferedPort skeletonPort; BufferedPort obstacleDetectorPort; //vector speech_events; //vector speech_process_events; @@ -63,6 +64,7 @@ class Collector : public RFModule, public eventCollector_IDL Json::Value jsonTrialInstance; Json::Value jsonNavErrorMessage; Json::Value jsonSpeechErrorMessage; + Json::Value jsonSkeletonErrorMessage; bool started; bool got_speech; mutex mtx; @@ -94,6 +96,7 @@ class Collector : public RFModule, public eventCollector_IDL googleSpeechPort.open(("/" + getName() + "/speech:i").c_str()); googleProcessPort.open(("/" + getName() + "/speech-process:i").c_str()); obstacleDetectorPort.open(("/" + getName() + "/obstacle:i").c_str()); + skeletonPort.open(("/" + getName() + "/skeleton:i").c_str()); rpcPort.open(("/" + getName() + "/cmd").c_str()); attach(rpcPort); @@ -115,6 +118,7 @@ class Collector : public RFModule, public eventCollector_IDL googleSpeechPort.interrupt(); googleProcessPort.interrupt(); obstacleDetectorPort.interrupt(); + skeletonPort.interrupt(); rpcPort.interrupt(); yInfo() << "Interrupted module"; return true; @@ -130,6 +134,7 @@ class Collector : public RFModule, public eventCollector_IDL googleSpeechPort.close(); googleProcessPort.close(); obstacleDetectorPort.close(); + skeletonPort.close(); rpcPort.close(); yInfo() << "Closed ports"; return true; @@ -154,13 +159,14 @@ class Collector : public RFModule, public eventCollector_IDL Bottle *speech=googleSpeechPort.read(false); Bottle *speech_process=googleProcessPort.read(false); Bottle *obstacle = obstacleDetectorPort.read(false); - + Bottle *skeleton = skeletonPort.read(false); if (speech) { if (speech->size()>0) { if (got_speech) // this means we got a speech bottle after another speechBottle, something went wrong { + yDebug() << "inside got_speech"; // in this situation, we save first the previous instance jsonSpeechErrorMessage["google-speech-process"]="no google-speech-processing triggered"; @@ -199,6 +205,7 @@ class Collector : public RFModule, public eventCollector_IDL jsonSpeechErrorMessage["google-speech-process"]=content; jsonTrialInstance["Speech"]["error-messages"].append(jsonSpeechErrorMessage); + yDebug() << "jsonTrial1" << jsonTrialInstance["Speech"]["error-messages"][0]; got_speech=false; } } @@ -218,6 +225,23 @@ class Collector : public RFModule, public eventCollector_IDL } } + if(skeleton) + { + yDebug()<<"inside skeleton"; + if(skeleton->size()>0) + { + yDebug()<<"skeleton bottle:" << skeleton->toString(); + string content="skeleton-misdetection:" + skeleton->get(0).asString(); + yDebug()<<"content:"< laser_adverb; std::vector engage_distance,engage_azimuth; double _exercise_timeout; + double _questions_timeout; + double _raising_hand_timeout; const int ok=Vocab32::encode("ok"); const int fail=Vocab32::encode("fail"); @@ -71,7 +73,7 @@ class Manager : public yarp::os::RFModule, public managerTUG_IDL assess_standing, assess_crossing, line_crossed, - engaged, point_start, + engaged, rotate_to_point_start, point_start, explain, point_line, reach_line, questions, @@ -94,10 +96,14 @@ class Manager : public yarp::os::RFModule, public managerTUG_IDL bool start_ex,ok_go,connected,params_set; std::string success_status; bool test_finished; + bool m_complete; //Decides whether the exercise loop should be complete or shorten it. + std::string m_name; //Name of the person to pass during start Vector finishline_pose; + Vector startline_pose; double line_length; bool world_configured; + bool has_started_interaction; //ports RpcClient analyzerPort; @@ -113,7 +119,9 @@ class Manager : public yarp::os::RFModule, public managerTUG_IDL RpcClient triggerPort; RpcClient gazeboPort; RpcClient collectorPort; + RpcClient opcRpcPort; BufferedPort obstaclePort; + BufferedPort skeletonErrorPort; std::unique_ptr answer_manager; std::unique_ptr hand_manager; @@ -151,7 +159,7 @@ class Manager : public yarp::os::RFModule, public managerTUG_IDL bool remove_locked(); - bool start() override; + bool start(const bool complete=true, const std::string& name="") override; bool trigger() override; @@ -191,9 +199,11 @@ class Manager : public yarp::os::RFModule, public managerTUG_IDL bool opcRead(const std::string &t, Property &prop, const std::string &tval=""); - bool hasLine(Property &prop); + bool hasLine(Property &prop, std::string line); - bool getWorld(const Property &prop); + bool getWorld(const Property &prop_finish_line, const Property &prop_start_line); + + bool opcRpcDel(); bool findLocked(std::string &t); @@ -202,4 +212,8 @@ class Manager : public yarp::os::RFModule, public managerTUG_IDL bool close() override; void confirmWithRaisedHand(State next_state); + + Vector getRobotLocation(); + + double getAngleToStartLine(Vector robot_location); }; diff --git a/modules/managerTUG/src/Manager.cpp b/modules/managerTUG/src/Manager.cpp index 40a4f5f7..6dc36d21 100644 --- a/modules/managerTUG/src/Manager.cpp +++ b/modules/managerTUG/src/Manager.cpp @@ -239,6 +239,7 @@ bool Manager::disengage() { bool ret=false; ok_go=false; + has_started_interaction=false; answer_manager->suspend(); obstacle_manager->suspend(); for (auto it=speak_map.begin(); it!=speak_map.end(); it++) @@ -246,6 +247,7 @@ bool Manager::disengage() string key=it->first; speak_count_map[key]=0; } + Time::delay(5); //5 seconds delay before disengaging to gather better data send_stop(analyzerPort); if (simulation) { @@ -296,15 +298,16 @@ void Manager::resume_animation() bool Manager::go_to(const Vector &target, const bool &wait) { - Bottle cmd,rep; - if (wait) - cmd.addString("go_to_wait"); - else - cmd.addString("go_to_dontwait"); - cmd.addFloat64(target[0]); - cmd.addFloat64(target[1]); - cmd.addFloat64(target[2]); - // TODO[fbrand]: this is a temporary hack to disallow movements + //TODO: temporary hack to disallow movements + // Bottle cmd,rep; + // if (wait) + // cmd.addString("go_to_wait"); + // else + // cmd.addString("go_to_dontwait"); + // cmd.addFloat64(target[0]); + // cmd.addFloat64(target[1]); + // cmd.addFloat64(target[2]); + // // TODO[fbrand]: this is a temporary hack to disallow movements // if (navigationPort.write(cmd,rep)) // { // if (rep.get(0).asVocab32()==ok) @@ -313,7 +316,7 @@ bool Manager::go_to(const Vector &target, const bool &wait) // } // } return true; -} +} bool Manager::remove_locked() @@ -332,7 +335,7 @@ bool Manager::remove_locked() } -bool Manager::start() +bool Manager::start(const bool complete, const std::string& name) { lock_guard lg(mtx); if (!connected) @@ -374,6 +377,8 @@ bool Manager::start() success_status="not_passed"; test_finished=false; obstacle_manager->wakeUp(); + m_complete = complete; + m_name = name; return start_ex; } @@ -459,6 +464,8 @@ bool Manager::configure(ResourceFinder &rf) module_name=rf.check("name",Value("managerTUG")).asString(); period=rf.check("period",Value(0.1)).asFloat64(); _exercise_timeout = rf.check("exercise-timeout",Value(15)).asFloat64(); + _questions_timeout = rf.check("questions-timeout",Value(15)).asFloat64(); + _raising_hand_timeout = rf.check("raising-hand-timeout",Value(20)).asFloat64(); speak_file=rf.check("speak-file",Value("speak-it")).asString(); arm_thresh=rf.check("arm-thresh",Value(0.6)).asFloat64(); detect_hand_up=rf.check("detect-hand-up",Value(false)).asBool(); @@ -567,6 +574,7 @@ bool Manager::configure(ResourceFinder &rf) collectorPort.open("/"+module_name+"/collector:rpc"); cmdPort.open("/"+module_name+"/cmd:rpc"); opcPort.open("/"+module_name+"/opc:i"); + opcRpcPort.open("/"+module_name+"/opc:rpc"); if (lock) { lockerPort.open("/"+module_name+"/locker:rpc"); @@ -577,6 +585,7 @@ bool Manager::configure(ResourceFinder &rf) gazeboPort.open("/"+module_name+"/gazebo:rpc"); } obstaclePort.open("/"+module_name+"/obstacle:i"); + skeletonErrorPort.open("/"+module_name+"/skeletonError:o"); attach(cmdPort); @@ -590,6 +599,7 @@ bool Manager::configure(ResourceFinder &rf) if(detect_hand_up) { + yDebug() << " hand manager started"; hand_manager = std::make_unique(module_name,arm_thresh); if (!hand_manager->start()) { @@ -627,6 +637,7 @@ bool Manager::configure(ResourceFinder &rf) params_set=false; reinforce_obstacle_cnt=0; t0=tstart=Time::now(); + has_started_interaction = false; return true; } @@ -672,13 +683,15 @@ bool Manager::updateModule() } connected=true; - //get finish line - Property l; - if (hasLine(l)) + //get lines + Property finish_line; + Property start_line; + + if (hasLine(finish_line, "finish-line") && hasLine(start_line,"start-line")) { if (!world_configured) { - getWorld(l); + getWorld(finish_line,start_line); } } else @@ -828,6 +841,7 @@ bool Manager::updateModule() { yCDebugOnce(MANAGERTUG) << "Entering State::idle"; prev_state=state; + _was_person_out_of_bounds = false; if (Time::now()-t0>10.0) { if (lock) @@ -855,7 +869,13 @@ bool Manager::updateModule() analyzerPort.write(cmd,rep); Speech s("disengaged"); speak(s); + + //send an error to the event collector + Bottle &skel_err_bot = skeletonErrorPort.prepare(); + skel_err_bot.addString(tag); + skeletonErrorPort.write(); disengage(); + return true; } } @@ -882,7 +902,7 @@ bool Manager::updateModule() if (state==State::seek_locked) { - yCDebugOnce(MANAGERTUG) << "Entering State::seek_skeleton"; + yCDebugOnce(MANAGERTUG) << "Entering State::seek_locked"; prev_state=state; if (findLocked(follow_tag) && is_follow_tag_ahead) { @@ -904,6 +924,28 @@ bool Manager::updateModule() { yCDebugOnce(MANAGERTUG) << "Entering State::follow"; prev_state=state; + answer_manager->wakeUp(); + Bottle cmd, cmd2, reply, reply2; + cmd.addString("setFinishLinePose"); + cmd.addList().read(finishline_pose); + cmd2.addString("setStartLinePose"); + cmd2.addList().read(startline_pose); + + if(analyzerPort.write(cmd, reply) && analyzerPort.write(cmd2,reply2)) + { + yCInfo(MANAGERTUG) << "Set finish line to motionAnalyzer"; + if (set_analyzer_param("loadExercise", "tug") && + set_analyzer_param("selectMetric", "step_0") && + set_analyzer_param("selectMetricProp", "step_distance") && + set_analyzer_param("selectSkel", tag)) + { + if(obstacle_manager->hasObstacle()) + { + state = State::obstacle ; + } + reinforce_obstacle_cnt=0; + } + } if (simulation) { vector> p; @@ -922,7 +964,20 @@ bool Manager::updateModule() } else { - confirmWithRaisedHand(State::engaged); + if(!m_complete) + { + if(!has_started_interaction) + { + start_interaction(); + has_started_interaction = true; + } + confirmWithRaisedHand(State::starting); + } + else + { + confirmWithRaisedHand(State::rotate_to_point_start); + } + } } @@ -930,27 +985,56 @@ bool Manager::updateModule() { yCDebugOnce(MANAGERTUG) << "Entering State::engaged"; prev_state = state; - answer_manager->wakeUp(); - Bottle cmd, reply; - cmd.addString("setLinePose"); - cmd.addList().read(finishline_pose); - if(analyzerPort.write(cmd, reply)) + } + + + if(state == State::rotate_to_point_start) + { + yCDebugOnce(MANAGERTUG) << "Entering state rotate_to_point_start"; + prev_state = state; + bool navigating=true; + Bottle cmd,rep; + cmd.addString("is_navigating"); + //TODO: fbrand temporary hack to disallow movements + if (true || navigationPort.write(cmd,rep)) { - yCInfo(MANAGERTUG) << "Set finish line to motionAnalyzer"; - if (set_analyzer_param("loadExercise", "tug") && - set_analyzer_param("selectMetric", "step_0") && - set_analyzer_param("selectMetricProp", "step_distance") && - set_analyzer_param("selectSkel", tag)) + if (rep.get(0).asVocab32()!=ok) + { + navigating=false; + } + } + if(!navigating) + { + const Vector robot_location = getRobotLocation(); + const double angle = getAngleToStartLine(robot_location)*180/M_PI; + Vector destination = robot_location; + destination[2] = angle; //The destination is simply a rotation from the current position + ok_go = go_to(destination,false); + navigating = true; + } + if(ok_go) + { + yDebug() << "Rotating"; + Time::delay(getPeriod()); + cmd.clear(); + rep.clear(); + cmd.addString("is_navigating"); + if (navigationPort.write(cmd,rep)) { - state = obstacle_manager->hasObstacle() + if (rep.get(0).asVocab32()!=ok) + { + yCInfo(MANAGERTUG)<<"Rotated to point start"; + ok_go=false; + state=obstacle_manager->hasObstacle() ? State::obstacle : State::point_start; reinforce_obstacle_cnt=0; + } } } - } + if (state==State::point_start) { yCDebugOnce(MANAGERTUG) << "Entering State::point_start"; @@ -1037,8 +1121,8 @@ bool Manager::updateModule() yCDebug(MANAGERTUG) << "Setting destination x:" << x << "y:" << y << "theta:" << theta ; //TODO: this is a temporary hack to disallow movements - //ok_go=go_to(Vector({x,y,theta}),false); - ok_go = true; + ok_go=go_to(Vector({x,y,theta}),false); + //ok_go = true; } if (ok_go) @@ -1082,7 +1166,7 @@ bool Manager::updateModule() if (state == State::questions) { - yCDebug(MANAGERTUG) << "Entering State::questions"; + yCDebugOnce(MANAGERTUG) << "Entering State::questions"; bool is_entered_question_time = prev_state != state; @@ -1092,6 +1176,7 @@ bool Manager::updateModule() if(is_entered_question_time) { + start_collection(); speak(s); question_time_tstart = Time::now(); @@ -1109,7 +1194,7 @@ bool Manager::updateModule() question_time_tstart = Time::now(); } - if(Time::now() - question_time_tstart > 15.0) + if(Time::now() - question_time_tstart > _questions_timeout) { yCDebug(MANAGERTUG) << "Question time over, proceeding"; if(trigger_manager->isRunning()) { @@ -1133,6 +1218,13 @@ bool Manager::updateModule() { yCDebugOnce(MANAGERTUG) << "Entering State::wait_to_start"; prev_state = state; + t0 = Time::now(); + if(!has_started_interaction) + { + start_interaction(); + has_started_interaction = true; + } + confirmWithRaisedHand(State::starting); } @@ -1179,8 +1271,11 @@ bool Manager::updateModule() } else { - start_interaction(); - start_collection(); + state=obstacle_manager->hasObstacle() + ? State::obstacle : State::assess_standing; + reinforce_obstacle_cnt=0; + t0=Time::now(); + //TODO: move before vocal interaction } } } @@ -1236,7 +1331,7 @@ bool Manager::updateModule() } else { - encourage(20.0); + encourage(_exercise_timeout/2); } } @@ -1267,7 +1362,7 @@ bool Manager::updateModule() } else { - encourage(20.0); + encourage(_exercise_timeout); } } } @@ -1300,7 +1395,7 @@ bool Manager::updateModule() } else { - encourage(30.0); + encourage(_exercise_timeout); } } @@ -1375,8 +1470,10 @@ void Manager::follow(const string &follow_tag) if (!simulation) { vector> p; - p.push_back(shared_ptr(new SpeechParam(tag[0]!='#'?tag:string("")))); - Speech s("invite-start"); + //p.push_back(shared_ptr(new SpeechParam(tag[0]!='#'?tag:string("")))); + p.push_back(std::make_shared(m_name)); + std::string invite_start = m_complete ? "invite-start" : "invite-start-short"; + Speech s(invite_start); s.setParams(p); speak(s); s.reset(); @@ -1418,15 +1515,11 @@ void Manager::start_interaction() Bottle cmd,rep; cmd.addString("start"); cmd.addInt32(0); - if (analyzerPort.write(cmd,rep)) + if(analyzerPort.write(cmd,rep)) { - if (rep.get(0).asVocab32()==ok) + if (rep.get(0).asVocab32()!=ok) { - state=obstacle_manager->hasObstacle() - ? State::obstacle : State::assess_standing; - reinforce_obstacle_cnt=0; - t0=Time::now(); - yInfo()<<"Start!"; + yError() << "Motion analyzer failed to start"; } } } @@ -1540,6 +1633,41 @@ string Manager::which_part() return part; } +yarp::sig::Vector Manager::getRobotLocation() +{ + Bottle cmd,rep; + double x,y,theta; + cmd.addString("get_state"); + + if (navigationPort.write(cmd,rep)) + { + Bottle *robotState=rep.get(0).asList(); + if (Bottle *loc=robotState->find("robot-location").asList()) + { + x=loc->get(0).asFloat64(); + y=loc->get(1).asFloat64(); + theta=loc->get(2).asFloat64(); + } + } + //TODO: manage the error + + + return yarp::sig::Vector({x,y,theta}); +} + +double Manager::getAngleToStartLine(Vector robot_location) +{ + yarp::sig::Matrix R=axis2dcm(startline_pose.subVector(3,6)); + yarp::sig::Vector u=R.subcol(0,0,2); + yarp::sig::Vector p0=startline_pose.subVector(0,2); + yarp::sig::Vector p1=p0+line_length*u; + double line_center=(p0[0]+p1[0])/2; + double angle = atan2(-robot_location[1]+p0[1], //delta y + -robot_location[0]+line_center); //delta x + + return angle; +} + bool Manager::point(const Vector &target, const string &part, const bool wait) { @@ -1624,9 +1752,9 @@ bool Manager::opcRead(const string &t, Property &prop, const string &tval) } -bool Manager::hasLine(Property &prop) +bool Manager::hasLine(Property &prop, std::string line) { - bool ret=opcRead("finish-line",prop); + bool ret=opcRead(line,prop); if (ret) { return true; @@ -1636,25 +1764,74 @@ bool Manager::hasLine(Property &prop) } -bool Manager::getWorld(const Property &prop) +bool Manager::getWorld(const Property &prop_finish_line, const Property &prop_start_line) { if (opcPort.getInputCount()>0) { - Bottle *line=prop.find("finish-line").asList(); - if (Bottle *lp_bottle=line->find("pose_world").asList()) + Bottle *finish_line=prop_finish_line.find("finish-line").asList(); + yDebug() << prop_finish_line.toString(); + Bottle *start_line=prop_start_line.find("start-line").asList(); + Bottle *lp_bottle_finish=finish_line->find("pose_world").asList(); + if(lp_bottle_finish) { - if(lp_bottle->size()>=7) + if(lp_bottle_finish->size()>=7) { finishline_pose.resize(7); - finishline_pose[0]=lp_bottle->get(0).asFloat64(); - finishline_pose[1]=lp_bottle->get(1).asFloat64(); - finishline_pose[2]=lp_bottle->get(2).asFloat64(); - finishline_pose[3]=lp_bottle->get(3).asFloat64(); - finishline_pose[4]=lp_bottle->get(4).asFloat64(); - finishline_pose[5]=lp_bottle->get(5).asFloat64(); - finishline_pose[6]=lp_bottle->get(6).asFloat64(); + finishline_pose[0]=lp_bottle_finish->get(0).asFloat64(); + finishline_pose[1]=lp_bottle_finish->get(1).asFloat64(); + finishline_pose[2]=lp_bottle_finish->get(2).asFloat64(); + finishline_pose[3]=lp_bottle_finish->get(3).asFloat64(); + finishline_pose[4]=lp_bottle_finish->get(4).asFloat64(); + finishline_pose[5]=lp_bottle_finish->get(5).asFloat64(); + finishline_pose[6]=lp_bottle_finish->get(6).asFloat64(); yCInfo(MANAGERTUG)<<"Finish line wrt world frame"<find("size").asList()) + if (Bottle *lp_length=finish_line->find("size").asList()) + { + if (lp_length->size()>=2) + { + line_length=lp_length->get(0).asFloat64(); + yCInfo(MANAGERTUG)<<"with length"<find("pose_world").asList(); + yDebug() << "0b"; + + if(lp_bottle_start) + { + yDebug() << "1"; + if(lp_bottle_start->size()>=7) + { + yDebug() << "2"; + startline_pose.resize(7); + yDebug() << "3"; + startline_pose[0]=lp_bottle_start->get(0).asFloat64(); + startline_pose[1]=lp_bottle_start->get(1).asFloat64(); + startline_pose[2]=lp_bottle_start->get(2).asFloat64(); + startline_pose[3]=lp_bottle_start->get(3).asFloat64(); + startline_pose[4]=lp_bottle_start->get(4).asFloat64(); + startline_pose[5]=lp_bottle_start->get(5).asFloat64(); + startline_pose[6]=lp_bottle_start->get(6).asFloat64(); + yCInfo(MANAGERTUG)<<"Start line wrt world frame"<find("size").asList()) { if (lp_length->size()>=2) { @@ -1667,11 +1844,50 @@ bool Manager::getWorld(const Property &prop) } } } + else + { + yDebug() << "Start line pose_world not found"; + return false; + } } + yCError(MANAGERTUG)<<"Could not configure world"; return false; } +bool Manager::opcRpcDel() +{ + // First ask skeleton id to be removed + Bottle cmdAsk,repAsk; + int id = -1; + bool esitoAsk = false; + cmdAsk.addVocab32("ask"); + Bottle &plAsk=cmdAsk.addList().addList(); + plAsk.addString("skeleton"); + if (opcRpcPort.write(cmdAsk,repAsk)) + { + esitoAsk = (repAsk.get(0).asVocab32()==Vocab32::encode("ack")); + if (!esitoAsk) + yError()<<"opc error"; + else + id = repAsk.get(1).asList()->get(1).asList()->get(0).asInt32(); + } + + // Then delete the skeleton + Bottle cmdDel,repDel; + bool esitoDel = false; + cmdDel.addVocab32("del"); + Bottle &plDel=cmdDel.addList().addList(); + plDel.addString("id"); + plDel.addInt32(id); + if (opcRpcPort.write(cmdDel,repDel)) + { + esitoDel = (repDel.get(0).asVocab32()==Vocab32::encode("ack")); + } + + return esitoDel; +} + bool Manager::findLocked(string &t) { @@ -1731,6 +1947,8 @@ bool Manager::close() rightarmPort.close(); speechStreamPort.close(); collectorPort.close(); + opcRpcDel(); + opcRpcPort.close(); opcPort.close(); cmdPort.close(); if (lock) @@ -1743,6 +1961,7 @@ bool Manager::close() gazeboPort.close(); } obstaclePort.close(); + skeletonErrorPort.close(); return true; } @@ -1754,7 +1973,7 @@ void Manager::confirmWithRaisedHand(State next_state) cmd.addString(tag); if (attentionPort.write(cmd,rep)) { - if (rep.get(0).asVocab32()==ok) //Mano alzata? + if (rep.get(0).asVocab32()==ok) { Speech s("accepted"); speak(s); @@ -1765,7 +1984,7 @@ void Manager::confirmWithRaisedHand(State next_state) } state=next_state; } - else if (Time::now()-t0>10.0) + else if (Time::now()-t0 > _raising_hand_timeout) { if (++reinforce_engage_cnt<=1) { @@ -1775,7 +1994,15 @@ void Manager::confirmWithRaisedHand(State next_state) } else { - Speech s("disengaged"); + //TODO: secondo fbrand sarebbe meglio dire altro al posto di "ti ho perso" in questa occasione + Speech s("disengaged"); + + //send an error to the event collector + Bottle &skel_err_bot = skeletonErrorPort.prepare(); + skel_err_bot.addString(tag); + yDebug() << "skel error tag" << tag; + skeletonErrorPort.write(); + speak(s); disengage(); } diff --git a/modules/managerTUG/src/idl.thrift b/modules/managerTUG/src/idl.thrift index a9e291bd..aa0f98b8 100644 --- a/modules/managerTUG/src/idl.thrift +++ b/modules/managerTUG/src/idl.thrift @@ -21,7 +21,7 @@ service managerTUG_IDL * Start the interaction. * @return true/false on success/failure. */ - bool start(); + bool start(1:bool complete=true, 2:string name=""); /** * Stop the interaction. diff --git a/modules/motionAnalyzer/app/conf/tug.ini b/modules/motionAnalyzer/app/conf/tug.ini index 60de119c..fba7741f 100644 --- a/modules/motionAnalyzer/app/conf/tug.ini +++ b/modules/motionAnalyzer/app/conf/tug.ini @@ -2,6 +2,8 @@ type rehabilitation finish-line-thresh 0.0 standing-thresh 0.025 +max-finish-line-overrun 0.5 +max-reasonable-ankles-dist 2 #Maximum distance between ankles to filter out dirty data distance 3.0 time-high 10.0 time-medium 20.0 diff --git a/modules/motionAnalyzer/include/Manager.h b/modules/motionAnalyzer/include/Manager.h index 828b6bc2..d0bd90b7 100644 --- a/modules/motionAnalyzer/include/Manager.h +++ b/modules/motionAnalyzer/include/Manager.h @@ -44,6 +44,7 @@ class Manager : public yarp::os::RFModule, yarp::os::BufferedPort scopePort; enum class State { idle, sitting, standing, crossed, out_of_bounds} state; + State prev_state; bool standing; yarp::os::ResourceFinder *rf; @@ -83,8 +84,9 @@ class Manager : public yarp::os::RFModule, yarp::sig::Vector shoulder_height; iCub::ctrl::AWLinEstimator *lin_est_shoulder; double shoulder_center_height_vel,standing_thresh,finishline_thresh; - double _max_finish_line_overrun; - std::vector line_pose; + double _max_finish_line_overrun, _max_reasonable_ankles_dist; + std::vector finish_line_pose; + std::vector start_line_pose; yarp::sig::Matrix world_frame; yarp::os::Bottle bResult; @@ -113,7 +115,8 @@ class Manager : public yarp::os::RFModule, bool setTemplateTag(const std::string &template_tag) override; bool mirrorTemplate(const bool robot_skeleton_mirror) override; bool stopFeedback() override; - bool setLinePose(const std::vector &line_pose) override; + bool setStartLinePose(const std::vector &start_line_pose) override; + bool setFinishLinePose(const std::vector &finish_line_pose) override; yarp::os::Property getState() override; bool writeStructToMat(const std::string& name, const std::vector< std::vector< std::pair > >& keypoints_skel, mat_t *matfp); @@ -132,6 +135,7 @@ class Manager : public yarp::os::RFModule, bool isSitting(); bool hasCrossedLine(std::vector& line); bool hasCrossedFinishLine(); + bool hasCrossedStartLine(); bool hasMovedAwayFromFinishLine(); yarp::os::Property publishState(); void updateState(); diff --git a/modules/motionAnalyzer/src/Manager.cpp b/modules/motionAnalyzer/src/Manager.cpp index 718e927c..26e225fb 100644 --- a/modules/motionAnalyzer/src/Manager.cpp +++ b/modules/motionAnalyzer/src/Manager.cpp @@ -205,6 +205,7 @@ Exercise* Manager::loadExerciseList(const Bottle &bGeneral, const string &ex_tag finishline_thresh=bGeneral.find("finish-line-thresh").asFloat64(); standing_thresh=bGeneral.find("standing-thresh").asFloat64(); _max_finish_line_overrun = bGeneral.find("max-finish-line-overrun").asFloat64(); + _max_reasonable_ankles_dist = bGeneral.find("max-reasonable-ankles-dist").asFloat64(); double distance=bGeneral.check("distance",Value(6.0)).asFloat64(); double time_high=bGeneral.check("time-high",Value(10.0)).asFloat64(); double time_medium=bGeneral.check("time-medium",Value(20.0)).asFloat64(); @@ -240,6 +241,7 @@ bool Manager::loadMotionList(ResourceFinder &rf) if (!bGeneralEx.isNull()) { period = bGeneralEx.check("period",Value(period)).asFloat64(); } + yInfo() << "period" << period; exercises[i]=loadExerciseList(bGeneralEx, ex_tag); //for each exercise we can evaluate different metrics @@ -856,6 +858,10 @@ Property Manager::publishState() { p.put("human-state", "crossed"); } + else if (state==State::out_of_bounds) + { + p.put("human-state", "out_of_bounds"); + } else if (state==State::sitting) { p.put("human-state", "sitting"); @@ -905,8 +911,8 @@ bool Manager::hasCrossedLine(std::vector& line) } Vector hip=skeletonIn[KeyPointTag::hip_center]->getPoint(); - //Vector foot_right=skeletonIn[KeyPointTag::ankle_right]->getPoint(); - //Vector foot_left=skeletonIn[KeyPointTag::ankle_left]->getPoint(); + Vector foot_right=skeletonIn[KeyPointTag::ankle_right]->getPoint(); + Vector foot_left=skeletonIn[KeyPointTag::ankle_left]->getPoint(); Vector lp_world(3); lp_world[0]=line[0]; @@ -922,47 +928,70 @@ bool Manager::hasCrossedLine(std::vector& line) Vector line_x=lOri.getCol(0); line_x.pop_back(); - //Vector hip_lp=lp_world-hip; - //Vector pline=lp_world+line_x; - //Vector v1=lp_world-pline; - //double dist_hip_line=norm(cross(v1,hip_lp))/norm(v1); + ////Vector hip_lp=lp_world-hip; + ////Vector pline=lp_world+line_x; + ////Vector v1=lp_world-pline; + ////double dist_hip_line=norm(cross(v1,hip_lp))/norm(v1); double dist_hip_line=hip[1]-lp_world[1]; + + ////Vector fr_lp=lp_world-foot_right; + ////Vector fl_lp=lp_world-foot_left; + ////Vector pline=lp_world+line_x; + ////Vector v1=lp_world-pline; + ////Vector v1= line_x -lp_world; //? + ////double dist_fr_line=norm(cross(v1,fr_lp))/norm(v1); + ////double dist_fl_line=norm(cross(v1,fl_lp))/norm(v1); + double dist_fr_line=foot_right[1]-lp_world[1]; + double dist_fl_line=foot_left[1]-lp_world[1]; + yInfo()<<"dist foot right line"< _max_reasonable_ankles_dist) + { + return dist_hip_line < finishline_thresh; + } + else + { + return (dist_fr_line line_pose_plus_overrun = this->line_pose; - line_pose_plus_overrun[1] += _max_finish_line_overrun; + std::vector line_pose_plus_overrun = this->finish_line_pose; + line_pose_plus_overrun[1] -= _max_finish_line_overrun; return hasCrossedLine(line_pose_plus_overrun); } /********************************************************/ -bool Manager::setLinePose(const vector &line_pose) +bool Manager::setFinishLinePose(const vector &finish_line_pose) { lock_guard lg(mtx); - this->line_pose=line_pose; + yDebug() << "finish_line_pose" << finish_line_pose; + this->finish_line_pose=finish_line_pose; return true; } + +bool Manager::setStartLinePose(const vector &start_line_pose) +{ + lock_guard lg(mtx); + yDebug() << "finish_line_pose" << start_line_pose; + this->start_line_pose=start_line_pose; + return true; +} /********************************************************/ void Manager::getSkeleton() { @@ -1065,15 +1094,16 @@ void Manager::updateState() else if (hasCrossedFinishLine()) { state=State::crossed; + if(hasMovedAwayFromFinishLine()) + { + state=State::out_of_bounds; + } } - else if(hasMovedAwayFromFinishLine()) - { - state=State::out_of_bounds; - } - else if (isSitting()) + else if (hasCrossedStartLine() && isSitting()) { state=State::sitting; } + //yDebug()<< "state:" << static_cast(state); } /********************************************************/ @@ -1211,6 +1241,11 @@ bool Manager::updateModule() if (curr_exercise->getName()==ExerciseTag::tug) { updateState(); + if(prev_state!=state){ + yDebug() << "prev_state" << static_cast(prev_state); + yDebug() << "state" << static_cast(state); + } + prev_state = state; } estimate(); } diff --git a/modules/motionAnalyzer/src/idl.thrift b/modules/motionAnalyzer/src/idl.thrift index aa7e4d03..a0e5909b 100644 --- a/modules/motionAnalyzer/src/idl.thrift +++ b/modules/motionAnalyzer/src/idl.thrift @@ -136,8 +136,9 @@ service motionAnalyzer_IDL * @param pose of the finish line. * @return true/false on success/failure. */ - bool setLinePose(1:list line_pose); - + bool setStartLinePose(1:list start_line_pose); + bool setFinishLinePose(1:list finish_line_pose); + /** * Retrieve motion analysis result. * @return a property-like object containing the result of the analysis. diff --git a/modules/skeletonRetriever/app/conf/config.ini b/modules/skeletonRetriever/app/conf/config.ini index c1023964..cd555f54 100644 --- a/modules/skeletonRetriever/app/conf/config.ini +++ b/modules/skeletonRetriever/app/conf/config.ini @@ -6,7 +6,7 @@ keys-recognition-confidence 0.3 keys-recognition-percentage 0.3 keys-acceptable-misses 10 min-acceptable-path 0.5 -tracking-threshold 50 +tracking-threshold 200 time-to-live 3.0 [depth] diff --git a/report/ProgrammaticReport-eng.ipynb b/report/ProgrammaticReport-eng.ipynb deleted file mode 100644 index 85ca742b..00000000 --- a/report/ProgrammaticReport-eng.ipynb +++ /dev/null @@ -1,1977 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [], - "source": [ - "import nbformat as nbf\n", - "import textwrap" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [], - "source": [ - "nb = nbf.v4.new_notebook()" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [], - "source": [ - "#this creates a button to toggle to remove code in html\n", - "source_1 = textwrap.dedent(\"\"\"\n", - "from IPython.display import HTML\n", - "\n", - "HTML('''\n", - "
''')\"\"\")\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [], - "source": [ - "#import libraries\n", - "source_1 = textwrap.dedent(\"\"\"\\\n", - "#import libraries\n", - "import warnings \n", - "warnings.filterwarnings(\"ignore\",category=FutureWarning)\n", - "warnings.filterwarnings(\"ignore\", message=\"numpy.dtype size changed\")\n", - "import scipy.io as spio\n", - "import scipy.signal\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from mpl_toolkits.mplot3d import Axes3D\n", - "from collections import namedtuple\n", - "import math \n", - "import re \n", - "import pandas as pd\n", - "import os\n", - "import glob\n", - "from os.path import expanduser\n", - "import datetime\n", - "import statistics\n", - "from plotly import __version__\n", - "from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot\n", - "import plotly.graph_objs as go\n", - "init_notebook_mode(connected=True)\n", - "\"\"\")\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [], - "source": [ - "#define functions\n", - "source_1 = textwrap.dedent(\"\"\"\\\n", - "def color_negative_red(val):\n", - " color = 'red' if val > 110 else 'black'\n", - " return 'color: %s' % color\n", - "\"\"\")\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)\n", - "\n", - "source_1 = textwrap.dedent(\"\"\"\\\n", - "class Keypoint:\n", - " tag = \"\"\n", - " parent = ['']\n", - " child = ['']\n", - " point = None\n", - " \n", - " def __init__(self,tag=None,parent=None,child=None,point=None):\n", - " if tag is not None: \n", - " self.tag = tag\n", - " if parent is not None:\n", - " self.parent = parent\n", - " if child is not None:\n", - " self.child = child\n", - " if point is not None:\n", - " self.point = point\n", - "\"\"\")\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)\n", - "\n", - "source_1 = textwrap.dedent(\"\"\"\\\n", - "class Skeleton:\n", - " keypoints = [Keypoint() for i in range(17)]\n", - " tag2id = {\n", - " \"shoulderCenter\" : 0,\n", - " \"head\" : 1,\n", - " \"shoulderLeft\" : 2,\n", - " \"elbowLeft\" : 3,\n", - " \"handLeft\" : 4,\n", - " \"shoulderRight\" : 5,\n", - " \"elbowRight\" : 6,\n", - " \"handRight\" : 7,\n", - " \"hipCenter\" : 8,\n", - " \"hipLeft\" : 9,\n", - " \"kneeLeft\" : 10,\n", - " \"ankleLeft\" : 11,\n", - " \"footLeft\" : 12,\n", - " \"hipRight\" : 13,\n", - " \"kneeRight\" : 14,\n", - " \"ankleRight\" : 15,\n", - " \"footRight\" : 16,\n", - " }\n", - " keypoints[tag2id[\"shoulderCenter\"]] = Keypoint(\"shoulderCenter\",[''],['head','shoulderLeft','shoulderRight','hipCenter'])\n", - " keypoints[tag2id[\"head\"]] = Keypoint(\"head\",['shoulderCenter'],[''])\n", - " keypoints[tag2id[\"shoulderLeft\"]] = Keypoint(\"shoulderLeft\",['shoulderCenter'],['elbowLeft'])\n", - " keypoints[tag2id[\"elbowLeft\"]] = Keypoint(\"elbowLeft\",['shoulderLeft'],['handLeft'])\n", - " keypoints[tag2id[\"handLeft\"]] = Keypoint(\"handLeft\",['elbowLeft'],[''])\n", - " keypoints[tag2id[\"shoulderRight\"]] = Keypoint(\"shoulderRight\",['shoulderCenter'],['elbowRight'])\n", - " keypoints[tag2id[\"elbowRight\"]] = Keypoint(\"elbowRight\",['shoulderRight'],['handRight'])\n", - " keypoints[tag2id[\"handRight\"]] = Keypoint(\"handRight\",['elbowRight'],[''])\n", - " keypoints[tag2id[\"hipCenter\"]] = Keypoint(\"hipCenter\",['shoulderCenter'],['hipLeft','hipRight'])\n", - " keypoints[tag2id[\"hipLeft\"]] = Keypoint(\"hipLeft\",['shoulderCenter'],['kneeLeft'])\n", - " keypoints[tag2id[\"kneeLeft\"]] = Keypoint(\"kneeLeft\",['hipLeft'],['ankleLeft'])\n", - " keypoints[tag2id[\"ankleLeft\"]] = Keypoint(\"ankleLeft\",['kneeLeft'],['footLeft'])\n", - " keypoints[tag2id[\"footLeft\"]] = Keypoint(\"footLeft\",['ankleLeft'],[''])\n", - " keypoints[tag2id[\"hipRight\"]] = Keypoint(\"hipRight\",['shoulderCenter'],['kneeRight'])\n", - " keypoints[tag2id[\"kneeRight\"]] = Keypoint(\"kneeRight\",['hipRight'],['ankleRight'])\n", - " keypoints[tag2id[\"ankleRight\"]] = Keypoint(\"ankleRight\",['kneeRight'],['footRight'])\n", - " keypoints[tag2id[\"footRight\"]] = Keypoint(\"footRight\",['ankleRight'],[''])\n", - " \n", - " def __init__(self,keyp_map=None):\n", - " if keyp_map is not None:\n", - " for i in range(len(keyp_map)):\n", - " tag = keyp_map.keys()[i]\n", - " self.keypoints[self.tag2id[tag]].point = keyp_map[tag] \n", - " \n", - " def getKeypoint(self,keyp_tag):\n", - " return self.keypoints[self.tag2id[keyp_tag]].point\n", - " \n", - " def getChild(self,keyp_tag):\n", - " return self.keypoints[self.tag2id[keyp_tag]].child\n", - " \n", - " def getParent(self,keyp_tag):\n", - " return self.keypoints[self.tag2id[keyp_tag]].parent\n", - " \n", - " def getTransformation(self):\n", - " sagittal = None\n", - " coronal = None\n", - " transverse = None\n", - " T = np.eye(4,4)\n", - " if self.getKeypoint(\"shoulderLeft\") is not None:\n", - " if self.getKeypoint(\"shoulderRight\") is not None:\n", - " sagittal = self.getKeypoint(\"shoulderLeft\")[0]-self.getKeypoint(\"shoulderRight\")[0]\n", - " sagittal = sagittal/np.linalg.norm(sagittal)\n", - " if self.getKeypoint(\"shoulderCenter\") is not None:\n", - " if self.getKeypoint(\"hipLeft\") is not None:\n", - " if self.getKeypoint(\"hipRight\") is not None:\n", - " transverse = self.getKeypoint(\"shoulderCenter\")[0]-0.5*(self.getKeypoint(\"hipLeft\")[0]+self.getKeypoint(\"hipRight\")[0])\n", - " transverse = transverse/np.linalg.norm(transverse)\n", - " if self.getKeypoint(\"shoulderCenter\") is not None:\n", - " pSC = self.getKeypoint(\"shoulderCenter\")[0]\n", - "\n", - " if sagittal is not None:\n", - " if coronal is not None:\n", - " coronal = np.cross(sagittal,transverse)\n", - " T[0,0]=coronal[0]\n", - " T[1,0]=coronal[1]\n", - " T[2,0]=coronal[2]\n", - " T[0,1]=sagittal[0]\n", - " T[1,1]=sagittal[1]\n", - " T[2,1]=sagittal[2]\n", - " T[0,2]=transverse[0]\n", - " T[1,2]=transverse[1]\n", - " T[2,2]=transverse[2]\n", - " T[0,3]=pSC[0]\n", - " T[1,3]=pSC[1]\n", - " T[2,3]=pSC[2]\n", - " T[3,3]=1\n", - " return T\n", - " \n", - " def show(self):\n", - " for i in range(len(self.keypoints)):\n", - " k = self.keypoints[i]\n", - " print \"keypoint[\", k.tag, \"]\", \"=\", k.point\n", - "\"\"\")\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "class Exercise:\n", - " name = \"\"\n", - " typee = \"\"\n", - " metrics = []\n", - " \n", - "class Tug(Exercise):\n", - " name = \"tug\"\n", - " typee = \"test\"\n", - " metrics = [\"ROM_0\",\"ROM_1\",\"ROM_2\",\"ROM_3\",\"ROM_4\",\"ROM_5\",\"step_0\"]\n", - " result = []\n", - " month_res = {\n", - " 0: [],\n", - " 1: [],\n", - " 2: [],\n", - " 3: [],\n", - " 4: [],\n", - " 5: [],\n", - " 6: [],\n", - " 7: [],\n", - " 8: [],\n", - " 9: [],\n", - " 10: [],\n", - " 11: []\n", - " }\n", - " \n", - " def __init__(self,month,result):\n", - " self.result = result\n", - " self.month_res[month] = result\n", - " \n", - " def getResult(self,month):\n", - " return self.month_res[month]\n", - " \n", - "class Abduction(Exercise):\n", - " name = \"abduction\"\n", - " typee = \"rehabilitation\"\n", - " metrics = [\"ROM_0\"] \n", - " result = []\n", - " month_res = {\n", - " 0: [],\n", - " 1: [],\n", - " 2: [],\n", - " 3: [],\n", - " 4: [],\n", - " 5: [],\n", - " 6: [],\n", - " 7: [],\n", - " 8: [],\n", - " 9: [],\n", - " 10: [],\n", - " 11: []\n", - " }\n", - " def __init__(self,name,monthi,result):\n", - " self.name = name\n", - " self.result = result\n", - " self.month_res[monthi] = result\n", - " \n", - " def getResult(self,month):\n", - " return self.month_res[month]\n", - " \n", - "class Internal_Rotation(Exercise):\n", - " name = \"internal_rotation\"\n", - " typee = \"rehabilitation\"\n", - " metrics = [\"ROM_0\"] \n", - " result = []\n", - " month_res = {\n", - " 0: [],\n", - " 1: [],\n", - " 2: [],\n", - " 3: [],\n", - " 4: [],\n", - " 5: [],\n", - " 6: [],\n", - " 7: [],\n", - " 8: [],\n", - " 9: [],\n", - " 10: [],\n", - " 11: []\n", - " }\n", - " def __init__(self,name,monthi,result):\n", - " self.name = name\n", - " self.result = result\n", - " self.month_res[monthi] = result\n", - " \n", - " def getResult(self,month):\n", - " return self.month_res[month]\n", - " \n", - "class External_Rotation(Exercise):\n", - " name = \"external_rotation\"\n", - " typee = \"rehabilitation\"\n", - " metrics = [\"ROM_0\"] \n", - " result = []\n", - " month_res = {\n", - " 0: [],\n", - " 1: [],\n", - " 2: [],\n", - " 3: [],\n", - " 4: [],\n", - " 5: [],\n", - " 6: [],\n", - " 7: [],\n", - " 8: [],\n", - " 9: [],\n", - " 10: [],\n", - " 11: []\n", - " }\n", - " def __init__(self,name,monthi,result):\n", - " self.name = name\n", - " self.result = result\n", - " self.month_res[monthi] = result\n", - " \n", - " def getResult(self,month):\n", - " return self.month_res[month]\n", - " \n", - "class Reaching(Exercise):\n", - " name = \"reaching\"\n", - " typee = \"rehabilitation\"\n", - " metrics = [\"EP_0\"] \n", - " result = []\n", - " month_res = {\n", - " 0: [],\n", - " 1: [],\n", - " 2: [],\n", - " 3: [],\n", - " 4: [],\n", - " 5: [],\n", - " 6: [],\n", - " 7: [],\n", - " 8: [],\n", - " 9: [],\n", - " 10: [],\n", - " 11: []\n", - " }\n", - " def __init__(self,name,monthi,result):\n", - " self.name = name\n", - " self.result = result\n", - " self.month_res[monthi] = result\n", - " \n", - " def getResult(self,month):\n", - " return self.month_res[month]\n", - "\n", - "\n", - "\"\"\")\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "class Metric:\n", - " name = ''\n", - " \n", - " def __init__(self,name):\n", - " self.name = name\n", - "\n", - "class Rom(Metric):\n", - " name = \"ROM\"\n", - " tagjoint = \"\"\n", - " refjoint = \"\"\n", - " refdir = []\n", - " tagplane = \"\"\n", - " def __init__(self,tagjoint,refjoint,refdir,tagplane):\n", - " self.tagjoint = tagjoint\n", - " self.refjoint = refjoint\n", - " self.refdir = refdir\n", - " self.tagplane = tagplane\n", - " \n", - " def compute(self,skeleton): \n", - " #joint ref and child\n", - " tj = skeleton.getKeypoint(self.tagjoint)\n", - " tagchild = skeleton.getChild(self.tagjoint)[0]\n", - " cj = skeleton.getKeypoint(tagchild)\n", - " \n", - " xrj = []\n", - " yrj = []\n", - " zrj = []\n", - " if self.refjoint != \"\":\n", - " rj = skeleton.getKeypoint(self.refjoint)\n", - " xrj = rj[:,0]\n", - " yrj = rj[:,1]\n", - " zrj = rj[:,2]\n", - " \n", - " #compute metric\n", - " x=tj[:,0]\n", - " y=tj[:,1]\n", - " z=tj[:,2]\n", - "\n", - " xchild=cj[:,0]\n", - " ychild=cj[:,1]\n", - " zchild=cj[:,2]\n", - "\n", - " #plane over which we want to evaluate the metric\n", - " plane = np.zeros(3)\n", - " if tagplane == \"coronal\":\n", - " plane[0] = 1.0\n", - " if tagplane == \"sagittal\":\n", - " plane[1] = 1.0\n", - " if tagplane == \"transverse\":\n", - " plane[2] = 1.0\n", - "\n", - " #project v1 on the right plane\n", - " invT = np.linalg.inv(skeleton.getTransformation())\n", - " cosRom = [] \n", - " for i in range(len(x)):\n", - " temp_ref = np.array([x[i],y[i],z[i],1])\n", - " temp_child = np.array([xchild[i],ychild[i],zchild[i],1])\n", - "\n", - " transf_ref = np.inner(invT,temp_ref) \n", - " transf_child = np.inner(invT,temp_child) \n", - " vprocess = transf_child-transf_ref\n", - " vprocess = np.delete(vprocess,3)\n", - "\n", - " dist = np.dot(vprocess,np.transpose(plane)) \n", - " vprocess = vprocess-dist*plane\n", - "\n", - " n1 = np.linalg.norm(vprocess)\n", - " if(n1>0):\n", - " vprocess = vprocess/n1 \n", - " \n", - " if len(xrj)>0:\n", - " temp_refjoint = np.array([xrj[i],yrj[i],zrj[i],1])\n", - " transf_refjoint = np.inner(invT,temp_refjoint)\n", - " vecref = transf_ref - transf_refjoint\n", - " ref = np.delete(vecref,3)\n", - " else: \n", - " n2 = np.linalg.norm(self.refdir)\n", - " if(n2>0):\n", - " self.refdir = self.refdir/n2\n", - " ref = self.refdir\n", - " \n", - " dotprod = np.dot(vprocess,np.transpose(ref))\n", - " cosRom.append(dotprod)\n", - "\n", - " \n", - " rom_value = np.arccos(cosRom)\n", - " result = rom_value *(180/math.pi)\n", - " return result\n", - " \n", - " \n", - "class Step(Metric):\n", - " name = \"step\"\n", - " num = []\n", - " den = []\n", - " step_thresh = 0.0\n", - " tstart = 0.0\n", - " tend = 0.0\n", - " steplen = []\n", - " nsteps = 0\n", - " cadence = 0.0\n", - " speed = 0.0\n", - " ex_time = 0.0\n", - " filtered_distfeet = []\n", - " strikes = []\n", - " def __init__(self,num,den,tstart,tend,step_thresh):\n", - " self.num = num\n", - " self.den = den\n", - " self.tstart = tstart\n", - " self.tend = tend\n", - " self.step_thresh = step_thresh\n", - "\n", - " def compute(self,skeleton):\n", - " alj = skeleton.getKeypoint(\"ankleLeft\")\n", - " arj = skeleton.getKeypoint(\"ankleRight\")\n", - " sagittal = None\n", - " if skeleton.getKeypoint(\"shoulderLeft\") is not None:\n", - " if skeleton.getKeypoint(\"shoulderRight\") is not None:\n", - " sagittal = skeleton.getKeypoint(\"shoulderLeft\")[0]-skeleton.getKeypoint(\"shoulderRight\")[0]\n", - " sagittal = sagittal/np.linalg.norm(sagittal)\n", - " distfeet = []\n", - " for i in range(len(alj)):\n", - " v = alj[i,:]-arj[i,:]\n", - " dist = np.dot(v,np.transpose(sagittal)) \n", - " v = v-dist*sagittal\n", - " distfeet.append(np.linalg.norm(v))\n", - " self.filtered_distfeet = scipy.signal.filtfilt(self.num,self.den,distfeet)\n", - " self.strikes,_ = scipy.signal.find_peaks(self.filtered_distfeet,height=self.step_thresh)\n", - " filtered_distfeet_np = np.array(self.filtered_distfeet)\n", - " slen = filtered_distfeet_np[self.strikes]\n", - " self.steplen = statistics.mean(slen)\n", - " self.nsteps = len(self.strikes)\n", - " self.cadence = self.nsteps/(self.tend-self.tstart)\n", - " self.speed = self.steplen*self.cadence\n", - " self.ex_time = self.tend-self.tstart\n", - " \n", - "class EndPoint(Metric):\n", - " name = \"EP\"\n", - " tagjoint = \"\"\n", - " refdir = []\n", - " tagplane = \"\"\n", - " target = []\n", - " trajectories = []\n", - " tstart = 0.0\n", - " tend = 0.0\n", - " speed = 0.0\n", - " ex_time = 0.0\n", - " def __init__(self,tagjoint,refdir,tagplane,target,tstart,tend):\n", - " self.tagjoint = tagjoint\n", - " self.refdir = refdir\n", - " self.tagplane = tagplane\n", - " self.target = target\n", - " self.tstart = tstart\n", - " self.tend = tend\n", - " \n", - " def compute(self,skeleton):\n", - " self.ex_time = self.tend-self.tstart\n", - " tj = skeleton.getKeypoint(self.tagjoint)\n", - " x = tj[:,0]\n", - " y = tj[:,1]\n", - " z = tj[:,2]\n", - "\n", - " plane = np.zeros(3)\n", - " if tagplane == \"coronal\":\n", - " plane[0] = 1.0\n", - " if tagplane == \"sagittal\":\n", - " plane[1] = 1.0\n", - " if tagplane == \"transverse\":\n", - " plane[2] = 1.0\n", - " invT = np.linalg.inv(skeleton.getTransformation())\n", - " self.trajectories = np.zeros([len(x),3])\n", - " for i in range(len(x)):\n", - " temp_jnt = np.array([x[i],y[i],z[i],1]) \n", - " transf_jnt = np.inner(invT,temp_jnt) \n", - " v = np.delete(transf_jnt,3)\n", - " dist = np.dot(v,np.transpose(plane)) \n", - " v = v-dist*plane\n", - " self.trajectories[i,0]=v[0]\n", - " self.trajectories[i,1]=v[1]\n", - " self.trajectories[i,2]=v[2]\n", - " \n", - " vel = np.zeros([len(x),3])\n", - " vel[:,0] = np.gradient(self.trajectories[:,0])/self.ex_time\n", - " vel[:,1] = np.gradient(self.trajectories[:,1])/self.ex_time\n", - " vel[:,2] = np.gradient(self.trajectories[:,2])/self.ex_time\n", - " \n", - " self.speed = 0.0\n", - " for i in range(len(x)):\n", - " self.speed = self.speed + np.linalg.norm([vel[i,0],vel[i,1],vel[i,2]])\n", - " self.speed = self.speed/len(x)\n", - "\"\"\")\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "def loadmat(filename):\n", - " '''\n", - " this function should be called instead of direct spio.loadmat\n", - " as it cures the problem of not properly recovering python dictionaries\n", - " from mat files. It calls the function check keys to cure all entries\n", - " which are still mat-objects\n", - " '''\n", - " data = spio.loadmat(filename, struct_as_record=False, squeeze_me=True)\n", - " return _check_keys(data)\n", - "\n", - "def _check_keys(dict):\n", - " '''\n", - " checks if entries in dictionary are mat-objects. If yes\n", - " todict is called to change them to nested dictionaries\n", - " '''\n", - " for key in dict:\n", - " if isinstance(dict[key], spio.matlab.mio5_params.mat_struct):\n", - " dict[key] = _todict(dict[key])\n", - " return dict \n", - "\n", - "def _todict(matobj):\n", - " '''\n", - " A recursive function which constructs from matobjects nested dictionaries\n", - " '''\n", - " dict = {}\n", - " for strg in matobj._fieldnames:\n", - " elem = matobj.__dict__[strg]\n", - " if isinstance(elem, spio.matlab.mio5_params.mat_struct):\n", - " dict[strg] = _todict(elem)\n", - " else:\n", - " dict[strg] = elem\n", - " return dict\n", - "\"\"\")\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": {}, - "outputs": [], - "source": [ - "#print personal data\n", - "text = \"\"\"\n", - "# Personal data \"\"\"\n", - "markdown_cell = nbf.v4.new_markdown_cell(text)\n", - "nb.cells.append(markdown_cell)\n", - "\n", - "source_1 = textwrap.dedent(\"\"\" \n", - "#load file \n", - "home = expanduser(\"~\")\n", - "pth = home + '/.local/share/yarp/contexts/motionAnalyzer'\n", - "files = glob.glob(os.path.join(pth, '*.mat'))\n", - "lastfile = max(files, key=os.path.getctime)\n", - "print lastfile\n", - "\n", - "#print personal data\n", - "i = [pos for pos, char in enumerate(lastfile) if char == \"-\"]\n", - "i1 = i[-3]\n", - "i2 = i[-2]\n", - "name = lastfile[i1+1:i2]\n", - "surname = \"\"\n", - "age = \"\"\n", - "\n", - "personaldata = []\n", - "personaldata.append(name)\n", - "personaldata.append(surname)\n", - "personaldata.append(age) \n", - "table = pd.DataFrame(personaldata) \n", - "table.rename(index={0:\"Name\",1:\"Surname\",2:\"Age\"}, columns={0:\"Patient\"}, inplace=True)\n", - "display(table) \"\"\")\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "metadata": {}, - "outputs": [], - "source": [ - "#we load all the files with the same user name\n", - "source_1 = textwrap.dedent(\"\"\" \n", - "data = []\n", - "ctime = []\n", - "filename = []\n", - "tagex = []\n", - "files.sort(key=os.path.getctime)\n", - "for fi in files:\n", - " i = [pos for pos, char in enumerate(fi) if char == \"-\"]\n", - " i1 = i[-3]\n", - " i2 = i[-2]\n", - " i3 = i[-1]\n", - " namei = fi[i1+1:i2]\n", - " if namei == name:\n", - " filename.append(fi)\n", - " data.append(loadmat(fi)) #data.append(scipy.io.loadmat(fi))\n", - " tagex.append(fi[i2+1:i3])\n", - " ctime.append(os.path.getctime(fi)) \"\"\")\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "metadata": {}, - "outputs": [], - "source": [ - "#define keypoints\n", - "source_1 = textwrap.dedent(\"\"\"\\\n", - "time = []\n", - "month = []\n", - "exercises = []\n", - "ex_names = []\n", - "#count how many exercise of the same type were performed at that month\n", - "countexmonth = {\n", - " \"tug\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"abduction_left\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"internal_rotation_left\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"external_rotation_left\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"reaching_left\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "\n", - "for i in range(len(data)):\n", - "\n", - " datai = data[i]\n", - " time.append(datai['Time_samples'])\n", - " monthi = datetime.date.fromtimestamp(ctime[i]).month-1\n", - " month.append(monthi)\n", - " shoulderCenter = datai['Keypoints']['shoulderCenter']\n", - " head = datai['Keypoints']['head']\n", - " shoulderLeft = datai['Keypoints']['shoulderLeft']\n", - " shoulderRight = datai['Keypoints']['shoulderRight']\n", - " elbowLeft = datai['Keypoints']['elbowLeft']\n", - " handLeft = datai['Keypoints']['handLeft']\n", - " elbowRight = datai['Keypoints']['elbowRight']\n", - " handRight = datai['Keypoints']['handRight']\n", - " hipLeft = datai['Keypoints']['hipLeft']\n", - " hipRight = datai['Keypoints']['hipRight']\n", - " ankleLeft = datai['Keypoints']['ankleLeft']\n", - " ankleRight = datai['Keypoints']['ankleRight']\n", - " kneeLeft = datai['Keypoints']['kneeLeft']\n", - " kneeRight = datai['Keypoints']['kneeRight']\n", - " footLeft = datai['Keypoints']['footLeft']\n", - " footRight = datai['Keypoints']['footRight']\n", - " hipCenter = datai['Keypoints']['hipCenter']\n", - " \n", - " key_pam = {\n", - " \"shoulderCenter\" : shoulderCenter,\n", - " \"head\" : head,\n", - " \"shoulderLeft\" : shoulderLeft,\n", - " \"shoulderRight\" : shoulderRight,\n", - " \"elbowLeft\" : elbowLeft,\n", - " \"handLeft\" : handLeft,\n", - " \"elbowRight\" : elbowRight,\n", - " \"handRight\" : handRight,\n", - " \"hipLeft\" : hipLeft,\n", - " \"hipRight\" : hipRight,\n", - " \"ankleLeft\" : ankleLeft,\n", - " \"ankleRight\" : ankleRight,\n", - " \"kneeLeft\" : kneeLeft,\n", - " \"kneeRight\" : kneeRight,\n", - " \"footLeft\" : footLeft,\n", - " \"footRight\" : footRight,\n", - " \"hipCenter\" : hipCenter\n", - " }\n", - " s=Skeleton(key_pam)\n", - " #s.show()\n", - " \n", - " exname = datai[\"Exercise\"][\"name\"]\n", - " exname = re.sub(r'[^\\w]','',exname)\n", - " ex_names.append(exname)\n", - " result_singleexercise = []\n", - " allmet = datai[\"Exercise\"][\"metrics\"]\n", - " metrics = allmet.keys()\n", - " for j in range(len(metrics)):\n", - " metname = metrics[j]\n", - " if \"ROM\" in metname:\n", - " tagjoint = allmet[metname][\"tag_joint\"]\n", - " tagjoint = re.sub(r'[^\\w]', '',tagjoint)\n", - " refjoint = allmet[metname][\"ref_joint\"]\n", - " refjoint = re.sub(r'[^\\w]', '',refjoint)\n", - " if type(refjoint) is np.ndarray:\n", - " refjoint = \"\"\n", - " refdir = allmet[metname][\"ref_dir\"]\n", - " tagplane = allmet[metname][\"tag_plane\"]\n", - " tagplane = re.sub(r'[^\\w]', '',tagplane)\n", - " rom = Rom(tagjoint,refjoint,refdir,tagplane)\n", - " result_singleexercise.append((rom,rom.compute(s)))\n", - "\n", - " if \"step\" in metname:\n", - " num = allmet[metname][\"num\"]\n", - " den = allmet[metname][\"den\"]\n", - " tstart = allmet[metname][\"tstart\"]\n", - " tend = allmet[metname][\"tend\"]\n", - " step_thresh = allmet[metname][\"step_thresh\"]\n", - " step = Step(num,den,tstart,tend,step_thresh)\n", - " step.compute(s)\n", - " stepmet = [step.steplen,step.nsteps,step.cadence,step.speed,step.ex_time,\n", - " step.filtered_distfeet,step.strikes]\n", - " result_singleexercise.append((step,stepmet))\n", - "\n", - " if \"EP\" in metname:\n", - " tagjoint = allmet[metname][\"tag_joint\"]\n", - " tagjoint = re.sub(r'[^\\w]', '',tagjoint)\n", - " refdir = allmet[metname][\"ref_dir\"]\n", - " tagplane = allmet[metname][\"tag_plane\"]\n", - " tagplane = re.sub(r'[^\\w]', '',tagplane)\n", - " target = allmet[metname][\"target\"]\n", - " tstart = allmet[metname][\"tstart\"]\n", - " tend = allmet[metname][\"tend\"]\n", - " ep = EndPoint(tagjoint,refdir,tagplane,target,tstart,tend)\n", - " ep.compute(s)\n", - " result_singleexercise.append((ep,ep.trajectories))\n", - "\n", - " if exname == \"tug\":\n", - " ex = Tug(monthi,result_singleexercise)\n", - " if \"abduction\" in exname:\n", - " ex = Abduction(exname,monthi,result_singleexercise)\n", - " if \"internal_rotation\" in exname:\n", - " ex = Internal_Rotation(exname,monthi,result_singleexercise)\n", - " if \"external_rotation\" in exname:\n", - " ex = External_Rotation(exname,monthi,result_singleexercise)\n", - " if \"reaching\" in exname:\n", - " ex = Reaching(exname,monthi,result_singleexercise)\n", - "\n", - " countexmonth[exname][monthi] = 1 + countexmonth[exname][monthi]\n", - " \n", - " exercises.append(ex) \n", - " \"\"\")\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "metadata": {}, - "outputs": [], - "source": [ - "#print information about the performed movement and the evaluated metric\n", - "text = \"\"\" \n", - "# Daily session report\n", - "The patient did the following exercise: \"\"\"\n", - "markdown_cell = nbf.v4.new_markdown_cell(text)\n", - "nb.cells.append(markdown_cell)\n", - "\n", - "source_1 = textwrap.dedent(\"\"\" \n", - "print exname.encode('ascii') \"\"\")\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)\n", - "\n", - "text = \"\"\" \n", - "on: \"\"\"\n", - "markdown_cell = nbf.v4.new_markdown_cell(text)\n", - "nb.cells.append(markdown_cell)\n", - "\n", - "source_1 = textwrap.dedent(\"\"\" \n", - "now = datetime.datetime.now()\n", - "print now \"\"\")\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "metadata": {}, - "outputs": [], - "source": [ - "#plot the metrics for each session\n", - "text = \"\"\" \n", - "The following shows the metric trend during the exercise:\"\"\"\n", - "markdown_cell = nbf.v4.new_markdown_cell(text)\n", - "nb.cells.append(markdown_cell)\n", - "\n", - "source_1 = textwrap.dedent(\"\"\"\\\n", - "lastsess_time = time[-1]\n", - "lastsess_result = exercises[-1].result\n", - "lastsess_res_step = []\n", - "\n", - "%matplotlib inline\n", - "%matplotlib inline\n", - "for i in range(len(lastsess_result)):\n", - " lastsess_met,lastsess_resi = lastsess_result[i]\n", - " lastsess_metname = lastsess_met.name\n", - " ################\n", - " # ROM #\n", - " ################\n", - " if lastsess_metname == \"ROM\":\n", - " lastsess_metjoint = lastsess_met.tagjoint\n", - " trace1 = go.Scatter(\n", - " x=lastsess_time,y=lastsess_resi,\n", - " mode='lines',\n", - " line=dict(\n", - " color='blue',\n", - " width=3\n", - " ),\n", - " name='Real trend'\n", - " )\n", - " data = [trace1]\n", - " layout = dict(\n", - " width=750,\n", - " height=600,\n", - " autosize=False,\n", - " title='Range of Motion '+lastsess_metjoint,\n", - " font=dict(family='Courier New, monospace', size=22, color='black'),\n", - " xaxis=dict(\n", - " title='time [s]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " yaxis=dict(\n", - " title='ROM [degrees]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " )\n", - " )\n", - " )\n", - " fig = dict(data=data, layout=layout)\n", - " iplot(fig)\n", - " \n", - " ################\n", - " # STEP #\n", - " ################\n", - " if lastsess_metname == \"step\":\n", - " dist=lastsess_resi[5]\n", - " strikes=lastsess_resi[6]\n", - " trace1 = go.Scatter(\n", - " x=lastsess_time,y=dist,\n", - " mode='lines',\n", - " line=dict(\n", - " color='blue',\n", - " width=3\n", - " ),\n", - " name='Feet distance'\n", - " )\n", - " trace2 = go.Scatter(\n", - " x=lastsess_time[strikes],y=dist[strikes],\n", - " mode='markers',\n", - " marker=dict(\n", - " color='red',\n", - " size=10\n", - " ),\n", - " name='Heel strikes'\n", - " )\n", - " data = [trace1,trace2]\n", - " layout = dict(\n", - " width=750,\n", - " height=600,\n", - " autosize=False,\n", - " title='Feet distance',\n", - " font=dict(family='Courier New, monospace', size=22, color='black'),\n", - " xaxis=dict(\n", - " title='time [s]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " yaxis=dict(\n", - " title='dist [m]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " )\n", - " )\n", - " )\n", - " fig = dict(data=data, layout=layout)\n", - " iplot(fig)\n", - " \n", - " lastsess_res_step.append(lastsess_resi)\n", - " tablestep = pd.DataFrame(lastsess_res_step[0][0:4])\n", - " tablestep.rename(index={0:\"Step length [m]\",1:\"Number of steps\",2:\"Cadence [steps/s]\",\n", - " 3:\"Speed [m/s]\",4:\"Execution time [s]\"},\n", - " columns={0:\"Gait analysis\"}, inplace=True)\n", - " display(tablestep)\n", - " \n", - " ################\n", - " # EP #\n", - " ################\n", - " if lastsess_metname == \"EP\":\n", - " target = lastsess_met.target\n", - " trace1 = go.Scatter3d(\n", - " x=lastsess_resi[:,0], y=lastsess_resi[:,1], z=lastsess_resi[:,2],\n", - " mode = 'lines',\n", - " line=dict(\n", - " color='blue',\n", - " width=3\n", - " ),\n", - " name = 'Trajectories'\n", - " )\n", - " trace2 = go.Scatter3d(\n", - " x=[target[0]], y=[target[1]], z=[target[2]],\n", - " mode = 'markers',\n", - " marker=dict(\n", - " color='red',\n", - " size=5\n", - " ),\n", - " name = 'Target to reach'\n", - " )\n", - " data = [trace1, trace2] \n", - " layout = dict(\n", - " margin=dict(\n", - " l=0,\n", - " r=0,\n", - " b=0\n", - " ),\n", - " title='End-point trajectories',\n", - " font=dict(family='Courier New, monospace', size=22, color='black'),\n", - " scene=dict(\n", - " xaxis=dict(\n", - " title='x [cm]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " ),\n", - " gridcolor='rgb(255, 255, 255)',\n", - " zerolinecolor='rgb(255, 255, 255)',\n", - " showbackground=True,\n", - " backgroundcolor='rgb(230, 230,230)'\n", - " ),\n", - " yaxis=dict(\n", - " title='y [cm]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " ),\n", - " gridcolor='rgb(255, 255, 255)',\n", - " zerolinecolor='rgb(255, 255, 255)',\n", - " showbackground=True,\n", - " backgroundcolor='rgb(230, 230,230)'\n", - " ),\n", - " zaxis=dict(\n", - " title='z [cm]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " ),\n", - " gridcolor='rgb(255, 255, 255)',\n", - " zerolinecolor='rgb(255, 255, 255)',\n", - " showbackground=True,\n", - " backgroundcolor='rgb(230, 230,230)'\n", - " ),\n", - " camera=dict(\n", - " up=dict(\n", - " x=0,\n", - " y=0,\n", - " z=1\n", - " ),\n", - " eye=dict(\n", - " x=-1.7428,\n", - " y=1.0707,\n", - " z=0.7100,\n", - " )\n", - " ),\n", - " aspectratio = dict( x=1, y=1, z=0.7 ),\n", - " aspectmode = 'manual'\n", - " ),\n", - " )\n", - " fig = dict(data=data, layout=layout)\n", - " iplot(fig)\n", - " \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "if exname == 'tug':\n", - " \n", - " table_tug = pd.DataFrame([['Normal mobility'],['Good mobility'],['Gait aids'],['Falling risk']],\n", - " index=['< 10 s','< 20 s','< 30 s','>= 30 s'],\n", - " columns=['TUG Table'])\n", - " display(table_tug)\n", - " \n", - " time_score = lastsess_res_step[0][4]\n", - " print \"The test has been done in\",round(time_score,2),\"s\"\n", - " if time_score < 10:\n", - " evaluation = 'Normal mobility'\n", - " print \"The evaluation is \\033[1;30;42m\",evaluation\n", - " elif time_score < 20:\n", - " evaluation = 'Good mobility, no need for gait aids'\n", - " print \"The evaluation is \\033[1;30;42m\",evaluation\n", - " elif time_score < 30:\n", - " evaluation = 'Need for gait aids'\n", - " print \"The evaluation is \\033[1;30;43m\",evaluation\n", - " elif time_score >= 30:\n", - " evaluation = 'Falling risk'\n", - " print \"The evaluation is \\033[1;30;41m\",evaluation\n", - " \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 43, - "metadata": {}, - "outputs": [], - "source": [ - "#report about patient's improvements\n", - "text = \"\"\" \n", - "# Patient progress\"\"\"\n", - "markdown_cell = nbf.v4.new_markdown_cell(text)\n", - "nb.cells.append(markdown_cell)\n", - "\n", - "text = \"\"\" \n", - "The exercises performed by the patient during the months under analysis are grouped as following:\"\"\"\n", - "markdown_cell = nbf.v4.new_markdown_cell(text)\n", - "nb.cells.append(markdown_cell)\n", - "\n", - "source_1 = textwrap.dedent(\"\"\"\\\n", - "labels = [\"reaching_left\",\"abduction_left\",\"internal-rotation_left\",\"external-rotation_left\",\"timed-up-and-go\"]\n", - "values = [tagex.count(\"reaching_left\"), tagex.count(\"abduction_left\"), tagex.count(\"internal_rotation_left\"), \n", - " tagex.count(\"external_rotation_left\"), tagex.count(\"tug\")]\n", - "colors = ['#FEBFB3', '#E1396C', '#96D38C', '#D0F9B1']\n", - "\n", - "trace = go.Pie(labels=labels, values=values,\n", - " #hoverinfo='label+percent', textinfo='value', \n", - " textfont=dict(size=20),\n", - " marker=dict(colors=colors, \n", - " line=dict(color='#000000', width=2)),\n", - " hoverinfo=\"label+percent+value\",\n", - " hole=0.3\n", - " )\n", - "layout = go.Layout(\n", - " title=\"Performed exercises\",\n", - ")\n", - "data = [trace]\n", - "fig = go.Figure(data=data,layout=layout)\n", - "iplot(fig) \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)\n", - "\n", - "text = \"\"\" \n", - "The trends of the patient metrics, grouped by month, are shown here: \"\"\"\n", - "markdown_cell = nbf.v4.new_markdown_cell(text)\n", - "nb.cells.append(markdown_cell)\n", - "\n", - "source_1 = textwrap.dedent(\"\"\"\\\n", - "keyp2rommax = {\n", - " \"shoulderCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"head\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footRight\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "keyp2rommin = {\n", - " \"shoulderCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"head\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footRight\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "countrommonth = {\n", - " \"shoulderCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"head\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footRight\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "keyp2rommax_avg = {\n", - " \"shoulderCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"head\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footRight\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "keyp2rommin_avg = {\n", - " \"shoulderCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"head\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footRight\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "\n", - "stepmonth = {\n", - " \"steplen\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"numsteps\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"cadence\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"speed\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"time\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "countstepmonth = [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "\n", - "endpointmonth = {\n", - " \"time\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"speed\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "countendpointmonth = [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "\n", - "for i in range(len(exercises)):\n", - " exnamei = exercises[i].name\n", - " for monthi in range(12):\n", - " if countexmonth[exnamei][monthi] != 0:\n", - " res_exi = exercises[i].getResult(monthi)\n", - " for m in range(len(res_exi)): \n", - " single_metric,result_single_metric = res_exi[m]\n", - " single_metric_name = single_metric.name\n", - " if single_metric_name == \"ROM\":\n", - " maxromj = max(result_single_metric)\n", - " minromj = min(result_single_metric)\n", - " tagjoint = single_metric.tagjoint\n", - " keyp2rommax[tagjoint][monthi] = maxromj + keyp2rommax[tagjoint][monthi]\n", - " keyp2rommin[tagjoint][monthi] = minromj + keyp2rommin[tagjoint][monthi]\n", - " countrommonth[tagjoint][monthi] = 1 + countrommonth[tagjoint][monthi] \n", - "\n", - " if single_metric_name == \"step\":\n", - " stepmonth[\"steplen\"][monthi] = single_metric.steplen + stepmonth[\"steplen\"][monthi]\n", - " stepmonth[\"numsteps\"][monthi] = single_metric.nsteps + stepmonth[\"numsteps\"][monthi]\n", - " stepmonth[\"cadence\"][monthi] = single_metric.cadence + stepmonth[\"cadence\"][monthi]\n", - " stepmonth[\"speed\"][monthi] = single_metric.speed + stepmonth[\"speed\"][monthi]\n", - " stepmonth[\"time\"][monthi] = single_metric.ex_time + stepmonth[\"time\"][monthi]\n", - " countstepmonth[monthi] = 1 + countstepmonth[monthi]\n", - " \n", - " if single_metric_name == \"EP\":\n", - " endpointmonth[\"time\"][monthi] = single_metric.ex_time + endpointmonth[\"time\"][monthi]\n", - " endpointmonth[\"speed\"][monthi] = single_metric.speed + endpointmonth[\"speed\"][monthi]\n", - " countendpointmonth[monthi] = 1 + countendpointmonth[monthi]\n", - " \n", - " \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "counted_exmonth = {\n", - " \"tug\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"abduction_left\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"internal_rotation_left\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"external_rotation_left\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"reaching_left\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "for i in range(len(exercises)):\n", - " exnamei = exercises[i].name\n", - " \n", - " for monthi in range(12): \n", - " if countexmonth[exnamei][monthi] != 0:\n", - " if counted_exmonth[exnamei][monthi] < 1: \n", - " res_exi = exercises[i].getResult(monthi)\n", - " for m in range(len(res_exi)): \n", - " single_metric,result_single_metric = res_exi[m]\n", - " single_metric_name = single_metric.name\n", - "\n", - " if single_metric_name == \"ROM\":\n", - " tagjoint = single_metric.tagjoint\n", - " if countrommonth[tagjoint][monthi] != 0:\n", - " keyp2rommax_avg[tagjoint][monthi] = keyp2rommax[tagjoint][monthi]/countrommonth[tagjoint][monthi]\n", - " keyp2rommin_avg[tagjoint][monthi] = keyp2rommin[tagjoint][monthi]/countrommonth[tagjoint][monthi]\n", - " \n", - " \n", - " if single_metric_name == \"step\":\n", - " if countstepmonth[monthi] != 0:\n", - " stepmonth[\"steplen\"][monthi] = stepmonth[\"steplen\"][monthi]/countstepmonth[monthi]\n", - " stepmonth[\"numsteps\"][monthi] = stepmonth[\"numsteps\"][monthi]/countstepmonth[monthi]\n", - " stepmonth[\"cadence\"][monthi] = stepmonth[\"cadence\"][monthi]/countstepmonth[monthi]\n", - " stepmonth[\"speed\"][monthi] = stepmonth[\"speed\"][monthi]/countstepmonth[monthi]\n", - " stepmonth[\"time\"][monthi] = stepmonth[\"time\"][monthi]/countstepmonth[monthi] \n", - " \n", - " if single_metric_name == \"EP\":\n", - " if countendpointmonth[monthi] != 0:\n", - " endpointmonth[\"time\"][monthi] = endpointmonth[\"time\"][monthi]/countendpointmonth[monthi]\n", - " endpointmonth[\"speed\"][monthi] = endpointmonth[\"speed\"][monthi]/countendpointmonth[monthi]\n", - "\n", - " counted_exmonth[exnamei][monthi] = 1\n", - " \n", - " \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 45, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "title = \"Results for Timed Up and Go\"\n", - "msg1 = HTML(''+title+'')\n", - "msg2 = HTML(''+title+'')\n", - "if sum(counted_exmonth['tug'])>0:\n", - " display(msg1);\n", - "else:\n", - " display(msg2); \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 46, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "allmonths = [1,2,3,4,5,6,7,8,9,10,11,12]\n", - "counted_ex = {\n", - " \"tug\" : 0,\n", - " \"abduction_left\" : 0,\n", - " \"internal_rotation_left\" : 0,\n", - " \"external_rotation_left\" : 0,\n", - " \"reaching_left\" : 0\n", - "}\n", - "for i in range(len(exercises)):\n", - " exnamei = exercises[i].name\n", - " res_exi = exercises[i].result\n", - " if counted_ex[exnamei] < 1:\n", - "\n", - " #############################\n", - " # Results for TUG #\n", - " #############################\n", - " if exnamei == \"tug\":\n", - " counted_ex[exnamei] = 1\n", - " step_month_table = pd.DataFrame.from_dict(stepmonth,orient='index',\n", - " columns=['Jan','Feb','Mar','Apr','May','Jun',\n", - " 'Jul','Aug','Sep','Oct','Nov','Dec'])\n", - " step_month_table.index = [\"Number steps\",\"Speed [m/s]\",\"Step length [m]\",\n", - " \"Cadence [steps/s]\",\"Execution time [s]\"]\n", - " display(step_month_table)\n", - "\n", - " for m in range(len(res_exi)): \n", - " single_metric,result_single_metric = res_exi[m]\n", - " if single_metric.name == \"ROM\":\n", - " tagjoint = single_metric.tagjoint\n", - "\n", - " if np.sum(keyp2rommax_avg[tagjoint]) > 0.0:\n", - " trace1 = go.Bar(\n", - " x=allmonths, \n", - " y=keyp2rommax_avg[tagjoint],\n", - " name='Maximum value reached',\n", - " marker=dict(\n", - " color='rgb(0,0,255)'\n", - " )\n", - " )\n", - " trace2 = go.Bar(\n", - " x=allmonths, \n", - " y=keyp2rommin_avg[tagjoint],\n", - " name='Minimum value reached',\n", - " marker=dict(\n", - " color='rgb(255,0,0)'\n", - " )\n", - " )\n", - " layout = go.Layout(\n", - " title='Range of Motion Parameters',\n", - " font=dict(family='Courier New, monospace', size=18, color='black'),\n", - " xaxis=dict(\n", - " title='Month',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " yaxis=dict(\n", - " title='ROM ' + tagjoint + ' [degrees]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " legend=dict(\n", - " bgcolor='rgba(255, 255, 255, 0)',\n", - " bordercolor='rgba(255, 255, 255, 0)'\n", - " ),\n", - " barmode='group',\n", - " bargap=0.1,\n", - " bargroupgap=0.0\n", - " )\n", - " data=[trace1,trace2]\n", - " fig = go.Figure(data=data, layout=layout)\n", - " iplot(fig) \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 47, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "title = \"Results for Abduction\"\n", - "msg1 = HTML(''+title+'')\n", - "msg2 = HTML(''+title+'')\n", - "if sum(counted_exmonth['abduction_left'])>0:\n", - " display(msg1);\n", - "else:\n", - " display(msg2); \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 48, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "for i in range(len(exercises)):\n", - " exnamei = exercises[i].name\n", - " res_exi = exercises[i].result\n", - " if counted_ex[exnamei] < 1:\n", - " \n", - " ###################################\n", - " # Results for Abduction #\n", - " ###################################\n", - " if \"abduction\" in exnamei:\n", - " counted_ex[exnamei] = 1 \n", - "\n", - " for m in range(len(res_exi)): \n", - " single_metric,result_single_metric = res_exi[m]\n", - " if single_metric.name == \"ROM\":\n", - " tagjoint = single_metric.tagjoint\n", - "\n", - " if np.sum(keyp2rommax_avg[tagjoint]) > 0.0:\n", - " trace1 = go.Bar(\n", - " x=allmonths, \n", - " y=keyp2rommax_avg[tagjoint],\n", - " name='Maximum value reached',\n", - " marker=dict(\n", - " color='rgb(0,0,255)'\n", - " )\n", - " )\n", - " trace2 = go.Bar(\n", - " x=allmonths, \n", - " y=keyp2rommin_avg[tagjoint],\n", - " name='Minimum value reached',\n", - " marker=dict(\n", - " color='rgb(255,0,0)'\n", - " )\n", - " )\n", - " layout = go.Layout(\n", - " title='Range of Motion Parameters',\n", - " font=dict(family='Courier New, monospace', size=18, color='black'),\n", - " xaxis=dict(\n", - " title='Month',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " yaxis=dict(\n", - " title='ROM ' + tagjoint + ' [degrees]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " legend=dict(\n", - " bgcolor='rgba(255, 255, 255, 0)',\n", - " bordercolor='rgba(255, 255, 255, 0)'\n", - " ),\n", - " barmode='group',\n", - " bargap=0.1,\n", - " bargroupgap=0.0\n", - " )\n", - " data=[trace1,trace2]\n", - " fig = go.Figure(data=data, layout=layout)\n", - " iplot(fig) \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 49, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "title = \"Results for Internal Rotation\"\n", - "msg1 = HTML(''+title+'')\n", - "msg2 = HTML(''+title+'')\n", - "if sum(counted_exmonth['internal_rotation_left'])>0:\n", - " display(msg1);\n", - "else:\n", - " display(msg2); \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 50, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "for i in range(len(exercises)):\n", - " exnamei = exercises[i].name\n", - " res_exi = exercises[i].result\n", - " if counted_ex[exnamei] < 1:\n", - " \n", - " ###################################\n", - " # Results for Internal #\n", - " ###################################\n", - " if \"internal_rotation\" in exnamei:\n", - " counted_ex[exnamei] = 1 \n", - "\n", - " for m in range(len(res_exi)): \n", - " single_metric,result_single_metric = res_exi[m]\n", - " if single_metric.name == \"ROM\":\n", - " tagjoint = single_metric.tagjoint\n", - "\n", - " if np.sum(keyp2rommax_avg[tagjoint]) > 0.0:\n", - " trace1 = go.Bar(\n", - " x=allmonths, \n", - " y=keyp2rommax_avg[tagjoint],\n", - " name='Maximum value reached',\n", - " marker=dict(\n", - " color='rgb(0,0,255)'\n", - " )\n", - " )\n", - " trace2 = go.Bar(\n", - " x=allmonths, \n", - " y=keyp2rommin_avg[tagjoint],\n", - " name='Minimum value reached',\n", - " marker=dict(\n", - " color='rgb(255,0,0)'\n", - " )\n", - " )\n", - " layout = go.Layout(\n", - " title='Range of Motion Parameters',\n", - " font=dict(family='Courier New, monospace', size=18, color='black'),\n", - " xaxis=dict(\n", - " title='Month',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " yaxis=dict(\n", - " title='ROM ' + tagjoint + ' [degrees]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " legend=dict(\n", - " bgcolor='rgba(255, 255, 255, 0)',\n", - " bordercolor='rgba(255, 255, 255, 0)'\n", - " ),\n", - " barmode='group',\n", - " bargap=0.1,\n", - " bargroupgap=0.0\n", - " )\n", - " data=[trace1,trace2]\n", - " fig = go.Figure(data=data, layout=layout)\n", - " iplot(fig) \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 138, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "title = \"Results for External Rotation\"\n", - "msg1 = HTML(''+title+'')\n", - "msg2 = HTML(''+title+'')\n", - "if sum(counted_exmonth['external_rotation_left'])>0:\n", - " display(msg1);\n", - "else:\n", - " display(msg2); \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 139, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "for i in range(len(exercises)):\n", - " exnamei = exercises[i].name\n", - " res_exi = exercises[i].result\n", - " if counted_ex[exnamei] < 1:\n", - " \n", - " ###################################\n", - " # Results for External #\n", - " ###################################\n", - " if \"external_rotation\" in exnamei:\n", - " counted_ex[exnamei] = 1 \n", - "\n", - " for m in range(len(res_exi)): \n", - " single_metric,result_single_metric = res_exi[m]\n", - " if single_metric.name == \"ROM\":\n", - " tagjoint = single_metric.tagjoint\n", - "\n", - " if np.sum(keyp2rommax_avg[tagjoint]) > 0.0:\n", - " trace1 = go.Bar(\n", - " x=allmonths, \n", - " y=keyp2rommax_avg[tagjoint],\n", - " name='Maximum value reached',\n", - " marker=dict(\n", - " color='rgb(0,0,255)'\n", - " )\n", - " )\n", - " trace2 = go.Bar(\n", - " x=allmonths, \n", - " y=keyp2rommin_avg[tagjoint],\n", - " name='Minimum value reached',\n", - " marker=dict(\n", - " color='rgb(255,0,0)'\n", - " )\n", - " )\n", - " layout = go.Layout(\n", - " title='Range of Motion Parameters',\n", - " font=dict(family='Courier New, monospace', size=18, color='black'),\n", - " xaxis=dict(\n", - " title='Month',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " yaxis=dict(\n", - " title='ROM ' + tagjoint + ' [degrees]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " legend=dict(\n", - " bgcolor='rgba(255, 255, 255, 0)',\n", - " bordercolor='rgba(255, 255, 255, 0)'\n", - " ),\n", - " barmode='group',\n", - " bargap=0.1,\n", - " bargroupgap=0.0\n", - " )\n", - " data=[trace1,trace2]\n", - " fig = go.Figure(data=data, layout=layout)\n", - " iplot(fig) \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 140, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "title = \"Results for Reaching\"\n", - "msg1 = HTML(''+title+'')\n", - "msg2 = HTML(''+title+'')\n", - "if sum(counted_exmonth['reaching_left'])>0:\n", - " display(msg1);\n", - "else:\n", - " display(msg2); \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 141, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "for i in range(len(exercises)):\n", - " exnamei = exercises[i].name\n", - " res_exi = exercises[i].result\n", - " if counted_ex[exnamei] < 1:\n", - " \n", - " ###################################\n", - " # Results for Reaching #\n", - " ###################################\n", - " if \"reaching\" in exnamei:\n", - " counted_ex[exnamei] = 1 \n", - "\n", - " for m in range(len(res_exi)): \n", - " single_metric,result_single_metric = res_exi[m]\n", - " if single_metric.name == \"EP\":\n", - " trace1 = go.Bar(\n", - " x=allmonths, \n", - " y=endpointmonth[\"time\"],\n", - " name='Time',\n", - " marker=dict(\n", - " color='rgb(0,0,255)'\n", - " )\n", - " )\n", - " layout = go.Layout(\n", - " title='Reaching parameters',\n", - " font=dict(family='Courier New, monospace', size=18, color='black'),\n", - " xaxis=dict(\n", - " title='Month',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " yaxis=dict(\n", - " title='Execution time [s]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " legend=dict(\n", - " bgcolor='rgba(255, 255, 255, 0)',\n", - " bordercolor='rgba(255, 255, 255, 0)'\n", - " ),\n", - " barmode='group',\n", - " bargap=0.1,\n", - " bargroupgap=0.0\n", - " )\n", - " data=[trace1]\n", - " fig = go.Figure(data=data, layout=layout)\n", - " iplot(fig) \n", - " \n", - " trace1 = go.Bar(\n", - " x=allmonths, \n", - " y=endpointmonth[\"speed\"],\n", - " name='Speed',\n", - " marker=dict(\n", - " color='rgb(0,0,255)'\n", - " )\n", - " )\n", - " layout = go.Layout(\n", - " font=dict(family='Courier New, monospace', size=18, color='black'),\n", - " xaxis=dict(\n", - " title='Month',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " yaxis=dict(\n", - " title='Speed [m/s]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " legend=dict(\n", - " bgcolor='rgba(255, 255, 255, 0)',\n", - " bordercolor='rgba(255, 255, 255, 0)'\n", - " ),\n", - " barmode='group',\n", - " bargap=0.1,\n", - " bargroupgap=0.0\n", - " )\n", - " data=[trace1]\n", - " fig = go.Figure(data=data, layout=layout)\n", - " iplot(fig) \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 55, - "metadata": {}, - "outputs": [], - "source": [ - "nbf.write(nb, 'report-eng.ipynb')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 2", - "language": "python", - "name": "python2" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.17" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/report/ProgrammaticReport-ita.ipynb b/report/ProgrammaticReport-ita.ipynb deleted file mode 100644 index 9f4a9a14..00000000 --- a/report/ProgrammaticReport-ita.ipynb +++ /dev/null @@ -1,1978 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [], - "source": [ - "import nbformat as nbf\n", - "import textwrap" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [], - "source": [ - "nb = nbf.v4.new_notebook()" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [], - "source": [ - "#this creates a button to toggle to remove code in html\n", - "source_1 = textwrap.dedent(\"\"\"\n", - "from IPython.display import HTML\n", - "\n", - "HTML('''\n", - "
''')\"\"\")\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [], - "source": [ - "#import libraries\n", - "source_1 = textwrap.dedent(\"\"\"\\\n", - "#import libraries\n", - "import warnings \n", - "warnings.filterwarnings(\"ignore\",category=FutureWarning)\n", - "warnings.filterwarnings(\"ignore\", message=\"numpy.dtype size changed\")\n", - "import scipy.io as spio\n", - "import scipy.signal\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from mpl_toolkits.mplot3d import Axes3D\n", - "from collections import namedtuple\n", - "import math \n", - "import re \n", - "import pandas as pd\n", - "import os\n", - "import glob\n", - "from os.path import expanduser\n", - "import datetime\n", - "import statistics\n", - "from plotly import __version__\n", - "from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot\n", - "import plotly.graph_objs as go\n", - "init_notebook_mode(connected=True)\n", - "\"\"\")\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [], - "source": [ - "#define functions\n", - "source_1 = textwrap.dedent(\"\"\"\\\n", - "def color_negative_red(val):\n", - " color = 'red' if val > 110 else 'black'\n", - " return 'color: %s' % color\n", - "\"\"\")\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)\n", - "\n", - "source_1 = textwrap.dedent(\"\"\"\\\n", - "class Keypoint:\n", - " tag = \"\"\n", - " parent = ['']\n", - " child = ['']\n", - " point = None\n", - " \n", - " def __init__(self,tag=None,parent=None,child=None,point=None):\n", - " if tag is not None: \n", - " self.tag = tag\n", - " if parent is not None:\n", - " self.parent = parent\n", - " if child is not None:\n", - " self.child = child\n", - " if point is not None:\n", - " self.point = point\n", - "\"\"\")\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)\n", - "\n", - "source_1 = textwrap.dedent(\"\"\"\\\n", - "class Skeleton:\n", - " keypoints = [Keypoint() for i in range(17)]\n", - " tag2id = {\n", - " \"shoulderCenter\" : 0,\n", - " \"head\" : 1,\n", - " \"shoulderLeft\" : 2,\n", - " \"elbowLeft\" : 3,\n", - " \"handLeft\" : 4,\n", - " \"shoulderRight\" : 5,\n", - " \"elbowRight\" : 6,\n", - " \"handRight\" : 7,\n", - " \"hipCenter\" : 8,\n", - " \"hipLeft\" : 9,\n", - " \"kneeLeft\" : 10,\n", - " \"ankleLeft\" : 11,\n", - " \"footLeft\" : 12,\n", - " \"hipRight\" : 13,\n", - " \"kneeRight\" : 14,\n", - " \"ankleRight\" : 15,\n", - " \"footRight\" : 16,\n", - " }\n", - " keypoints[tag2id[\"shoulderCenter\"]] = Keypoint(\"shoulderCenter\",[''],['head','shoulderLeft','shoulderRight','hipCenter'])\n", - " keypoints[tag2id[\"head\"]] = Keypoint(\"head\",['shoulderCenter'],[''])\n", - " keypoints[tag2id[\"shoulderLeft\"]] = Keypoint(\"shoulderLeft\",['shoulderCenter'],['elbowLeft'])\n", - " keypoints[tag2id[\"elbowLeft\"]] = Keypoint(\"elbowLeft\",['shoulderLeft'],['handLeft'])\n", - " keypoints[tag2id[\"handLeft\"]] = Keypoint(\"handLeft\",['elbowLeft'],[''])\n", - " keypoints[tag2id[\"shoulderRight\"]] = Keypoint(\"shoulderRight\",['shoulderCenter'],['elbowRight'])\n", - " keypoints[tag2id[\"elbowRight\"]] = Keypoint(\"elbowRight\",['shoulderRight'],['handRight'])\n", - " keypoints[tag2id[\"handRight\"]] = Keypoint(\"handRight\",['elbowRight'],[''])\n", - " keypoints[tag2id[\"hipCenter\"]] = Keypoint(\"hipCenter\",['shoulderCenter'],['hipLeft','hipRight'])\n", - " keypoints[tag2id[\"hipLeft\"]] = Keypoint(\"hipLeft\",['shoulderCenter'],['kneeLeft'])\n", - " keypoints[tag2id[\"kneeLeft\"]] = Keypoint(\"kneeLeft\",['hipLeft'],['ankleLeft'])\n", - " keypoints[tag2id[\"ankleLeft\"]] = Keypoint(\"ankleLeft\",['kneeLeft'],['footLeft'])\n", - " keypoints[tag2id[\"footLeft\"]] = Keypoint(\"footLeft\",['ankleLeft'],[''])\n", - " keypoints[tag2id[\"hipRight\"]] = Keypoint(\"hipRight\",['shoulderCenter'],['kneeRight'])\n", - " keypoints[tag2id[\"kneeRight\"]] = Keypoint(\"kneeRight\",['hipRight'],['ankleRight'])\n", - " keypoints[tag2id[\"ankleRight\"]] = Keypoint(\"ankleRight\",['kneeRight'],['footRight'])\n", - " keypoints[tag2id[\"footRight\"]] = Keypoint(\"footRight\",['ankleRight'],[''])\n", - " \n", - " def __init__(self,keyp_map=None):\n", - " if keyp_map is not None:\n", - " for i in range(len(keyp_map)):\n", - " tag = keyp_map.keys()[i]\n", - " self.keypoints[self.tag2id[tag]].point = keyp_map[tag] \n", - " \n", - " def getKeypoint(self,keyp_tag):\n", - " return self.keypoints[self.tag2id[keyp_tag]].point\n", - " \n", - " def getChild(self,keyp_tag):\n", - " return self.keypoints[self.tag2id[keyp_tag]].child\n", - " \n", - " def getParent(self,keyp_tag):\n", - " return self.keypoints[self.tag2id[keyp_tag]].parent\n", - " \n", - " def getTransformation(self):\n", - " sagittal = None\n", - " coronal = None\n", - " transverse = None\n", - " T = np.eye(4,4)\n", - " if self.getKeypoint(\"shoulderLeft\") is not None:\n", - " if self.getKeypoint(\"shoulderRight\") is not None:\n", - " sagittal = self.getKeypoint(\"shoulderLeft\")[0]-self.getKeypoint(\"shoulderRight\")[0]\n", - " sagittal = sagittal/np.linalg.norm(sagittal)\n", - " if self.getKeypoint(\"shoulderCenter\") is not None:\n", - " if self.getKeypoint(\"hipLeft\") is not None:\n", - " if self.getKeypoint(\"hipRight\") is not None:\n", - " transverse = self.getKeypoint(\"shoulderCenter\")[0]-0.5*(self.getKeypoint(\"hipLeft\")[0]+self.getKeypoint(\"hipRight\")[0])\n", - " transverse = transverse/np.linalg.norm(transverse)\n", - " if self.getKeypoint(\"shoulderCenter\") is not None:\n", - " pSC = self.getKeypoint(\"shoulderCenter\")[0]\n", - "\n", - " if sagittal is not None:\n", - " if coronal is not None:\n", - " coronal = np.cross(sagittal,transverse)\n", - " T[0,0]=coronal[0]\n", - " T[1,0]=coronal[1]\n", - " T[2,0]=coronal[2]\n", - " T[0,1]=sagittal[0]\n", - " T[1,1]=sagittal[1]\n", - " T[2,1]=sagittal[2]\n", - " T[0,2]=transverse[0]\n", - " T[1,2]=transverse[1]\n", - " T[2,2]=transverse[2]\n", - " T[0,3]=pSC[0]\n", - " T[1,3]=pSC[1]\n", - " T[2,3]=pSC[2]\n", - " T[3,3]=1\n", - " return T\n", - " \n", - " def show(self):\n", - " for i in range(len(self.keypoints)):\n", - " k = self.keypoints[i]\n", - " print \"keypoint[\", k.tag, \"]\", \"=\", k.point\n", - "\"\"\")\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "class Exercise:\n", - " name = \"\"\n", - " typee = \"\"\n", - " metrics = []\n", - " \n", - "class Tug(Exercise):\n", - " name = \"tug\"\n", - " typee = \"test\"\n", - " metrics = [\"ROM_0\",\"ROM_1\",\"ROM_2\",\"ROM_3\",\"ROM_4\",\"ROM_5\",\"step_0\"]\n", - " result = []\n", - " month_res = {\n", - " 0: [],\n", - " 1: [],\n", - " 2: [],\n", - " 3: [],\n", - " 4: [],\n", - " 5: [],\n", - " 6: [],\n", - " 7: [],\n", - " 8: [],\n", - " 9: [],\n", - " 10: [],\n", - " 11: []\n", - " }\n", - " \n", - " def __init__(self,month,result):\n", - " self.result = result\n", - " self.month_res[month] = result\n", - " \n", - " def getResult(self,month):\n", - " return self.month_res[month]\n", - " \n", - "class Abduction(Exercise):\n", - " name = \"abduction\"\n", - " typee = \"rehabilitation\"\n", - " metrics = [\"ROM_0\"] \n", - " result = []\n", - " month_res = {\n", - " 0: [],\n", - " 1: [],\n", - " 2: [],\n", - " 3: [],\n", - " 4: [],\n", - " 5: [],\n", - " 6: [],\n", - " 7: [],\n", - " 8: [],\n", - " 9: [],\n", - " 10: [],\n", - " 11: []\n", - " }\n", - " def __init__(self,name,monthi,result):\n", - " self.name = name\n", - " self.result = result\n", - " self.month_res[monthi] = result\n", - " \n", - " def getResult(self,month):\n", - " return self.month_res[month]\n", - " \n", - "class Internal_Rotation(Exercise):\n", - " name = \"internal_rotation\"\n", - " typee = \"rehabilitation\"\n", - " metrics = [\"ROM_0\"] \n", - " result = []\n", - " month_res = {\n", - " 0: [],\n", - " 1: [],\n", - " 2: [],\n", - " 3: [],\n", - " 4: [],\n", - " 5: [],\n", - " 6: [],\n", - " 7: [],\n", - " 8: [],\n", - " 9: [],\n", - " 10: [],\n", - " 11: []\n", - " }\n", - " def __init__(self,name,monthi,result):\n", - " self.name = name\n", - " self.result = result\n", - " self.month_res[monthi] = result\n", - " \n", - " def getResult(self,month):\n", - " return self.month_res[month]\n", - " \n", - "class External_Rotation(Exercise):\n", - " name = \"external_rotation\"\n", - " typee = \"rehabilitation\"\n", - " metrics = [\"ROM_0\"] \n", - " result = []\n", - " month_res = {\n", - " 0: [],\n", - " 1: [],\n", - " 2: [],\n", - " 3: [],\n", - " 4: [],\n", - " 5: [],\n", - " 6: [],\n", - " 7: [],\n", - " 8: [],\n", - " 9: [],\n", - " 10: [],\n", - " 11: []\n", - " }\n", - " def __init__(self,name,monthi,result):\n", - " self.name = name\n", - " self.result = result\n", - " self.month_res[monthi] = result\n", - " \n", - " def getResult(self,month):\n", - " return self.month_res[month]\n", - " \n", - "class Reaching(Exercise):\n", - " name = \"reaching\"\n", - " typee = \"rehabilitation\"\n", - " metrics = [\"EP_0\"] \n", - " result = []\n", - " month_res = {\n", - " 0: [],\n", - " 1: [],\n", - " 2: [],\n", - " 3: [],\n", - " 4: [],\n", - " 5: [],\n", - " 6: [],\n", - " 7: [],\n", - " 8: [],\n", - " 9: [],\n", - " 10: [],\n", - " 11: []\n", - " }\n", - " def __init__(self,name,monthi,result):\n", - " self.name = name\n", - " self.result = result\n", - " self.month_res[monthi] = result\n", - " \n", - " def getResult(self,month):\n", - " return self.month_res[month]\n", - "\n", - "\n", - "\"\"\")\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "class Metric:\n", - " name = ''\n", - " \n", - " def __init__(self,name):\n", - " self.name = name\n", - "\n", - "class Rom(Metric):\n", - " name = \"ROM\"\n", - " tagjoint = \"\"\n", - " refjoint = \"\"\n", - " refdir = []\n", - " tagplane = \"\"\n", - " def __init__(self,tagjoint,refjoint,refdir,tagplane):\n", - " self.tagjoint = tagjoint\n", - " self.refjoint = refjoint\n", - " self.refdir = refdir\n", - " self.tagplane = tagplane\n", - " \n", - " def compute(self,skeleton): \n", - " #joint ref and child\n", - " tj = skeleton.getKeypoint(self.tagjoint)\n", - " tagchild = skeleton.getChild(self.tagjoint)[0]\n", - " cj = skeleton.getKeypoint(tagchild)\n", - " \n", - " xrj = []\n", - " yrj = []\n", - " zrj = []\n", - " if self.refjoint != \"\":\n", - " rj = skeleton.getKeypoint(self.refjoint)\n", - " xrj = rj[:,0]\n", - " yrj = rj[:,1]\n", - " zrj = rj[:,2]\n", - " \n", - " #compute metric\n", - " x=tj[:,0]\n", - " y=tj[:,1]\n", - " z=tj[:,2]\n", - "\n", - " xchild=cj[:,0]\n", - " ychild=cj[:,1]\n", - " zchild=cj[:,2]\n", - "\n", - " #plane over which we want to evaluate the metric\n", - " plane = np.zeros(3)\n", - " if tagplane == \"coronal\":\n", - " plane[0] = 1.0\n", - " if tagplane == \"sagittal\":\n", - " plane[1] = 1.0\n", - " if tagplane == \"transverse\":\n", - " plane[2] = 1.0\n", - "\n", - " #project v1 on the right plane\n", - " invT = np.linalg.inv(skeleton.getTransformation())\n", - " cosRom = [] \n", - " for i in range(len(x)):\n", - " temp_ref = np.array([x[i],y[i],z[i],1])\n", - " temp_child = np.array([xchild[i],ychild[i],zchild[i],1])\n", - "\n", - " transf_ref = np.inner(invT,temp_ref) \n", - " transf_child = np.inner(invT,temp_child) \n", - " vprocess = transf_child-transf_ref\n", - " vprocess = np.delete(vprocess,3)\n", - "\n", - " dist = np.dot(vprocess,np.transpose(plane)) \n", - " vprocess = vprocess-dist*plane\n", - "\n", - " n1 = np.linalg.norm(vprocess)\n", - " if(n1>0):\n", - " vprocess = vprocess/n1 \n", - " \n", - " if len(xrj)>0:\n", - " temp_refjoint = np.array([xrj[i],yrj[i],zrj[i],1])\n", - " transf_refjoint = np.inner(invT,temp_refjoint)\n", - " vecref = transf_ref - transf_refjoint\n", - " ref = np.delete(vecref,3)\n", - " else: \n", - " n2 = np.linalg.norm(self.refdir)\n", - " if(n2>0):\n", - " self.refdir = self.refdir/n2\n", - " ref = self.refdir\n", - " \n", - " dotprod = np.dot(vprocess,np.transpose(ref))\n", - " cosRom.append(dotprod)\n", - "\n", - " \n", - " rom_value = np.arccos(cosRom)\n", - " result = rom_value *(180/math.pi)\n", - " return result\n", - " \n", - " \n", - "class Step(Metric):\n", - " name = \"step\"\n", - " num = []\n", - " den = []\n", - " step_thresh = 0.0\n", - " tstart = 0.0\n", - " tend = 0.0\n", - " steplen = []\n", - " nsteps = 0\n", - " cadence = 0.0\n", - " speed = 0.0\n", - " ex_time = 0.0\n", - " filtered_distfeet = []\n", - " strikes = []\n", - " def __init__(self,num,den,tstart,tend,step_thresh):\n", - " self.num = num\n", - " self.den = den\n", - " self.tstart = tstart\n", - " self.tend = tend\n", - " self.step_thresh = step_thresh\n", - "\n", - " def compute(self,skeleton):\n", - " alj = skeleton.getKeypoint(\"ankleLeft\")\n", - " arj = skeleton.getKeypoint(\"ankleRight\")\n", - " sagittal = None\n", - " if skeleton.getKeypoint(\"shoulderLeft\") is not None:\n", - " if skeleton.getKeypoint(\"shoulderRight\") is not None:\n", - " sagittal = skeleton.getKeypoint(\"shoulderLeft\")[0]-skeleton.getKeypoint(\"shoulderRight\")[0]\n", - " sagittal = sagittal/np.linalg.norm(sagittal)\n", - " distfeet = []\n", - " for i in range(len(alj)):\n", - " v = alj[i,:]-arj[i,:]\n", - " dist = np.dot(v,np.transpose(sagittal)) \n", - " v = v-dist*sagittal\n", - " distfeet.append(np.linalg.norm(v))\n", - " self.filtered_distfeet = scipy.signal.filtfilt(self.num,self.den,distfeet)\n", - " self.strikes,_ = scipy.signal.find_peaks(self.filtered_distfeet,height=self.step_thresh)\n", - " filtered_distfeet_np = np.array(self.filtered_distfeet)\n", - " slen = filtered_distfeet_np[self.strikes]\n", - " self.steplen = statistics.mean(slen)\n", - " self.nsteps = len(self.strikes)\n", - " self.cadence = self.nsteps/(self.tend-self.tstart)\n", - " self.speed = self.steplen*self.cadence\n", - " self.ex_time = self.tend-self.tstart\n", - " \n", - "class EndPoint(Metric):\n", - " name = \"EP\"\n", - " tagjoint = \"\"\n", - " refdir = []\n", - " tagplane = \"\"\n", - " target = []\n", - " trajectories = []\n", - " tstart = 0.0\n", - " tend = 0.0\n", - " speed = 0.0\n", - " ex_time = 0.0\n", - " def __init__(self,tagjoint,refdir,tagplane,target,tstart,tend):\n", - " self.tagjoint = tagjoint\n", - " self.refdir = refdir\n", - " self.tagplane = tagplane\n", - " self.target = target\n", - " self.tstart = tstart\n", - " self.tend = tend\n", - " \n", - " def compute(self,skeleton):\n", - " self.ex_time = self.tend-self.tstart\n", - " tj = skeleton.getKeypoint(self.tagjoint)\n", - " x = tj[:,0]\n", - " y = tj[:,1]\n", - " z = tj[:,2]\n", - "\n", - " plane = np.zeros(3)\n", - " if tagplane == \"coronal\":\n", - " plane[0] = 1.0\n", - " if tagplane == \"sagittal\":\n", - " plane[1] = 1.0\n", - " if tagplane == \"transverse\":\n", - " plane[2] = 1.0\n", - " invT = np.linalg.inv(skeleton.getTransformation())\n", - " self.trajectories = np.zeros([len(x),3])\n", - " for i in range(len(x)):\n", - " temp_jnt = np.array([x[i],y[i],z[i],1]) \n", - " transf_jnt = np.inner(invT,temp_jnt) \n", - " v = np.delete(transf_jnt,3)\n", - " dist = np.dot(v,np.transpose(plane)) \n", - " v = v-dist*plane\n", - " self.trajectories[i,0]=v[0]\n", - " self.trajectories[i,1]=v[1]\n", - " self.trajectories[i,2]=v[2]\n", - " \n", - " vel = np.zeros([len(x),3])\n", - " vel[:,0] = np.gradient(self.trajectories[:,0])/self.ex_time\n", - " vel[:,1] = np.gradient(self.trajectories[:,1])/self.ex_time\n", - " vel[:,2] = np.gradient(self.trajectories[:,2])/self.ex_time\n", - " \n", - " self.speed = 0.0\n", - " for i in range(len(x)):\n", - " self.speed = self.speed + np.linalg.norm([vel[i,0],vel[i,1],vel[i,2]])\n", - " self.speed = self.speed/len(x)\n", - "\"\"\")\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "def loadmat(filename):\n", - " '''\n", - " this function should be called instead of direct spio.loadmat\n", - " as it cures the problem of not properly recovering python dictionaries\n", - " from mat files. It calls the function check keys to cure all entries\n", - " which are still mat-objects\n", - " '''\n", - " data = spio.loadmat(filename, struct_as_record=False, squeeze_me=True)\n", - " return _check_keys(data)\n", - "\n", - "def _check_keys(dict):\n", - " '''\n", - " checks if entries in dictionary are mat-objects. If yes\n", - " todict is called to change them to nested dictionaries\n", - " '''\n", - " for key in dict:\n", - " if isinstance(dict[key], spio.matlab.mio5_params.mat_struct):\n", - " dict[key] = _todict(dict[key])\n", - " return dict \n", - "\n", - "def _todict(matobj):\n", - " '''\n", - " A recursive function which constructs from matobjects nested dictionaries\n", - " '''\n", - " dict = {}\n", - " for strg in matobj._fieldnames:\n", - " elem = matobj.__dict__[strg]\n", - " if isinstance(elem, spio.matlab.mio5_params.mat_struct):\n", - " dict[strg] = _todict(elem)\n", - " else:\n", - " dict[strg] = elem\n", - " return dict\n", - "\"\"\")\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": {}, - "outputs": [], - "source": [ - "#print personal data\n", - "text = \"\"\"\n", - "## Dati anagrafici \"\"\"\n", - "markdown_cell = nbf.v4.new_markdown_cell(text)\n", - "nb.cells.append(markdown_cell)\n", - "\n", - "source_1 = textwrap.dedent(\"\"\" \n", - "#load file \n", - "home = expanduser(\"~\")\n", - "pth = home + '/.local/share/yarp/contexts/motionAnalyzer'\n", - "files = glob.glob(os.path.join(pth, '*.mat'))\n", - "lastfile = max(files, key=os.path.getctime)\n", - "print lastfile\n", - "\n", - "#print personal data\n", - "i = [pos for pos, char in enumerate(lastfile) if char == \"-\"]\n", - "i1 = i[-3]\n", - "i2 = i[-2]\n", - "name = lastfile[i1+1:i2]\n", - "surname = \"\"\n", - "age = \"\"\n", - "\n", - "personaldata = []\n", - "personaldata.append(name)\n", - "personaldata.append(surname)\n", - "personaldata.append(age) \n", - "table = pd.DataFrame(personaldata) \n", - "table.rename(index={0:\"Nome\",1:\"Cognome\",2:\"Età\"}, columns={0:\"Paziente\"}, inplace=True)\n", - "display(table) \"\"\")\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "metadata": {}, - "outputs": [], - "source": [ - "#we load all the files with the same user name\n", - "source_1 = textwrap.dedent(\"\"\" \n", - "data = []\n", - "ctime = []\n", - "filename = []\n", - "tagex = []\n", - "files.sort(key=os.path.getctime)\n", - "for fi in files:\n", - " i = [pos for pos, char in enumerate(fi) if char == \"-\"]\n", - " i1 = i[-3]\n", - " i2 = i[-2]\n", - " i3 = i[-1]\n", - " namei = fi[i1+1:i2]\n", - " if namei == name:\n", - " filename.append(fi)\n", - " data.append(loadmat(fi)) #data.append(scipy.io.loadmat(fi))\n", - " tagex.append(fi[i2+1:i3])\n", - " ctime.append(os.path.getctime(fi)) \"\"\")\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "metadata": {}, - "outputs": [], - "source": [ - "#define keypoints\n", - "source_1 = textwrap.dedent(\"\"\"\\\n", - "time = []\n", - "month = []\n", - "exercises = []\n", - "ex_names = []\n", - "#count how many exercise of the same type were performed at that month\n", - "countexmonth = {\n", - " \"tug\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"abduction_left\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"internal_rotation_left\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"external_rotation_left\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"reaching_left\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "\n", - "for i in range(len(data)):\n", - "\n", - " datai = data[i]\n", - " time.append(datai['Time_samples'])\n", - " monthi = datetime.date.fromtimestamp(ctime[i]).month-1\n", - " month.append(monthi)\n", - " shoulderCenter = datai['Keypoints']['shoulderCenter']\n", - " head = datai['Keypoints']['head']\n", - " shoulderLeft = datai['Keypoints']['shoulderLeft']\n", - " shoulderRight = datai['Keypoints']['shoulderRight']\n", - " elbowLeft = datai['Keypoints']['elbowLeft']\n", - " handLeft = datai['Keypoints']['handLeft']\n", - " elbowRight = datai['Keypoints']['elbowRight']\n", - " handRight = datai['Keypoints']['handRight']\n", - " hipLeft = datai['Keypoints']['hipLeft']\n", - " hipRight = datai['Keypoints']['hipRight']\n", - " ankleLeft = datai['Keypoints']['ankleLeft']\n", - " ankleRight = datai['Keypoints']['ankleRight']\n", - " kneeLeft = datai['Keypoints']['kneeLeft']\n", - " kneeRight = datai['Keypoints']['kneeRight']\n", - " footLeft = datai['Keypoints']['footLeft']\n", - " footRight = datai['Keypoints']['footRight']\n", - " hipCenter = datai['Keypoints']['hipCenter']\n", - " \n", - " key_pam = {\n", - " \"shoulderCenter\" : shoulderCenter,\n", - " \"head\" : head,\n", - " \"shoulderLeft\" : shoulderLeft,\n", - " \"shoulderRight\" : shoulderRight,\n", - " \"elbowLeft\" : elbowLeft,\n", - " \"handLeft\" : handLeft,\n", - " \"elbowRight\" : elbowRight,\n", - " \"handRight\" : handRight,\n", - " \"hipLeft\" : hipLeft,\n", - " \"hipRight\" : hipRight,\n", - " \"ankleLeft\" : ankleLeft,\n", - " \"ankleRight\" : ankleRight,\n", - " \"kneeLeft\" : kneeLeft,\n", - " \"kneeRight\" : kneeRight,\n", - " \"footLeft\" : footLeft,\n", - " \"footRight\" : footRight,\n", - " \"hipCenter\" : hipCenter\n", - " }\n", - " s=Skeleton(key_pam)\n", - " #s.show()\n", - " \n", - " exname = datai[\"Exercise\"][\"name\"]\n", - " exname = re.sub(r'[^\\w]','',exname)\n", - " ex_names.append(exname)\n", - " result_singleexercise = []\n", - " allmet = datai[\"Exercise\"][\"metrics\"]\n", - " metrics = allmet.keys()\n", - " for j in range(len(metrics)):\n", - " metname = metrics[j]\n", - " if \"ROM\" in metname:\n", - " tagjoint = allmet[metname][\"tag_joint\"]\n", - " tagjoint = re.sub(r'[^\\w]', '',tagjoint)\n", - " refjoint = allmet[metname][\"ref_joint\"]\n", - " refjoint = re.sub(r'[^\\w]', '',refjoint)\n", - " if type(refjoint) is np.ndarray:\n", - " refjoint = \"\"\n", - " refdir = allmet[metname][\"ref_dir\"]\n", - " tagplane = allmet[metname][\"tag_plane\"]\n", - " tagplane = re.sub(r'[^\\w]', '',tagplane)\n", - " rom = Rom(tagjoint,refjoint,refdir,tagplane)\n", - " result_singleexercise.append((rom,rom.compute(s)))\n", - "\n", - " if \"step\" in metname:\n", - " num = allmet[metname][\"num\"]\n", - " den = allmet[metname][\"den\"]\n", - " tstart = allmet[metname][\"tstart\"]\n", - " tend = allmet[metname][\"tend\"]\n", - " step_thresh = allmet[metname][\"step_thresh\"]\n", - " step = Step(num,den,tstart,tend,step_thresh)\n", - " step.compute(s)\n", - " stepmet = [step.steplen,step.nsteps,step.cadence,step.speed,step.ex_time,\n", - " step.filtered_distfeet,step.strikes]\n", - " result_singleexercise.append((step,stepmet))\n", - "\n", - " if \"EP\" in metname:\n", - " tagjoint = allmet[metname][\"tag_joint\"]\n", - " tagjoint = re.sub(r'[^\\w]', '',tagjoint)\n", - " refdir = allmet[metname][\"ref_dir\"]\n", - " tagplane = allmet[metname][\"tag_plane\"]\n", - " tagplane = re.sub(r'[^\\w]', '',tagplane)\n", - " target = allmet[metname][\"target\"]\n", - " tstart = allmet[metname][\"tstart\"]\n", - " tend = allmet[metname][\"tend\"]\n", - " ep = EndPoint(tagjoint,refdir,tagplane,target,tstart,tend)\n", - " ep.compute(s)\n", - " result_singleexercise.append((ep,ep.trajectories))\n", - "\n", - " if exname == \"tug\":\n", - " ex = Tug(monthi,result_singleexercise)\n", - " if \"abduction\" in exname:\n", - " ex = Abduction(exname,monthi,result_singleexercise)\n", - " if \"internal_rotation\" in exname:\n", - " ex = Internal_Rotation(exname,monthi,result_singleexercise)\n", - " if \"external_rotation\" in exname:\n", - " ex = External_Rotation(exname,monthi,result_singleexercise)\n", - " if \"reaching\" in exname:\n", - " ex = Reaching(exname,monthi,result_singleexercise)\n", - "\n", - " countexmonth[exname][monthi] = 1 + countexmonth[exname][monthi]\n", - " \n", - " exercises.append(ex) \n", - " \"\"\")\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "metadata": {}, - "outputs": [], - "source": [ - "#print information about the performed movement and the evaluated metric\n", - "text = \"\"\" \n", - "## Report della seduta odierna\n", - "Il paziente ha svolto il seguente esercizio: \"\"\"\n", - "markdown_cell = nbf.v4.new_markdown_cell(text)\n", - "nb.cells.append(markdown_cell)\n", - "\n", - "source_1 = textwrap.dedent(\"\"\" \n", - "print exname.encode('ascii') \"\"\")\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)\n", - "\n", - "text = \"\"\" \n", - "on: \"\"\"\n", - "markdown_cell = nbf.v4.new_markdown_cell(text)\n", - "nb.cells.append(markdown_cell)\n", - "\n", - "source_1 = textwrap.dedent(\"\"\" \n", - "now = datetime.datetime.now()\n", - "print now \"\"\")\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "metadata": {}, - "outputs": [], - "source": [ - "#plot the metrics for each session\n", - "text = \"\"\" \n", - "Di seguito si riporta il grafico:\"\"\"\n", - "markdown_cell = nbf.v4.new_markdown_cell(text)\n", - "nb.cells.append(markdown_cell)\n", - "\n", - "source_1 = textwrap.dedent(\"\"\"\\\n", - "lastsess_time = time[-1]\n", - "lastsess_result = exercises[-1].result\n", - "lastsess_res_step = []\n", - "\n", - "%matplotlib inline\n", - "%matplotlib inline\n", - "for i in range(len(lastsess_result)):\n", - " lastsess_met,lastsess_resi = lastsess_result[i]\n", - " lastsess_metname = lastsess_met.name\n", - " ################\n", - " # ROM #\n", - " ################\n", - " if lastsess_metname == \"ROM\":\n", - " lastsess_metjoint = lastsess_met.tagjoint\n", - " trace1 = go.Scatter(\n", - " x=lastsess_time,y=lastsess_resi,\n", - " mode='lines',\n", - " line=dict(\n", - " color='blue',\n", - " width=3\n", - " ),\n", - " name='Andamento Reale'\n", - " )\n", - " data = [trace1]\n", - " layout = dict(\n", - " width=750,\n", - " height=600,\n", - " autosize=False,\n", - " title='Range of Motion '+lastsess_metjoint,\n", - " font=dict(family='Courier New, monospace', size=22, color='black'),\n", - " xaxis=dict(\n", - " title='time [s]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " yaxis=dict(\n", - " title='ROM [gradi]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " )\n", - " )\n", - " )\n", - " fig = dict(data=data, layout=layout)\n", - " iplot(fig)\n", - " \n", - " ################\n", - " # STEP #\n", - " ################\n", - " if lastsess_metname == \"step\":\n", - " dist=lastsess_resi[5]\n", - " strikes=lastsess_resi[6]\n", - " trace1 = go.Scatter(\n", - " x=lastsess_time,y=dist,\n", - " mode='lines',\n", - " line=dict(\n", - " color='blue',\n", - " width=3\n", - " ),\n", - " name='Distanza tra i piedi'\n", - " )\n", - " trace2 = go.Scatter(\n", - " x=lastsess_time[strikes],y=dist[strikes],\n", - " mode='markers',\n", - " marker=dict(\n", - " color='red',\n", - " size=10\n", - " ),\n", - " name='Appoggio tallone'\n", - " )\n", - " data = [trace1,trace2]\n", - " layout = dict(\n", - " width=750,\n", - " height=600,\n", - " autosize=False,\n", - " title='Distanza tra i piedi',\n", - " font=dict(family='Courier New, monospace', size=22, color='black'),\n", - " xaxis=dict(\n", - " title='time [s]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " yaxis=dict(\n", - " title='dist [m]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " )\n", - " )\n", - " )\n", - " fig = dict(data=data, layout=layout)\n", - " iplot(fig)\n", - " \n", - " lastsess_res_step.append(lastsess_resi)\n", - " tablestep = pd.DataFrame(lastsess_res_step[0][0:4])\n", - " tablestep.rename(index={0:\"Lunghezza passo [m]\",1:\"Numero di passi\",2:\"Cadenza [steps/s]\",\n", - " 3:\"Velocità [m/s]\",4:\"Tempo di esecuzione [s]\"},\n", - " columns={0:\"Analisi cammino\"}, inplace=True)\n", - " display(tablestep)\n", - " \n", - " ################\n", - " # EP #\n", - " ################\n", - " if lastsess_metname == \"EP\":\n", - " target = lastsess_met.target\n", - " trace1 = go.Scatter3d(\n", - " x=lastsess_resi[:,0], y=lastsess_resi[:,1], z=lastsess_resi[:,2],\n", - " mode = 'lines',\n", - " line=dict(\n", - " color='blue',\n", - " width=3\n", - " ),\n", - " name = 'Traiettorie'\n", - " )\n", - " trace2 = go.Scatter3d(\n", - " x=[target[0]], y=[target[1]], z=[target[2]],\n", - " mode = 'markers',\n", - " marker=dict(\n", - " color='red',\n", - " size=5\n", - " ),\n", - " name = 'Target da raggiungere'\n", - " )\n", - " data = [trace1, trace2] \n", - " layout = dict(\n", - " margin=dict(\n", - " l=0,\n", - " r=0,\n", - " b=0\n", - " ),\n", - " title='Traiettorie End-point',\n", - " font=dict(family='Courier New, monospace', size=22, color='black'),\n", - " scene=dict(\n", - " xaxis=dict(\n", - " title='x [cm]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " ),\n", - " gridcolor='rgb(255, 255, 255)',\n", - " zerolinecolor='rgb(255, 255, 255)',\n", - " showbackground=True,\n", - " backgroundcolor='rgb(230, 230,230)'\n", - " ),\n", - " yaxis=dict(\n", - " title='y [cm]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " ),\n", - " gridcolor='rgb(255, 255, 255)',\n", - " zerolinecolor='rgb(255, 255, 255)',\n", - " showbackground=True,\n", - " backgroundcolor='rgb(230, 230,230)'\n", - " ),\n", - " zaxis=dict(\n", - " title='z [cm]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " ),\n", - " gridcolor='rgb(255, 255, 255)',\n", - " zerolinecolor='rgb(255, 255, 255)',\n", - " showbackground=True,\n", - " backgroundcolor='rgb(230, 230,230)'\n", - " ),\n", - " camera=dict(\n", - " up=dict(\n", - " x=0,\n", - " y=0,\n", - " z=1\n", - " ),\n", - " eye=dict(\n", - " x=-1.7428,\n", - " y=1.0707,\n", - " z=0.7100,\n", - " )\n", - " ),\n", - " aspectratio = dict( x=1, y=1, z=0.7 ),\n", - " aspectmode = 'manual'\n", - " ),\n", - " )\n", - " fig = dict(data=data, layout=layout)\n", - " iplot(fig)\n", - " \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "if exname == 'tug':\n", - " \n", - " table_tug = pd.DataFrame([['Normale mobilità'],['Buona mobilita'],['Ausili cammino'],['Rischio caduta']],\n", - " index=['< 10 s','< 20 s','< 30 s','>= 30 s'],\n", - " columns=['Tabella TUG'])\n", - " display(table_tug)\n", - " \n", - " time_score = lastsess_res_step[0][4]\n", - " print \"Il test è stato svolto in\",round(time_score,2),\"s\"\n", - " if time_score < 10:\n", - " evaluation = 'Normale mobilità'\n", - " print \"La valutazione è \\033[1;30;42m\",evaluation\n", - " elif time_score < 20:\n", - " evaluation = 'Buona mobilità, non necessita ausili'\n", - " print \"La valutazione è \\033[1;30;42m\",evaluation\n", - " elif time_score < 30:\n", - " evaluation = 'Necessita ausili cammino'\n", - " print \"La valutazione è \\033[1;30;43m\",evaluation\n", - " elif time_score >= 30:\n", - " evaluation = 'Rischio caduta'\n", - " print \"La valutazione è \\033[1;30;41m\",evaluation\n", - " \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 43, - "metadata": {}, - "outputs": [], - "source": [ - "#report about patient's improvements\n", - "text = \"\"\" \n", - "## Andamento stato clinico\"\"\"\n", - "markdown_cell = nbf.v4.new_markdown_cell(text)\n", - "nb.cells.append(markdown_cell)\n", - "\n", - "text = \"\"\" \n", - "Gli esercizi svolti dal paziente nei mesi in analisi sono raggruppati come segue:\"\"\"\n", - "markdown_cell = nbf.v4.new_markdown_cell(text)\n", - "nb.cells.append(markdown_cell)\n", - "\n", - "source_1 = textwrap.dedent(\"\"\"\\\n", - "labels = [\"reaching_left\",\"abduction_left\",\"internal-rotation_left\",\"external-rotation_left\",\"timed-up-and-go\"]\n", - "values = [tagex.count(\"reaching_left\"), tagex.count(\"abduction_left\"), tagex.count(\"internal_rotation_left\"), \n", - " tagex.count(\"external_rotation_left\"), tagex.count(\"tug\")]\n", - "colors = ['#FEBFB3', '#E1396C', '#96D38C', '#D0F9B1']\n", - "\n", - "trace = go.Pie(labels=labels, values=values,\n", - " #hoverinfo='label+percent', textinfo='value', \n", - " textfont=dict(size=20),\n", - " marker=dict(colors=colors, \n", - " line=dict(color='#000000', width=2)),\n", - " hoverinfo=\"label+percent+value\",\n", - " hole=0.3\n", - " )\n", - "layout = go.Layout(\n", - " title=\"Performed exercises\",\n", - ")\n", - "data = [trace]\n", - "fig = go.Figure(data=data,layout=layout)\n", - "iplot(fig) \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)\n", - "\n", - "\n", - "text = \"\"\" \n", - "Di seguito, si riportano gli andamenti delle metriche del paziente, raggruppati per mese: \"\"\"\n", - "markdown_cell = nbf.v4.new_markdown_cell(text)\n", - "nb.cells.append(markdown_cell)\n", - "\n", - "source_1 = textwrap.dedent(\"\"\"\\\n", - "keyp2rommax = {\n", - " \"shoulderCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"head\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footRight\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "keyp2rommin = {\n", - " \"shoulderCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"head\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footRight\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "countrommonth = {\n", - " \"shoulderCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"head\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footRight\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "keyp2rommax_avg = {\n", - " \"shoulderCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"head\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footRight\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "keyp2rommin_avg = {\n", - " \"shoulderCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"head\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footRight\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "\n", - "stepmonth = {\n", - " \"steplen\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"numsteps\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"cadence\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"speed\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"time\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "countstepmonth = [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "\n", - "endpointmonth = {\n", - " \"time\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"speed\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "countendpointmonth = [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "\n", - "for i in range(len(exercises)):\n", - " exnamei = exercises[i].name\n", - " for monthi in range(12):\n", - " if countexmonth[exnamei][monthi] != 0:\n", - " res_exi = exercises[i].getResult(monthi)\n", - " for m in range(len(res_exi)): \n", - " single_metric,result_single_metric = res_exi[m]\n", - " single_metric_name = single_metric.name\n", - " if single_metric_name == \"ROM\":\n", - " maxromj = max(result_single_metric)\n", - " minromj = min(result_single_metric)\n", - " tagjoint = single_metric.tagjoint\n", - " keyp2rommax[tagjoint][monthi] = maxromj + keyp2rommax[tagjoint][monthi]\n", - " keyp2rommin[tagjoint][monthi] = minromj + keyp2rommin[tagjoint][monthi]\n", - " countrommonth[tagjoint][monthi] = 1 + countrommonth[tagjoint][monthi] \n", - "\n", - " if single_metric_name == \"step\":\n", - " stepmonth[\"steplen\"][monthi] = single_metric.steplen + stepmonth[\"steplen\"][monthi]\n", - " stepmonth[\"numsteps\"][monthi] = single_metric.nsteps + stepmonth[\"numsteps\"][monthi]\n", - " stepmonth[\"cadence\"][monthi] = single_metric.cadence + stepmonth[\"cadence\"][monthi]\n", - " stepmonth[\"speed\"][monthi] = single_metric.speed + stepmonth[\"speed\"][monthi]\n", - " stepmonth[\"time\"][monthi] = single_metric.ex_time + stepmonth[\"time\"][monthi]\n", - " countstepmonth[monthi] = 1 + countstepmonth[monthi]\n", - " \n", - " if single_metric_name == \"EP\":\n", - " endpointmonth[\"time\"][monthi] = single_metric.ex_time + endpointmonth[\"time\"][monthi]\n", - " endpointmonth[\"speed\"][monthi] = single_metric.speed + endpointmonth[\"speed\"][monthi]\n", - " countendpointmonth[monthi] = 1 + countendpointmonth[monthi]\n", - " \n", - " \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "counted_exmonth = {\n", - " \"tug\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"abduction_left\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"internal_rotation_left\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"external_rotation_left\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"reaching_left\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "for i in range(len(exercises)):\n", - " exnamei = exercises[i].name\n", - " \n", - " for monthi in range(12): \n", - " if countexmonth[exnamei][monthi] != 0:\n", - " if counted_exmonth[exnamei][monthi] < 1: \n", - " res_exi = exercises[i].getResult(monthi)\n", - " for m in range(len(res_exi)): \n", - " single_metric,result_single_metric = res_exi[m]\n", - " single_metric_name = single_metric.name\n", - "\n", - " if single_metric_name == \"ROM\":\n", - " tagjoint = single_metric.tagjoint\n", - " if countrommonth[tagjoint][monthi] != 0:\n", - " keyp2rommax_avg[tagjoint][monthi] = keyp2rommax[tagjoint][monthi]/countrommonth[tagjoint][monthi]\n", - " keyp2rommin_avg[tagjoint][monthi] = keyp2rommin[tagjoint][monthi]/countrommonth[tagjoint][monthi]\n", - " \n", - " \n", - " if single_metric_name == \"step\":\n", - " if countstepmonth[monthi] != 0:\n", - " stepmonth[\"steplen\"][monthi] = stepmonth[\"steplen\"][monthi]/countstepmonth[monthi]\n", - " stepmonth[\"numsteps\"][monthi] = stepmonth[\"numsteps\"][monthi]/countstepmonth[monthi]\n", - " stepmonth[\"cadence\"][monthi] = stepmonth[\"cadence\"][monthi]/countstepmonth[monthi]\n", - " stepmonth[\"speed\"][monthi] = stepmonth[\"speed\"][monthi]/countstepmonth[monthi]\n", - " stepmonth[\"time\"][monthi] = stepmonth[\"time\"][monthi]/countstepmonth[monthi] \n", - " \n", - " if single_metric_name == \"EP\":\n", - " if countendpointmonth[monthi] != 0:\n", - " endpointmonth[\"time\"][monthi] = endpointmonth[\"time\"][monthi]/countendpointmonth[monthi]\n", - " endpointmonth[\"speed\"][monthi] = endpointmonth[\"speed\"][monthi]/countendpointmonth[monthi]\n", - "\n", - " counted_exmonth[exnamei][monthi] = 1\n", - " \n", - " \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 45, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "title = \"Risultati del Timed Up and Go\"\n", - "msg1 = HTML(''+title+'')\n", - "msg2 = HTML(''+title+'')\n", - "if sum(counted_exmonth['tug'])>0:\n", - " display(msg1);\n", - "else:\n", - " display(msg2); \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 46, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "allmonths = [1,2,3,4,5,6,7,8,9,10,11,12]\n", - "counted_ex = {\n", - " \"tug\" : 0,\n", - " \"abduction_left\" : 0,\n", - " \"internal_rotation_left\" : 0,\n", - " \"external_rotation_left\" : 0,\n", - " \"reaching_left\" : 0\n", - "}\n", - "for i in range(len(exercises)):\n", - " exnamei = exercises[i].name\n", - " res_exi = exercises[i].result\n", - " if counted_ex[exnamei] < 1:\n", - "\n", - " #############################\n", - " # Results for TUG #\n", - " #############################\n", - " if exnamei == \"tug\":\n", - " counted_ex[exnamei] = 1\n", - " step_month_table = pd.DataFrame.from_dict(stepmonth,orient='index',\n", - " columns=['Jan','Feb','Mar','Apr','May','Jun',\n", - " 'Jul','Aug','Sep','Oct','Nov','Dec'])\n", - " step_month_table.index = [\"Numero di passi\",\"Velocità [m/s]\",\"Lunghezza passo [m]\",\n", - " \"Cadenza [steps/s]\",\"Tempo di esecuzione [s]\"]\n", - " display(step_month_table)\n", - "\n", - " for m in range(len(res_exi)): \n", - " single_metric,result_single_metric = res_exi[m]\n", - " if single_metric.name == \"ROM\":\n", - " tagjoint = single_metric.tagjoint\n", - "\n", - " if np.sum(keyp2rommax_avg[tagjoint]) > 0.0:\n", - " trace1 = go.Bar(\n", - " x=allmonths, \n", - " y=keyp2rommax_avg[tagjoint],\n", - " name='Massimo valore raggiunto',\n", - " marker=dict(\n", - " color='rgb(0,0,255)'\n", - " )\n", - " )\n", - " trace2 = go.Bar(\n", - " x=allmonths, \n", - " y=keyp2rommin_avg[tagjoint],\n", - " name='Minimo valore raggiunto',\n", - " marker=dict(\n", - " color='rgb(255,0,0)'\n", - " )\n", - " )\n", - " layout = go.Layout(\n", - " title='Parametri Range of Motion',\n", - " font=dict(family='Courier New, monospace', size=18, color='black'),\n", - " xaxis=dict(\n", - " title='Month',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " yaxis=dict(\n", - " title='ROM ' + tagjoint + ' [gradi]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " legend=dict(\n", - " bgcolor='rgba(255, 255, 255, 0)',\n", - " bordercolor='rgba(255, 255, 255, 0)'\n", - " ),\n", - " barmode='group',\n", - " bargap=0.1,\n", - " bargroupgap=0.0\n", - " )\n", - " data=[trace1,trace2]\n", - " fig = go.Figure(data=data, layout=layout)\n", - " iplot(fig) \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 47, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "title = \"Risultati di Abduzione\"\n", - "msg1 = HTML(''+title+'')\n", - "msg2 = HTML(''+title+'')\n", - "if sum(counted_exmonth['abduction_left'])>0:\n", - " display(msg1);\n", - "else:\n", - " display(msg2); \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 48, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "for i in range(len(exercises)):\n", - " exnamei = exercises[i].name\n", - " res_exi = exercises[i].result\n", - " if counted_ex[exnamei] < 1:\n", - " \n", - " ###################################\n", - " # Results for Abduction #\n", - " ###################################\n", - " if \"abduction\" in exnamei:\n", - " counted_ex[exnamei] = 1 \n", - "\n", - " for m in range(len(res_exi)): \n", - " single_metric,result_single_metric = res_exi[m]\n", - " if single_metric.name == \"ROM\":\n", - " tagjoint = single_metric.tagjoint\n", - "\n", - " if np.sum(keyp2rommax_avg[tagjoint]) > 0.0:\n", - " trace1 = go.Bar(\n", - " x=allmonths, \n", - " y=keyp2rommax_avg[tagjoint],\n", - " name='Massimo valore raggiunto',\n", - " marker=dict(\n", - " color='rgb(0,0,255)'\n", - " )\n", - " )\n", - " trace2 = go.Bar(\n", - " x=allmonths, \n", - " y=keyp2rommin_avg[tagjoint],\n", - " name='Minimo valore raggiunto',\n", - " marker=dict(\n", - " color='rgb(255,0,0)'\n", - " )\n", - " )\n", - " layout = go.Layout(\n", - " title='Parametri Range of Motion',\n", - " font=dict(family='Courier New, monospace', size=18, color='black'),\n", - " xaxis=dict(\n", - " title='Month',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " yaxis=dict(\n", - " title='ROM ' + tagjoint + ' [gradi]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " legend=dict(\n", - " bgcolor='rgba(255, 255, 255, 0)',\n", - " bordercolor='rgba(255, 255, 255, 0)'\n", - " ),\n", - " barmode='group',\n", - " bargap=0.1,\n", - " bargroupgap=0.0\n", - " )\n", - " data=[trace1,trace2]\n", - " fig = go.Figure(data=data, layout=layout)\n", - " iplot(fig) \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 49, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "title = \"Risultati di Rotazione Interna\"\n", - "msg1 = HTML(''+title+'')\n", - "msg2 = HTML(''+title+'')\n", - "if sum(counted_exmonth['internal_rotation_left'])>0:\n", - " display(msg1);\n", - "else:\n", - " display(msg2); \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 50, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "for i in range(len(exercises)):\n", - " exnamei = exercises[i].name\n", - " res_exi = exercises[i].result\n", - " if counted_ex[exnamei] < 1:\n", - " \n", - " ###################################\n", - " # Results for Internal #\n", - " ###################################\n", - " if \"internal_rotation\" in exnamei:\n", - " counted_ex[exnamei] = 1 \n", - "\n", - " for m in range(len(res_exi)): \n", - " single_metric,result_single_metric = res_exi[m]\n", - " if single_metric.name == \"ROM\":\n", - " tagjoint = single_metric.tagjoint\n", - "\n", - " if np.sum(keyp2rommax_avg[tagjoint]) > 0.0:\n", - " trace1 = go.Bar(\n", - " x=allmonths, \n", - " y=keyp2rommax_avg[tagjoint],\n", - " name='Massimo valore raggiunto',\n", - " marker=dict(\n", - " color='rgb(0,0,255)'\n", - " )\n", - " )\n", - " trace2 = go.Bar(\n", - " x=allmonths, \n", - " y=keyp2rommin_avg[tagjoint],\n", - " name='Minimo valore raggiunto',\n", - " marker=dict(\n", - " color='rgb(255,0,0)'\n", - " )\n", - " )\n", - " layout = go.Layout(\n", - " title='Parametri Range of Motion',\n", - " font=dict(family='Courier New, monospace', size=18, color='black'),\n", - " xaxis=dict(\n", - " title='Month',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " yaxis=dict(\n", - " title='ROM ' + tagjoint + ' [gradi]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " legend=dict(\n", - " bgcolor='rgba(255, 255, 255, 0)',\n", - " bordercolor='rgba(255, 255, 255, 0)'\n", - " ),\n", - " barmode='group',\n", - " bargap=0.1,\n", - " bargroupgap=0.0\n", - " )\n", - " data=[trace1,trace2]\n", - " fig = go.Figure(data=data, layout=layout)\n", - " iplot(fig) \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "title = \"Risultati di Rotazione Esterna\"\n", - "msg1 = HTML(''+title+'')\n", - "msg2 = HTML(''+title+'')\n", - "if sum(counted_exmonth['external_rotation_left'])>0:\n", - " display(msg1);\n", - "else:\n", - " display(msg2); \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 52, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "for i in range(len(exercises)):\n", - " exnamei = exercises[i].name\n", - " res_exi = exercises[i].result\n", - " if counted_ex[exnamei] < 1:\n", - " \n", - " ###################################\n", - " # Results for External #\n", - " ###################################\n", - " if \"external_rotation\" in exnamei:\n", - " counted_ex[exnamei] = 1 \n", - "\n", - " for m in range(len(res_exi)): \n", - " single_metric,result_single_metric = res_exi[m]\n", - " if single_metric.name == \"ROM\":\n", - " tagjoint = single_metric.tagjoint\n", - "\n", - " if np.sum(keyp2rommax_avg[tagjoint]) > 0.0:\n", - " trace1 = go.Bar(\n", - " x=allmonths, \n", - " y=keyp2rommax_avg[tagjoint],\n", - " name='Massimo valore raggiunto',\n", - " marker=dict(\n", - " color='rgb(0,0,255)'\n", - " )\n", - " )\n", - " trace2 = go.Bar(\n", - " x=allmonths, \n", - " y=keyp2rommin_avg[tagjoint],\n", - " name='Minimo valore raggiunto',\n", - " marker=dict(\n", - " color='rgb(255,0,0)'\n", - " )\n", - " )\n", - " layout = go.Layout(\n", - " title='Parametri Range of Motion',\n", - " font=dict(family='Courier New, monospace', size=18, color='black'),\n", - " xaxis=dict(\n", - " title='Mese',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " yaxis=dict(\n", - " title='ROM ' + tagjoint + ' [gradi]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " legend=dict(\n", - " bgcolor='rgba(255, 255, 255, 0)',\n", - " bordercolor='rgba(255, 255, 255, 0)'\n", - " ),\n", - " barmode='group',\n", - " bargap=0.1,\n", - " bargroupgap=0.0\n", - " )\n", - " data=[trace1,trace2]\n", - " fig = go.Figure(data=data, layout=layout)\n", - " iplot(fig) \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 53, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "title = \"Risultati di Reaching\"\n", - "msg1 = HTML(''+title+'')\n", - "msg2 = HTML(''+title+'')\n", - "if sum(counted_exmonth['reaching_left'])>0:\n", - " display(msg1);\n", - "else:\n", - " display(msg2); \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 54, - "metadata": {}, - "outputs": [], - "source": [ - "source_1 = textwrap.dedent(\"\"\"\\\n", - "for i in range(len(exercises)):\n", - " exnamei = exercises[i].name\n", - " res_exi = exercises[i].result\n", - " if counted_ex[exnamei] < 1:\n", - " \n", - " ###################################\n", - " # Results for Reaching #\n", - " ###################################\n", - " if \"reaching\" in exnamei:\n", - " counted_ex[exnamei] = 1 \n", - "\n", - " for m in range(len(res_exi)): \n", - " single_metric,result_single_metric = res_exi[m]\n", - " if single_metric.name == \"EP\":\n", - " trace1 = go.Bar(\n", - " x=allmonths, \n", - " y=endpointmonth[\"time\"],\n", - " name='Time',\n", - " marker=dict(\n", - " color='rgb(0,0,255)'\n", - " )\n", - " )\n", - " layout = go.Layout(\n", - " title='Parametri Reaching',\n", - " font=dict(family='Courier New, monospace', size=18, color='black'),\n", - " xaxis=dict(\n", - " title='Mese',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " yaxis=dict(\n", - " title='Tempo di esecuzione [s]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " legend=dict(\n", - " bgcolor='rgba(255, 255, 255, 0)',\n", - " bordercolor='rgba(255, 255, 255, 0)'\n", - " ),\n", - " barmode='group',\n", - " bargap=0.1,\n", - " bargroupgap=0.0\n", - " )\n", - " data=[trace1]\n", - " fig = go.Figure(data=data, layout=layout)\n", - " iplot(fig) \n", - " \n", - " trace1 = go.Bar(\n", - " x=allmonths, \n", - " y=endpointmonth[\"speed\"],\n", - " name='Speed',\n", - " marker=dict(\n", - " color='rgb(0,0,255)'\n", - " )\n", - " )\n", - " layout = go.Layout(\n", - " font=dict(family='Courier New, monospace', size=18, color='black'),\n", - " xaxis=dict(\n", - " title='Mese',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " yaxis=dict(\n", - " title='Velocità [m/s]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " legend=dict(\n", - " bgcolor='rgba(255, 255, 255, 0)',\n", - " bordercolor='rgba(255, 255, 255, 0)'\n", - " ),\n", - " barmode='group',\n", - " bargap=0.1,\n", - " bargroupgap=0.0\n", - " )\n", - " data=[trace1]\n", - " fig = go.Figure(data=data, layout=layout)\n", - " iplot(fig) \"\"\")\n", - "\n", - "code_cell = nbf.v4.new_code_cell(source=source_1)\n", - "nb.cells.append(code_cell)" - ] - }, - { - "cell_type": "code", - "execution_count": 55, - "metadata": {}, - "outputs": [], - "source": [ - "nbf.write(nb, 'report-ita.ipynb')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 2", - "language": "python", - "name": "python2" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.17" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/report/TUG_classes.py b/report/TUG_classes.py new file mode 100644 index 00000000..1ffdbb2b --- /dev/null +++ b/report/TUG_classes.py @@ -0,0 +1,542 @@ +#import libraries +import warnings +warnings.filterwarnings("ignore",category=FutureWarning) +warnings.filterwarnings("ignore", message="numpy.dtype size changed") +import scipy.io as spio +import scipy.signal +import scipy.ndimage +import numpy as np +import matplotlib.pyplot as plt +from mpl_toolkits.mplot3d import Axes3D +from collections import namedtuple +import math +import re +import pandas as pd +import os +import glob +from os.path import expanduser +import datetime +import pickle +import statistics as stats +from plotly import __version__ +from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot +import plotly.graph_objs as go +init_notebook_mode(connected=True) + + + +### Classes +class Keypoint: + tag = "" + parent = [''] + child = [''] + point = None + + def __init__(self,tag=None,parent=None,child=None,point=None): + if tag is not None: + self.tag = tag + if parent is not None: + self.parent = parent + if child is not None: + self.child = child + if point is not None: + self.point = point + + +class Skeleton: + keypoints = [Keypoint() for i in range(17)] + tag2id = { + "shoulderCenter" : 0, + "head" : 1, + "shoulderLeft" : 2, + "elbowLeft" : 3, + "handLeft" : 4, + "shoulderRight" : 5, + "elbowRight" : 6, + "handRight" : 7, + "hipCenter" : 8, + "hipLeft" : 9, + "kneeLeft" : 10, + "ankleLeft" : 11, + "footLeft" : 12, + "hipRight" : 13, + "kneeRight" : 14, + "ankleRight" : 15, + "footRight" : 16, + } + keypoints[tag2id["shoulderCenter"]] = Keypoint("shoulderCenter",[''],['head','shoulderLeft','shoulderRight','hipCenter']) + keypoints[tag2id["head"]] = Keypoint("head",['shoulderCenter'],['']) + keypoints[tag2id["shoulderLeft"]] = Keypoint("shoulderLeft",['shoulderCenter'],['elbowLeft']) + keypoints[tag2id["elbowLeft"]] = Keypoint("elbowLeft",['shoulderLeft'],['handLeft']) + keypoints[tag2id["handLeft"]] = Keypoint("handLeft",['elbowLeft'],['']) + keypoints[tag2id["shoulderRight"]] = Keypoint("shoulderRight",['shoulderCenter'],['elbowRight']) + keypoints[tag2id["elbowRight"]] = Keypoint("elbowRight",['shoulderRight'],['handRight']) + keypoints[tag2id["handRight"]] = Keypoint("handRight",['elbowRight'],['']) + keypoints[tag2id["hipCenter"]] = Keypoint("hipCenter",['shoulderCenter'],['hipLeft','hipRight']) + keypoints[tag2id["hipLeft"]] = Keypoint("hipLeft",['shoulderCenter'],['kneeLeft']) + keypoints[tag2id["kneeLeft"]] = Keypoint("kneeLeft",['hipLeft'],['ankleLeft']) + keypoints[tag2id["ankleLeft"]] = Keypoint("ankleLeft",['kneeLeft'],['footLeft']) + keypoints[tag2id["footLeft"]] = Keypoint("footLeft",['ankleLeft'],['']) + keypoints[tag2id["hipRight"]] = Keypoint("hipRight",['shoulderCenter'],['kneeRight']) + keypoints[tag2id["kneeRight"]] = Keypoint("kneeRight",['hipRight'],['ankleRight']) + keypoints[tag2id["ankleRight"]] = Keypoint("ankleRight",['kneeRight'],['footRight']) + keypoints[tag2id["footRight"]] = Keypoint("footRight",['ankleRight'],['']) + + def __init__(self,keyp_map=None): + if keyp_map is not None: + for tag in keyp_map.keys(): + self.keypoints[self.tag2id[tag]].point = keyp_map[tag] + + def getKeypoint(self,keyp_tag): + return self.keypoints[self.tag2id[keyp_tag]].point + + def getChild(self,keyp_tag): + return self.keypoints[self.tag2id[keyp_tag]].child + + def getParent(self,keyp_tag): + return self.keypoints[self.tag2id[keyp_tag]].parent + + def getTransformation(self): + sagittal = None + coronal = None + transverse = None + T = np.eye(4,4) + if self.getKeypoint("shoulderLeft") is not None: + if self.getKeypoint("shoulderRight") is not None: + sagittal = self.getKeypoint("shoulderLeft")[0]-self.getKeypoint("shoulderRight")[0] + sagittal = sagittal/np.linalg.norm(sagittal) + if self.getKeypoint("shoulderCenter") is not None: + if self.getKeypoint("hipLeft") is not None: + if self.getKeypoint("hipRight") is not None: + transverse = self.getKeypoint("shoulderCenter")[0]-0.5*(self.getKeypoint("hipLeft")[0]+self.getKeypoint("hipRight")[0]) + transverse = transverse/np.linalg.norm(transverse) + if self.getKeypoint("shoulderCenter") is not None: + pSC = self.getKeypoint("shoulderCenter")[0] + + if sagittal is not None: + if coronal is not None: + coronal = np.cross(sagittal,transverse) + T[0,0]=coronal[0] + T[1,0]=coronal[1] + T[2,0]=coronal[2] + T[0,1]=sagittal[0] + T[1,1]=sagittal[1] + T[2,1]=sagittal[2] + T[0,2]=transverse[0] + T[1,2]=transverse[1] + T[2,2]=transverse[2] + T[0,3]=pSC[0] + T[1,3]=pSC[1] + T[2,3]=pSC[2] + T[3,3]=1 + return T + + def show(self): + for i in range(len(self.keypoints)): + k = self.keypoints[i] + print("keypoint[", k.tag, "]", "=", k.point) + +class Exercise: + name = "" + typee = "" + metrics = [] + +class Tug(Exercise): + name = "tug" + typee = "test" + metrics = ["ROM_0","ROM_1","ROM_2","ROM_3","ROM_4","ROM_5","step_0"] + result = [] + month_res = { + 0: [], + 1: [], + 2: [], + 3: [], + 4: [], + 5: [], + 6: [], + 7: [], + 8: [], + 9: [], + 10: [], + 11: [] + } + + def __init__(self,month,result): + self.result = result + self.month_res[month] = result + + def getResult(self,month): + return self.month_res[month] + + +class Metric: + name = '' + + def __init__(self,name): + self.name = name + + +class Step(Metric): + name = "step" + en_projection = False + medfilt = 1 + step_thresh = 0.0 + tstanding = [] + tforward = [] + tturning1 = [] + tbackward = [] + tturning2 = [] + tsitting = [] + tend = [] + step_length = [] + step_width = [] + step_distance = [] + filtered_step_distance = [] + strikes = [] + nsteps = 0 + cadence = 0.0 + ex_time = 0.0 + walking_time = 0.0 + speed = 0.0 + speed_z = 0.0 + durata = 0 + + def __init__(self,medfilt_window,en_projection, tstanding, tforward, tturning1, tbackward, tturning2, tsitting, tend, step_thresh, durata): + + # scipy median filter requires odd kernel size + self.medfilt = int(medfilt_window) + if not (self.medfilt & 1): + self.medfilt = self.medfilt + 1 + + self.step_thresh = step_thresh + self.en_projection = en_projection + self.tstanding = tstanding + self.tforward = tforward + self.tturning1 = tturning1 + self.tbackward = tbackward + self.tturning2 = tturning2 + self.tsitting = tsitting + self.tend = tend + self.durata= durata + + + def compute(self,skeleton, subj_id, num_trial, pth): + + in_stand_idx, in_wf_idx, fin_wf_idx, fin_turn1_idx, fin_wb_idx, fin_turn2_idx, fin_sit_idx = compute_timing(skeleton, self.durata) + timing_vec= [in_stand_idx, in_wf_idx, fin_wf_idx, fin_turn1_idx, fin_wb_idx, fin_turn2_idx, fin_sit_idx] + timing_vec2= [self.tstanding, self.tforward, self.tturning1, self.tbackward, self.tturning2, self.tsitting, self.tend] + phases_names= ['Standing', 'Walking forward', 'Turning1', 'Walking backward', 'Turning2', 'Sitting'] + + + win=10 + alj = skeleton.getKeypoint("ankleLeft") + alj_filtered = scipy.signal.savgol_filter(alj, win, 2, axis=0) + arj = skeleton.getKeypoint("ankleRight") + arj_filtered = scipy.signal.savgol_filter(arj, win, 2, axis=0) + hip = skeleton.getKeypoint("hipCenter") + + hip_filtered = scipy.signal.savgol_filter(hip, win, 2, axis=0) + + ankles_diff = alj[:, :2] - arj[:, :2] + ankles_diff_filtered = alj_filtered[:, :2] - arj_filtered[:, :2] + + self.filtered_feet_distance = np.linalg.norm(ankles_diff_filtered, axis=1) #it is not the step + self.feet_distance = np.linalg.norm(ankles_diff, axis=1) + + self.strikes,_ = scipy.signal.find_peaks(self.filtered_feet_distance, height = self.step_thresh, distance = 5) #we check peaks in the feet_distance + + if self.en_projection: + shl = skeleton.getKeypoint("shoulderLeft") + shl_filtered = scipy.signal.savgol_filter(shl, win, 2, axis=0) + shr = skeleton.getKeypoint("shoulderRight") + shr_filtered = scipy.signal.savgol_filter(shr, win, 2, axis=0) + + coronal = shl_filtered[:, :2] - shr_filtered[:, :2] + coronal = coronal / np.linalg.norm(coronal) + + for i in range(len(shl)): + dist = np.dot(ankles_diff_filtered[i,:],np.transpose(coronal[i,:])) + self.step_width.append(dist) + + for i in range(len(self.strikes)): + peak_idx = self.strikes[i] + v = ankles_diff_filtered[peak_idx,:] - self.step_width[peak_idx] * coronal[peak_idx,:] + v = np.linalg.norm(v) + self.step_length.append(v) + + self.step_length = stats.mean(self.step_length) + self.step_width = stats.mean(self.step_width) + else: + slen = self.filtered_feet_distance[self.strikes] + self.step_length = stats.mean(slen) + self.step_width = np.fabs(ankles_diff) #da modificare + + results = {} + for i in range(len(timing_vec)-1): + + results[phases_names[i]]={} + tmp_idx=np.intersect1d(np.where(self.strikes>timing_vec[i]), np.where(self.strikes nsigma)[0] + cond2=np.where(np.diff(np.sign(acc_hipCenter_y-acc_shoulCenter_y)))[0] + # print(cond1) + # print(cond2) + in_stand_idx= np.intersect1d(cond1,cond2)[0] + + #in_stand_idx= cond1[0] + #print(in_stand_idx) + + ### Camminata di andata ### + + # La camminata inizia appena uno dei due piedi accelera in y e controllo che l'altezza delle + # spalle sia cambiata. La camminata di andata finisce con l'inizio della rotazione. + # Quest'ultima inizia quando la distanza in x delle due spalle inizia a descrescere e ho superato la linea dei 3m. + init_mean= np.mean(acc_ankleRight_y[0:dur]) + init_std= np.std(acc_ankleRight_y[0:dur]) + in_wf_Right_y_idx = np.where(np.abs((acc_ankleRight_y-init_mean)/init_std) > nsigma)[0] + in_wf_Right_y_idx = np.where(vel_ankleRight_y[in_stand_idx:] < -0.5)[0]+in_stand_idx-2 + init_mean= np.mean(acc_ankleLeft_y[0:dur]) + init_std= np.std(acc_ankleLeft_y[0:dur]) + in_wf_Left_y_idx = np.where(np.abs((acc_ankleLeft_y-init_mean)/init_std) > nsigma)[0] + in_wf_Left_y_idx = np.where(vel_ankleLeft_y[in_stand_idx:] < -0.5)[0]+in_stand_idx-2 + + if in_wf_Right_y_idx[0] nsigma)[0] + in_wf_idx=np.intersect1d(cond1,cond2)[0] + + diff_vel_x=vel_shoulRight_x-vel_shoulLeft_x + diff_acc_x=acc_shoulRight_x-acc_shoulLeft_x + cond1= np.array(np.where(diff_acc_x>0))[0] + + rfoot_cross3m = np.array(np.where(skeleton.getKeypoint("ankleRight")[:,1]<-2.5))[0]# + lfoot_cross3m = np.array(np.where(skeleton.getKeypoint("ankleLeft")[:,1]<-2.5))[0]# + if rfoot_cross3m[0]0.))[0]# + fin_turn1_idx=np.intersect1d(cond1,cond2)[0]+fin_wf_idx + + ### Camminata di ritorno ### + + # La fase di camminata di ritorno termina quando inizia la seconda rotazione. + diff_acc_x=acc_shoulRight_x-acc_shoulLeft_x + cond1= np.array(np.where(diff_acc_x[fin_turn1_idx:]<0))[0] + + rfoot_cross0m = np.array(np.where(skeleton.getKeypoint("ankleRight")[fin_turn1_idx:,1]>0.))[0]# + lfoot_cross0m = np.array(np.where(skeleton.getKeypoint("ankleLeft")[fin_turn1_idx:,1]>0.))[0]# + if rfoot_cross0m[0]0.))[0]# + fin_wb_idx=cond1[0]+fin_turn1_idx + + #diff_shoul = skeleton.getKeypoint("shoulderRight")[:,0]-skeleton.getKeypoint("shoulderLeft")[:,0] + #cond1= np.array(np.where(abs(diff_shoul[fin_turn1_idx:]-abs(diff_shoul[0]))<0.05))[0] + #cond2 = np.array(np.where(vel_shoulCenter_y[fin_turn1_idx:]<0.))[0]# + #print('cond2') + #print(cond2) + #fin_wb_idx=np.intersect1d(cond1,cond2)[0]+fin_turn1_idx + + ### Seconda rotazione ### + + # La seconda rotazione termina quando noto una decelerazione in z del centro delle spalle e, + # contemporaneamente, una diminuzione della distanza in y tra il centro delle spalle e il + # centro delle anche (o che la velocita' in y delle anche e' maggiore di quella del centro + # delle spalle perche' vado all'indietro). + cond1 = np.where(vel_shoulCenter_z[fin_wb_idx:] < 0.)[0] + #cond2=np.where(np.diff(np.sign(acc_hipCenter_y[fin_wb_idx:]-acc_shoulCenter_y[fin_wb_idx:])))[0] + cond2=np.where(np.sign(vel_hipCenter_y[fin_wb_idx:]-vel_shoulCenter_y[fin_wb_idx:])>0)[0] + fin_turn2_idx= np.intersect1d(cond1,cond2)[0]+fin_wb_idx + + # alternativa: + strikes,_ = scipy.signal.find_peaks(-acc_shoulCenter_z[fin_wb_idx:], height = 0.0, distance = 10) + fin_turn2_idx = strikes[0]+fin_wb_idx + + ### Fine ### + + # zero_vel = np.where(np.diff(np.sign(vel_shoulCenter_z[fin_turn2_idx:])))[0] + # in_sit_idx= fin_turn2_idx + zero_vel[0] + # init_mean= np.mean(acc_shoulCenter_z[:dur]) + # init_std= np.std(acc_shoulCenter_z[:dur]) + # cond1 = np.where(np.abs((acc_shoulCenter_z[fin_turn2_idx:]-init_mean)/init_std) < nsigma)[0] + # print('cond1') + # print(cond1) + # init_mean= np.mean(skeleton.getKeypoint("shoulderCenter")[:dur,2]) + # init_std= np.std(skeleton.getKeypoint("shoulderCenter")[:dur,2]) + # cond2 = np.where(np.abs((skeleton.getKeypoint("shoulderCenter")[fin_turn2_idx:,2]-init_mean)/init_std) < nsigma)[0] + # print('cond2') + # print(cond2) + # elem=np.intersect1d(cond1,cond2) + # if (elem==0): + # fin_sit_idx = len(skeleton.getKeypoint("shoulderCenter"))-1 + # else: + # fin_sit_idx = fin_turn2_idx + elem[0] + + + # alternativa: + init_mean= np.mean(acc_hipCenter_z[:dur]) + init_std= np.std(acc_hipCenter_z[:dur]) + cond1 = np.where(np.abs((acc_hipCenter_z[fin_turn2_idx:]-init_mean)/init_std) < nsigma)[0] + init_mean= np.mean(skeleton.getKeypoint("hipCenter")[:dur,2]) + init_std= np.std(skeleton.getKeypoint("hipCenter")[:dur,2]) + cond2 = np.where(np.abs((skeleton.getKeypoint("hipCenter")[fin_turn2_idx:,2]-init_mean)/init_std) < nsigma)[0] + elem=np.intersect1d(cond1,cond2)[0] + if (elem.size==0): + fin_sit_idx = len(skeleton.getKeypoint("hipCenter"))-1 + else: + fin_sit_idx = fin_turn2_idx + elem + + return in_stand_idx, in_wf_idx, fin_wf_idx, fin_turn1_idx, fin_wb_idx, fin_turn2_idx, fin_sit_idx + + +######## Additional functions to load data +def loadmat(filename): + ''' + this function should be called instead of direct spio.loadmat + as it cures the problem of not properly recovering python dictionaries + from mat files. It calls the function check keys to cure all entries + which are still mat-objects + ''' + data = spio.loadmat(filename, struct_as_record=False, squeeze_me=True) + return _check_keys(data) + +def _check_keys(dict): + ''' + checks if entries in dictionary are mat-objects. If yes + todict is called to change them to nested dictionaries + ''' + for key in dict: + if isinstance(dict[key], spio.matlab.mat_struct): + dict[key] = _todict(dict[key]) + return dict + +def _todict(matobj): + ''' + A recursive function which constructs from matobjects nested dictionaries + ''' + dict = {} + for strg in matobj._fieldnames: + elem = matobj.__dict__[strg] + if isinstance(elem, spio.matlab.mat_struct): + dict[strg] = _todict(elem) + else: + dict[strg] = elem + return dict diff --git a/report/images/EsempioFasiTUG.png b/report/images/EsempioFasiTUG.png new file mode 100644 index 00000000..a7a08809 Binary files /dev/null and b/report/images/EsempioFasiTUG.png differ diff --git a/report/images/EsempioFasiTUG.svg b/report/images/EsempioFasiTUG.svg new file mode 100644 index 00000000..1923c473 --- /dev/null +++ b/report/images/EsempioFasiTUG.svg @@ -0,0 +1,3792 @@ + + + + + + + + 2023-03-30T15:51:36.389901 + image/svg+xml + + + Matplotlib v3.6.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/report/main_gen_report.ipynb b/report/main_gen_report.ipynb new file mode 100644 index 00000000..850c0119 --- /dev/null +++ b/report/main_gen_report.ipynb @@ -0,0 +1,615 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import warnings \n", + "warnings.filterwarnings(\"ignore\",category=FutureWarning)\n", + "warnings.filterwarnings(\"ignore\", message=\"numpy.dtype size changed\")\n", + "import matplotlib.pyplot as plt\n", + "import os\n", + "import glob\n", + "from os.path import expanduser\n", + "import datetime\n", + "from plotly import __version__\n", + "from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot\n", + "import plotly.graph_objs as go\n", + "init_notebook_mode(connected=True)\n", + "import matplotlib.patches as mpatches\n", + "from TUG_classes import *\n", + "from report_creation import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## Dati anagrafici " + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "today_date = datetime.today().strftime(\"%d %b %Y\")\n", + "saveFigReport = True" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "#load file \n", + "home = expanduser(\"~\")\n", + "subj = 5\n", + "trial = 3\n", + "data_path = 'experimentData/subj_' + str(subj) + '/tr_' + str(trial) \n", + "pth = os.path.join(home,data_path)\n", + "\n", + "lastfile = os.path.join(pth,'data.mat')" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "ename": "FileNotFoundError", + "evalue": "[Errno 2] No such file or directory: '/home/r1-user/experimentData/subj_5/tr_3/data.mat'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", + "File \u001b[0;32m/usr/local/src/robot/assistive-rehab/report/report-env/lib/python3.10/site-packages/scipy/io/matlab/_mio.py:39\u001b[0m, in \u001b[0;36m_open_file\u001b[0;34m(file_like, appendmat, mode)\u001b[0m\n\u001b[1;32m 38\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m---> 39\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mopen\u001b[39;49m(file_like, mode), \u001b[39mTrue\u001b[39;00m\n\u001b[1;32m 40\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mOSError\u001b[39;00m \u001b[39mas\u001b[39;00m e:\n\u001b[1;32m 41\u001b[0m \u001b[39m# Probably \"not found\"\u001b[39;00m\n", + "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: '/home/r1-user/experimentData/subj_5/tr_3/data.mat'", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[28], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m data \u001b[39m=\u001b[39m []\n\u001b[0;32m----> 2\u001b[0m data\u001b[39m.\u001b[39mappend(loadmat(lastfile))\n", + "File \u001b[0;32m/usr/local/src/robot/assistive-rehab/report/TUG_classes.py:518\u001b[0m, in \u001b[0;36mloadmat\u001b[0;34m(filename)\u001b[0m\n\u001b[1;32m 511\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mloadmat\u001b[39m(filename):\n\u001b[1;32m 512\u001b[0m \u001b[39m \u001b[39m\u001b[39m'''\u001b[39;00m\n\u001b[1;32m 513\u001b[0m \u001b[39m this function should be called instead of direct spio.loadmat\u001b[39;00m\n\u001b[1;32m 514\u001b[0m \u001b[39m as it cures the problem of not properly recovering python dictionaries\u001b[39;00m\n\u001b[1;32m 515\u001b[0m \u001b[39m from mat files. It calls the function check keys to cure all entries\u001b[39;00m\n\u001b[1;32m 516\u001b[0m \u001b[39m which are still mat-objects\u001b[39;00m\n\u001b[1;32m 517\u001b[0m \u001b[39m '''\u001b[39;00m\n\u001b[0;32m--> 518\u001b[0m data \u001b[39m=\u001b[39m spio\u001b[39m.\u001b[39;49mloadmat(filename, struct_as_record\u001b[39m=\u001b[39;49m\u001b[39mFalse\u001b[39;49;00m, squeeze_me\u001b[39m=\u001b[39;49m\u001b[39mTrue\u001b[39;49;00m)\n\u001b[1;32m 519\u001b[0m \u001b[39mreturn\u001b[39;00m _check_keys(data)\n", + "File \u001b[0;32m/usr/local/src/robot/assistive-rehab/report/report-env/lib/python3.10/site-packages/scipy/io/matlab/_mio.py:225\u001b[0m, in \u001b[0;36mloadmat\u001b[0;34m(file_name, mdict, appendmat, **kwargs)\u001b[0m\n\u001b[1;32m 88\u001b[0m \u001b[39m\u001b[39m\u001b[39m\"\"\"\u001b[39;00m\n\u001b[1;32m 89\u001b[0m \u001b[39mLoad MATLAB file.\u001b[39;00m\n\u001b[1;32m 90\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 222\u001b[0m \u001b[39m 3.14159265+3.14159265j])\u001b[39;00m\n\u001b[1;32m 223\u001b[0m \u001b[39m\"\"\"\u001b[39;00m\n\u001b[1;32m 224\u001b[0m variable_names \u001b[39m=\u001b[39m kwargs\u001b[39m.\u001b[39mpop(\u001b[39m'\u001b[39m\u001b[39mvariable_names\u001b[39m\u001b[39m'\u001b[39m, \u001b[39mNone\u001b[39;00m)\n\u001b[0;32m--> 225\u001b[0m \u001b[39mwith\u001b[39;00m _open_file_context(file_name, appendmat) \u001b[39mas\u001b[39;00m f:\n\u001b[1;32m 226\u001b[0m MR, _ \u001b[39m=\u001b[39m mat_reader_factory(f, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)\n\u001b[1;32m 227\u001b[0m matfile_dict \u001b[39m=\u001b[39m MR\u001b[39m.\u001b[39mget_variables(variable_names)\n", + "File \u001b[0;32m/usr/lib/python3.10/contextlib.py:135\u001b[0m, in \u001b[0;36m_GeneratorContextManager.__enter__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 133\u001b[0m \u001b[39mdel\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39margs, \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mkwds, \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mfunc\n\u001b[1;32m 134\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m--> 135\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mnext\u001b[39;49m(\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mgen)\n\u001b[1;32m 136\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mStopIteration\u001b[39;00m:\n\u001b[1;32m 137\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mRuntimeError\u001b[39;00m(\u001b[39m\"\u001b[39m\u001b[39mgenerator didn\u001b[39m\u001b[39m'\u001b[39m\u001b[39mt yield\u001b[39m\u001b[39m\"\u001b[39m) \u001b[39mfrom\u001b[39;00m \u001b[39mNone\u001b[39m\n", + "File \u001b[0;32m/usr/local/src/robot/assistive-rehab/report/report-env/lib/python3.10/site-packages/scipy/io/matlab/_mio.py:17\u001b[0m, in \u001b[0;36m_open_file_context\u001b[0;34m(file_like, appendmat, mode)\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[39m@contextmanager\u001b[39m\n\u001b[1;32m 16\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39m_open_file_context\u001b[39m(file_like, appendmat, mode\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mrb\u001b[39m\u001b[39m'\u001b[39m):\n\u001b[0;32m---> 17\u001b[0m f, opened \u001b[39m=\u001b[39m _open_file(file_like, appendmat, mode)\n\u001b[1;32m 18\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[1;32m 19\u001b[0m \u001b[39myield\u001b[39;00m f\n", + "File \u001b[0;32m/usr/local/src/robot/assistive-rehab/report/report-env/lib/python3.10/site-packages/scipy/io/matlab/_mio.py:45\u001b[0m, in \u001b[0;36m_open_file\u001b[0;34m(file_like, appendmat, mode)\u001b[0m\n\u001b[1;32m 43\u001b[0m \u001b[39mif\u001b[39;00m appendmat \u001b[39mand\u001b[39;00m \u001b[39mnot\u001b[39;00m file_like\u001b[39m.\u001b[39mendswith(\u001b[39m'\u001b[39m\u001b[39m.mat\u001b[39m\u001b[39m'\u001b[39m):\n\u001b[1;32m 44\u001b[0m file_like \u001b[39m+\u001b[39m\u001b[39m=\u001b[39m \u001b[39m'\u001b[39m\u001b[39m.mat\u001b[39m\u001b[39m'\u001b[39m\n\u001b[0;32m---> 45\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mopen\u001b[39;49m(file_like, mode), \u001b[39mTrue\u001b[39;00m\n\u001b[1;32m 46\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m 47\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mOSError\u001b[39;00m(\n\u001b[1;32m 48\u001b[0m \u001b[39m'\u001b[39m\u001b[39mReader needs file name or open file-like object\u001b[39m\u001b[39m'\u001b[39m\n\u001b[1;32m 49\u001b[0m ) \u001b[39mfrom\u001b[39;00m \u001b[39me\u001b[39;00m\n", + "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: '/home/r1-user/experimentData/subj_5/tr_3/data.mat'" + ] + } + ], + "source": [ + "data = []\n", + "data.append(loadmat(lastfile))" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Tabella TUG
< 10 sNormale mobilità
< 20 sBuona mobilita
< 30 sAusili cammino
>= 30 sRischio caduta
\n", + "
" + ], + "text/plain": [ + " Tabella TUG\n", + "< 10 s Normale mobilità\n", + "< 20 s Buona mobilita\n", + "< 30 s Ausili cammino\n", + ">= 30 s Rischio caduta" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Il test è stato svolto in 31.02 s\n", + "La valutazione è \u001b[1;30;41m Rischio caduta\n" + ] + } + ], + "source": [ + "time = []\n", + "\n", + "for i in range(len(data)):\n", + "\n", + " datai = data[i]\n", + " time.append(datai['Time_samples'])\n", + " shoulderCenter = datai['Keypoints']['shoulderCenter']\n", + " head = datai['Keypoints']['head']\n", + " shoulderLeft = datai['Keypoints']['shoulderLeft']\n", + " shoulderRight = datai['Keypoints']['shoulderRight']\n", + " elbowLeft = datai['Keypoints']['elbowLeft']\n", + " handLeft = datai['Keypoints']['handLeft']\n", + " elbowRight = datai['Keypoints']['elbowRight']\n", + " handRight = datai['Keypoints']['handRight']\n", + " hipLeft = datai['Keypoints']['hipLeft']\n", + " hipRight = datai['Keypoints']['hipRight']\n", + " ankleLeft = datai['Keypoints']['ankleLeft']\n", + " ankleRight = datai['Keypoints']['ankleRight']\n", + " kneeLeft = datai['Keypoints']['kneeLeft']\n", + " kneeRight = datai['Keypoints']['kneeRight']\n", + " footLeft = datai['Keypoints']['footLeft']\n", + " footRight = datai['Keypoints']['footRight']\n", + " hipCenter = datai['Keypoints']['hipCenter']\n", + "\n", + " key_pam = {\n", + " \"shoulderCenter\" : shoulderCenter,\n", + " \"head\" : head,\n", + " \"shoulderLeft\" : shoulderLeft,\n", + " \"shoulderRight\" : shoulderRight,\n", + " \"elbowLeft\" : elbowLeft,\n", + " \"handLeft\" : handLeft,\n", + " \"elbowRight\" : elbowRight,\n", + " \"handRight\" : handRight,\n", + " \"hipLeft\" : hipLeft,\n", + " \"hipRight\" : hipRight,\n", + " \"ankleLeft\" : ankleLeft,\n", + " \"ankleRight\" : ankleRight,\n", + " \"kneeLeft\" : kneeLeft,\n", + " \"kneeRight\" : kneeRight,\n", + " \"footLeft\" : footLeft,\n", + " \"footRight\" : footRight,\n", + " \"hipCenter\" : hipCenter\n", + " }\n", + " s=Skeleton(key_pam)\n", + "\n", + " samp2cut= 49\n", + " in_stand_idx, in_wf_idx, fin_wf_idx, fin_turn1_idx, fin_wb_idx, fin_turn2_idx, fin_sit_idx = compute_timing(s, samp2cut)\n", + "\n", + " allmet = datai[\"Exercise\"][\"metrics\"]\n", + " #flt = allmet['step_0'][\"median_filter_window\"]\n", + " flt = 4\n", + " proj = True\n", + " tstanding = time[0][in_stand_idx]\n", + " tforward = time[0][in_wf_idx]\n", + " tturning1 = time[0][fin_wf_idx]\n", + " tbackward = time[0][fin_turn1_idx]\n", + " tturning2 = time[0][fin_wb_idx]\n", + " tsitting = time[0][fin_turn2_idx]\n", + " tend = time[0][fin_sit_idx]\n", + " step_thresh = 0.25 #minimum distance between ankles to identify a step\n", + " durata = samp2cut #amount of samples to identify resting phase TODO:change variable name\n", + " step = Step(flt, proj, tstanding, tforward, tturning1, tbackward, tturning2, tsitting, tend, step_thresh, durata)\n", + " step.compute(s, subj, trial, pth)\n", + " stepmet = [step.step_distance, step.nsteps, step.cadence, step.speed, step.speed_z, step.walking_time, step.ex_time,\n", + " step.filtered_step_distance, step.strikes, step.step_width, step.step_length]\n", + "\n", + "table_tug = pd.DataFrame([['Normale mobilità'],['Buona mobilita'],['Ausili cammino'],['Rischio caduta']],\n", + " index=['< 10 s','< 20 s','< 30 s','>= 30 s'],\n", + " columns=['Tabella TUG'])\n", + "display(table_tug)\n", + "\n", + "time_score = tend-tstanding\n", + "print(\"Il test è stato svolto in\",round(time_score,2),\"s\")\n", + "if time_score < 10:\n", + " evaluation = 'Normale mobilità'\n", + " print(\"La valutazione è \u001b[1;30;42m\",evaluation)\n", + "elif time_score < 20:\n", + " evaluation = 'Buona mobilità, non necessita ausili'\n", + " print(\"La valutazione è \u001b[1;30;42m\",evaluation)\n", + "elif time_score < 30:\n", + " evaluation = 'Necessita ausili cammino'\n", + " print(\"La valutazione è \u001b[1;30;43m\",evaluation)\n", + "elif time_score >= 30:\n", + " evaluation = 'Rischio caduta'\n", + " print(\"La valutazione è \u001b[1;30;41m\",evaluation)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "ename": "IndexError", + "evalue": "list index out of range", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[30], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[39mprint\u001b[39m(time[\u001b[39m0\u001b[39;49m][in_stand_idx])\n\u001b[1;32m 2\u001b[0m \u001b[39mprint\u001b[39m(time[\u001b[39m0\u001b[39m][in_wf_idx])\n\u001b[1;32m 3\u001b[0m \u001b[39mprint\u001b[39m(time[\u001b[39m0\u001b[39m][fin_wf_idx])\n", + "\u001b[0;31mIndexError\u001b[0m: list index out of range" + ] + } + ], + "source": [ + "print(time[0][in_stand_idx])\n", + "print(time[0][in_wf_idx])\n", + "print(time[0][fin_wf_idx])\n", + "print(time[0][fin_turn1_idx])\n", + "print(time[0][fin_wb_idx])\n", + "print(time[0][fin_turn2_idx])\n", + "print(time[0][fin_sit_idx])\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "ename": "IndexError", + "evalue": "list index out of range", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[31], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m fig, axs \u001b[39m=\u001b[39m plt\u001b[39m.\u001b[39msubplots(\u001b[39m1\u001b[39m,\u001b[39m2\u001b[39m,figsize\u001b[39m=\u001b[39m(\u001b[39m20\u001b[39m, \u001b[39m5\u001b[39m))\n\u001b[1;32m 2\u001b[0m fig\u001b[39m.\u001b[39msuptitle(\u001b[39m'\u001b[39m\u001b[39mTUG test\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[0;32m----> 3\u001b[0m axs[\u001b[39m0\u001b[39m]\u001b[39m.\u001b[39mplot(time[\u001b[39m0\u001b[39;49m][\u001b[39m0\u001b[39m:\u001b[39m-\u001b[39m\u001b[39m1\u001b[39m], shoulderCenter[:,\u001b[39m1\u001b[39m], label \u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mShoulderCenter\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[1;32m 4\u001b[0m axs[\u001b[39m0\u001b[39m]\u001b[39m.\u001b[39mplot(time[\u001b[39m0\u001b[39m][\u001b[39m0\u001b[39m:\u001b[39m-\u001b[39m\u001b[39m1\u001b[39m], hipCenter[:,\u001b[39m1\u001b[39m], label \u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mHipCenter\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[1;32m 5\u001b[0m axs[\u001b[39m0\u001b[39m]\u001b[39m.\u001b[39mlegend()\n", + "\u001b[0;31mIndexError\u001b[0m: list index out of range" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABkwAAAHeCAYAAADZ+yeUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAuXklEQVR4nO3de3CV9Z348U+IJNHVRCwSLkZZ725VsKBZtKyXjVJ1qHZnK6suIKtVK1o1dhW84a3ifVgFdb20WmsX1FWnWxAWs1JHRZ2CmWpFraLCOiZKXRIEGyR5fn90TH8pQXlScuP7es2c6eTJ85zzPZ2vcD7z5pxTkGVZFgAAAAAAAAnr090LAAAAAAAA6G6CCQAAAAAAkDzBBAAAAAAASJ5gAgAAAAAAJE8wAQAAAAAAkieYAAAAAAAAyRNMAAAAAACA5AkmAAAAAABA8gQTAAAAAAAgeYIJAAAAAACQPMEEAAB6qYKCgs26LVq0KBYtWhQFBQXx2GOPtXtf5557bhQUFGx0vKWlJX7605/G0UcfHf3794++ffvGgAED4phjjol77rknmpqavnKdd955ZzzwwAN/6dP9Uq+//npcddVV8d5773Xq4wAAAFuvbbp7AQAAQMc89NBDbX7+6U9/GgsXLtzo+H777RfLli3Lff+fffZZfOc734kFCxbEoYceGj/84Q+jvLw8Pvnkk/jVr34V55xzTrz00ktx//33f+n93HnnndG/f/847bTTcq9hc73++utx9dVXxxFHHBFDhw7ttMcBAAC2XoIJAAD0Uv/8z//c5ucXX3wxFi5cuNHxiOhQMLnwwgtjwYIFMWPGjDj//PPb/O6iiy6K3/3ud7Fw4cLc9wsAANAT+UguAABgIytXroz77rsvvvWtb20US76w1157xTnnnPOl9zN06ND47W9/G7/61a9aPyLsiCOOaP396tWr44ILLoiKioooLi6OPffcM2688cZoaWlpcz+zZ8+OESNGxA477BClpaVxwAEHxL/9279FRMQDDzwQ3/3udyMi4sgjj2zzUWQAAACbyztMAACAjTz11FPR3Nzc7rtV8pgxY0acd955sf3228dll10WERHl5eUREbFu3bo4/PDD44MPPoizzjordt1113jhhRdi6tSp8eGHH8aMGTMiImLhwoVx8sknx9///d/HjTfeGBF/fMfM888/H+eff3783d/9XfzgBz+I22+/PS699NLYb7/9IiJa/xcAAGBzCCYAAMBG3njjjYiI2H///dscX79+fTQ2Nrb+XFBQEF/72tc2eT8nnnhiXH755dG/f/+N4sttt90W77zzTrzyyiux1157RUTEWWedFYMHD46bb745LrrooqioqIi5c+dGaWlpLFiwIAoLCzd6jN133z1Gjx4dt99+exx99NFt3sECAACwuXwkFwAAsJEvosj222/f5vi8efNi5513br3ttttuHX6MRx99NEaPHh39+vWLVatWtd6qqqqiubk5nn322YiI2HHHHWPt2rW+LwUAAOhU3mECAABsZIcddoiIiE8//bTN8cMOO6w1XNx8883x/PPPd/gxfve738VvfvOb2Hnnndv9/UcffRQREeecc0488sgjceyxx8aQIUPimGOOiZNOOim+9a1vdfixAQAA/pxgAgAACSgpKYmIiM8++6zd369bt671nIiIfffdNyIiXnvttRg2bFjr8Z133jmqqqoiIuJnP/vZX7SmlpaWOProo+Piiy9u9/d77713REQMGDAgamtrY8GCBfHUU0/FU089FT/5yU9iwoQJ8eCDD/5FawAAAPiCYAIAAAn44qOz3nzzzXZ//+abb7b5eK1jjz02CgsL4+GHH45TTz31L3rsgoKCdo/vscce8emnn7YGmC9TVFQUY8eOjbFjx0ZLS0ucc8458e///u9xxRVXxJ577rnJxwAAANhcvsMEAAASMGjQoBg+fHj87Gc/i9WrV7f53ZIlS+LFF1+MY489tvXYrrvuGv/yL/8STz31VMycObPd+8yybLMe+6/+6q82esyIiJNOOikWL14cCxYs2Oh3q1evjg0bNkRExO9///s2v+vTp08ceOCBERHR1NTU+hhfXAcAANARBdnmTjkAAECPdu6558asWbM2GTKeeeaZGDNmTAwePDhOO+20GDx4cCxbtizuueee6NevXyxdujQGDBjQev66devihBNOiKeffjoOO+ywGDt2bAwYMCBWrVoVzz//fPzXf/1X7LPPPvH6669/6bomT54cd911V1xzzTWx5557xoABA+Koo46KdevWxejRo+M3v/lNnHbaaTFixIhYu3ZtvPrqq/HYY4/Fe++9F/3794/vfOc78cknn8RRRx0Vu+yyS7z//vtxxx13xNChQ2PJkiXRp0+fqKuri1122SUO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2hVLphfa1OvfxsbG+Oyzz2LbbbftppXRFcxM5GVmIi9zE3mZm8jL3ERn21IzU7e/wwS62g033BCzZ8+OJ554IkpKSrp7OfQwa9asifHjx8e9994b/fv37+7l0Eu0tLTEgAED4p577okRI0bEuHHj4rLLLou77767u5dGD7Vo0aK4/vrr484774ylS5fG448/HnPnzo1rr722u5cGAGYmvpK5iY4wN5GXuYnu0O3vMOnfv38UFhZGfX19m+P19fUxcODAdq8ZOHBgrvPZunRkz3zhlltuiRtuuCGefvrpOPDAAztzmfQQeffLO++8E++9916MHTu29VhLS0tERGyzzTbx5ptvxh577NG5i6ZbdeTPmEGDBkXfvn2jsLCw9dh+++0XdXV1sX79+igqKurUNdO9OrJnrrjiihg/fnycccYZERFxwAEHxNq1a+PMM8+Myy67LPr08W9aaGtTr39LS0u9uyQBZibyMjORl7mJvMxN5GVuorNtqZmp23dVUVFRjBgxImpqalqPtbS0RE1NTYwaNarda0aNGtXm/IiIhQsXbvJ8ti4d2TMRETfddFNce+21MX/+/Bg5cmRXLJUeIO9+2XfffePVV1+N2tra1tu3v/3tOPLII6O2tjYqKiq6cvl0g478GXPYYYfF22+/3TokRkS89dZbMWjQIC/6E9CRPbNu3bqNXtx/MTj+8fvsoC2vf9NmZiIvMxN5mZvIy9xEXuYmOtsWe/2b6yviO8ns2bOz4uLi7IEHHshef/317Mwzz8x23HHHrK6uLsuyLBs/fnw2ZcqU1vOff/75bJtttsluueWWbNmyZdm0adOyvn37Zq+++mp3PQW6WN49c8MNN2RFRUXZY489ln344YettzVr1nTXU6AL5d0vf27ixInZCSec0EWrpSfIu2dWrFiR7bDDDtm5556bvfnmm9kvf/nLbMCAAdl1113XXU+BLpZ3z0ybNi3bYYcdsv/4j//Ili9fnv33f/93tscee2QnnXRSdz0FutiaNWuyV155JXvllVeyiMhuu+227JVXXsnef//9LMuybMqUKdn48eNbz1++fHm23XbbZf/6r/+aLVu2LJs1a1ZWWFiYzZ8/v7ueAl3MzEReZibyMjeRl7mJvMxN5NFdM1OPCCZZlmV33HFHtuuuu2ZFRUXZIYcckr344outvzv88MOziRMntjn/kUceyfbee++sqKgo+/rXv57NnTu3i1dMd8uzZ3bbbbcsIja6TZs2resXTrfI+2fM/88L/zTl3TMvvPBCVllZmRUXF2e777579qMf/SjbsGFDF6+a7pRnz3z++efZVVddle2xxx5ZSUlJVlFRkZ1zzjnZ//3f/3X9wukWzzzzTLuvTb7YJxMnTswOP/zwja4ZPnx4VlRUlO2+++7ZT37yky5fN93LzEReZibyMjeRl7mJvMxNbK7umpkKssz7lwAAAAAAgLR1+3eYAAAAAAAAdDfBBAAAAAAASJ5gAgAAAAAAJE8wAQAAAAAAkieYAAAAAAAAyRNMAAAAAACA5AkmAAAAAABA8gQTAAAAAAAgeYIJAAAAAACQPMEEAAAAAABInmACAAAAAAAk7/8BXgv8NpdT+J4AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axs = plt.subplots(1,2,figsize=(20, 5))\n", + "fig.suptitle('TUG test')\n", + "axs[0].plot(time[0][0:-1], shoulderCenter[:,1], label ='ShoulderCenter')\n", + "axs[0].plot(time[0][0:-1], hipCenter[:,1], label ='HipCenter')\n", + "axs[0].legend()\n", + "\n", + "\t\n", + "axs[1].plot(time[0][0:-1], shoulderCenter[:,2], label ='ShoulderCenter')\n", + "axs[1].plot(time[0][0:-1], hipCenter[:,2], label ='HipCenter')\n", + "axs[1].set(xlabel='Time [s]', ylabel='Shoulder/hip center (z-dim) [m]')" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "ename": "IndexError", + "evalue": "list index out of range", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[32], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m fig, axs \u001b[39m=\u001b[39m plt\u001b[39m.\u001b[39msubplots(\u001b[39m1\u001b[39m,\u001b[39m2\u001b[39m,figsize\u001b[39m=\u001b[39m(\u001b[39m20\u001b[39m, \u001b[39m5\u001b[39m))\n\u001b[1;32m 2\u001b[0m fig\u001b[39m.\u001b[39msuptitle(\u001b[39m'\u001b[39m\u001b[39mTUG test\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[0;32m----> 3\u001b[0m axs[\u001b[39m0\u001b[39m]\u001b[39m.\u001b[39mplot(time[\u001b[39m0\u001b[39;49m][\u001b[39m0\u001b[39m:\u001b[39m-\u001b[39m\u001b[39m1\u001b[39m], ankleLeft[:,\u001b[39m1\u001b[39m], label \u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mankleLeft\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[1;32m 4\u001b[0m axs[\u001b[39m0\u001b[39m]\u001b[39m.\u001b[39mplot(time[\u001b[39m0\u001b[39m][\u001b[39m0\u001b[39m:\u001b[39m-\u001b[39m\u001b[39m1\u001b[39m], ankleRight[:,\u001b[39m1\u001b[39m], label \u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mankleRight\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[1;32m 5\u001b[0m axs[\u001b[39m0\u001b[39m]\u001b[39m.\u001b[39mlegend()\n", + "\u001b[0;31mIndexError\u001b[0m: list index out of range" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABkwAAAHeCAYAAADZ+yeUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAuXklEQVR4nO3de3CV9Z348U+IJNHVRCwSLkZZ725VsKBZtKyXjVJ1qHZnK6suIKtVK1o1dhW84a3ifVgFdb20WmsX1FWnWxAWs1JHRZ2CmWpFraLCOiZKXRIEGyR5fn90TH8pQXlScuP7es2c6eTJ85zzPZ2vcD7z5pxTkGVZFgAAAAAAAAnr090LAAAAAAAA6G6CCQAAAAAAkDzBBAAAAAAASJ5gAgAAAAAAJE8wAQAAAAAAkieYAAAAAAAAyRNMAAAAAACA5AkmAAAAAABA8gQTAAAAAAAgeYIJAAAAAACQPMEEAAB6qYKCgs26LVq0KBYtWhQFBQXx2GOPtXtf5557bhQUFGx0vKWlJX7605/G0UcfHf3794++ffvGgAED4phjjol77rknmpqavnKdd955ZzzwwAN/6dP9Uq+//npcddVV8d5773Xq4wAAAFuvbbp7AQAAQMc89NBDbX7+6U9/GgsXLtzo+H777RfLli3Lff+fffZZfOc734kFCxbEoYceGj/84Q+jvLw8Pvnkk/jVr34V55xzTrz00ktx//33f+n93HnnndG/f/847bTTcq9hc73++utx9dVXxxFHHBFDhw7ttMcBAAC2XoIJAAD0Uv/8z//c5ucXX3wxFi5cuNHxiOhQMLnwwgtjwYIFMWPGjDj//PPb/O6iiy6K3/3ud7Fw4cLc9wsAANAT+UguAABgIytXroz77rsvvvWtb20US76w1157xTnnnPOl9zN06ND47W9/G7/61a9aPyLsiCOOaP396tWr44ILLoiKioooLi6OPffcM2688cZoaWlpcz+zZ8+OESNGxA477BClpaVxwAEHxL/9279FRMQDDzwQ3/3udyMi4sgjj2zzUWQAAACbyztMAACAjTz11FPR3Nzc7rtV8pgxY0acd955sf3228dll10WERHl5eUREbFu3bo4/PDD44MPPoizzjordt1113jhhRdi6tSp8eGHH8aMGTMiImLhwoVx8sknx9///d/HjTfeGBF/fMfM888/H+eff3783d/9XfzgBz+I22+/PS699NLYb7/9IiJa/xcAAGBzCCYAAMBG3njjjYiI2H///dscX79+fTQ2Nrb+XFBQEF/72tc2eT8nnnhiXH755dG/f/+N4sttt90W77zzTrzyyiux1157RUTEWWedFYMHD46bb745LrrooqioqIi5c+dGaWlpLFiwIAoLCzd6jN133z1Gjx4dt99+exx99NFt3sECAACwuXwkFwAAsJEvosj222/f5vi8efNi5513br3ttttuHX6MRx99NEaPHh39+vWLVatWtd6qqqqiubk5nn322YiI2HHHHWPt2rW+LwUAAOhU3mECAABsZIcddoiIiE8//bTN8cMOO6w1XNx8883x/PPPd/gxfve738VvfvOb2Hnnndv9/UcffRQREeecc0488sgjceyxx8aQIUPimGOOiZNOOim+9a1vdfixAQAA/pxgAgAACSgpKYmIiM8++6zd369bt671nIiIfffdNyIiXnvttRg2bFjr8Z133jmqqqoiIuJnP/vZX7SmlpaWOProo+Piiy9u9/d77713REQMGDAgamtrY8GCBfHUU0/FU089FT/5yU9iwoQJ8eCDD/5FawAAAPiCYAIAAAn44qOz3nzzzXZ//+abb7b5eK1jjz02CgsL4+GHH45TTz31L3rsgoKCdo/vscce8emnn7YGmC9TVFQUY8eOjbFjx0ZLS0ucc8458e///u9xxRVXxJ577rnJxwAAANhcvsMEAAASMGjQoBg+fHj87Gc/i9WrV7f53ZIlS+LFF1+MY489tvXYrrvuGv/yL/8STz31VMycObPd+8yybLMe+6/+6q82esyIiJNOOikWL14cCxYs2Oh3q1evjg0bNkRExO9///s2v+vTp08ceOCBERHR1NTU+hhfXAcAANARBdnmTjkAAECPdu6558asWbM2GTKeeeaZGDNmTAwePDhOO+20GDx4cCxbtizuueee6NevXyxdujQGDBjQev66devihBNOiKeffjoOO+ywGDt2bAwYMCBWrVoVzz//fPzXf/1X7LPPPvH6669/6bomT54cd911V1xzzTWx5557xoABA+Koo46KdevWxejRo+M3v/lNnHbaaTFixIhYu3ZtvPrqq/HYY4/Fe++9F/3794/vfOc78cknn8RRRx0Vu+yyS7z//vtxxx13xNChQ2PJkiXRp0+fqKuri1122SUO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2hVLphfa1OvfxsbG+Oyzz2LbbbftppXRFcxM5GVmIi9zE3mZm8jL3ERn21IzU7e/wwS62g033BCzZ8+OJ554IkpKSrp7OfQwa9asifHjx8e9994b/fv37+7l0Eu0tLTEgAED4p577okRI0bEuHHj4rLLLou77767u5dGD7Vo0aK4/vrr484774ylS5fG448/HnPnzo1rr722u5cGAGYmvpK5iY4wN5GXuYnu0O3vMOnfv38UFhZGfX19m+P19fUxcODAdq8ZOHBgrvPZunRkz3zhlltuiRtuuCGefvrpOPDAAztzmfQQeffLO++8E++9916MHTu29VhLS0tERGyzzTbx5ptvxh577NG5i6ZbdeTPmEGDBkXfvn2jsLCw9dh+++0XdXV1sX79+igqKurUNdO9OrJnrrjiihg/fnycccYZERFxwAEHxNq1a+PMM8+Myy67LPr08W9aaGtTr39LS0u9uyQBZibyMjORl7mJvMxN5GVuorNtqZmp23dVUVFRjBgxImpqalqPtbS0RE1NTYwaNarda0aNGtXm/IiIhQsXbvJ8ti4d2TMRETfddFNce+21MX/+/Bg5cmRXLJUeIO9+2XfffePVV1+N2tra1tu3v/3tOPLII6O2tjYqKiq6cvl0g478GXPYYYfF22+/3TokRkS89dZbMWjQIC/6E9CRPbNu3bqNXtx/MTj+8fvsoC2vf9NmZiIvMxN5mZvIy9xEXuYmOtsWe/2b6yviO8ns2bOz4uLi7IEHHshef/317Mwzz8x23HHHrK6uLsuyLBs/fnw2ZcqU1vOff/75bJtttsluueWWbNmyZdm0adOyvn37Zq+++mp3PQW6WN49c8MNN2RFRUXZY489ln344YettzVr1nTXU6AL5d0vf27ixInZCSec0EWrpSfIu2dWrFiR7bDDDtm5556bvfnmm9kvf/nLbMCAAdl1113XXU+BLpZ3z0ybNi3bYYcdsv/4j//Ili9fnv33f/93tscee2QnnXRSdz0FutiaNWuyV155JXvllVeyiMhuu+227JVXXsnef//9LMuybMqUKdn48eNbz1++fHm23XbbZf/6r/+aLVu2LJs1a1ZWWFiYzZ8/v7ueAl3MzEReZibyMjeRl7mJvMxN5NFdM1OPCCZZlmV33HFHtuuuu2ZFRUXZIYcckr344outvzv88MOziRMntjn/kUceyfbee++sqKgo+/rXv57NnTu3i1dMd8uzZ3bbbbcsIja6TZs2resXTrfI+2fM/88L/zTl3TMvvPBCVllZmRUXF2e777579qMf/SjbsGFDF6+a7pRnz3z++efZVVddle2xxx5ZSUlJVlFRkZ1zzjnZ//3f/3X9wukWzzzzTLuvTb7YJxMnTswOP/zwja4ZPnx4VlRUlO2+++7ZT37yky5fN93LzEReZibyMjeRl7mJvMxNbK7umpkKssz7lwAAAAAAgLR1+3eYAAAAAAAAdDfBBAAAAAAASJ5gAgAAAAAAJE8wAQAAAAAAkieYAAAAAAAAyRNMAAAAAACA5AkmAAAAAABA8gQTAAAAAAAgeYIJAAAAAACQPMEEAAAAAABInmACAAAAAAAk7/8BXgv8NpdT+J4AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axs = plt.subplots(1,2,figsize=(20, 5))\n", + "fig.suptitle('TUG test')\n", + "axs[0].plot(time[0][0:-1], ankleLeft[:,1], label ='ankleLeft')\n", + "axs[0].plot(time[0][0:-1], ankleRight[:,1], label ='ankleRight')\n", + "axs[0].legend()\n", + "\n", + "\t\n", + "axs[1].plot(time[0][0:-1], shoulderRight[:,0], label ='ShoulderRight')\n", + "axs[1].plot(time[0][0:-1], shoulderLeft[:,0], label ='ShoulderLeft')\n", + "axs[1].set(xlabel='Time [s]', ylabel='Shoulder/hip center (z-dim) [m]')\n", + "axs[1].legend()" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "ename": "IndexError", + "evalue": "list index out of range", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[33], line 10\u001b[0m\n\u001b[1;32m 6\u001b[0m axs[\u001b[39m0\u001b[39m]\u001b[39m.\u001b[39mset(xlabel\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mx-axis\u001b[39m\u001b[39m'\u001b[39m, ylabel\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39my-axis\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[1;32m 7\u001b[0m axs[\u001b[39m0\u001b[39m]\u001b[39m.\u001b[39mlegend()\n\u001b[0;32m---> 10\u001b[0m axs[\u001b[39m1\u001b[39m]\u001b[39m.\u001b[39mplot(time[\u001b[39m0\u001b[39;49m][\u001b[39m0\u001b[39m:\u001b[39m-\u001b[39m\u001b[39m1\u001b[39m], shoulderCenter[:,\u001b[39m2\u001b[39m], label \u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mShoulderCenter\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[1;32m 11\u001b[0m axs[\u001b[39m1\u001b[39m]\u001b[39m.\u001b[39mplot(time[\u001b[39m0\u001b[39m][\u001b[39m0\u001b[39m:\u001b[39m-\u001b[39m\u001b[39m1\u001b[39m], hipCenter[:,\u001b[39m2\u001b[39m], label \u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mHipCenter\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[1;32m 12\u001b[0m axs[\u001b[39m1\u001b[39m]\u001b[39m.\u001b[39mset(xlabel\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mTime [s]\u001b[39m\u001b[39m'\u001b[39m, ylabel\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mShoulder/hip center (z-dim) [m]\u001b[39m\u001b[39m'\u001b[39m)\n", + "\u001b[0;31mIndexError\u001b[0m: list index out of range" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABl4AAAHyCAYAAACKzrMMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAADEHklEQVR4nOzde1yUZf7/8fc9o4imoKIICAlZZkR5qOyLxa6WBzqgRmZrB6ttrSw3D1uZ24HY3XKtrcV+W3bYLSvbDktU2oFyLYrUlcqojDQzPOEoKgqiIjozvz9uOQwzAwMM59fz8eA7zHVf931fQ67Md95+ro/hdDqdAgAAAAAAAAAAQKNZWnoBAAAAAAAAAAAA7QXBCwAAAAAAAAAAgJ8QvAAAAAAAAAAAAPgJwQsAAAAAAAAAAICfELwAAAAAAAAAAAD4CcELAAAAAAAAAACAnxC8AAAAAAAAAAAA+AnBCwAAAAAAAAAAgJ8QvAAAAAAAAAAAAPgJwQsAAAAAAAAAAICfELwAAAAAHZxhGD59ZWVlKSsrS4ZhKD093eO1Zs6cKcMw3MYdDodefvlljR07Vn369FHnzp0VGhqqcePG6bnnntPRo0frXOfTTz+tJUuWNPbl1iovL08PPfSQtmzZ0qT3AQAAANB+dWrpBQAAAABoWa+88orL85dfflkrVqxwGz/jjDP0448/1vv6R44c0RVXXKGPPvpII0eO1F133aV+/fqpqKhIn332mW6//XatXbtW//rXv2q9ztNPP60+ffroxhtvrPcafJWXl6fU1FSNGjVK0dHRTXYfAAAAAO0XwQsAAADQwV133XUuz//3v/9pxYoVbuOSGhS8zJkzRx999JHS0tI0a9Ysl2N/+MMftGnTJq1YsaLe1wUAAACA1oitxgAAAAA0me3bt+uf//ynEhMT3UKXCqeddppuv/32Wq8THR2tH374QZ999lnl1mejRo2qPH7gwAHNnj1bUVFR6tKli0499VQtXLhQDofD5Tqvv/66zjnnHPXo0UNBQUE666yztGjRIknSkiVLdNVVV0mSRo8e7bLFGgAAAAD4iooXAAAAAE3mww8/lN1u91g9Ux9paWn6/e9/r+7du+u+++6TJPXr10+SdPjwYf36179WQUGBbr31Vp188slavXq15s+fL5vNprS0NEnSihUrNHXqVF188cVauHChJLOCZ9WqVZo1a5Z+9atf6c4779STTz6pP/7xjzrjjDMkqfIRAAAAAHxB8AIAAACgyWzYsEGSFBcX5zJeXl6ukpKSyueGYSgkJMTrdSZNmqT7779fffr0cQtxnnjiCW3evFnffPONTjvtNEnSrbfeqoiICD322GP6wx/+oKioKL3//vsKCgrSRx99JKvV6naPU045RQkJCXryySc1duxYl4oaAAAAAPAVW40BAAAAaDIV4Ur37t1dxj/44AP17du38mvAgAENvsd//vMfJSQkqFevXtq7d2/l15gxY2S32/X5559Lknr27KlDhw7RTwYAAABAk6LiBQAAAECT6dGjhySptLTUZfyCCy6oDEAee+wxrVq1qsH32LRpk7777jv17dvX4/HCwkJJ0u23364333xTl1xyifr3769x48ZpypQpSkxMbPC9AQAAAKAmghcAAAAAPgsMDJQkHTlyxOPxw4cPV86RpMGDB0uS1q9fryFDhlSO9+3bV2PGjJEkLV26tFFrcjgcGjt2rO655x6PxwcNGiRJCg0NVW5urj766CN9+OGH+vDDD/Xiiy9q2rRpeumllxq1BgAAAACoQPACAAAAwGcVW4Jt3LjR4/GNGze6bBt2ySWXyGq16tVXX9W1117bqHsbhuFxfODAgSotLa0McmoTEBCgpKQkJSUlyeFw6Pbbb9ezzz6rBx54QKeeeqrXewAAAACAr+jxAgAAAMBn4eHhGjp0qJYuXaoDBw64HPv666/1v//9T5dccknl2Mknn6zf/va3+vDDD/WPf/zD4zWdTqdP9z7ppJPc7ilJU6ZM0Zo1a/TRRx+5HTtw4ICOHz8uSdq3b5/LMYvForPPPluSdPTo0cp7VJwHAAAAAA1hOH39/3IAAAAAdAgzZ87UU0895TUQ+fTTTzV+/HhFREToxhtvVEREhH788Uc999xz6tWrl9atW6fQ0NDK+YcPH9bEiRP13//+VxdccIGSkpIUGhqqvXv3atWqVVq+fLlOP/105eXl1bquO+64Q4sXL9af/vQnnXrqqQoNDdVFF12kw4cPKyEhQd99951uvPFGnXPOOTp06JC+//57paena8uWLerTp4+uuOIKFRUV6aKLLlJkZKS2bt2q//f//p+io6P19ddfy2KxaNeuXYqMjNR5552n2267TV26dNFFF13k8noAAAAAoDYELwAAAABc1BW8SNLa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j0iPx0pH/VCl0hr1aKZqlJEjPW//CAAAAAAAADQxghd/SEiQIiOlggLPH/QZhnk8IcHvt7ZarVqxYoVWr16tjz/+WP/v//0/3XfffVq7dq0kqXPnzjWWYsjhcPh8fYvF4hZ4NGYbMsmsirFarfr6669dQiFJlT1aJKlr166VVSWS1LdvX/Xs2VMbNmzwy/U9/WzqCndKS0t1zjnn6NVXX3U71rdv38rvTzrppFqvg2bmFrpU43TUCF0qD7g+LbHVvs1WXVY/aT7WFr68NtXs0dKeHSQMAQAAAAAAQPtGjxd/sFqlRYvM72v2Fqh4npZmzmsChmHoggsuUGpqqr755hsFBATo7bffrvO8M844Q8ePH68MaSRp37592rhxo2JjYyWZYcKuXbtcAonc3Fyv1xw4cKA6d+7scs39+/frp59+qnw+bNgw2e12FRYW6tRTT3X5qr6tV00Wi0W/+c1v9Oqrr2rnzp1ux0tLS3X8+PEGX7+mgIAA2e2uWyINHz5cmzZtUmhoqNu1g4ODfb42mlFZqffQpV78EBisftLcjsyTjhC6OJ3StmbYZgwAAAAAAABoQQQv/pKcLKWnS/37u45HRprjyclNctu1a9fqkUce0VdffaVt27YpIyNDe/bs0RlnnFHnuaeddpomTpyo6dOn64svvtC3336r6667Tv3799fEiRMlSaNGjdKePXv06KOPavPmzXrqqaf04Ycfer1m9+7ddfPNN+vuu+/WJ598ovXr1+vGG2+UxVL1R23QoEG69tprNW3aNGVkZCg/P185OTlasGCB3n///VrX/PDDDysqKkrnn3++Xn75ZeXl5WnTpk164YUXNGzYMJWWljbq+tVFR0fru+++08aNG7V3714dO3ZM1157rfr06aOJEycqOztb+fn5ysrK0p133qkdO3b4fG00o7ent/QKXH35vPtY+ZH2H7pI0g/lvuVXgYGNv9cFFzT+GgAAAAAAAEADELz4U3KytGWL9Omn0r//bT7m5zdZ6CJJQUFB+vzzz3XppZdq0KBBuv/++/X444/rkksu8en8F198Ueecc44uv/xyxcfHy+l06oMPPqjchuuMM87Q008/raeeekpDhgxRTk6O7rrrrlqv+dhjjykhIUFJSUkaM2aMLrzwQp1zzjlu9502bZr+8Ic/6PTTT9ekSZP05Zdf6uSTT6712r1799b/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ePDgcIdiqc2bN+uRRx7RypUrtX37duXn5+tvf/ubFi5cGO7QLLN8+XL17dtX/fr1U2xsrG677TbdfPPNionhqwpAcC1evFhr1qzRm2++2aDSDueGfa612Edah70agGBiLxI67EWsxV7EOuxFog8VL0HQpUsX2e12HTlypM74kSNHlJKS0mD+3r17tX//fo0ZM6ZmzO12S5LatGmjTz/9VH369Alt0EHm7xp407ZtW/3gBz/QZ599FooQLRHIOjgcDrVt21Z2u71m7OKLL1ZZWZmqq6sVGxsb0piD7Vw+C998843WrFmjhx9+OJQhhlwga/DAAw9o6tSp+vnPfy5JGjBggL755hv94he/0H333Rd1yYdA1qBr16566623VFVVpa+++kqpqamaP3++evfubUXIESElJcXrmiUmJvL/7owCgXzuG/s79/W7s7U6l++apUuXavHixXr33Xd16aWXhjLMFoF9rnXYR1qHvVpkYz8UOPYi1mEvYh32ItZhL2Id9iKRLVh7Ef5GgiA2NlaXX365Nm3aVDPmdru1adMmZWZmNpjfr18/7dq1Szt37qz5GTt2rIYPH66dO3cqPT3dyvCDwt818MblcmnXrl1yOByhCjPkAlmHK6+8Up999lnNRkCS/v3vf8vhcETlF9S5fBZef/11nTx5UlOmTAl1mCEVyBp8++23Db4kPRsX8+yv6HIun4P4+Hh1795dp0+f1htvvKFx48aFOtyIkZmZWWfNJOmdd97x+b+jCK9APvf8nQcm0P/GLFmyRAsXLlRBQYEGDRpkRahRj32uddhHWoe9WmTjuzFw7EWsw17EOuxFrMNexDrsRSJb0L4bDQTFmjVrjLi4OOO5554ziouLjV/84hdGhw4djLKyMsMwDGPq1KnG/PnzG71++vTpxrhx4yyKNjT8XYMFCxYYf//73429e/caH330kfHTn/7UiI+PNz7++ONwvYWg8HcdDh48aCQkJBi33Xab8emnnxpvv/220a1bN+O3v/1tuN7COQv038NVV11lTJo0yepwQ8LfNcjNzTUSEhKMV155xdi3b5+xceNGo0+fPsbEiRPD9RbOmb9r8OGHHxpvvPGGsXfvXuMf//iHce211xq9evUyjh8/HqZ3cO4qKyuNHTt2GDt27DAkGcuWLTN27NhhHDhwwDAMw5g/f74xderUmvn79u0zzjvvPOOuu+4yPvnkE+PJJ5807Ha7UVBQEK63AD/5+7n/5z//abRp08ZYunSp8cknnxi5ublG27ZtjV27doXrLUQNf9d68eLFRmxsrLF27VrD6XTW/FRWVobrLUQN9rnWYR9pHfZq1mE/ZC32ItZhL2Id9iLWYS9iHfYi1gnXXoTESxD94Q9/MC644AIjNjbWGDx4sPHhhx/WPHbNNdcY06dPb/TalvIl4M8azJkzp2ZucnKyMXr0aGP79u1hiDr4/P0sbNmyxRgyZIgRFxdn9O7d2/jd735nnD592uKog8vfNdizZ48hydi4caPFkYaOP2tw6tQp46GHHjL69OljxMfHG+np6cbMmTOjOulgGP6twebNm42LL77YiIuLMzp37mxMnTrVKC0tDUPUwfP+++8bkhr8eN739OnTjWuuuabBNQMHDjRiY2ON3r17G88++6zlcePc+Pvfv9dee8248MILjdjYWOOSSy4x/va3v1kccfTyZ6179Ojh9d9jbm6u9YFHIfa51mEfaR32atZgP2Q99iLWYS9iHfYi1mEvYh32ItYI117EZhjUIgEAAAAAAAAAAAQDZ7wAAAAAAAAAAAAECYkXAAAAAAAAAACAICHxAgAAAAAAAAAAECQkXgAAAAAAAAAAAIKExAsAAAAAAAAAAECQkHgBAAAAAAAAAAAIEhIvAAAAAAAAAAAAQULiBUDEGzZsmObMmRPuMAAAAAAAAACgWTbDMIxwBwEATTl27Jjatm2rhISEcIcCAAAAAAAAAE0i8QIAAAAAAAAAABAktBoD4LMvvvhCKSkpeuSRR2rGtmzZotjYWG3atMnrNdu2bdPIkSPVpUsXJSUl6ZprrtH27dtrHt+8ebNiY2NVWFhYM7ZkyRJ169ZNR44ckdSw1djKlSvVt29fxcfHKzk5WRMmTAjyOwUAAAAAAACAwJB4AeCzrl276plnntFDDz2kf/3rX6qsrNTUqVN122236brrrvN6TWVlpaZPn64PPvhAH374ofr27avRo0ersrJSUm1SZerUqSovL9eOHTv0wAMP6M9//rOSk5MbPN+//vUv3X777Xr44Yf16aefqqCgQFdffXVI3zcAAAAAAAAA+IpWYwD8NmvWLL377rsaNGiQdu3apW3btikuLs6na91utzp06KCXX35ZP/7xjyVJ1dXVGjJkiC688ELt3r1bV155pZ566qmaa4YNG6aBAwcqLy9P+fn5uvnmm3X48GHOfAEAAAAAAAAQcah4AeC3pUuX6vTp03r99df10ksvKS4uTgcPHlT79u1rfjztyI4cOaIZM2aob9++SkpKUmJiok6cOKGDBw/WPF9sbKxeeuklvfHGG6qqqtLjjz/e6GuPHDlSPXr0UO/evTV16lS99NJL+vbbb0P+ngEAAAAAAADAF23CHQCA6LN37159/vnncrvd2r9/vwYMGKDU1FTt3LmzZk6nTp0kSdOnT9dXX32l5cuXq0ePHoqLi1NmZqaqq6vrPOeWLVskSceOHdOxY8d0/vnne33thIQEbd++XZs3b9bGjRv14IMP6qGHHtK2bdvUoUOHkLxfAAAAAAAAAPAVrcYA+KW6ulqDBw/WwIEDddFFFykvL0+7du1St27dvM5PSEjQypUrNXXqVEnSoUOHdMEFF+jxxx/XnDlzJJmJnIEDB+qJJ57Qq6++qurqar377ruKiTGL8s5uNVbfN998ow4dOujVV19VTk5OSN4zAAAAAAAAAPiKihcAfrnvvvtUXl6uJ554Qu3bt9eGDRv0n//5n3r77be9zu/bt69eeOEFDRo0SBUVFbrrrrvUrl27msddLpemTJmiUaNG6eabb1Z2drYGDBig3//+97rrrrsaPN/bb7+tffv26eqrr1bHjh21YcMGud1uXXTRRSF7zwAAAAAAAADgK854AeCzzZs3Ky8vTy+88IISExMVExOjF154QYWFhVq1apXXa55++mkdP35cl112maZOnarbb7+9TnXM7373Ox04cEB/+tOfJEkOh0NPPfWU7r//fv3v//5vg+fr0KGD8vPzde211+riiy/WH//4R73yyiu65JJLQvOmAQAAAAAAAMAPtBoDAAAAAAAAAAAIEipeAAAAAAAAAAAAgoTECwAAAAAAAAAAQJCQeAEAAAAAAAAAAAgSEi8AAAAAAAAAAABBQuIFAAAAAAAAAAAgSEi8AAAAAAAAAAAABAmJFwAAAAAAAAAAgCAh8QIAAAAAAAAAABAkJF4AAAAAAAAAAACChMQLAAAAAAAAAABAkJB4AQAAAAAAAAAACBISLwAAAAAAAAAAAEHy/wEF0HzDxB8ebgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axs = plt.subplots(1,3,figsize=(20, 5))\n", + "fig.suptitle('TUG test')\n", + "axs[0].plot(shoulderCenter[:,0], shoulderCenter[:,1],'ro',label= 'shoulderCenter')\n", + "axs[0].plot(ankleLeft[:,0], ankleLeft[:,1],'o',label= 'ankleLeft')\n", + "axs[0].plot(ankleRight[:,0], ankleRight[:,1],'o',label= 'ankle Right')\n", + "axs[0].set(xlabel='x-axis', ylabel='y-axis')\n", + "axs[0].legend()\n", + "\n", + "\t\n", + "axs[1].plot(time[0][0:-1], shoulderCenter[:,2], label ='ShoulderCenter')\n", + "axs[1].plot(time[0][0:-1], hipCenter[:,2], label ='HipCenter')\n", + "axs[1].set(xlabel='Time [s]', ylabel='Shoulder/hip center (z-dim) [m]')\n", + "bottom_point= 0.5\n", + "height_val = 1\n", + "left, bottom, width, height = (tstanding, bottom_point, tforward-tstanding, height_val)\n", + "durata_fase = format(tforward-tstanding,'.2f')\n", + "rect1=mpatches.Rectangle((left,bottom),width,height, \n", + " alpha=0.15,\n", + " color=\"red\",\n", + " linewidth=1.5,\n", + " linestyle='--',\n", + " label =f'Sit2Stand ({durata_fase}\")',\n", + " facecolor=\"red\")\n", + "#plt.gca().add_patch(rect1)\n", + "axs[1].add_patch(rect1)\n", + "left, bottom, width, height = (tforward, bottom_point, tturning1-tforward, height_val)\n", + "durata_fase = format(tturning1-tforward,'.2f')\n", + "rect2=mpatches.Rectangle((left,bottom),width,height, \n", + " alpha=0.15,\n", + " color=\"purple\",\n", + " linewidth=1.5,\n", + " linestyle='--',\n", + " label =f'Walk forw ({durata_fase}\")',\n", + " facecolor=\"purple\")\n", + "axs[1].add_patch(rect2)\n", + "left, bottom, width, height = (tturning1, bottom_point, tbackward-tturning1, height_val)\n", + "durata_fase = format(tbackward-tturning1,'.2f')\n", + "rect3=mpatches.Rectangle((left,bottom),width,height, \n", + " alpha=0.15,\n", + " color=\"blue\",\n", + " linewidth=1.5,\n", + " linestyle='--',\n", + " label =f'1st turn ({durata_fase}\")',\n", + " facecolor=\"blue\")\n", + "axs[1].add_patch(rect3)\n", + "left, bottom, width, height = (tbackward, bottom_point, tturning2-tbackward, height_val)\n", + "durata_fase = format(tturning2-tbackward,'.2f')\n", + "rect4=mpatches.Rectangle((left,bottom),width,height, \n", + " alpha=0.15,\n", + " color=\"green\",\n", + " linewidth=1.5,\n", + " linestyle='--',\n", + " label =f'Walk back ({durata_fase}\")',\n", + " facecolor=\"green\")\n", + "axs[1].add_patch(rect4)\n", + "left, bottom, width, height = (tturning2, bottom_point, tsitting-tturning2, height_val)\n", + "durata_fase= format(tsitting-tturning2,'.2f')\n", + "rect5=mpatches.Rectangle((left,bottom),width,height, \n", + " alpha=0.15,\n", + " color=\"orange\",\n", + " linewidth=1.5,\n", + " linestyle='--',\n", + " label =f'2nd turn ({durata_fase}\")',\n", + " facecolor=\"orange\")\n", + "axs[1].add_patch(rect5)\n", + "left, bottom, width, height = (tsitting, bottom_point, tend-tsitting, height_val)\n", + "durata_fase= format(tend-tsitting,'.2f')\n", + "rect6=mpatches.Rectangle((left,bottom),width,height, \n", + " alpha=0.15,\n", + " color=\"#FFEB00\",\n", + " linewidth=1.5,\n", + " linestyle='--',\n", + " label =f'Stand2Sit ({durata_fase}\")',\n", + " facecolor=\"#FFEB00\")\n", + "axs[1].add_patch(rect6)\n", + "axs[1].legend()\n", + "\n", + "\n", + "\t\n", + "axs[2].plot(time[0][0:-1], ankleRight[:,1], label ='R')\n", + "axs[2].plot(time[0][0:-1], ankleLeft[:,1], label ='L')\n", + "axs[2].set(xlabel='Time [s]', ylabel='Ankles (y-dim) [m]')\n", + "bottom_point= -3.5\n", + "height_val=4\n", + "left, bottom, width, height = (tstanding, bottom_point, tforward-tstanding, height_val)\n", + "durata_fase = format(tforward-tstanding,'.2f')\n", + "rect1=mpatches.Rectangle((left,bottom),width,height, \n", + " alpha=0.15,\n", + " color=\"red\",\n", + " linewidth=1.5,\n", + " linestyle='--',\n", + " label =f'Sit2Stand ({durata_fase}\")',\n", + " facecolor=\"red\")\n", + "axs[2].add_patch(rect1)\n", + "left, bottom, width, height = (tforward, bottom_point, tturning1-tforward, height_val)\n", + "durata_fase = format(tturning1-tforward,'.2f')\n", + "rect2=mpatches.Rectangle((left,bottom),width,height, \n", + " alpha=0.15,\n", + " color=\"purple\",\n", + " linewidth=1.5,\n", + " linestyle='--',\n", + " label =f'Walk forw ({durata_fase}\")',\n", + " facecolor=\"purple\")\n", + "axs[2].add_patch(rect2)\n", + "left, bottom, width, height = (tturning1, bottom_point, tbackward-tturning1, height_val)\n", + "durata_fase = format(tbackward-tturning1,'.2f')\n", + "rect3=mpatches.Rectangle((left,bottom),width,height, \n", + " alpha=0.15,\n", + " color=\"blue\",\n", + " linewidth=1.5,\n", + " linestyle='--',\n", + " label =f'1st turn ({durata_fase}\")',\n", + " facecolor=\"blue\")\n", + "axs[2].add_patch(rect3)\n", + "left, bottom, width, height = (tbackward, bottom_point, tturning2-tbackward, height_val)\n", + "durata_fase = format(tturning2-tbackward,'.2f')\n", + "rect4=mpatches.Rectangle((left,bottom),width,height, \n", + " alpha=0.15,\n", + " color=\"green\",\n", + " linewidth=1.5,\n", + " linestyle='--',\n", + " label =f'Walk back ({durata_fase}\")',\n", + " facecolor=\"green\")\n", + "axs[2].add_patch(rect4)\n", + "left, bottom, width, height = (tturning2, bottom_point, tsitting-tturning2, height_val)\n", + "durata_fase= format(tsitting-tturning2,'.2f')\n", + "rect5=mpatches.Rectangle((left,bottom),width,height, \n", + " alpha=0.15,\n", + " color=\"orange\",\n", + " linewidth=1.5,\n", + " linestyle='--',\n", + " label =f'2nd turn ({durata_fase}\")',\n", + " facecolor=\"orange\")\n", + "axs[2].add_patch(rect5)\n", + "left, bottom, width, height = (tsitting, bottom_point, tend-tsitting, height_val)\n", + "durata_fase= format(tend-tsitting,'.2f')\n", + "rect6=mpatches.Rectangle((left,bottom),width,height, \n", + " alpha=0.15,\n", + " color=\"#FFEB00\",\n", + " linewidth=1.5,\n", + " linestyle='--',\n", + " label =f'Stand2Sit ({durata_fase}\")',\n", + " facecolor=\"#FFEB00\")\n", + "axs[2].add_patch(rect6)\n", + "axs[2].legend()\n", + "\n", + "figure_name= f\"{pth}/TUG_phases_analysis\"\n", + "fig.savefig(f\"{figure_name}.png\", format=\"png\")\n", + "fig.savefig(f\"{figure_name}.svg\", format=\"svg\")" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "#create_pdf_report(subj, trial, today_date, pth, f\"{figure_name}.svg\")\n", + "create_pdf_report(subj, trial, today_date, pth)\n", + "create_txt_report(subj, trial, pth)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.10.6 ('report-env': venv)", + "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.6" + }, + "vscode": { + "interpreter": { + "hash": "ef0ed044b09a5c0829bf8f253fb849f37078bc0f8691b15cf245a61d1e3c5803" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/report/report-eng.ipynb b/report/report-eng.ipynb deleted file mode 100644 index 79ad0824..00000000 --- a/report/report-eng.ipynb +++ /dev/null @@ -1,25942 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from IPython.display import HTML, display\n", - "from ipywidgets import interact, widgets\n", - "\n", - "HTML('''\n", - "
''')" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/html": [ - " \n", - " " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "#import libraries\n", - "import warnings \n", - "warnings.filterwarnings(\"ignore\",category=FutureWarning)\n", - "warnings.filterwarnings(\"ignore\", message=\"numpy.dtype size changed\")\n", - "import scipy.io as spio\n", - "import scipy.signal\n", - "import scipy.ndimage\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from mpl_toolkits.mplot3d import Axes3D\n", - "from collections import namedtuple\n", - "import math \n", - "import re \n", - "import pandas as pd\n", - "import os\n", - "import glob\n", - "from os.path import expanduser\n", - "import datetime\n", - "import statistics as stats\n", - "from plotly import __version__\n", - "from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot\n", - "import plotly.graph_objs as go\n", - "init_notebook_mode(connected=True)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "def color_negative_red(val):\n", - " color = 'red' if val > 110 else 'black'\n", - " return 'color: %s' % color\n" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "class Keypoint:\n", - " tag = \"\"\n", - " parent = ['']\n", - " child = ['']\n", - " point = None\n", - "\n", - " def __init__(self,tag=None,parent=None,child=None,point=None):\n", - " if tag is not None: \n", - " self.tag = tag\n", - " if parent is not None:\n", - " self.parent = parent\n", - " if child is not None:\n", - " self.child = child\n", - " if point is not None:\n", - " self.point = point\n" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "class Skeleton:\n", - " keypoints = [Keypoint() for i in range(17)]\n", - " tag2id = {\n", - " \"shoulderCenter\" : 0,\n", - " \"head\" : 1,\n", - " \"shoulderLeft\" : 2,\n", - " \"elbowLeft\" : 3,\n", - " \"handLeft\" : 4,\n", - " \"shoulderRight\" : 5,\n", - " \"elbowRight\" : 6,\n", - " \"handRight\" : 7,\n", - " \"hipCenter\" : 8,\n", - " \"hipLeft\" : 9,\n", - " \"kneeLeft\" : 10,\n", - " \"ankleLeft\" : 11,\n", - " \"footLeft\" : 12,\n", - " \"hipRight\" : 13,\n", - " \"kneeRight\" : 14,\n", - " \"ankleRight\" : 15,\n", - " \"footRight\" : 16,\n", - " }\n", - " keypoints[tag2id[\"shoulderCenter\"]] = Keypoint(\"shoulderCenter\",[''],['head','shoulderLeft','shoulderRight','hipCenter'])\n", - " keypoints[tag2id[\"head\"]] = Keypoint(\"head\",['shoulderCenter'],[''])\n", - " keypoints[tag2id[\"shoulderLeft\"]] = Keypoint(\"shoulderLeft\",['shoulderCenter'],['elbowLeft'])\n", - " keypoints[tag2id[\"elbowLeft\"]] = Keypoint(\"elbowLeft\",['shoulderLeft'],['handLeft'])\n", - " keypoints[tag2id[\"handLeft\"]] = Keypoint(\"handLeft\",['elbowLeft'],[''])\n", - " keypoints[tag2id[\"shoulderRight\"]] = Keypoint(\"shoulderRight\",['shoulderCenter'],['elbowRight'])\n", - " keypoints[tag2id[\"elbowRight\"]] = Keypoint(\"elbowRight\",['shoulderRight'],['handRight'])\n", - " keypoints[tag2id[\"handRight\"]] = Keypoint(\"handRight\",['elbowRight'],[''])\n", - " keypoints[tag2id[\"hipCenter\"]] = Keypoint(\"hipCenter\",['shoulderCenter'],['hipLeft','hipRight'])\n", - " keypoints[tag2id[\"hipLeft\"]] = Keypoint(\"hipLeft\",['shoulderCenter'],['kneeLeft'])\n", - " keypoints[tag2id[\"kneeLeft\"]] = Keypoint(\"kneeLeft\",['hipLeft'],['ankleLeft'])\n", - " keypoints[tag2id[\"ankleLeft\"]] = Keypoint(\"ankleLeft\",['kneeLeft'],['footLeft'])\n", - " keypoints[tag2id[\"footLeft\"]] = Keypoint(\"footLeft\",['ankleLeft'],[''])\n", - " keypoints[tag2id[\"hipRight\"]] = Keypoint(\"hipRight\",['shoulderCenter'],['kneeRight'])\n", - " keypoints[tag2id[\"kneeRight\"]] = Keypoint(\"kneeRight\",['hipRight'],['ankleRight'])\n", - " keypoints[tag2id[\"ankleRight\"]] = Keypoint(\"ankleRight\",['kneeRight'],['footRight'])\n", - " keypoints[tag2id[\"footRight\"]] = Keypoint(\"footRight\",['ankleRight'],[''])\n", - "\n", - " def __init__(self,keyp_map=None):\n", - " if keyp_map is not None:\n", - " for tag in keyp_map.keys():\n", - " self.keypoints[self.tag2id[tag]].point = keyp_map[tag] \n", - "\n", - " def getKeypoint(self,keyp_tag):\n", - " return self.keypoints[self.tag2id[keyp_tag]].point\n", - "\n", - " def getChild(self,keyp_tag):\n", - " return self.keypoints[self.tag2id[keyp_tag]].child\n", - "\n", - " def getParent(self,keyp_tag):\n", - " return self.keypoints[self.tag2id[keyp_tag]].parent\n", - "\n", - " def getTransformation(self):\n", - " sagittal = None\n", - " coronal = None\n", - " transverse = None\n", - " T = np.eye(4,4)\n", - " if self.getKeypoint(\"shoulderLeft\") is not None:\n", - " if self.getKeypoint(\"shoulderRight\") is not None:\n", - " sagittal = self.getKeypoint(\"shoulderLeft\")[0]-self.getKeypoint(\"shoulderRight\")[0]\n", - " sagittal = sagittal/np.linalg.norm(sagittal)\n", - " if self.getKeypoint(\"shoulderCenter\") is not None:\n", - " if self.getKeypoint(\"hipLeft\") is not None:\n", - " if self.getKeypoint(\"hipRight\") is not None:\n", - " transverse = self.getKeypoint(\"shoulderCenter\")[0]-0.5*(self.getKeypoint(\"hipLeft\")[0]+self.getKeypoint(\"hipRight\")[0])\n", - " transverse = transverse/np.linalg.norm(transverse)\n", - " if self.getKeypoint(\"shoulderCenter\") is not None:\n", - " pSC = self.getKeypoint(\"shoulderCenter\")[0]\n", - "\n", - " if sagittal is not None:\n", - " if coronal is not None:\n", - " coronal = np.cross(sagittal,transverse)\n", - " T[0,0]=coronal[0]\n", - " T[1,0]=coronal[1]\n", - " T[2,0]=coronal[2]\n", - " T[0,1]=sagittal[0]\n", - " T[1,1]=sagittal[1]\n", - " T[2,1]=sagittal[2]\n", - " T[0,2]=transverse[0]\n", - " T[1,2]=transverse[1]\n", - " T[2,2]=transverse[2]\n", - " T[0,3]=pSC[0]\n", - " T[1,3]=pSC[1]\n", - " T[2,3]=pSC[2]\n", - " T[3,3]=1\n", - " return T\n", - "\n", - " def show(self):\n", - " for i in range(len(self.keypoints)):\n", - " k = self.keypoints[i]\n", - " print(\"keypoint[\", k.tag, \"]\", \"=\", k.point)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "class Exercise:\n", - " name = \"\"\n", - " typee = \"\"\n", - " metrics = []\n", - "\n", - "class Tug(Exercise):\n", - " name = \"tug\"\n", - " typee = \"test\"\n", - " metrics = [\"ROM_0\",\"ROM_1\",\"ROM_2\",\"ROM_3\",\"ROM_4\",\"ROM_5\",\"step_0\"]\n", - " result = []\n", - " month_res = {\n", - " 0: [],\n", - " 1: [],\n", - " 2: [],\n", - " 3: [],\n", - " 4: [],\n", - " 5: [],\n", - " 6: [],\n", - " 7: [],\n", - " 8: [],\n", - " 9: [],\n", - " 10: [],\n", - " 11: []\n", - " }\n", - "\n", - " def __init__(self,month,result):\n", - " self.result = result\n", - " self.month_res[month] = result\n", - "\n", - " def getResult(self,month):\n", - " return self.month_res[month]\n", - "\n", - "class Abduction(Exercise):\n", - " name = \"abduction\"\n", - " typee = \"rehabilitation\"\n", - " metrics = [\"ROM_0\"] \n", - " result = []\n", - " month_res = {\n", - " 0: [],\n", - " 1: [],\n", - " 2: [],\n", - " 3: [],\n", - " 4: [],\n", - " 5: [],\n", - " 6: [],\n", - " 7: [],\n", - " 8: [],\n", - " 9: [],\n", - " 10: [],\n", - " 11: []\n", - " }\n", - " def __init__(self,name,monthi,result):\n", - " self.name = name\n", - " self.result = result\n", - " self.month_res[monthi] = result\n", - "\n", - " def getResult(self,month):\n", - " return self.month_res[month]\n", - "\n", - "class Internal_Rotation(Exercise):\n", - " name = \"internal_rotation\"\n", - " typee = \"rehabilitation\"\n", - " metrics = [\"ROM_0\"] \n", - " result = []\n", - " month_res = {\n", - " 0: [],\n", - " 1: [],\n", - " 2: [],\n", - " 3: [],\n", - " 4: [],\n", - " 5: [],\n", - " 6: [],\n", - " 7: [],\n", - " 8: [],\n", - " 9: [],\n", - " 10: [],\n", - " 11: []\n", - " }\n", - " def __init__(self,name,monthi,result):\n", - " self.name = name\n", - " self.result = result\n", - " self.month_res[monthi] = result\n", - "\n", - " def getResult(self,month):\n", - " return self.month_res[month]\n", - "\n", - "class External_Rotation(Exercise):\n", - " name = \"external_rotation\"\n", - " typee = \"rehabilitation\"\n", - " metrics = [\"ROM_0\"] \n", - " result = []\n", - " month_res = {\n", - " 0: [],\n", - " 1: [],\n", - " 2: [],\n", - " 3: [],\n", - " 4: [],\n", - " 5: [],\n", - " 6: [],\n", - " 7: [],\n", - " 8: [],\n", - " 9: [],\n", - " 10: [],\n", - " 11: []\n", - " }\n", - " def __init__(self,name,monthi,result):\n", - " self.name = name\n", - " self.result = result\n", - " self.month_res[monthi] = result\n", - "\n", - " def getResult(self,month):\n", - " return self.month_res[month]\n", - "\n", - "class Reaching(Exercise):\n", - " name = \"reaching\"\n", - " typee = \"rehabilitation\"\n", - " metrics = [\"EP_0\"] \n", - " result = []\n", - " month_res = {\n", - " 0: [],\n", - " 1: [],\n", - " 2: [],\n", - " 3: [],\n", - " 4: [],\n", - " 5: [],\n", - " 6: [],\n", - " 7: [],\n", - " 8: [],\n", - " 9: [],\n", - " 10: [],\n", - " 11: []\n", - " }\n", - " def __init__(self,name,monthi,result):\n", - " self.name = name\n", - " self.result = result\n", - " self.month_res[monthi] = result\n", - "\n", - " def getResult(self,month):\n", - " return self.month_res[month]\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "class Metric:\n", - " name = ''\n", - "\n", - " def __init__(self,name):\n", - " self.name = name\n", - "\n", - "class Rom(Metric):\n", - " name = \"ROM\"\n", - " tagjoint = \"\"\n", - " refjoint = \"\"\n", - " refdir = []\n", - " tagplane = \"\"\n", - " def __init__(self,tagjoint,refjoint,refdir,tagplane):\n", - " self.tagjoint = tagjoint\n", - " self.refjoint = refjoint\n", - " self.refdir = refdir\n", - " self.tagplane = tagplane\n", - "\n", - " def compute(self,skeleton):\n", - " #joint ref and child\n", - " tj = skeleton.getKeypoint(self.tagjoint)\n", - " tagchild = skeleton.getChild(self.tagjoint)[0]\n", - " cj = skeleton.getKeypoint(tagchild)\n", - "\n", - " xrj = []\n", - " yrj = []\n", - " zrj = []\n", - " if self.refjoint != \"\":\n", - " rj = skeleton.getKeypoint(self.refjoint)\n", - " xrj = rj[:,0]\n", - " yrj = rj[:,1]\n", - " zrj = rj[:,2]\n", - "\n", - " #compute metric\n", - " x=tj[:,0]\n", - " y=tj[:,1]\n", - " z=tj[:,2]\n", - "\n", - " xchild=cj[:,0]\n", - " ychild=cj[:,1]\n", - " zchild=cj[:,2]\n", - "\n", - " #plane over which we want to evaluate the metric\n", - " plane = np.zeros(3)\n", - " if tagplane == \"coronal\":\n", - " plane[0] = 1.0\n", - " if tagplane == \"sagittal\":\n", - " plane[1] = 1.0\n", - " if tagplane == \"transverse\":\n", - " plane[2] = 1.0\n", - "\n", - " #project v1 on the right plane\n", - " invT = np.linalg.inv(skeleton.getTransformation())\n", - " cosRom = []\n", - " for i in range(len(x)):\n", - " temp_ref = np.array([x[i],y[i],z[i],1])\n", - " temp_child = np.array([xchild[i],ychild[i],zchild[i],1])\n", - "\n", - " transf_ref = np.inner(invT,temp_ref)\n", - " transf_child = np.inner(invT,temp_child)\n", - " vprocess = transf_child-transf_ref\n", - " vprocess = np.delete(vprocess,3)\n", - "\n", - " dist = np.dot(vprocess,np.transpose(plane))\n", - " vprocess = vprocess-dist*plane\n", - "\n", - " n1 = np.linalg.norm(vprocess)\n", - " if(n1>0):\n", - " vprocess = vprocess/n1\n", - "\n", - " if len(xrj)>0:\n", - " temp_refjoint = np.array([xrj[i],yrj[i],zrj[i],1])\n", - " transf_refjoint = np.inner(invT,temp_refjoint)\n", - " vecref = transf_ref - transf_refjoint\n", - " ref = np.delete(vecref,3)\n", - " else:\n", - " n2 = np.linalg.norm(self.refdir)\n", - " if(n2>0):\n", - " self.refdir = self.refdir/n2\n", - " ref = self.refdir\n", - "\n", - " dotprod = np.dot(vprocess,np.transpose(ref))\n", - " cosRom.append(dotprod)\n", - "\n", - "\n", - " rom_value = np.arccos(cosRom)\n", - " result = rom_value *(180/math.pi)\n", - " return result\n", - "\n", - "\n", - "class Step(Metric):\n", - " name = \"step\"\n", - " en_projection = False\n", - " medfilt = 1\n", - " step_thresh = 0.0\n", - " tstart = 0.0\n", - " tend = 0.0\n", - " step_length = []\n", - " step_width = []\n", - " step_distance = []\n", - " filtered_step_distance = []\n", - " strikes = []\n", - " nsteps = 0\n", - " cadence = 0.0\n", - " speed = 0.0\n", - " ex_time = 0.0\n", - " \n", - " def __init__(self,medfilt_window,en_projection,tstart,tend,step_thresh):\n", - "\n", - " # scipy median filter requires odd kernel size\n", - " self.medfilt = int(medfilt_window)\n", - " if not (self.medfilt & 1):\n", - " self.medfilt = self.medfilt + 1\n", - "\n", - " self.tstart = tstart\n", - " self.tend = tend\n", - " self.step_thresh = step_thresh\n", - " self.en_projection = en_projection\n", - "\n", - " def compute(self,skeleton):\n", - " alj = skeleton.getKeypoint(\"ankleLeft\")\n", - " arj = skeleton.getKeypoint(\"ankleRight\")\n", - " ankles_diff = alj[:, :2] - arj[:, :2]\n", - "\n", - " if self.en_projection:\n", - " if skeleton.getKeypoint(\"shoulderLeft\") is not None and skeleton.getKeypoint(\"shoulderRight\") is not None:\n", - " sagittal = skeleton.getKeypoint(\"shoulderLeft\")[0] - skeleton.getKeypoint(\"shoulderRight\")[0]\n", - " sagittal = sagittal / np.linalg.norm(sagittal)\n", - " for i in range(len(alj)):\n", - " v = alj[i,:] - arj[i,:]\n", - " dist = np.dot(v,np.transpose(sagittal))\n", - " v = v - dist * sagittal\n", - " self.step_distance.append(np.linalg.norm(v))\n", - " self.filtered_step_distance = scipy.signal.medfilt(self.step_distance,kernel_size=self.medfilt)\n", - " else:\n", - " # ankles_diff_filtered = scipy.ndimage.median_filter(ankles_diff, size = (self.medfilt, self.medfilt))\n", - " ankles_diff_filtered = scipy.signal.savgol_filter(ankles_diff, 20, 2, axis=0)\n", - " self.filtered_step_distance = np.linalg.norm(ankles_diff_filtered, axis=1)\n", - " self.step_distance = np.linalg.norm(ankles_diff, axis=1)\n", - "\n", - " outliers_indices = np.where(np.abs(scipy.stats.zscore(self.filtered_step_distance)) > 3)[0]\n", - " self.filtered_step_distance[outliers_indices] = 0.0\n", - "\n", - " #self.strikes = scipy.signal.find_peaks_cwt(self.filtered_step_distance, np.arange(1, 42), min_snr=1)\n", - " self.strikes,_ = scipy.signal.find_peaks(self.filtered_step_distance, height = self.step_thresh, distance = 10)\n", - " slen = self.filtered_step_distance[self.strikes]\n", - " self.step_length = stats.mean(slen)\n", - " self.step_width = np.fabs(ankles_diff)\n", - " self.nsteps = len(self.strikes)\n", - " self.cadence = self.nsteps / (self.tend - self.tstart)\n", - " self.speed = self.step_length * self.cadence\n", - " self.ex_time = self.tend - self.tstart\n", - "\n", - " \n", - "class EndPoint(Metric):\n", - " name = \"EP\"\n", - " tagjoint = \"\"\n", - " refdir = []\n", - " tagplane = \"\"\n", - " target = []\n", - " trajectories = []\n", - " tstart = 0.0\n", - " tend = 0.0\n", - " speed = 0.0\n", - " ex_time = 0.0\n", - " def __init__(self,tagjoint,refdir,tagplane,target,tstart,tend):\n", - " self.tagjoint = tagjoint\n", - " self.refdir = refdir\n", - " self.tagplane = tagplane\n", - " self.target = target\n", - " self.tstart = tstart\n", - " self.tend = tend\n", - "\n", - " def compute(self,skeleton):\n", - " self.ex_time = self.tend-self.tstart\n", - " tj = skeleton.getKeypoint(self.tagjoint)\n", - " x = tj[:,0]\n", - " y = tj[:,1]\n", - " z = tj[:,2]\n", - "\n", - " plane = np.zeros(3)\n", - " if tagplane == \"coronal\":\n", - " plane[0] = 1.0\n", - " if tagplane == \"sagittal\":\n", - " plane[1] = 1.0\n", - " if tagplane == \"transverse\":\n", - " plane[2] = 1.0\n", - " invT = np.linalg.inv(skeleton.getTransformation())\n", - " self.trajectories = np.zeros([len(x),3])\n", - " for i in range(len(x)):\n", - " temp_jnt = np.array([x[i],y[i],z[i],1])\n", - " transf_jnt = np.inner(invT,temp_jnt)\n", - " v = np.delete(transf_jnt,3)\n", - " dist = np.dot(v,np.transpose(plane))\n", - " v = v-dist*plane\n", - " self.trajectories[i,0]=v[0]\n", - " self.trajectories[i,1]=v[1]\n", - " self.trajectories[i,2]=v[2]\n", - "\n", - " vel = np.zeros([len(x),3])\n", - " vel[:,0] = np.gradient(self.trajectories[:,0])/self.ex_time\n", - " vel[:,1] = np.gradient(self.trajectories[:,1])/self.ex_time\n", - " vel[:,2] = np.gradient(self.trajectories[:,2])/self.ex_time\n", - "\n", - " self.speed = 0.0\n", - " for i in range(len(x)):\n", - " self.speed = self.speed + np.linalg.norm([vel[i,0],vel[i,1],vel[i,2]])\n", - " self.speed = self.speed/len(x)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "def loadmat(filename):\n", - " '''\n", - " this function should be called instead of direct spio.loadmat\n", - " as it cures the problem of not properly recovering python dictionaries\n", - " from mat files. It calls the function check keys to cure all entries\n", - " which are still mat-objects\n", - " '''\n", - " data = spio.loadmat(filename, struct_as_record=False, squeeze_me=True)\n", - " return _check_keys(data)\n", - "\n", - "def _check_keys(dict):\n", - " '''\n", - " checks if entries in dictionary are mat-objects. If yes\n", - " todict is called to change them to nested dictionaries\n", - " '''\n", - " for key in dict:\n", - " if isinstance(dict[key], spio.matlab.mat_struct):\n", - " dict[key] = _todict(dict[key])\n", - " return dict \n", - "\n", - "def _todict(matobj):\n", - " '''\n", - " A recursive function which constructs from matobjects nested dictionaries\n", - " '''\n", - " dict = {}\n", - " for strg in matobj._fieldnames:\n", - " elem = matobj.__dict__[strg]\n", - " if isinstance(elem, spio.matlab.mat_struct):\n", - " dict[strg] = _todict(elem)\n", - " else:\n", - " dict[strg] = elem\n", - " return dict\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "# Personal data " - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "scrolled": false - }, - "outputs": [], - "source": [ - "#lastfile=''\n", - "\n", - "#text = widgets.Text(\n", - "# value='',\n", - "# placeholder='*.mat',\n", - "# description='Dataset Path',\n", - "# disabled=False\n", - "#)\n", - "#display(text)\n", - "#print('Press Enter to confirm the path.')\n", - "#def callback(wdgt):\n", - "# global lastfile \n", - "# lastfile = str(wdgt.value)\n", - "# if (lastfile.endswith('.mat')):\n", - "# if os.path.exists(lastfile):\n", - "# print('\\'' + lastfile + '\\' found ✅')\n", - "# else:\n", - "# print('\\'' + lastfile + '\\' not found ❌')\n", - "# else:\n", - "# print('Please select a .mat file!')\n", - "\n", - "#text.on_submit(callback)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Patient
Name#35
Surname
Age
\n", - "
" - ], - "text/plain": [ - " Patient\n", - "Name #35\n", - "Surname \n", - "Age " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "/home/mfussi/.local/share/yarp/contexts/motionAnalyzer/user-#35-tug-1.mat\n" - ] - } - ], - "source": [ - "home = expanduser(\"~\")\n", - "pth = home + '/.local/share/yarp/contexts/motionAnalyzer'\n", - "files = glob.glob(os.path.join(pth, '*.mat'))\n", - "lastfile = max(files, key=os.path.getctime)\n", - "\n", - "#print personal data\n", - "i = [pos for pos, char in enumerate(lastfile) if char == \"-\"]\n", - "i1 = i[-3]\n", - "i2 = i[-2]\n", - "name = lastfile[i1+1:i2]\n", - "surname = \"\"\n", - "age = \"\"\n", - "\n", - "personaldata = []\n", - "personaldata.append(name)\n", - "personaldata.append(surname)\n", - "personaldata.append(age) \n", - "table = pd.DataFrame(personaldata) \n", - "table.rename(index={0:\"Name\",1:\"Surname\",2:\"Age\"}, columns={0:\"Patient\"}, inplace=True)\n", - "display(table) \n", - "print(lastfile)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "\n", - "data = []\n", - "ctime = []\n", - "filename = []\n", - "tagex = []\n", - "files.sort(key=os.path.getctime)\n", - "for fi in files:\n", - " i = [pos for pos, char in enumerate(fi) if char == \"-\"]\n", - " i1 = i[-3]\n", - " i2 = i[-2]\n", - " i3 = i[-1]\n", - " namei = fi[i1+1:i2]\n", - " if namei == name:\n", - " filename.append(fi)\n", - " data.append(loadmat(fi)) #data.append(scipy.io.loadmat(fi))\n", - " tagex.append(fi[i2+1:i3])\n", - " ctime.append(os.path.getctime(fi)) " - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "time = []\n", - "month = []\n", - "exercises = []\n", - "ex_names = []\n", - "#count how many exercise of the same type were performed at that month\n", - "countexmonth = {\n", - " \"tug\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"abduction_left\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"internal_rotation_left\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"external_rotation_left\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"reaching_left\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "\n", - "for i in range(len(data)):\n", - "\n", - " datai = data[i]\n", - " time.append(datai['Time_samples'])\n", - " monthi = datetime.date.fromtimestamp(ctime[i]).month-1\n", - " month.append(monthi)\n", - " shoulderCenter = datai['Keypoints']['shoulderCenter']\n", - " head = datai['Keypoints']['head']\n", - " shoulderLeft = datai['Keypoints']['shoulderLeft']\n", - " shoulderRight = datai['Keypoints']['shoulderRight']\n", - " elbowLeft = datai['Keypoints']['elbowLeft']\n", - " handLeft = datai['Keypoints']['handLeft']\n", - " elbowRight = datai['Keypoints']['elbowRight']\n", - " handRight = datai['Keypoints']['handRight']\n", - " hipLeft = datai['Keypoints']['hipLeft']\n", - " hipRight = datai['Keypoints']['hipRight']\n", - " ankleLeft = datai['Keypoints']['ankleLeft']\n", - " ankleRight = datai['Keypoints']['ankleRight']\n", - " kneeLeft = datai['Keypoints']['kneeLeft']\n", - " kneeRight = datai['Keypoints']['kneeRight']\n", - " footLeft = datai['Keypoints']['footLeft']\n", - " footRight = datai['Keypoints']['footRight']\n", - " hipCenter = datai['Keypoints']['hipCenter']\n", - "\n", - " key_pam = {\n", - " \"shoulderCenter\" : shoulderCenter,\n", - " \"head\" : head,\n", - " \"shoulderLeft\" : shoulderLeft,\n", - " \"shoulderRight\" : shoulderRight,\n", - " \"elbowLeft\" : elbowLeft,\n", - " \"handLeft\" : handLeft,\n", - " \"elbowRight\" : elbowRight,\n", - " \"handRight\" : handRight,\n", - " \"hipLeft\" : hipLeft,\n", - " \"hipRight\" : hipRight,\n", - " \"ankleLeft\" : ankleLeft,\n", - " \"ankleRight\" : ankleRight,\n", - " \"kneeLeft\" : kneeLeft,\n", - " \"kneeRight\" : kneeRight,\n", - " \"footLeft\" : footLeft,\n", - " \"footRight\" : footRight,\n", - " \"hipCenter\" : hipCenter\n", - " }\n", - " s=Skeleton(key_pam)\n", - " #s.show()\n", - "\n", - " exname = datai[\"Exercise\"][\"name\"]\n", - " exname = re.sub(r'[^\\w]','',exname)\n", - " ex_names.append(exname)\n", - " result_singleexercise = []\n", - " allmet = datai[\"Exercise\"][\"metrics\"]\n", - " metrics = allmet.keys()\n", - " for metname in metrics:\n", - " if \"ROM\" in metname:\n", - " tagjoint = allmet[metname][\"tag_joint\"]\n", - " tagjoint = re.sub(r'[^\\w]', '',tagjoint)\n", - " refjoint = allmet[metname][\"ref_joint\"]\n", - " if type(refjoint) is np.ndarray:\n", - " refjoint = \"\"\n", - " refjoint = re.sub(r'[^\\w]', '',refjoint)\n", - " refdir = allmet[metname][\"ref_dir\"]\n", - " tagplane = allmet[metname][\"tag_plane\"]\n", - " tagplane = re.sub(r'[^\\w]', '',tagplane)\n", - " rom = Rom(tagjoint,refjoint,refdir,tagplane)\n", - " result_singleexercise.append((rom,rom.compute(s)))\n", - "\n", - " if \"step\" in metname:\n", - " flt = allmet[metname][\"median_filter_window\"]\n", - " proj = allmet[metname][\"enable_plane_projection\"]\n", - " proj = False\n", - " tstart = allmet[metname][\"tstart\"]\n", - " tend = allmet[metname][\"tend\"]\n", - " step_thresh = allmet[metname][\"step_thresh\"]\n", - " step = Step(flt,proj,tstart,tend,step_thresh)\n", - " step.compute(s)\n", - " stepmet = [step.step_distance, step.nsteps, step.cadence, step.speed, step.ex_time,\n", - " step.filtered_step_distance, step.strikes, step.step_width, step.step_length]\n", - " result_singleexercise.append((step,stepmet))\n", - "\n", - " if \"EP\" in metname:\n", - " tagjoint = allmet[metname][\"tag_joint\"]\n", - " tagjoint = re.sub(r'[^\\w]', '',tagjoint)\n", - " refdir = allmet[metname][\"ref_dir\"]\n", - " tagplane = allmet[metname][\"tag_plane\"]\n", - " tagplane = re.sub(r'[^\\w]', '',tagplane)\n", - " target = allmet[metname][\"target\"]\n", - " tstart = allmet[metname][\"tstart\"]\n", - " tend = allmet[metname][\"tend\"]\n", - " ep = EndPoint(tagjoint,refdir,tagplane,target,tstart,tend)\n", - " ep.compute(s)\n", - " result_singleexercise.append((ep,ep.trajectories))\n", - "\n", - " if exname == \"tug\":\n", - " ex = Tug(monthi,result_singleexercise)\n", - " if \"abduction\" in exname:\n", - " ex = Abduction(exname,monthi,result_singleexercise)\n", - " if \"internal_rotation\" in exname:\n", - " ex = Internal_Rotation(exname,monthi,result_singleexercise)\n", - " if \"external_rotation\" in exname:\n", - " ex = External_Rotation(exname,monthi,result_singleexercise)\n", - " if \"reaching\" in exname:\n", - " ex = Reaching(exname,monthi,result_singleexercise)\n", - "\n", - " countexmonth[exname][monthi] = 1 + countexmonth[exname][monthi]\n", - "\n", - " exercises.append(ex) \n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - " \n", - "# Daily session report\n", - "The patient did the following exercise: " - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "b'tug'\n" - ] - } - ], - "source": [ - "\n", - "print(exname.encode('ascii'))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - " \n", - "on: " - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2023-01-17 12:02:36.581784\n" - ] - } - ], - "source": [ - "\n", - "now = datetime.datetime.now()\n", - "print(now)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - " \n", - "The following shows the metric trend during the exercise:" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": { - "scrolled": false - }, - "outputs": [ - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "linkText": "Export to plot.ly", - "plotlyServerURL": "https://plot.ly", - "showLink": false - }, - "data": [ - { - "line": { - "color": "blue", - "width": 3 - }, - "mode": "lines", - "name": "Real trend", - "type": "scatter", - "x": [ - 1499.2411363124847, - 1499.3432846069336, - 1499.4427211284637, - 1499.54013133049, - 1499.6420300006866, - 1499.744064092636, - 1499.8401839733124, - 1499.9462168216705, - 1500.0419936180115, - 1500.1414563655853, - 1500.2422320842743, - 1500.3411314487457, - 1500.441514492035, - 1500.541243314743, - 1500.6429286003113, - 1500.7421760559082, - 1500.8417778015137, - 1500.9413657188416, - 1501.0417659282684, - 1501.1428897380829, - 1501.240436553955, - 1501.3419153690338, - 1501.441132068634, - 1501.5403683185577, - 1501.6449313163757, - 1501.7413523197174, - 1501.8423101902008, - 1501.9408650398254, - 1502.04141497612, - 1502.1416535377502, - 1502.2421522140503, - 1502.3436872959137, - 1502.4428606033325, - 1502.5419516563416, - 1502.6438164710999, - 1502.739751815796, - 1502.839929819107, - 1502.9432377815247, - 1503.0396859645844, - 1503.1407148838043, - 1503.2416439056396, - 1503.3399159908295, - 1503.4405806064606, - 1503.542091369629, - 1503.6399137973785, - 1503.7397291660309, - 1503.8402659893036, - 1503.9417126178741, - 1504.0408883094788, - 1504.1431605815887, - 1504.2412109375, - 1504.3424327373505, - 1504.442084312439, - 1504.5419890880585, - 1504.6418566703796, - 1504.7421357631683, - 1504.8420453071594, - 1504.9417133331299, - 1505.0427649021149, - 1505.1421146392822, - 1505.2413144111633, - 1505.3408071994781, - 1505.4415457248688, - 1505.542934179306, - 1505.6415820121765, - 1505.741807460785, - 1505.8417615890503, - 1505.9422342777252, - 1506.0417664051056, - 1506.142252922058, - 1506.2424128055573, - 1506.3428943157196, - 1506.4433236122131, - 1506.5426783561707, - 1506.6421117782593, - 1506.74356341362, - 1506.8419032096863, - 1506.9436628818512, - 1507.042890548706, - 1507.143632888794, - 1507.2437996864319, - 1507.34317612648, - 1507.4439723491669, - 1507.5464203357697, - 1507.646990776062, - 1507.743609905243, - 1507.844081878662, - 1507.944857597351, - 1508.0438890457153, - 1508.143606185913, - 1508.2456514835358, - 1508.3450417518616, - 1508.444191455841, - 1508.5442969799042, - 1508.6431493759155, - 1508.7441477775574, - 1508.8442180156708, - 1508.9457623958588, - 1509.0446989536285, - 1509.1442427635193, - 1509.2483496665955, - 1509.348049879074, - 1509.447769165039, - 1509.5452642440796, - 1509.6454932689667, - 1509.7466208934784, - 1509.8461413383484, - 1509.9450035095215, - 1510.0446655750275, - 1510.1453218460083, - 1510.2444643974304, - 1510.3476753234863, - 1510.444744348526, - 1510.5449130535126, - 1510.6449630260468, - 1510.7453105449677, - 1510.8460247516632, - 1510.9460620880127, - 1511.0450239181519, - 1511.147045135498, - 1511.2464575767517, - 1511.3476495742798, - 1511.4461619853973, - 1511.5460538864136, - 1511.6458253860474, - 1511.7523272037506, - 1511.8473920822144, - 1511.9467968940735, - 1512.0458340644836, - 1512.14905834198, - 1512.2465064525604, - 1512.3464360237122, - 1512.4465262889862, - 1512.5464425086975, - 1512.6461458206177, - 1512.7456891536713, - 1512.846199274063, - 1512.9469623565674, - 1513.046472787857, - 1513.1472702026367, - 1513.2464673519135, - 1513.3472352027893, - 1513.4477665424347, - 1513.5469961166382, - 1513.6465792655945, - 1513.7474553585052, - 1513.8473408222198, - 1513.9478917121887, - 1514.048181295395, - 1514.1470139026642, - 1514.2469763755798, - 1514.347504377365, - 1514.4472517967224, - 1514.548014163971, - 1514.6466579437256, - 1514.747255563736, - 1514.8468098640442, - 1514.9472517967224, - 1515.0483257770538, - 1515.1476039886475, - 1515.2474853992462, - 1515.349123954773, - 1515.448129415512, - 1515.5479564666748, - 1515.6483643054962, - 1515.7478876113892, - 1515.848218679428, - 1515.9479448795319, - 1516.0482194423676, - 1516.149117231369, - 1516.24773478508, - 1516.3488357067108, - 1516.4485018253326, - 1516.548581123352, - 1516.6529862880707, - 1516.7489988803864, - 1516.8483703136444, - 1516.9493639469147, - 1517.0485661029816, - 1517.1542015075684, - 1517.2489612102509, - 1517.3534693717957, - 1517.4531128406525, - 1517.553725719452, - 1517.6531822681427, - 1517.7508800029755, - 1517.8505020141602, - 1517.9501507282257, - 1518.0533425807953, - 1518.154797554016, - 1518.252271413803, - 1518.3584887981415, - 1518.4496307373047, - 1518.5517852306366, - 1518.6547417640686, - 1518.751220703125, - 1518.8547055721283, - 1518.9500937461853, - 1519.0509328842163, - 1519.1500902175903, - 1519.2508342266083, - 1519.3509469032288, - 1519.4529166221619, - 1519.552564382553, - 1519.6508638858795, - 1519.7502257823944, - 1519.8513631820679, - 1519.9507722854614, - 1520.0511844158173, - 1520.1549203395844, - 1520.2553119659424, - 1520.355444908142, - 1520.4572768211365, - 1520.5562913417816, - 1520.6547539234161, - 1520.7517511844635, - 1520.852136850357, - 1520.956214427948, - 1521.0517673492432, - 1521.151982307434, - 1521.2533135414124, - 1521.3525230884552, - 1521.4546430110931, - 1521.5537049770355, - 1521.6560616493225, - 1521.756957769394, - 1521.861038684845, - 1521.9608080387115, - 1522.0553195476532, - 1522.1532826423645, - 1522.2527394294739, - 1522.3522148132324, - 1522.4540903568268, - 1522.5571751594543, - 1522.654535293579, - 1522.7544548511505, - 1522.8560378551483, - 1522.953887462616, - 1523.0526440143585, - 1523.1566863059998, - 1523.2580780982971, - 1523.3567478656769, - 1523.454469203949, - 1523.5542244911194, - 1523.658311843872, - 1523.7581009864807, - 1523.8582689762115, - 1523.953364610672, - 1524.054563999176, - 1524.1584029197693, - 1524.2576098442078, - 1524.3543453216553, - 1524.4550700187683, - 1524.5540347099304, - 1524.6535897254944, - 1524.753868341446, - 1524.853411436081, - 1524.95521068573, - 1525.054139137268, - 1525.1547272205353, - 1525.2555606365204, - 1525.3549020290375, - 1525.4566402435303, - 1525.5587475299835, - 1525.6535289287567, - 1525.7547373771667, - 1525.8536713123322, - 1525.9546175003052, - 1526.0546753406525, - 1526.1549615859985, - 1526.255040884018, - 1526.3548610210419, - 1526.454764842987, - 1526.5555267333984, - 1526.6554877758026, - 1526.7556302547455, - 1526.8551664352417, - 1526.9557905197144, - 1527.0557622909546, - 1527.1561093330383, - 1527.2571275234222, - 1527.356971502304, - 1527.457272529602, - 1527.5553719997406, - 1527.6574912071228, - 1527.757332086563, - 1527.8562273979187, - 1527.9594457149506, - 1528.0566897392273, - 1528.1583421230316, - 1528.2581007480621, - 1528.355853319168, - 1528.4608187675476, - 1528.5574316978455, - 1528.6561155319214, - 1528.7592558860779, - 1528.8586099147797, - 1528.9628987312317, - 1529.0560810565948, - 1529.1571590900421, - 1529.2560682296753, - 1529.3564767837524, - 1529.456878900528, - 1529.5586001873016, - 1529.657800912857, - 1529.7575800418854, - 1529.8577151298523, - 1529.9580373764038, - 1530.0567288398743, - 1530.157428264618, - 1530.2587399482727, - 1530.3589704036713, - 1530.457849740982, - 1530.5578382015228, - 1530.658446073532, - 1530.757824897766, - 1530.8616199493408, - 1530.960708618164, - 1531.059900522232, - 1531.162596464157, - 1531.2573883533478, - 1531.3600792884827, - 1531.458923816681, - 1531.5627195835114, - 1531.6612637043, - 1531.7576656341553, - 1531.8620171546936, - 1531.9599452018738, - 1532.0599632263184, - 1532.1607375144958, - 1532.259782075882, - 1532.3589525222778, - 1532.4589982032776, - 1532.5596570968628, - 1532.660763502121, - 1532.759989976883, - 1532.859920501709, - 1532.9633507728577, - 1533.0590443611145, - 1533.159485578537, - 1533.2591478824615, - 1533.358909368515, - 1533.4588725566864, - 1533.5592203140259, - 1533.6601333618164, - 1533.758960723877, - 1533.8600804805756, - 1533.9596378803253, - 1534.0594065189362, - 1534.1598281860352, - 1534.2596225738525, - 1534.360122680664, - 1534.4612867832184, - 1534.5604510307312, - 1534.6615297794342, - 1534.76198220253, - 1534.8614101409912, - 1534.9614522457123, - 1535.0600357055664, - 1535.1603939533234, - 1535.2622575759888, - 1535.3602058887482, - 1535.462120294571, - 1535.56028008461, - 1535.6601366996765, - 1535.7611837387085, - 1535.8639693260193, - 1535.9614548683167, - 1536.06116604805, - 1536.1607356071472, - 1536.2609808444977, - 1536.3626313209534, - 1536.4609956741333, - 1536.564481496811, - 1536.6640095710754, - 1536.763158082962, - 1536.8629369735718, - 1536.9626727104187, - 1537.0616796016693, - 1537.1621129512787, - 1537.2617573738098, - 1537.3618972301483, - 1537.462711572647, - 1537.562515258789, - 1537.6621596813202, - 1537.7639846801758, - 1537.8620209693909, - 1537.9622814655304, - 1538.0627496242523, - 1538.1621263027191, - 1538.2627971172333, - 1538.366781949997, - 1538.4637882709503, - 1538.563273191452, - 1538.66330909729, - 1538.7667174339294, - 1538.8636915683746, - 1538.9630060195923, - 1539.063859462738, - 1539.1625623703003, - 1539.2660901546478, - 1539.3630833625793, - 1539.464448928833, - 1539.5636985301971, - 1539.6643221378326, - 1539.7645237445831, - 1539.8643732070923, - 1539.9644606113434, - 1540.0639703273773, - 1540.1641156673431, - 1540.2658836841583, - 1540.3652892112732, - 1540.4671607017517, - 1540.5652508735657, - 1540.669272184372, - 1540.7651839256287, - 1540.8669271469116, - 1540.9673836231232, - 1541.0654036998749, - 1541.1660828590393, - 1541.2674746513367, - 1541.3676433563232, - 1541.4656250476837, - 1541.5665922164917, - 1541.6681351661682, - 1541.7672548294067, - 1541.867030620575, - 1541.9676649570465, - 1542.0670235157013, - 1542.1689057350159, - 1542.2671897411346, - 1542.3672127723694, - 1542.4686870574951, - 1542.5665442943573, - 1542.6705791950226, - 1542.7696046829224, - 1542.8668971061707, - 1542.966644525528, - 1543.0735685825348, - 1543.1732482910156, - 1543.267774105072, - 1543.3676788806915, - 1543.4672544002533, - 1543.5671184062958, - 1543.6677463054657, - 1543.7675108909607, - 1543.8679871559143, - 1543.9693717956543, - 1544.0663883686066, - 1544.1677677631378, - 1544.268888950348, - 1544.3663485050201, - 1544.4664885997772, - 1544.5660860538483, - 1544.6669471263885, - 1544.76717877388, - 1544.8672885894775, - 1544.9685242176056, - 1545.0670084953308, - 1545.1677951812744, - 1545.2673869132996, - 1545.3672273159027, - 1545.467891216278, - 1545.575178861618, - 1545.6677899360657, - 1545.7664551734924, - 1545.8665204048157, - 1545.9671485424042, - 1546.0674130916595, - 1546.1681797504425, - 1546.2676408290863, - 1546.367078781128, - 1546.4679577350616, - 1546.5685453414917, - 1546.6769742965698, - 1546.7727680206299, - 1546.8680868148804, - 1546.9686315059662, - 1547.069181919098, - 1547.167875289917, - 1547.2677521705627, - 1547.3686332702637, - 1547.4707067012787, - 1547.5683662891388, - 1547.6724834442139, - 1547.769639492035, - 1547.8712072372437, - 1547.9770529270172, - 1548.072209596634, - 1548.173274755478, - 1548.2715876102448, - 1548.371628522873, - 1548.4709198474884, - 1548.5714690685272, - 1548.671296596527, - 1548.7715110778809, - 1548.8716838359833, - 1548.97434091568, - 1549.070969581604, - 1549.174753665924, - 1549.2744188308716, - 1549.3733451366425, - 1549.4734070301056, - 1549.5742897987366, - 1549.6723790168762, - 1549.7728595733643, - 1549.8727250099182, - 1549.9772119522095, - 1550.0720105171204, - 1550.1710896492004, - 1550.2725031375885, - 1550.3713836669922, - 1550.4781966209412, - 1550.5779829025269, - 1550.6775233745575, - 1550.774284362793, - 1550.87375998497, - 1550.979849100113, - 1551.0752232074738, - 1551.1747436523438, - 1551.2786514759064, - 1551.3792498111725, - 1551.478197336197, - 1551.579080581665, - 1551.67942070961, - 1551.77863407135, - 1551.880181312561, - 1551.9783499240875, - 1552.0735130310059, - 1552.1743123531342, - 1552.2738902568817, - 1552.3736426830292, - 1552.4735062122345, - 1552.5737590789795, - 1552.6750376224518, - 1552.774917125702, - 1552.874896287918, - 1552.9747967720032, - 1553.0752203464508, - 1553.1760432720184, - 1553.2762243747711, - 1553.3725430965424, - 1553.472339630127, - 1553.5719089508057, - 1553.671792268753, - 1553.7730875015259, - 1553.8719074726105, - 1553.9732356071472, - 1554.072648525238, - 1554.172200679779, - 1554.2724151611328, - 1554.3731021881104, - 1554.4731767177582, - 1554.5727956295013, - 1554.673753976822, - 1554.7773764133453, - 1554.8747208118439, - 1554.9741613864899, - 1555.0747776031494, - 1555.1755096912384, - 1555.279501914978, - 1555.3744592666626, - 1555.4760527610779, - 1555.5740582942963, - 1555.6754522323608, - 1555.7753405570984, - 1555.8802742958069, - 1555.9759588241577, - 1556.074725151062, - 1556.1759669780731, - 1556.2756700515747, - 1556.3753113746643, - 1556.4837319850922, - 1556.5750107765198, - 1556.6751630306244, - 1556.7765123844147, - 1556.8782150745392, - 1556.9785902500153, - 1557.0765113830566, - 1557.1777567863464, - 1557.2783045768738, - 1557.3775517940521, - 1557.4797596931458, - 1557.5780041217804, - 1557.6780152320862, - 1557.7778115272522, - 1557.876960515976, - 1557.9770517349243, - 1558.076621055603, - 1558.180831193924, - 1558.2854754924774, - 1558.3767499923706, - 1558.4804351329803, - 1558.579921722412, - 1558.677288532257, - 1558.7769978046417, - 1558.8778581619263, - 1558.9787356853485, - 1559.0771126747131, - 1559.1767921447754, - 1559.278477191925, - 1559.378291606903, - 1559.4775824546814, - 1559.5807921886444, - 1559.6776638031006, - 1559.778058052063, - 1559.8830723762512, - 1559.9832768440247, - 1560.0840981006622, - 1560.1845769882202, - 1560.2789707183838, - 1560.3786268234253, - 1560.47776389122, - 1560.5785915851593, - 1560.6796667575836, - 1560.7791197299957, - 1560.87948346138, - 1560.978010892868, - 1561.0784831047058, - 1561.1786596775055, - 1561.2765908241272, - 1561.3838136196136, - 1561.4774813652039, - 1561.5815932750702, - 1561.6770639419556, - 1561.7776787281036, - 1561.877956867218, - 1561.9779877662659, - 1562.0776226520538, - 1562.1785109043121, - 1562.2782335281372, - 1562.3815352916718, - 1562.4804756641388, - 1562.5775909423828, - 1562.6809916496277, - 1562.7826879024506, - 1562.8828573226929, - 1562.9838132858276, - 1563.0780189037323, - 1563.1789796352386, - 1563.2802908420563, - 1563.3813588619232, - 1563.480254650116, - 1563.5809354782104, - 1563.680933713913, - 1563.7801339626312, - 1563.880723953247, - 1563.9811205863953, - 1564.0802714824677, - 1564.1794838905334, - 1564.2845251560211, - 1564.3794884681702, - 1564.4791498184204, - 1564.5835678577423, - 1564.6808955669403, - 1564.7788915634155, - 1564.8795139789581, - 1564.9836478233337, - 1565.07950258255, - 1565.1825184822083, - 1565.2819392681122, - 1565.380526304245, - 1565.4812269210815, - 1565.5805473327637, - 1565.684333562851, - 1565.785714149475, - 1565.8849048614502, - 1565.9807634353638, - 1566.0813398361206, - 1566.1810414791107, - 1566.283430814743, - 1566.383866071701, - 1566.484350681305, - 1566.5904591083527, - 1566.6800830364227, - 1566.7800760269165, - 1566.8805696964264, - 1566.9809465408325, - 1567.0811483860016, - 1567.1813688278198, - 1567.2823538780212, - 1567.3819682598114, - 1567.4816749095917, - 1567.5819344520569, - 1567.6825020313263, - 1567.781952381134, - 1567.881548166275, - 1567.982048034668, - 1568.0820636749268, - 1568.1820254325867, - 1568.281239271164, - 1568.3812518119812, - 1568.4811825752258, - 1568.5819082260132, - 1568.6818380355835, - 1568.7822697162628, - 1568.8816404342651, - 1568.9819226264954, - 1569.0865490436554, - 1569.186048746109, - 1569.282539844513, - 1569.3828761577606, - 1569.4822869300842, - 1569.58291721344, - 1569.6838479042053, - 1569.7846109867096, - 1569.8823783397675, - 1569.9836070537567, - 1570.0831260681152, - 1570.1819534301758, - 1570.2878515720367, - 1570.3924379348755, - 1570.4909138679504, - 1570.5902736186981, - 1570.6988174915314, - 1570.7904138565063, - 1570.8904962539673, - 1570.9899044036865, - 1571.0898532867432, - 1571.1898276805878, - 1571.289258480072, - 1571.3903584480286, - 1571.4897434711456, - 1571.5904321670532, - 1571.6920642852783, - 1571.7911806106567, - 1571.8918182849884, - 1571.9967155456543, - 1572.1017162799835, - 1572.2009263038635, - 1572.2912111282349, - 1572.3967843055725, - 1572.4991810321808, - 1572.5943253040314, - 1572.6906354427338, - 1572.7905294895172, - 1572.891780614853, - 1572.9911139011383, - 1573.0927135944366, - 1573.1920285224915 - ], - "y": [ - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90 - ] - } - ], - "layout": { - "autosize": false, - "font": { - "color": "black", - "family": "Courier New, monospace", - "size": 22 - }, - "height": 600, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Range of Motion hipLeft" - }, - "width": 750, - "xaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "time [s]" - } - }, - "yaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "ROM [degrees]" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "linkText": "Export to plot.ly", - "plotlyServerURL": "https://plot.ly", - "showLink": false - }, - "data": [ - { - "line": { - "color": "blue", - "width": 3 - }, - "mode": "lines", - "name": "Real trend", - "type": "scatter", - "x": [ - 1499.2411363124847, - 1499.3432846069336, - 1499.4427211284637, - 1499.54013133049, - 1499.6420300006866, - 1499.744064092636, - 1499.8401839733124, - 1499.9462168216705, - 1500.0419936180115, - 1500.1414563655853, - 1500.2422320842743, - 1500.3411314487457, - 1500.441514492035, - 1500.541243314743, - 1500.6429286003113, - 1500.7421760559082, - 1500.8417778015137, - 1500.9413657188416, - 1501.0417659282684, - 1501.1428897380829, - 1501.240436553955, - 1501.3419153690338, - 1501.441132068634, - 1501.5403683185577, - 1501.6449313163757, - 1501.7413523197174, - 1501.8423101902008, - 1501.9408650398254, - 1502.04141497612, - 1502.1416535377502, - 1502.2421522140503, - 1502.3436872959137, - 1502.4428606033325, - 1502.5419516563416, - 1502.6438164710999, - 1502.739751815796, - 1502.839929819107, - 1502.9432377815247, - 1503.0396859645844, - 1503.1407148838043, - 1503.2416439056396, - 1503.3399159908295, - 1503.4405806064606, - 1503.542091369629, - 1503.6399137973785, - 1503.7397291660309, - 1503.8402659893036, - 1503.9417126178741, - 1504.0408883094788, - 1504.1431605815887, - 1504.2412109375, - 1504.3424327373505, - 1504.442084312439, - 1504.5419890880585, - 1504.6418566703796, - 1504.7421357631683, - 1504.8420453071594, - 1504.9417133331299, - 1505.0427649021149, - 1505.1421146392822, - 1505.2413144111633, - 1505.3408071994781, - 1505.4415457248688, - 1505.542934179306, - 1505.6415820121765, - 1505.741807460785, - 1505.8417615890503, - 1505.9422342777252, - 1506.0417664051056, - 1506.142252922058, - 1506.2424128055573, - 1506.3428943157196, - 1506.4433236122131, - 1506.5426783561707, - 1506.6421117782593, - 1506.74356341362, - 1506.8419032096863, - 1506.9436628818512, - 1507.042890548706, - 1507.143632888794, - 1507.2437996864319, - 1507.34317612648, - 1507.4439723491669, - 1507.5464203357697, - 1507.646990776062, - 1507.743609905243, - 1507.844081878662, - 1507.944857597351, - 1508.0438890457153, - 1508.143606185913, - 1508.2456514835358, - 1508.3450417518616, - 1508.444191455841, - 1508.5442969799042, - 1508.6431493759155, - 1508.7441477775574, - 1508.8442180156708, - 1508.9457623958588, - 1509.0446989536285, - 1509.1442427635193, - 1509.2483496665955, - 1509.348049879074, - 1509.447769165039, - 1509.5452642440796, - 1509.6454932689667, - 1509.7466208934784, - 1509.8461413383484, - 1509.9450035095215, - 1510.0446655750275, - 1510.1453218460083, - 1510.2444643974304, - 1510.3476753234863, - 1510.444744348526, - 1510.5449130535126, - 1510.6449630260468, - 1510.7453105449677, - 1510.8460247516632, - 1510.9460620880127, - 1511.0450239181519, - 1511.147045135498, - 1511.2464575767517, - 1511.3476495742798, - 1511.4461619853973, - 1511.5460538864136, - 1511.6458253860474, - 1511.7523272037506, - 1511.8473920822144, - 1511.9467968940735, - 1512.0458340644836, - 1512.14905834198, - 1512.2465064525604, - 1512.3464360237122, - 1512.4465262889862, - 1512.5464425086975, - 1512.6461458206177, - 1512.7456891536713, - 1512.846199274063, - 1512.9469623565674, - 1513.046472787857, - 1513.1472702026367, - 1513.2464673519135, - 1513.3472352027893, - 1513.4477665424347, - 1513.5469961166382, - 1513.6465792655945, - 1513.7474553585052, - 1513.8473408222198, - 1513.9478917121887, - 1514.048181295395, - 1514.1470139026642, - 1514.2469763755798, - 1514.347504377365, - 1514.4472517967224, - 1514.548014163971, - 1514.6466579437256, - 1514.747255563736, - 1514.8468098640442, - 1514.9472517967224, - 1515.0483257770538, - 1515.1476039886475, - 1515.2474853992462, - 1515.349123954773, - 1515.448129415512, - 1515.5479564666748, - 1515.6483643054962, - 1515.7478876113892, - 1515.848218679428, - 1515.9479448795319, - 1516.0482194423676, - 1516.149117231369, - 1516.24773478508, - 1516.3488357067108, - 1516.4485018253326, - 1516.548581123352, - 1516.6529862880707, - 1516.7489988803864, - 1516.8483703136444, - 1516.9493639469147, - 1517.0485661029816, - 1517.1542015075684, - 1517.2489612102509, - 1517.3534693717957, - 1517.4531128406525, - 1517.553725719452, - 1517.6531822681427, - 1517.7508800029755, - 1517.8505020141602, - 1517.9501507282257, - 1518.0533425807953, - 1518.154797554016, - 1518.252271413803, - 1518.3584887981415, - 1518.4496307373047, - 1518.5517852306366, - 1518.6547417640686, - 1518.751220703125, - 1518.8547055721283, - 1518.9500937461853, - 1519.0509328842163, - 1519.1500902175903, - 1519.2508342266083, - 1519.3509469032288, - 1519.4529166221619, - 1519.552564382553, - 1519.6508638858795, - 1519.7502257823944, - 1519.8513631820679, - 1519.9507722854614, - 1520.0511844158173, - 1520.1549203395844, - 1520.2553119659424, - 1520.355444908142, - 1520.4572768211365, - 1520.5562913417816, - 1520.6547539234161, - 1520.7517511844635, - 1520.852136850357, - 1520.956214427948, - 1521.0517673492432, - 1521.151982307434, - 1521.2533135414124, - 1521.3525230884552, - 1521.4546430110931, - 1521.5537049770355, - 1521.6560616493225, - 1521.756957769394, - 1521.861038684845, - 1521.9608080387115, - 1522.0553195476532, - 1522.1532826423645, - 1522.2527394294739, - 1522.3522148132324, - 1522.4540903568268, - 1522.5571751594543, - 1522.654535293579, - 1522.7544548511505, - 1522.8560378551483, - 1522.953887462616, - 1523.0526440143585, - 1523.1566863059998, - 1523.2580780982971, - 1523.3567478656769, - 1523.454469203949, - 1523.5542244911194, - 1523.658311843872, - 1523.7581009864807, - 1523.8582689762115, - 1523.953364610672, - 1524.054563999176, - 1524.1584029197693, - 1524.2576098442078, - 1524.3543453216553, - 1524.4550700187683, - 1524.5540347099304, - 1524.6535897254944, - 1524.753868341446, - 1524.853411436081, - 1524.95521068573, - 1525.054139137268, - 1525.1547272205353, - 1525.2555606365204, - 1525.3549020290375, - 1525.4566402435303, - 1525.5587475299835, - 1525.6535289287567, - 1525.7547373771667, - 1525.8536713123322, - 1525.9546175003052, - 1526.0546753406525, - 1526.1549615859985, - 1526.255040884018, - 1526.3548610210419, - 1526.454764842987, - 1526.5555267333984, - 1526.6554877758026, - 1526.7556302547455, - 1526.8551664352417, - 1526.9557905197144, - 1527.0557622909546, - 1527.1561093330383, - 1527.2571275234222, - 1527.356971502304, - 1527.457272529602, - 1527.5553719997406, - 1527.6574912071228, - 1527.757332086563, - 1527.8562273979187, - 1527.9594457149506, - 1528.0566897392273, - 1528.1583421230316, - 1528.2581007480621, - 1528.355853319168, - 1528.4608187675476, - 1528.5574316978455, - 1528.6561155319214, - 1528.7592558860779, - 1528.8586099147797, - 1528.9628987312317, - 1529.0560810565948, - 1529.1571590900421, - 1529.2560682296753, - 1529.3564767837524, - 1529.456878900528, - 1529.5586001873016, - 1529.657800912857, - 1529.7575800418854, - 1529.8577151298523, - 1529.9580373764038, - 1530.0567288398743, - 1530.157428264618, - 1530.2587399482727, - 1530.3589704036713, - 1530.457849740982, - 1530.5578382015228, - 1530.658446073532, - 1530.757824897766, - 1530.8616199493408, - 1530.960708618164, - 1531.059900522232, - 1531.162596464157, - 1531.2573883533478, - 1531.3600792884827, - 1531.458923816681, - 1531.5627195835114, - 1531.6612637043, - 1531.7576656341553, - 1531.8620171546936, - 1531.9599452018738, - 1532.0599632263184, - 1532.1607375144958, - 1532.259782075882, - 1532.3589525222778, - 1532.4589982032776, - 1532.5596570968628, - 1532.660763502121, - 1532.759989976883, - 1532.859920501709, - 1532.9633507728577, - 1533.0590443611145, - 1533.159485578537, - 1533.2591478824615, - 1533.358909368515, - 1533.4588725566864, - 1533.5592203140259, - 1533.6601333618164, - 1533.758960723877, - 1533.8600804805756, - 1533.9596378803253, - 1534.0594065189362, - 1534.1598281860352, - 1534.2596225738525, - 1534.360122680664, - 1534.4612867832184, - 1534.5604510307312, - 1534.6615297794342, - 1534.76198220253, - 1534.8614101409912, - 1534.9614522457123, - 1535.0600357055664, - 1535.1603939533234, - 1535.2622575759888, - 1535.3602058887482, - 1535.462120294571, - 1535.56028008461, - 1535.6601366996765, - 1535.7611837387085, - 1535.8639693260193, - 1535.9614548683167, - 1536.06116604805, - 1536.1607356071472, - 1536.2609808444977, - 1536.3626313209534, - 1536.4609956741333, - 1536.564481496811, - 1536.6640095710754, - 1536.763158082962, - 1536.8629369735718, - 1536.9626727104187, - 1537.0616796016693, - 1537.1621129512787, - 1537.2617573738098, - 1537.3618972301483, - 1537.462711572647, - 1537.562515258789, - 1537.6621596813202, - 1537.7639846801758, - 1537.8620209693909, - 1537.9622814655304, - 1538.0627496242523, - 1538.1621263027191, - 1538.2627971172333, - 1538.366781949997, - 1538.4637882709503, - 1538.563273191452, - 1538.66330909729, - 1538.7667174339294, - 1538.8636915683746, - 1538.9630060195923, - 1539.063859462738, - 1539.1625623703003, - 1539.2660901546478, - 1539.3630833625793, - 1539.464448928833, - 1539.5636985301971, - 1539.6643221378326, - 1539.7645237445831, - 1539.8643732070923, - 1539.9644606113434, - 1540.0639703273773, - 1540.1641156673431, - 1540.2658836841583, - 1540.3652892112732, - 1540.4671607017517, - 1540.5652508735657, - 1540.669272184372, - 1540.7651839256287, - 1540.8669271469116, - 1540.9673836231232, - 1541.0654036998749, - 1541.1660828590393, - 1541.2674746513367, - 1541.3676433563232, - 1541.4656250476837, - 1541.5665922164917, - 1541.6681351661682, - 1541.7672548294067, - 1541.867030620575, - 1541.9676649570465, - 1542.0670235157013, - 1542.1689057350159, - 1542.2671897411346, - 1542.3672127723694, - 1542.4686870574951, - 1542.5665442943573, - 1542.6705791950226, - 1542.7696046829224, - 1542.8668971061707, - 1542.966644525528, - 1543.0735685825348, - 1543.1732482910156, - 1543.267774105072, - 1543.3676788806915, - 1543.4672544002533, - 1543.5671184062958, - 1543.6677463054657, - 1543.7675108909607, - 1543.8679871559143, - 1543.9693717956543, - 1544.0663883686066, - 1544.1677677631378, - 1544.268888950348, - 1544.3663485050201, - 1544.4664885997772, - 1544.5660860538483, - 1544.6669471263885, - 1544.76717877388, - 1544.8672885894775, - 1544.9685242176056, - 1545.0670084953308, - 1545.1677951812744, - 1545.2673869132996, - 1545.3672273159027, - 1545.467891216278, - 1545.575178861618, - 1545.6677899360657, - 1545.7664551734924, - 1545.8665204048157, - 1545.9671485424042, - 1546.0674130916595, - 1546.1681797504425, - 1546.2676408290863, - 1546.367078781128, - 1546.4679577350616, - 1546.5685453414917, - 1546.6769742965698, - 1546.7727680206299, - 1546.8680868148804, - 1546.9686315059662, - 1547.069181919098, - 1547.167875289917, - 1547.2677521705627, - 1547.3686332702637, - 1547.4707067012787, - 1547.5683662891388, - 1547.6724834442139, - 1547.769639492035, - 1547.8712072372437, - 1547.9770529270172, - 1548.072209596634, - 1548.173274755478, - 1548.2715876102448, - 1548.371628522873, - 1548.4709198474884, - 1548.5714690685272, - 1548.671296596527, - 1548.7715110778809, - 1548.8716838359833, - 1548.97434091568, - 1549.070969581604, - 1549.174753665924, - 1549.2744188308716, - 1549.3733451366425, - 1549.4734070301056, - 1549.5742897987366, - 1549.6723790168762, - 1549.7728595733643, - 1549.8727250099182, - 1549.9772119522095, - 1550.0720105171204, - 1550.1710896492004, - 1550.2725031375885, - 1550.3713836669922, - 1550.4781966209412, - 1550.5779829025269, - 1550.6775233745575, - 1550.774284362793, - 1550.87375998497, - 1550.979849100113, - 1551.0752232074738, - 1551.1747436523438, - 1551.2786514759064, - 1551.3792498111725, - 1551.478197336197, - 1551.579080581665, - 1551.67942070961, - 1551.77863407135, - 1551.880181312561, - 1551.9783499240875, - 1552.0735130310059, - 1552.1743123531342, - 1552.2738902568817, - 1552.3736426830292, - 1552.4735062122345, - 1552.5737590789795, - 1552.6750376224518, - 1552.774917125702, - 1552.874896287918, - 1552.9747967720032, - 1553.0752203464508, - 1553.1760432720184, - 1553.2762243747711, - 1553.3725430965424, - 1553.472339630127, - 1553.5719089508057, - 1553.671792268753, - 1553.7730875015259, - 1553.8719074726105, - 1553.9732356071472, - 1554.072648525238, - 1554.172200679779, - 1554.2724151611328, - 1554.3731021881104, - 1554.4731767177582, - 1554.5727956295013, - 1554.673753976822, - 1554.7773764133453, - 1554.8747208118439, - 1554.9741613864899, - 1555.0747776031494, - 1555.1755096912384, - 1555.279501914978, - 1555.3744592666626, - 1555.4760527610779, - 1555.5740582942963, - 1555.6754522323608, - 1555.7753405570984, - 1555.8802742958069, - 1555.9759588241577, - 1556.074725151062, - 1556.1759669780731, - 1556.2756700515747, - 1556.3753113746643, - 1556.4837319850922, - 1556.5750107765198, - 1556.6751630306244, - 1556.7765123844147, - 1556.8782150745392, - 1556.9785902500153, - 1557.0765113830566, - 1557.1777567863464, - 1557.2783045768738, - 1557.3775517940521, - 1557.4797596931458, - 1557.5780041217804, - 1557.6780152320862, - 1557.7778115272522, - 1557.876960515976, - 1557.9770517349243, - 1558.076621055603, - 1558.180831193924, - 1558.2854754924774, - 1558.3767499923706, - 1558.4804351329803, - 1558.579921722412, - 1558.677288532257, - 1558.7769978046417, - 1558.8778581619263, - 1558.9787356853485, - 1559.0771126747131, - 1559.1767921447754, - 1559.278477191925, - 1559.378291606903, - 1559.4775824546814, - 1559.5807921886444, - 1559.6776638031006, - 1559.778058052063, - 1559.8830723762512, - 1559.9832768440247, - 1560.0840981006622, - 1560.1845769882202, - 1560.2789707183838, - 1560.3786268234253, - 1560.47776389122, - 1560.5785915851593, - 1560.6796667575836, - 1560.7791197299957, - 1560.87948346138, - 1560.978010892868, - 1561.0784831047058, - 1561.1786596775055, - 1561.2765908241272, - 1561.3838136196136, - 1561.4774813652039, - 1561.5815932750702, - 1561.6770639419556, - 1561.7776787281036, - 1561.877956867218, - 1561.9779877662659, - 1562.0776226520538, - 1562.1785109043121, - 1562.2782335281372, - 1562.3815352916718, - 1562.4804756641388, - 1562.5775909423828, - 1562.6809916496277, - 1562.7826879024506, - 1562.8828573226929, - 1562.9838132858276, - 1563.0780189037323, - 1563.1789796352386, - 1563.2802908420563, - 1563.3813588619232, - 1563.480254650116, - 1563.5809354782104, - 1563.680933713913, - 1563.7801339626312, - 1563.880723953247, - 1563.9811205863953, - 1564.0802714824677, - 1564.1794838905334, - 1564.2845251560211, - 1564.3794884681702, - 1564.4791498184204, - 1564.5835678577423, - 1564.6808955669403, - 1564.7788915634155, - 1564.8795139789581, - 1564.9836478233337, - 1565.07950258255, - 1565.1825184822083, - 1565.2819392681122, - 1565.380526304245, - 1565.4812269210815, - 1565.5805473327637, - 1565.684333562851, - 1565.785714149475, - 1565.8849048614502, - 1565.9807634353638, - 1566.0813398361206, - 1566.1810414791107, - 1566.283430814743, - 1566.383866071701, - 1566.484350681305, - 1566.5904591083527, - 1566.6800830364227, - 1566.7800760269165, - 1566.8805696964264, - 1566.9809465408325, - 1567.0811483860016, - 1567.1813688278198, - 1567.2823538780212, - 1567.3819682598114, - 1567.4816749095917, - 1567.5819344520569, - 1567.6825020313263, - 1567.781952381134, - 1567.881548166275, - 1567.982048034668, - 1568.0820636749268, - 1568.1820254325867, - 1568.281239271164, - 1568.3812518119812, - 1568.4811825752258, - 1568.5819082260132, - 1568.6818380355835, - 1568.7822697162628, - 1568.8816404342651, - 1568.9819226264954, - 1569.0865490436554, - 1569.186048746109, - 1569.282539844513, - 1569.3828761577606, - 1569.4822869300842, - 1569.58291721344, - 1569.6838479042053, - 1569.7846109867096, - 1569.8823783397675, - 1569.9836070537567, - 1570.0831260681152, - 1570.1819534301758, - 1570.2878515720367, - 1570.3924379348755, - 1570.4909138679504, - 1570.5902736186981, - 1570.6988174915314, - 1570.7904138565063, - 1570.8904962539673, - 1570.9899044036865, - 1571.0898532867432, - 1571.1898276805878, - 1571.289258480072, - 1571.3903584480286, - 1571.4897434711456, - 1571.5904321670532, - 1571.6920642852783, - 1571.7911806106567, - 1571.8918182849884, - 1571.9967155456543, - 1572.1017162799835, - 1572.2009263038635, - 1572.2912111282349, - 1572.3967843055725, - 1572.4991810321808, - 1572.5943253040314, - 1572.6906354427338, - 1572.7905294895172, - 1572.891780614853, - 1572.9911139011383, - 1573.0927135944366, - 1573.1920285224915 - ], - "y": [ - 81.21498391735147, - 80.34645581068564, - 81.24656206338153, - 81.24656206338153, - 80.75481102420002, - 81.32517779895005, - 81.96184773260903, - 82.07889940360639, - 82.07889940360639, - 82.16638905625543, - 82.80164760119048, - 84.16387517980826, - 85.06151466226203, - 85.06151466226203, - 85.12701366706156, - 85.89819093584, - 84.72823718196514, - 84.72823718196514, - 84.24347736673965, - 83.45056105237076, - 83.2069207479786, - 83.03336531605913, - 82.32223420835318, - 82.44584334042537, - 82.61509169386564, - 82.59224287528271, - 82.53066394998517, - 83.17615038517111, - 83.97264732739637, - 84.3519525815816, - 84.3519525815816, - 85.2434619532482, - 85.85423759082775, - 85.54029330446082, - 85.53601046826759, - 85.37860899621309, - 85.13990931920058, - 85.22477393020678, - 96.7829153693637, - 97.37566167039834, - 97.37566167039834, - 97.86296470961739, - 98.94318004101576, - 99.5403626273883, - 99.43505032196182, - 98.61129946013764, - 98.61129946013764, - 99.63659682012958, - 100.58159589809515, - 101.01036924767885, - 101.3440759601924, - 100.68487394956288, - 100.61094840637436, - 100.83582629721302, - 99.81483215573282, - 99.81483215573282, - 99.23086498199402, - 98.93451383045361, - 98.75958434137138, - 98.70388467875308, - 98.70388467875308, - 99.1278842681238, - 99.0965065140136, - 98.91693912440365, - 99.10519988571873, - 99.10519988571873, - 99.36365640199602, - 99.36365640199602, - 99.82975663305722, - 99.78699317963463, - 99.5151557121035, - 99.80764943742645, - 99.35141123679, - 99.09826359077695, - 99.26870855328055, - 99.3690635162674, - 99.01513217026657, - 98.48883750284982, - 98.48883750284982, - 98.66602725900194, - 98.9688182307142, - 99.14484279378391, - 98.90096749087368, - 98.91278058975122, - 98.95774962641784, - 99.19883264039842, - 99.24659178357435, - 99.20451305651584, - 99.65512006272627, - 99.77263870952136, - 99.68682003472945, - 99.57840405966094, - 99.7365769616765, - 99.63734429391828, - 99.81773383222487, - 99.99759930308772, - 99.93103281694266, - 100.01103803412285, - 100.1023752491903, - 100.26586319309351, - 100.60313245998434, - 100.62996787920954, - 100.53201711190066, - 100.37348725303399, - 100.1277637916627, - 99.93081574970874, - 99.93081574970874, - 99.91754537148647, - 99.92131801734925, - 99.62060747556255, - 99.71223651509766, - 99.61558343221573, - 99.75711555188116, - 99.75711555188116, - 99.91492661758637, - 99.65241758713469, - 99.73692124216302, - 99.77663311499063, - 99.98762073103613, - 100.06433022812904, - 100.03673786236932, - 100.03673786236932, - 99.7941340590417, - 99.89203840543286, - 99.81153727552203, - 99.81153727552203, - 99.78703926715289, - 100.18746346871508, - 100.18746346871508, - 100.05013867746541, - 99.94151540041362, - 99.75603242970107, - 100.03213026002328, - 100.11966282267616, - 100.11773859654583, - 100.00336138301095, - 100.01425604447475, - 100.05395544162326, - 99.79046625569097, - 99.78688952942687, - 99.78245521157994, - 99.76641491117023, - 99.75897106237582, - 99.77728762273873, - 99.69599557485189, - 99.7214345239372, - 99.82460193202334, - 99.8031717370752, - 100.08233335080433, - 99.9598271803978, - 100.13600462101435, - 100.35909371835079, - 100.11247395837677, - 100.11247395837677, - 99.92550176161002, - 99.91339360749326, - 99.8193096351585, - 100.01670618422823, - 100.08670804319375, - 100.08670804319375, - 99.8838185203502, - 99.70165688296183, - 99.97352676353906, - 99.97271665271738, - 99.90380503599687, - 100.08716243270786, - 100.16223396776391, - 100.40187838402073, - 100.25929772144096, - 100.08354061243219, - 99.88038930428245, - 99.81530094879703, - 100.26333752602913, - 100.81888818821206, - 101.14326105370475, - 101.14326105370475, - 101.23216536852239, - 101.23216536852239, - 100.86842316241713, - 100.03125526545226, - 99.92199951312259, - 100.48143161842118, - 100.86025225176486, - 100.86025225176486, - 100.92379226649247, - 101.10560717061377, - 100.9116397304714, - 100.81015062841527, - 100.75814783290731, - 100.53315274224524, - 100.40131004962883, - 100.01548438414919, - 100.03772674059348, - 100.20748717859685, - 100.08215376805776, - 100.04310427005986, - 100.41342905037953, - 100.67458774034897, - 100.67458774034897, - 100.18399808429965, - 100.18399808429965, - 100.71004801498565, - 100.27944962941947, - 100.36635045264632, - 100.611659689043, - 99.93130867163991, - 100.2049376728681, - 100.24044131011962, - 100.3435602915907, - 100.54171717213477, - 100.48957917889805, - 100.47628767704107, - 100.69836300001377, - 100.43372909721259, - 100.47940131157448, - 100.86418659453153, - 100.64542168032042, - 100.80092863608571, - 100.36212626252397, - 100.72560563108647, - 100.8893300898696, - 100.88963414078569, - 100.54298070918304, - 100.61289312905741, - 100.8249012093358, - 101.00105737468537, - 101.14633830890362, - 100.88623737660645, - 100.74266448570731, - 100.64770264787738, - 100.45566214067856, - 100.59138680359875, - 100.50830512001131, - 100.43454626582472, - 100.53519753634107, - 100.46716007737507, - 100.69544275623912, - 100.61743464772344, - 100.73951876181721, - 100.76623224581647, - 100.3821617530511, - 100.39278151636725, - 100.70702058257092, - 100.21334301673458, - 100.80839193862448, - 100.88474697348842, - 100.76822320449617, - 101.21595169500459, - 100.85110178409886, - 100.7537456671583, - 100.77856631651012, - 100.3146119016356, - 100.84784544256344, - 100.78634515023516, - 100.92199875298192, - 100.55391439067414, - 100.66191356462213, - 100.78652121053078, - 100.90120922201373, - 100.85585733211806, - 100.92954403129558, - 100.51715116720159, - 100.2231068221892, - 100.00828290539705, - 100.24935129002185, - 100.64416956007264, - 100.64416956007264, - 100.0153195145118, - 99.93567957394987, - 99.93567957394987, - 100.21576954418563, - 100.77875400096978, - 100.77875400096978, - 100.8640247480939, - 100.87607085817328, - 100.69209801953141, - 100.69209801953141, - 100.78674686451288, - 100.5389978183395, - 100.07207743125416, - 100.07207743125416, - 99.46905285541315, - 99.50394341608448, - 99.63680035784878, - 99.51231668574118, - 98.51624250018732, - 82.53275884590455, - 81.83566916162486, - 80.43444352205317, - 78.96738514311878, - 77.1268078759056, - 74.89177395185803, - 71.84305636015935, - 69.13236143074202, - 66.65244163421313, - 65.34014383621532, - 64.87526809570824, - 64.64186600407879, - 65.2679208075005, - 65.2679208075005, - 66.01539759987116, - 65.37227452486566, - 64.00197122336697, - 63.41197286066429, - 63.755991154948, - 64.01008546957132, - 64.69304580908354, - 64.85660787983196, - 64.57265951863971, - 65.09706478966983, - 65.40849340389578, - 65.53367663389538, - 65.24348267343399, - 64.72772482776071, - 64.35340036669646, - 64.14595635240055, - 63.98501714929145, - 64.01408712591098, - 64.07473211327417, - 64.31395275444478, - 64.57892122390706, - 64.8190542962733, - 64.80572236762615, - 64.78904809588803, - 64.61907720581416, - 64.29739673297277, - 64.11082227496992, - 63.72597488033072, - 63.38701742392117, - 64.01373786418122, - 64.63852414212644, - 63.932168732992494, - 63.69968323578431, - 63.98820168807273, - 63.69801166771231, - 63.35772334563438, - 63.476594508492454, - 63.26416786730936, - 63.32839023266759, - 63.24519104447745, - 63.10365241215093, - 63.07250649941737, - 63.45506175999108, - 63.89968671183942, - 63.89307252964016, - 63.86477431399146, - 63.842684231783, - 63.781753157301814, - 63.770462323094776, - 63.770462323094776, - 63.81095473906888, - 63.921858393819726, - 64.03556786528385, - 64.07267634886006, - 64.12129962322402, - 64.1689884582826, - 64.20883304478305, - 64.31713541375233, - 64.50602220602451, - 64.70403047328284, - 64.59766576292891, - 64.51675378702068, - 64.57181490103689, - 64.61529699296486, - 64.62416410118729, - 64.7143985503971, - 64.6452770170238, - 64.6452770170238, - 64.82939581041308, - 64.82939581041308, - 64.61723607559173, - 64.60551167885494, - 63.754080777372494, - 62.90780901401131, - 62.63037589725168, - 62.25849613791767, - 62.064347297378795, - 61.924153705375645, - 61.652247930909574, - 61.54626202980425, - 60.64698577819269, - 60.64698577819269, - 60.754948349888735, - 60.1781543092217, - 112.22504176311098, - 112.59513252634842, - 112.97400868265424, - 112.72633731438177, - 113.35017515016034, - 114.28675596068301, - 114.28675596068301, - 64.59356099193187, - 65.12738546687993, - 64.27905621966133, - 64.27905621966133, - 63.21424874496709, - 63.46116855186248, - 62.814099078104896, - 63.19018926782428, - 64.18003295871158, - 64.07201665160731, - 64.04427707480023, - 64.33365645528187, - 64.22254351085068, - 63.47271803889936, - 63.422986310690895, - 64.26087840499868, - 64.67725631674081, - 64.55714664902395, - 64.34452876811741, - 64.31638104715357, - 64.31638104715357, - 64.40808667983892, - 64.5790233929145, - 64.5790233929145, - 64.4483422691837, - 63.79451435283981, - 63.26414364305231, - 63.22163332917339, - 63.045767220446585, - 63.01828444091791, - 63.02634927838278, - 63.01307901881111, - 63.476849875221724, - 63.513530634474535, - 62.979821126118985, - 62.73217340107995, - 62.498476511306386, - 62.31676749851702, - 62.45016298352875, - 62.54439188048747, - 62.62646358842013, - 62.55582712188949, - 62.551786604774, - 62.63450227077741, - 63.044565107115986, - 63.72486186847285, - 64.03923398866931, - 63.9428150992722, - 63.75735629267321, - 63.66435870007478, - 63.7320630844426, - 63.76912842510011, - 63.78859864754272, - 63.785597686006405, - 64.00265834567625, - 64.02117532306048, - 63.80735715181362, - 63.94359624425534, - 63.884583820045414, - 63.744251383824434, - 63.890572090006266, - 64.09367398678869, - 64.48114723315399, - 65.12919585098894, - 64.85005780467075, - 64.3761803310066, - 64.36748540286133, - 64.95947946266381, - 65.61794512557076, - 66.16338640305143, - 66.0661381841709, - 65.98799349045782, - 65.77967894551684, - 65.42475673208402, - 65.79229740813584, - 65.26556435579812, - 64.03040963773469, - 63.07044342038352, - 62.38890669620408, - 62.62309482703659, - 64.14637555256841, - 64.56488498405666, - 64.02991601993644, - 63.77742666156694, - 62.254752032767236, - 61.83125165293375, - 61.94331830581348, - 62.01983795269648, - 62.13097030430819, - 62.42890766217916, - 63.04964867808144, - 63.120597468781405, - 63.32149521880635, - 63.32149521880635, - 63.65860267559151, - 63.61978034053927, - 63.61978034053927, - 63.75220453603808, - 63.802909270718345, - 63.70886958336748, - 63.726771952181586, - 63.71481485624698, - 63.90910884996814, - 64.05027335726251, - 64.09809520991192, - 64.10501858115936, - 64.21099204022312, - 64.2238780483359, - 64.47271775866167, - 64.86876374875405, - 65.13467238866261, - 65.20601116284422, - 65.0765218142075, - 65.16521453970958, - 65.73706006781975, - 66.2501735355114, - 66.15044384062993, - 65.38435307902569, - 64.58809108115116, - 63.80060321751772, - 63.80060321751772, - 63.890490814133244, - 65.06393330649232, - 67.51733515307306, - 68.13276882420168, - 67.7254003957062, - 68.1929758651155, - 67.78122572474433, - 67.21620341533044, - 66.81501069378113, - 66.60254612683298, - 66.88731592288505, - 66.83559040793044, - 67.23490771767236, - 66.95968972443688, - 66.12233000914189, - 65.68102193820427, - 64.59560765948851, - 64.43778893559369, - 64.2476873173768, - 64.01939046402008, - 63.2259910670532, - 62.827924538119134, - 62.70221912675887, - 62.70221912675887, - 62.71616517045538, - 62.717236005258094, - 62.6798920849154, - 62.930702081923805, - 63.04843251937451, - 63.110624683805824, - 63.6137570500427, - 64.19737540366405, - 64.61258664881088, - 64.45533959225396, - 64.53234395381638, - 64.64138658174214, - 64.78790555212319, - 64.82506181562728, - 64.74161753504596, - 64.8169691082662, - 64.8169691082662, - 64.72154512251656, - 64.69568143434401, - 64.98170322862433, - 64.89841325598147, - 64.67601801867029, - 64.70041902053808, - 65.04138185280303, - 65.78648195883156, - 66.061320271658, - 66.1614756566651, - 66.06439295522232, - 65.43018584102576, - 64.86789056361305, - 64.57337266982859, - 64.20898886512089, - 63.67745034445124, - 63.35532777348892, - 62.98159121405813, - 62.50395281914035, - 62.268485673363195, - 62.67308646584953, - 63.52526839065919, - 63.68700678148198, - 63.41644232876511, - 63.67806852319909, - 63.746605825445464, - 63.03365632224969, - 63.39018567725138, - 63.50404522437243, - 63.28039539527875, - 63.2996120214561, - 63.63592991987302, - 63.5454847610218, - 63.915684939807655, - 64.4903356452926, - 65.62338650173764, - 66.26603776233001, - 66.56796306619191, - 66.61172455931717, - 64.84308323785756, - 64.12190693406718, - 64.15597485196565, - 64.23003803168996, - 64.33606451242736, - 64.20748616326932, - 64.79790899335015, - 64.01513232593067, - 64.22650372758014, - 65.68013664576237, - 65.49690765440992, - 63.15700243964606, - 62.58516411766453, - 63.343549641714034, - 63.24118112825436, - 62.46171651507121, - 63.3633266778188, - 65.28394826565075, - 65.17868899125072, - 64.22998815836908, - 63.66373439780081, - 64.84354802776677, - 64.67990917869498, - 66.56130486882368, - 67.5438477755616, - 71.71425909536534, - 71.17231011828655, - 68.78616921378864, - 66.77306911913004, - 66.97515438794387, - 67.08058880679992, - 65.80393556258981, - 65.51805449779123, - 65.51805449779123, - 65.74244044207306, - 66.60740146091858, - 67.61047017342692, - 66.54780920028037, - 64.59714187309461, - 64.59714187309461, - 64.10768757200411, - 64.3356819138921, - 64.17700495713488, - 64.17700495713488, - 63.859928088258556, - 64.45119928986549, - 65.19552388811613, - 64.33535881281122, - 64.03790652424544, - 65.59716448168149, - 67.43961178443574, - 70.10218956795154, - 72.89177929974689, - 66.49982480304867, - 63.42073658618808, - 65.99583392656112, - 66.15110301716884, - 64.62990706934673, - 64.5864307527999, - 64.19730317171775, - 64.18684079774823, - 63.255331711119545, - 62.40843914214895, - 62.28959493675861, - 62.325770466214465, - 63.24815654938144, - 65.09026306322916, - 66.9515547442569, - 67.50381760660211, - 67.08867392261905, - 68.82425455442393, - 68.43431850638794, - 66.48079130281805, - 64.64351888033116, - 64.75621445258327, - 64.50491514049622, - 64.40263616252972, - 64.979427981619, - 68.02034280004148, - 68.52571985806539, - 67.21522450852487, - 65.1017229904701, - 63.75736104576698, - 62.81585946891144, - 62.77960833523801, - 62.90214326888699, - 62.72107942086961, - 62.69507390796679, - 63.57678611116389, - 63.834981704933725, - 63.14803312784687, - 62.955094809829404, - 63.12825351254186, - 63.03614360350712, - 63.0565018689723, - 63.05601215651572, - 63.43364816072089, - 63.25601508933486, - 63.30528209110971, - 63.41641823734202, - 63.74685871044554, - 65.2897599718015, - 65.06375837694038, - 65.06375837694038, - 65.0213303423499, - 65.78207736996347, - 67.22621835972583, - 103.9675317941, - 105.60901490869793, - 107.8052245614563, - 108.38300146656795, - 109.19252514038102, - 109.15697136314856, - 109.40627997827973, - 109.47578404352346, - 109.654138335659, - 109.86211587033655, - 111.460188885351, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293 - ] - } - ], - "layout": { - "autosize": false, - "font": { - "color": "black", - "family": "Courier New, monospace", - "size": 22 - }, - "height": 600, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Range of Motion kneeLeft" - }, - "width": 750, - "xaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "time [s]" - } - }, - "yaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "ROM [degrees]" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "linkText": "Export to plot.ly", - "plotlyServerURL": "https://plot.ly", - "showLink": false - }, - "data": [ - { - "line": { - "color": "blue", - "width": 3 - }, - "mode": "lines", - "name": "Real trend", - "type": "scatter", - "x": [ - 1499.2411363124847, - 1499.3432846069336, - 1499.4427211284637, - 1499.54013133049, - 1499.6420300006866, - 1499.744064092636, - 1499.8401839733124, - 1499.9462168216705, - 1500.0419936180115, - 1500.1414563655853, - 1500.2422320842743, - 1500.3411314487457, - 1500.441514492035, - 1500.541243314743, - 1500.6429286003113, - 1500.7421760559082, - 1500.8417778015137, - 1500.9413657188416, - 1501.0417659282684, - 1501.1428897380829, - 1501.240436553955, - 1501.3419153690338, - 1501.441132068634, - 1501.5403683185577, - 1501.6449313163757, - 1501.7413523197174, - 1501.8423101902008, - 1501.9408650398254, - 1502.04141497612, - 1502.1416535377502, - 1502.2421522140503, - 1502.3436872959137, - 1502.4428606033325, - 1502.5419516563416, - 1502.6438164710999, - 1502.739751815796, - 1502.839929819107, - 1502.9432377815247, - 1503.0396859645844, - 1503.1407148838043, - 1503.2416439056396, - 1503.3399159908295, - 1503.4405806064606, - 1503.542091369629, - 1503.6399137973785, - 1503.7397291660309, - 1503.8402659893036, - 1503.9417126178741, - 1504.0408883094788, - 1504.1431605815887, - 1504.2412109375, - 1504.3424327373505, - 1504.442084312439, - 1504.5419890880585, - 1504.6418566703796, - 1504.7421357631683, - 1504.8420453071594, - 1504.9417133331299, - 1505.0427649021149, - 1505.1421146392822, - 1505.2413144111633, - 1505.3408071994781, - 1505.4415457248688, - 1505.542934179306, - 1505.6415820121765, - 1505.741807460785, - 1505.8417615890503, - 1505.9422342777252, - 1506.0417664051056, - 1506.142252922058, - 1506.2424128055573, - 1506.3428943157196, - 1506.4433236122131, - 1506.5426783561707, - 1506.6421117782593, - 1506.74356341362, - 1506.8419032096863, - 1506.9436628818512, - 1507.042890548706, - 1507.143632888794, - 1507.2437996864319, - 1507.34317612648, - 1507.4439723491669, - 1507.5464203357697, - 1507.646990776062, - 1507.743609905243, - 1507.844081878662, - 1507.944857597351, - 1508.0438890457153, - 1508.143606185913, - 1508.2456514835358, - 1508.3450417518616, - 1508.444191455841, - 1508.5442969799042, - 1508.6431493759155, - 1508.7441477775574, - 1508.8442180156708, - 1508.9457623958588, - 1509.0446989536285, - 1509.1442427635193, - 1509.2483496665955, - 1509.348049879074, - 1509.447769165039, - 1509.5452642440796, - 1509.6454932689667, - 1509.7466208934784, - 1509.8461413383484, - 1509.9450035095215, - 1510.0446655750275, - 1510.1453218460083, - 1510.2444643974304, - 1510.3476753234863, - 1510.444744348526, - 1510.5449130535126, - 1510.6449630260468, - 1510.7453105449677, - 1510.8460247516632, - 1510.9460620880127, - 1511.0450239181519, - 1511.147045135498, - 1511.2464575767517, - 1511.3476495742798, - 1511.4461619853973, - 1511.5460538864136, - 1511.6458253860474, - 1511.7523272037506, - 1511.8473920822144, - 1511.9467968940735, - 1512.0458340644836, - 1512.14905834198, - 1512.2465064525604, - 1512.3464360237122, - 1512.4465262889862, - 1512.5464425086975, - 1512.6461458206177, - 1512.7456891536713, - 1512.846199274063, - 1512.9469623565674, - 1513.046472787857, - 1513.1472702026367, - 1513.2464673519135, - 1513.3472352027893, - 1513.4477665424347, - 1513.5469961166382, - 1513.6465792655945, - 1513.7474553585052, - 1513.8473408222198, - 1513.9478917121887, - 1514.048181295395, - 1514.1470139026642, - 1514.2469763755798, - 1514.347504377365, - 1514.4472517967224, - 1514.548014163971, - 1514.6466579437256, - 1514.747255563736, - 1514.8468098640442, - 1514.9472517967224, - 1515.0483257770538, - 1515.1476039886475, - 1515.2474853992462, - 1515.349123954773, - 1515.448129415512, - 1515.5479564666748, - 1515.6483643054962, - 1515.7478876113892, - 1515.848218679428, - 1515.9479448795319, - 1516.0482194423676, - 1516.149117231369, - 1516.24773478508, - 1516.3488357067108, - 1516.4485018253326, - 1516.548581123352, - 1516.6529862880707, - 1516.7489988803864, - 1516.8483703136444, - 1516.9493639469147, - 1517.0485661029816, - 1517.1542015075684, - 1517.2489612102509, - 1517.3534693717957, - 1517.4531128406525, - 1517.553725719452, - 1517.6531822681427, - 1517.7508800029755, - 1517.8505020141602, - 1517.9501507282257, - 1518.0533425807953, - 1518.154797554016, - 1518.252271413803, - 1518.3584887981415, - 1518.4496307373047, - 1518.5517852306366, - 1518.6547417640686, - 1518.751220703125, - 1518.8547055721283, - 1518.9500937461853, - 1519.0509328842163, - 1519.1500902175903, - 1519.2508342266083, - 1519.3509469032288, - 1519.4529166221619, - 1519.552564382553, - 1519.6508638858795, - 1519.7502257823944, - 1519.8513631820679, - 1519.9507722854614, - 1520.0511844158173, - 1520.1549203395844, - 1520.2553119659424, - 1520.355444908142, - 1520.4572768211365, - 1520.5562913417816, - 1520.6547539234161, - 1520.7517511844635, - 1520.852136850357, - 1520.956214427948, - 1521.0517673492432, - 1521.151982307434, - 1521.2533135414124, - 1521.3525230884552, - 1521.4546430110931, - 1521.5537049770355, - 1521.6560616493225, - 1521.756957769394, - 1521.861038684845, - 1521.9608080387115, - 1522.0553195476532, - 1522.1532826423645, - 1522.2527394294739, - 1522.3522148132324, - 1522.4540903568268, - 1522.5571751594543, - 1522.654535293579, - 1522.7544548511505, - 1522.8560378551483, - 1522.953887462616, - 1523.0526440143585, - 1523.1566863059998, - 1523.2580780982971, - 1523.3567478656769, - 1523.454469203949, - 1523.5542244911194, - 1523.658311843872, - 1523.7581009864807, - 1523.8582689762115, - 1523.953364610672, - 1524.054563999176, - 1524.1584029197693, - 1524.2576098442078, - 1524.3543453216553, - 1524.4550700187683, - 1524.5540347099304, - 1524.6535897254944, - 1524.753868341446, - 1524.853411436081, - 1524.95521068573, - 1525.054139137268, - 1525.1547272205353, - 1525.2555606365204, - 1525.3549020290375, - 1525.4566402435303, - 1525.5587475299835, - 1525.6535289287567, - 1525.7547373771667, - 1525.8536713123322, - 1525.9546175003052, - 1526.0546753406525, - 1526.1549615859985, - 1526.255040884018, - 1526.3548610210419, - 1526.454764842987, - 1526.5555267333984, - 1526.6554877758026, - 1526.7556302547455, - 1526.8551664352417, - 1526.9557905197144, - 1527.0557622909546, - 1527.1561093330383, - 1527.2571275234222, - 1527.356971502304, - 1527.457272529602, - 1527.5553719997406, - 1527.6574912071228, - 1527.757332086563, - 1527.8562273979187, - 1527.9594457149506, - 1528.0566897392273, - 1528.1583421230316, - 1528.2581007480621, - 1528.355853319168, - 1528.4608187675476, - 1528.5574316978455, - 1528.6561155319214, - 1528.7592558860779, - 1528.8586099147797, - 1528.9628987312317, - 1529.0560810565948, - 1529.1571590900421, - 1529.2560682296753, - 1529.3564767837524, - 1529.456878900528, - 1529.5586001873016, - 1529.657800912857, - 1529.7575800418854, - 1529.8577151298523, - 1529.9580373764038, - 1530.0567288398743, - 1530.157428264618, - 1530.2587399482727, - 1530.3589704036713, - 1530.457849740982, - 1530.5578382015228, - 1530.658446073532, - 1530.757824897766, - 1530.8616199493408, - 1530.960708618164, - 1531.059900522232, - 1531.162596464157, - 1531.2573883533478, - 1531.3600792884827, - 1531.458923816681, - 1531.5627195835114, - 1531.6612637043, - 1531.7576656341553, - 1531.8620171546936, - 1531.9599452018738, - 1532.0599632263184, - 1532.1607375144958, - 1532.259782075882, - 1532.3589525222778, - 1532.4589982032776, - 1532.5596570968628, - 1532.660763502121, - 1532.759989976883, - 1532.859920501709, - 1532.9633507728577, - 1533.0590443611145, - 1533.159485578537, - 1533.2591478824615, - 1533.358909368515, - 1533.4588725566864, - 1533.5592203140259, - 1533.6601333618164, - 1533.758960723877, - 1533.8600804805756, - 1533.9596378803253, - 1534.0594065189362, - 1534.1598281860352, - 1534.2596225738525, - 1534.360122680664, - 1534.4612867832184, - 1534.5604510307312, - 1534.6615297794342, - 1534.76198220253, - 1534.8614101409912, - 1534.9614522457123, - 1535.0600357055664, - 1535.1603939533234, - 1535.2622575759888, - 1535.3602058887482, - 1535.462120294571, - 1535.56028008461, - 1535.6601366996765, - 1535.7611837387085, - 1535.8639693260193, - 1535.9614548683167, - 1536.06116604805, - 1536.1607356071472, - 1536.2609808444977, - 1536.3626313209534, - 1536.4609956741333, - 1536.564481496811, - 1536.6640095710754, - 1536.763158082962, - 1536.8629369735718, - 1536.9626727104187, - 1537.0616796016693, - 1537.1621129512787, - 1537.2617573738098, - 1537.3618972301483, - 1537.462711572647, - 1537.562515258789, - 1537.6621596813202, - 1537.7639846801758, - 1537.8620209693909, - 1537.9622814655304, - 1538.0627496242523, - 1538.1621263027191, - 1538.2627971172333, - 1538.366781949997, - 1538.4637882709503, - 1538.563273191452, - 1538.66330909729, - 1538.7667174339294, - 1538.8636915683746, - 1538.9630060195923, - 1539.063859462738, - 1539.1625623703003, - 1539.2660901546478, - 1539.3630833625793, - 1539.464448928833, - 1539.5636985301971, - 1539.6643221378326, - 1539.7645237445831, - 1539.8643732070923, - 1539.9644606113434, - 1540.0639703273773, - 1540.1641156673431, - 1540.2658836841583, - 1540.3652892112732, - 1540.4671607017517, - 1540.5652508735657, - 1540.669272184372, - 1540.7651839256287, - 1540.8669271469116, - 1540.9673836231232, - 1541.0654036998749, - 1541.1660828590393, - 1541.2674746513367, - 1541.3676433563232, - 1541.4656250476837, - 1541.5665922164917, - 1541.6681351661682, - 1541.7672548294067, - 1541.867030620575, - 1541.9676649570465, - 1542.0670235157013, - 1542.1689057350159, - 1542.2671897411346, - 1542.3672127723694, - 1542.4686870574951, - 1542.5665442943573, - 1542.6705791950226, - 1542.7696046829224, - 1542.8668971061707, - 1542.966644525528, - 1543.0735685825348, - 1543.1732482910156, - 1543.267774105072, - 1543.3676788806915, - 1543.4672544002533, - 1543.5671184062958, - 1543.6677463054657, - 1543.7675108909607, - 1543.8679871559143, - 1543.9693717956543, - 1544.0663883686066, - 1544.1677677631378, - 1544.268888950348, - 1544.3663485050201, - 1544.4664885997772, - 1544.5660860538483, - 1544.6669471263885, - 1544.76717877388, - 1544.8672885894775, - 1544.9685242176056, - 1545.0670084953308, - 1545.1677951812744, - 1545.2673869132996, - 1545.3672273159027, - 1545.467891216278, - 1545.575178861618, - 1545.6677899360657, - 1545.7664551734924, - 1545.8665204048157, - 1545.9671485424042, - 1546.0674130916595, - 1546.1681797504425, - 1546.2676408290863, - 1546.367078781128, - 1546.4679577350616, - 1546.5685453414917, - 1546.6769742965698, - 1546.7727680206299, - 1546.8680868148804, - 1546.9686315059662, - 1547.069181919098, - 1547.167875289917, - 1547.2677521705627, - 1547.3686332702637, - 1547.4707067012787, - 1547.5683662891388, - 1547.6724834442139, - 1547.769639492035, - 1547.8712072372437, - 1547.9770529270172, - 1548.072209596634, - 1548.173274755478, - 1548.2715876102448, - 1548.371628522873, - 1548.4709198474884, - 1548.5714690685272, - 1548.671296596527, - 1548.7715110778809, - 1548.8716838359833, - 1548.97434091568, - 1549.070969581604, - 1549.174753665924, - 1549.2744188308716, - 1549.3733451366425, - 1549.4734070301056, - 1549.5742897987366, - 1549.6723790168762, - 1549.7728595733643, - 1549.8727250099182, - 1549.9772119522095, - 1550.0720105171204, - 1550.1710896492004, - 1550.2725031375885, - 1550.3713836669922, - 1550.4781966209412, - 1550.5779829025269, - 1550.6775233745575, - 1550.774284362793, - 1550.87375998497, - 1550.979849100113, - 1551.0752232074738, - 1551.1747436523438, - 1551.2786514759064, - 1551.3792498111725, - 1551.478197336197, - 1551.579080581665, - 1551.67942070961, - 1551.77863407135, - 1551.880181312561, - 1551.9783499240875, - 1552.0735130310059, - 1552.1743123531342, - 1552.2738902568817, - 1552.3736426830292, - 1552.4735062122345, - 1552.5737590789795, - 1552.6750376224518, - 1552.774917125702, - 1552.874896287918, - 1552.9747967720032, - 1553.0752203464508, - 1553.1760432720184, - 1553.2762243747711, - 1553.3725430965424, - 1553.472339630127, - 1553.5719089508057, - 1553.671792268753, - 1553.7730875015259, - 1553.8719074726105, - 1553.9732356071472, - 1554.072648525238, - 1554.172200679779, - 1554.2724151611328, - 1554.3731021881104, - 1554.4731767177582, - 1554.5727956295013, - 1554.673753976822, - 1554.7773764133453, - 1554.8747208118439, - 1554.9741613864899, - 1555.0747776031494, - 1555.1755096912384, - 1555.279501914978, - 1555.3744592666626, - 1555.4760527610779, - 1555.5740582942963, - 1555.6754522323608, - 1555.7753405570984, - 1555.8802742958069, - 1555.9759588241577, - 1556.074725151062, - 1556.1759669780731, - 1556.2756700515747, - 1556.3753113746643, - 1556.4837319850922, - 1556.5750107765198, - 1556.6751630306244, - 1556.7765123844147, - 1556.8782150745392, - 1556.9785902500153, - 1557.0765113830566, - 1557.1777567863464, - 1557.2783045768738, - 1557.3775517940521, - 1557.4797596931458, - 1557.5780041217804, - 1557.6780152320862, - 1557.7778115272522, - 1557.876960515976, - 1557.9770517349243, - 1558.076621055603, - 1558.180831193924, - 1558.2854754924774, - 1558.3767499923706, - 1558.4804351329803, - 1558.579921722412, - 1558.677288532257, - 1558.7769978046417, - 1558.8778581619263, - 1558.9787356853485, - 1559.0771126747131, - 1559.1767921447754, - 1559.278477191925, - 1559.378291606903, - 1559.4775824546814, - 1559.5807921886444, - 1559.6776638031006, - 1559.778058052063, - 1559.8830723762512, - 1559.9832768440247, - 1560.0840981006622, - 1560.1845769882202, - 1560.2789707183838, - 1560.3786268234253, - 1560.47776389122, - 1560.5785915851593, - 1560.6796667575836, - 1560.7791197299957, - 1560.87948346138, - 1560.978010892868, - 1561.0784831047058, - 1561.1786596775055, - 1561.2765908241272, - 1561.3838136196136, - 1561.4774813652039, - 1561.5815932750702, - 1561.6770639419556, - 1561.7776787281036, - 1561.877956867218, - 1561.9779877662659, - 1562.0776226520538, - 1562.1785109043121, - 1562.2782335281372, - 1562.3815352916718, - 1562.4804756641388, - 1562.5775909423828, - 1562.6809916496277, - 1562.7826879024506, - 1562.8828573226929, - 1562.9838132858276, - 1563.0780189037323, - 1563.1789796352386, - 1563.2802908420563, - 1563.3813588619232, - 1563.480254650116, - 1563.5809354782104, - 1563.680933713913, - 1563.7801339626312, - 1563.880723953247, - 1563.9811205863953, - 1564.0802714824677, - 1564.1794838905334, - 1564.2845251560211, - 1564.3794884681702, - 1564.4791498184204, - 1564.5835678577423, - 1564.6808955669403, - 1564.7788915634155, - 1564.8795139789581, - 1564.9836478233337, - 1565.07950258255, - 1565.1825184822083, - 1565.2819392681122, - 1565.380526304245, - 1565.4812269210815, - 1565.5805473327637, - 1565.684333562851, - 1565.785714149475, - 1565.8849048614502, - 1565.9807634353638, - 1566.0813398361206, - 1566.1810414791107, - 1566.283430814743, - 1566.383866071701, - 1566.484350681305, - 1566.5904591083527, - 1566.6800830364227, - 1566.7800760269165, - 1566.8805696964264, - 1566.9809465408325, - 1567.0811483860016, - 1567.1813688278198, - 1567.2823538780212, - 1567.3819682598114, - 1567.4816749095917, - 1567.5819344520569, - 1567.6825020313263, - 1567.781952381134, - 1567.881548166275, - 1567.982048034668, - 1568.0820636749268, - 1568.1820254325867, - 1568.281239271164, - 1568.3812518119812, - 1568.4811825752258, - 1568.5819082260132, - 1568.6818380355835, - 1568.7822697162628, - 1568.8816404342651, - 1568.9819226264954, - 1569.0865490436554, - 1569.186048746109, - 1569.282539844513, - 1569.3828761577606, - 1569.4822869300842, - 1569.58291721344, - 1569.6838479042053, - 1569.7846109867096, - 1569.8823783397675, - 1569.9836070537567, - 1570.0831260681152, - 1570.1819534301758, - 1570.2878515720367, - 1570.3924379348755, - 1570.4909138679504, - 1570.5902736186981, - 1570.6988174915314, - 1570.7904138565063, - 1570.8904962539673, - 1570.9899044036865, - 1571.0898532867432, - 1571.1898276805878, - 1571.289258480072, - 1571.3903584480286, - 1571.4897434711456, - 1571.5904321670532, - 1571.6920642852783, - 1571.7911806106567, - 1571.8918182849884, - 1571.9967155456543, - 1572.1017162799835, - 1572.2009263038635, - 1572.2912111282349, - 1572.3967843055725, - 1572.4991810321808, - 1572.5943253040314, - 1572.6906354427338, - 1572.7905294895172, - 1572.891780614853, - 1572.9911139011383, - 1573.0927135944366, - 1573.1920285224915 - ], - "y": [ - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90 - ] - } - ], - "layout": { - "autosize": false, - "font": { - "color": "black", - "family": "Courier New, monospace", - "size": 22 - }, - "height": 600, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Range of Motion ankleLeft" - }, - "width": 750, - "xaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "time [s]" - } - }, - "yaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "ROM [degrees]" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "linkText": "Export to plot.ly", - "plotlyServerURL": "https://plot.ly", - "showLink": false - }, - "data": [ - { - "line": { - "color": "blue", - "width": 3 - }, - "mode": "lines", - "name": "Real trend", - "type": "scatter", - "x": [ - 1499.2411363124847, - 1499.3432846069336, - 1499.4427211284637, - 1499.54013133049, - 1499.6420300006866, - 1499.744064092636, - 1499.8401839733124, - 1499.9462168216705, - 1500.0419936180115, - 1500.1414563655853, - 1500.2422320842743, - 1500.3411314487457, - 1500.441514492035, - 1500.541243314743, - 1500.6429286003113, - 1500.7421760559082, - 1500.8417778015137, - 1500.9413657188416, - 1501.0417659282684, - 1501.1428897380829, - 1501.240436553955, - 1501.3419153690338, - 1501.441132068634, - 1501.5403683185577, - 1501.6449313163757, - 1501.7413523197174, - 1501.8423101902008, - 1501.9408650398254, - 1502.04141497612, - 1502.1416535377502, - 1502.2421522140503, - 1502.3436872959137, - 1502.4428606033325, - 1502.5419516563416, - 1502.6438164710999, - 1502.739751815796, - 1502.839929819107, - 1502.9432377815247, - 1503.0396859645844, - 1503.1407148838043, - 1503.2416439056396, - 1503.3399159908295, - 1503.4405806064606, - 1503.542091369629, - 1503.6399137973785, - 1503.7397291660309, - 1503.8402659893036, - 1503.9417126178741, - 1504.0408883094788, - 1504.1431605815887, - 1504.2412109375, - 1504.3424327373505, - 1504.442084312439, - 1504.5419890880585, - 1504.6418566703796, - 1504.7421357631683, - 1504.8420453071594, - 1504.9417133331299, - 1505.0427649021149, - 1505.1421146392822, - 1505.2413144111633, - 1505.3408071994781, - 1505.4415457248688, - 1505.542934179306, - 1505.6415820121765, - 1505.741807460785, - 1505.8417615890503, - 1505.9422342777252, - 1506.0417664051056, - 1506.142252922058, - 1506.2424128055573, - 1506.3428943157196, - 1506.4433236122131, - 1506.5426783561707, - 1506.6421117782593, - 1506.74356341362, - 1506.8419032096863, - 1506.9436628818512, - 1507.042890548706, - 1507.143632888794, - 1507.2437996864319, - 1507.34317612648, - 1507.4439723491669, - 1507.5464203357697, - 1507.646990776062, - 1507.743609905243, - 1507.844081878662, - 1507.944857597351, - 1508.0438890457153, - 1508.143606185913, - 1508.2456514835358, - 1508.3450417518616, - 1508.444191455841, - 1508.5442969799042, - 1508.6431493759155, - 1508.7441477775574, - 1508.8442180156708, - 1508.9457623958588, - 1509.0446989536285, - 1509.1442427635193, - 1509.2483496665955, - 1509.348049879074, - 1509.447769165039, - 1509.5452642440796, - 1509.6454932689667, - 1509.7466208934784, - 1509.8461413383484, - 1509.9450035095215, - 1510.0446655750275, - 1510.1453218460083, - 1510.2444643974304, - 1510.3476753234863, - 1510.444744348526, - 1510.5449130535126, - 1510.6449630260468, - 1510.7453105449677, - 1510.8460247516632, - 1510.9460620880127, - 1511.0450239181519, - 1511.147045135498, - 1511.2464575767517, - 1511.3476495742798, - 1511.4461619853973, - 1511.5460538864136, - 1511.6458253860474, - 1511.7523272037506, - 1511.8473920822144, - 1511.9467968940735, - 1512.0458340644836, - 1512.14905834198, - 1512.2465064525604, - 1512.3464360237122, - 1512.4465262889862, - 1512.5464425086975, - 1512.6461458206177, - 1512.7456891536713, - 1512.846199274063, - 1512.9469623565674, - 1513.046472787857, - 1513.1472702026367, - 1513.2464673519135, - 1513.3472352027893, - 1513.4477665424347, - 1513.5469961166382, - 1513.6465792655945, - 1513.7474553585052, - 1513.8473408222198, - 1513.9478917121887, - 1514.048181295395, - 1514.1470139026642, - 1514.2469763755798, - 1514.347504377365, - 1514.4472517967224, - 1514.548014163971, - 1514.6466579437256, - 1514.747255563736, - 1514.8468098640442, - 1514.9472517967224, - 1515.0483257770538, - 1515.1476039886475, - 1515.2474853992462, - 1515.349123954773, - 1515.448129415512, - 1515.5479564666748, - 1515.6483643054962, - 1515.7478876113892, - 1515.848218679428, - 1515.9479448795319, - 1516.0482194423676, - 1516.149117231369, - 1516.24773478508, - 1516.3488357067108, - 1516.4485018253326, - 1516.548581123352, - 1516.6529862880707, - 1516.7489988803864, - 1516.8483703136444, - 1516.9493639469147, - 1517.0485661029816, - 1517.1542015075684, - 1517.2489612102509, - 1517.3534693717957, - 1517.4531128406525, - 1517.553725719452, - 1517.6531822681427, - 1517.7508800029755, - 1517.8505020141602, - 1517.9501507282257, - 1518.0533425807953, - 1518.154797554016, - 1518.252271413803, - 1518.3584887981415, - 1518.4496307373047, - 1518.5517852306366, - 1518.6547417640686, - 1518.751220703125, - 1518.8547055721283, - 1518.9500937461853, - 1519.0509328842163, - 1519.1500902175903, - 1519.2508342266083, - 1519.3509469032288, - 1519.4529166221619, - 1519.552564382553, - 1519.6508638858795, - 1519.7502257823944, - 1519.8513631820679, - 1519.9507722854614, - 1520.0511844158173, - 1520.1549203395844, - 1520.2553119659424, - 1520.355444908142, - 1520.4572768211365, - 1520.5562913417816, - 1520.6547539234161, - 1520.7517511844635, - 1520.852136850357, - 1520.956214427948, - 1521.0517673492432, - 1521.151982307434, - 1521.2533135414124, - 1521.3525230884552, - 1521.4546430110931, - 1521.5537049770355, - 1521.6560616493225, - 1521.756957769394, - 1521.861038684845, - 1521.9608080387115, - 1522.0553195476532, - 1522.1532826423645, - 1522.2527394294739, - 1522.3522148132324, - 1522.4540903568268, - 1522.5571751594543, - 1522.654535293579, - 1522.7544548511505, - 1522.8560378551483, - 1522.953887462616, - 1523.0526440143585, - 1523.1566863059998, - 1523.2580780982971, - 1523.3567478656769, - 1523.454469203949, - 1523.5542244911194, - 1523.658311843872, - 1523.7581009864807, - 1523.8582689762115, - 1523.953364610672, - 1524.054563999176, - 1524.1584029197693, - 1524.2576098442078, - 1524.3543453216553, - 1524.4550700187683, - 1524.5540347099304, - 1524.6535897254944, - 1524.753868341446, - 1524.853411436081, - 1524.95521068573, - 1525.054139137268, - 1525.1547272205353, - 1525.2555606365204, - 1525.3549020290375, - 1525.4566402435303, - 1525.5587475299835, - 1525.6535289287567, - 1525.7547373771667, - 1525.8536713123322, - 1525.9546175003052, - 1526.0546753406525, - 1526.1549615859985, - 1526.255040884018, - 1526.3548610210419, - 1526.454764842987, - 1526.5555267333984, - 1526.6554877758026, - 1526.7556302547455, - 1526.8551664352417, - 1526.9557905197144, - 1527.0557622909546, - 1527.1561093330383, - 1527.2571275234222, - 1527.356971502304, - 1527.457272529602, - 1527.5553719997406, - 1527.6574912071228, - 1527.757332086563, - 1527.8562273979187, - 1527.9594457149506, - 1528.0566897392273, - 1528.1583421230316, - 1528.2581007480621, - 1528.355853319168, - 1528.4608187675476, - 1528.5574316978455, - 1528.6561155319214, - 1528.7592558860779, - 1528.8586099147797, - 1528.9628987312317, - 1529.0560810565948, - 1529.1571590900421, - 1529.2560682296753, - 1529.3564767837524, - 1529.456878900528, - 1529.5586001873016, - 1529.657800912857, - 1529.7575800418854, - 1529.8577151298523, - 1529.9580373764038, - 1530.0567288398743, - 1530.157428264618, - 1530.2587399482727, - 1530.3589704036713, - 1530.457849740982, - 1530.5578382015228, - 1530.658446073532, - 1530.757824897766, - 1530.8616199493408, - 1530.960708618164, - 1531.059900522232, - 1531.162596464157, - 1531.2573883533478, - 1531.3600792884827, - 1531.458923816681, - 1531.5627195835114, - 1531.6612637043, - 1531.7576656341553, - 1531.8620171546936, - 1531.9599452018738, - 1532.0599632263184, - 1532.1607375144958, - 1532.259782075882, - 1532.3589525222778, - 1532.4589982032776, - 1532.5596570968628, - 1532.660763502121, - 1532.759989976883, - 1532.859920501709, - 1532.9633507728577, - 1533.0590443611145, - 1533.159485578537, - 1533.2591478824615, - 1533.358909368515, - 1533.4588725566864, - 1533.5592203140259, - 1533.6601333618164, - 1533.758960723877, - 1533.8600804805756, - 1533.9596378803253, - 1534.0594065189362, - 1534.1598281860352, - 1534.2596225738525, - 1534.360122680664, - 1534.4612867832184, - 1534.5604510307312, - 1534.6615297794342, - 1534.76198220253, - 1534.8614101409912, - 1534.9614522457123, - 1535.0600357055664, - 1535.1603939533234, - 1535.2622575759888, - 1535.3602058887482, - 1535.462120294571, - 1535.56028008461, - 1535.6601366996765, - 1535.7611837387085, - 1535.8639693260193, - 1535.9614548683167, - 1536.06116604805, - 1536.1607356071472, - 1536.2609808444977, - 1536.3626313209534, - 1536.4609956741333, - 1536.564481496811, - 1536.6640095710754, - 1536.763158082962, - 1536.8629369735718, - 1536.9626727104187, - 1537.0616796016693, - 1537.1621129512787, - 1537.2617573738098, - 1537.3618972301483, - 1537.462711572647, - 1537.562515258789, - 1537.6621596813202, - 1537.7639846801758, - 1537.8620209693909, - 1537.9622814655304, - 1538.0627496242523, - 1538.1621263027191, - 1538.2627971172333, - 1538.366781949997, - 1538.4637882709503, - 1538.563273191452, - 1538.66330909729, - 1538.7667174339294, - 1538.8636915683746, - 1538.9630060195923, - 1539.063859462738, - 1539.1625623703003, - 1539.2660901546478, - 1539.3630833625793, - 1539.464448928833, - 1539.5636985301971, - 1539.6643221378326, - 1539.7645237445831, - 1539.8643732070923, - 1539.9644606113434, - 1540.0639703273773, - 1540.1641156673431, - 1540.2658836841583, - 1540.3652892112732, - 1540.4671607017517, - 1540.5652508735657, - 1540.669272184372, - 1540.7651839256287, - 1540.8669271469116, - 1540.9673836231232, - 1541.0654036998749, - 1541.1660828590393, - 1541.2674746513367, - 1541.3676433563232, - 1541.4656250476837, - 1541.5665922164917, - 1541.6681351661682, - 1541.7672548294067, - 1541.867030620575, - 1541.9676649570465, - 1542.0670235157013, - 1542.1689057350159, - 1542.2671897411346, - 1542.3672127723694, - 1542.4686870574951, - 1542.5665442943573, - 1542.6705791950226, - 1542.7696046829224, - 1542.8668971061707, - 1542.966644525528, - 1543.0735685825348, - 1543.1732482910156, - 1543.267774105072, - 1543.3676788806915, - 1543.4672544002533, - 1543.5671184062958, - 1543.6677463054657, - 1543.7675108909607, - 1543.8679871559143, - 1543.9693717956543, - 1544.0663883686066, - 1544.1677677631378, - 1544.268888950348, - 1544.3663485050201, - 1544.4664885997772, - 1544.5660860538483, - 1544.6669471263885, - 1544.76717877388, - 1544.8672885894775, - 1544.9685242176056, - 1545.0670084953308, - 1545.1677951812744, - 1545.2673869132996, - 1545.3672273159027, - 1545.467891216278, - 1545.575178861618, - 1545.6677899360657, - 1545.7664551734924, - 1545.8665204048157, - 1545.9671485424042, - 1546.0674130916595, - 1546.1681797504425, - 1546.2676408290863, - 1546.367078781128, - 1546.4679577350616, - 1546.5685453414917, - 1546.6769742965698, - 1546.7727680206299, - 1546.8680868148804, - 1546.9686315059662, - 1547.069181919098, - 1547.167875289917, - 1547.2677521705627, - 1547.3686332702637, - 1547.4707067012787, - 1547.5683662891388, - 1547.6724834442139, - 1547.769639492035, - 1547.8712072372437, - 1547.9770529270172, - 1548.072209596634, - 1548.173274755478, - 1548.2715876102448, - 1548.371628522873, - 1548.4709198474884, - 1548.5714690685272, - 1548.671296596527, - 1548.7715110778809, - 1548.8716838359833, - 1548.97434091568, - 1549.070969581604, - 1549.174753665924, - 1549.2744188308716, - 1549.3733451366425, - 1549.4734070301056, - 1549.5742897987366, - 1549.6723790168762, - 1549.7728595733643, - 1549.8727250099182, - 1549.9772119522095, - 1550.0720105171204, - 1550.1710896492004, - 1550.2725031375885, - 1550.3713836669922, - 1550.4781966209412, - 1550.5779829025269, - 1550.6775233745575, - 1550.774284362793, - 1550.87375998497, - 1550.979849100113, - 1551.0752232074738, - 1551.1747436523438, - 1551.2786514759064, - 1551.3792498111725, - 1551.478197336197, - 1551.579080581665, - 1551.67942070961, - 1551.77863407135, - 1551.880181312561, - 1551.9783499240875, - 1552.0735130310059, - 1552.1743123531342, - 1552.2738902568817, - 1552.3736426830292, - 1552.4735062122345, - 1552.5737590789795, - 1552.6750376224518, - 1552.774917125702, - 1552.874896287918, - 1552.9747967720032, - 1553.0752203464508, - 1553.1760432720184, - 1553.2762243747711, - 1553.3725430965424, - 1553.472339630127, - 1553.5719089508057, - 1553.671792268753, - 1553.7730875015259, - 1553.8719074726105, - 1553.9732356071472, - 1554.072648525238, - 1554.172200679779, - 1554.2724151611328, - 1554.3731021881104, - 1554.4731767177582, - 1554.5727956295013, - 1554.673753976822, - 1554.7773764133453, - 1554.8747208118439, - 1554.9741613864899, - 1555.0747776031494, - 1555.1755096912384, - 1555.279501914978, - 1555.3744592666626, - 1555.4760527610779, - 1555.5740582942963, - 1555.6754522323608, - 1555.7753405570984, - 1555.8802742958069, - 1555.9759588241577, - 1556.074725151062, - 1556.1759669780731, - 1556.2756700515747, - 1556.3753113746643, - 1556.4837319850922, - 1556.5750107765198, - 1556.6751630306244, - 1556.7765123844147, - 1556.8782150745392, - 1556.9785902500153, - 1557.0765113830566, - 1557.1777567863464, - 1557.2783045768738, - 1557.3775517940521, - 1557.4797596931458, - 1557.5780041217804, - 1557.6780152320862, - 1557.7778115272522, - 1557.876960515976, - 1557.9770517349243, - 1558.076621055603, - 1558.180831193924, - 1558.2854754924774, - 1558.3767499923706, - 1558.4804351329803, - 1558.579921722412, - 1558.677288532257, - 1558.7769978046417, - 1558.8778581619263, - 1558.9787356853485, - 1559.0771126747131, - 1559.1767921447754, - 1559.278477191925, - 1559.378291606903, - 1559.4775824546814, - 1559.5807921886444, - 1559.6776638031006, - 1559.778058052063, - 1559.8830723762512, - 1559.9832768440247, - 1560.0840981006622, - 1560.1845769882202, - 1560.2789707183838, - 1560.3786268234253, - 1560.47776389122, - 1560.5785915851593, - 1560.6796667575836, - 1560.7791197299957, - 1560.87948346138, - 1560.978010892868, - 1561.0784831047058, - 1561.1786596775055, - 1561.2765908241272, - 1561.3838136196136, - 1561.4774813652039, - 1561.5815932750702, - 1561.6770639419556, - 1561.7776787281036, - 1561.877956867218, - 1561.9779877662659, - 1562.0776226520538, - 1562.1785109043121, - 1562.2782335281372, - 1562.3815352916718, - 1562.4804756641388, - 1562.5775909423828, - 1562.6809916496277, - 1562.7826879024506, - 1562.8828573226929, - 1562.9838132858276, - 1563.0780189037323, - 1563.1789796352386, - 1563.2802908420563, - 1563.3813588619232, - 1563.480254650116, - 1563.5809354782104, - 1563.680933713913, - 1563.7801339626312, - 1563.880723953247, - 1563.9811205863953, - 1564.0802714824677, - 1564.1794838905334, - 1564.2845251560211, - 1564.3794884681702, - 1564.4791498184204, - 1564.5835678577423, - 1564.6808955669403, - 1564.7788915634155, - 1564.8795139789581, - 1564.9836478233337, - 1565.07950258255, - 1565.1825184822083, - 1565.2819392681122, - 1565.380526304245, - 1565.4812269210815, - 1565.5805473327637, - 1565.684333562851, - 1565.785714149475, - 1565.8849048614502, - 1565.9807634353638, - 1566.0813398361206, - 1566.1810414791107, - 1566.283430814743, - 1566.383866071701, - 1566.484350681305, - 1566.5904591083527, - 1566.6800830364227, - 1566.7800760269165, - 1566.8805696964264, - 1566.9809465408325, - 1567.0811483860016, - 1567.1813688278198, - 1567.2823538780212, - 1567.3819682598114, - 1567.4816749095917, - 1567.5819344520569, - 1567.6825020313263, - 1567.781952381134, - 1567.881548166275, - 1567.982048034668, - 1568.0820636749268, - 1568.1820254325867, - 1568.281239271164, - 1568.3812518119812, - 1568.4811825752258, - 1568.5819082260132, - 1568.6818380355835, - 1568.7822697162628, - 1568.8816404342651, - 1568.9819226264954, - 1569.0865490436554, - 1569.186048746109, - 1569.282539844513, - 1569.3828761577606, - 1569.4822869300842, - 1569.58291721344, - 1569.6838479042053, - 1569.7846109867096, - 1569.8823783397675, - 1569.9836070537567, - 1570.0831260681152, - 1570.1819534301758, - 1570.2878515720367, - 1570.3924379348755, - 1570.4909138679504, - 1570.5902736186981, - 1570.6988174915314, - 1570.7904138565063, - 1570.8904962539673, - 1570.9899044036865, - 1571.0898532867432, - 1571.1898276805878, - 1571.289258480072, - 1571.3903584480286, - 1571.4897434711456, - 1571.5904321670532, - 1571.6920642852783, - 1571.7911806106567, - 1571.8918182849884, - 1571.9967155456543, - 1572.1017162799835, - 1572.2009263038635, - 1572.2912111282349, - 1572.3967843055725, - 1572.4991810321808, - 1572.5943253040314, - 1572.6906354427338, - 1572.7905294895172, - 1572.891780614853, - 1572.9911139011383, - 1573.0927135944366, - 1573.1920285224915 - ], - "y": [ - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90 - ] - } - ], - "layout": { - "autosize": false, - "font": { - "color": "black", - "family": "Courier New, monospace", - "size": 22 - }, - "height": 600, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Range of Motion hipRight" - }, - "width": 750, - "xaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "time [s]" - } - }, - "yaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "ROM [degrees]" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "linkText": "Export to plot.ly", - "plotlyServerURL": "https://plot.ly", - "showLink": false - }, - "data": [ - { - "line": { - "color": "blue", - "width": 3 - }, - "mode": "lines", - "name": "Real trend", - "type": "scatter", - "x": [ - 1499.2411363124847, - 1499.3432846069336, - 1499.4427211284637, - 1499.54013133049, - 1499.6420300006866, - 1499.744064092636, - 1499.8401839733124, - 1499.9462168216705, - 1500.0419936180115, - 1500.1414563655853, - 1500.2422320842743, - 1500.3411314487457, - 1500.441514492035, - 1500.541243314743, - 1500.6429286003113, - 1500.7421760559082, - 1500.8417778015137, - 1500.9413657188416, - 1501.0417659282684, - 1501.1428897380829, - 1501.240436553955, - 1501.3419153690338, - 1501.441132068634, - 1501.5403683185577, - 1501.6449313163757, - 1501.7413523197174, - 1501.8423101902008, - 1501.9408650398254, - 1502.04141497612, - 1502.1416535377502, - 1502.2421522140503, - 1502.3436872959137, - 1502.4428606033325, - 1502.5419516563416, - 1502.6438164710999, - 1502.739751815796, - 1502.839929819107, - 1502.9432377815247, - 1503.0396859645844, - 1503.1407148838043, - 1503.2416439056396, - 1503.3399159908295, - 1503.4405806064606, - 1503.542091369629, - 1503.6399137973785, - 1503.7397291660309, - 1503.8402659893036, - 1503.9417126178741, - 1504.0408883094788, - 1504.1431605815887, - 1504.2412109375, - 1504.3424327373505, - 1504.442084312439, - 1504.5419890880585, - 1504.6418566703796, - 1504.7421357631683, - 1504.8420453071594, - 1504.9417133331299, - 1505.0427649021149, - 1505.1421146392822, - 1505.2413144111633, - 1505.3408071994781, - 1505.4415457248688, - 1505.542934179306, - 1505.6415820121765, - 1505.741807460785, - 1505.8417615890503, - 1505.9422342777252, - 1506.0417664051056, - 1506.142252922058, - 1506.2424128055573, - 1506.3428943157196, - 1506.4433236122131, - 1506.5426783561707, - 1506.6421117782593, - 1506.74356341362, - 1506.8419032096863, - 1506.9436628818512, - 1507.042890548706, - 1507.143632888794, - 1507.2437996864319, - 1507.34317612648, - 1507.4439723491669, - 1507.5464203357697, - 1507.646990776062, - 1507.743609905243, - 1507.844081878662, - 1507.944857597351, - 1508.0438890457153, - 1508.143606185913, - 1508.2456514835358, - 1508.3450417518616, - 1508.444191455841, - 1508.5442969799042, - 1508.6431493759155, - 1508.7441477775574, - 1508.8442180156708, - 1508.9457623958588, - 1509.0446989536285, - 1509.1442427635193, - 1509.2483496665955, - 1509.348049879074, - 1509.447769165039, - 1509.5452642440796, - 1509.6454932689667, - 1509.7466208934784, - 1509.8461413383484, - 1509.9450035095215, - 1510.0446655750275, - 1510.1453218460083, - 1510.2444643974304, - 1510.3476753234863, - 1510.444744348526, - 1510.5449130535126, - 1510.6449630260468, - 1510.7453105449677, - 1510.8460247516632, - 1510.9460620880127, - 1511.0450239181519, - 1511.147045135498, - 1511.2464575767517, - 1511.3476495742798, - 1511.4461619853973, - 1511.5460538864136, - 1511.6458253860474, - 1511.7523272037506, - 1511.8473920822144, - 1511.9467968940735, - 1512.0458340644836, - 1512.14905834198, - 1512.2465064525604, - 1512.3464360237122, - 1512.4465262889862, - 1512.5464425086975, - 1512.6461458206177, - 1512.7456891536713, - 1512.846199274063, - 1512.9469623565674, - 1513.046472787857, - 1513.1472702026367, - 1513.2464673519135, - 1513.3472352027893, - 1513.4477665424347, - 1513.5469961166382, - 1513.6465792655945, - 1513.7474553585052, - 1513.8473408222198, - 1513.9478917121887, - 1514.048181295395, - 1514.1470139026642, - 1514.2469763755798, - 1514.347504377365, - 1514.4472517967224, - 1514.548014163971, - 1514.6466579437256, - 1514.747255563736, - 1514.8468098640442, - 1514.9472517967224, - 1515.0483257770538, - 1515.1476039886475, - 1515.2474853992462, - 1515.349123954773, - 1515.448129415512, - 1515.5479564666748, - 1515.6483643054962, - 1515.7478876113892, - 1515.848218679428, - 1515.9479448795319, - 1516.0482194423676, - 1516.149117231369, - 1516.24773478508, - 1516.3488357067108, - 1516.4485018253326, - 1516.548581123352, - 1516.6529862880707, - 1516.7489988803864, - 1516.8483703136444, - 1516.9493639469147, - 1517.0485661029816, - 1517.1542015075684, - 1517.2489612102509, - 1517.3534693717957, - 1517.4531128406525, - 1517.553725719452, - 1517.6531822681427, - 1517.7508800029755, - 1517.8505020141602, - 1517.9501507282257, - 1518.0533425807953, - 1518.154797554016, - 1518.252271413803, - 1518.3584887981415, - 1518.4496307373047, - 1518.5517852306366, - 1518.6547417640686, - 1518.751220703125, - 1518.8547055721283, - 1518.9500937461853, - 1519.0509328842163, - 1519.1500902175903, - 1519.2508342266083, - 1519.3509469032288, - 1519.4529166221619, - 1519.552564382553, - 1519.6508638858795, - 1519.7502257823944, - 1519.8513631820679, - 1519.9507722854614, - 1520.0511844158173, - 1520.1549203395844, - 1520.2553119659424, - 1520.355444908142, - 1520.4572768211365, - 1520.5562913417816, - 1520.6547539234161, - 1520.7517511844635, - 1520.852136850357, - 1520.956214427948, - 1521.0517673492432, - 1521.151982307434, - 1521.2533135414124, - 1521.3525230884552, - 1521.4546430110931, - 1521.5537049770355, - 1521.6560616493225, - 1521.756957769394, - 1521.861038684845, - 1521.9608080387115, - 1522.0553195476532, - 1522.1532826423645, - 1522.2527394294739, - 1522.3522148132324, - 1522.4540903568268, - 1522.5571751594543, - 1522.654535293579, - 1522.7544548511505, - 1522.8560378551483, - 1522.953887462616, - 1523.0526440143585, - 1523.1566863059998, - 1523.2580780982971, - 1523.3567478656769, - 1523.454469203949, - 1523.5542244911194, - 1523.658311843872, - 1523.7581009864807, - 1523.8582689762115, - 1523.953364610672, - 1524.054563999176, - 1524.1584029197693, - 1524.2576098442078, - 1524.3543453216553, - 1524.4550700187683, - 1524.5540347099304, - 1524.6535897254944, - 1524.753868341446, - 1524.853411436081, - 1524.95521068573, - 1525.054139137268, - 1525.1547272205353, - 1525.2555606365204, - 1525.3549020290375, - 1525.4566402435303, - 1525.5587475299835, - 1525.6535289287567, - 1525.7547373771667, - 1525.8536713123322, - 1525.9546175003052, - 1526.0546753406525, - 1526.1549615859985, - 1526.255040884018, - 1526.3548610210419, - 1526.454764842987, - 1526.5555267333984, - 1526.6554877758026, - 1526.7556302547455, - 1526.8551664352417, - 1526.9557905197144, - 1527.0557622909546, - 1527.1561093330383, - 1527.2571275234222, - 1527.356971502304, - 1527.457272529602, - 1527.5553719997406, - 1527.6574912071228, - 1527.757332086563, - 1527.8562273979187, - 1527.9594457149506, - 1528.0566897392273, - 1528.1583421230316, - 1528.2581007480621, - 1528.355853319168, - 1528.4608187675476, - 1528.5574316978455, - 1528.6561155319214, - 1528.7592558860779, - 1528.8586099147797, - 1528.9628987312317, - 1529.0560810565948, - 1529.1571590900421, - 1529.2560682296753, - 1529.3564767837524, - 1529.456878900528, - 1529.5586001873016, - 1529.657800912857, - 1529.7575800418854, - 1529.8577151298523, - 1529.9580373764038, - 1530.0567288398743, - 1530.157428264618, - 1530.2587399482727, - 1530.3589704036713, - 1530.457849740982, - 1530.5578382015228, - 1530.658446073532, - 1530.757824897766, - 1530.8616199493408, - 1530.960708618164, - 1531.059900522232, - 1531.162596464157, - 1531.2573883533478, - 1531.3600792884827, - 1531.458923816681, - 1531.5627195835114, - 1531.6612637043, - 1531.7576656341553, - 1531.8620171546936, - 1531.9599452018738, - 1532.0599632263184, - 1532.1607375144958, - 1532.259782075882, - 1532.3589525222778, - 1532.4589982032776, - 1532.5596570968628, - 1532.660763502121, - 1532.759989976883, - 1532.859920501709, - 1532.9633507728577, - 1533.0590443611145, - 1533.159485578537, - 1533.2591478824615, - 1533.358909368515, - 1533.4588725566864, - 1533.5592203140259, - 1533.6601333618164, - 1533.758960723877, - 1533.8600804805756, - 1533.9596378803253, - 1534.0594065189362, - 1534.1598281860352, - 1534.2596225738525, - 1534.360122680664, - 1534.4612867832184, - 1534.5604510307312, - 1534.6615297794342, - 1534.76198220253, - 1534.8614101409912, - 1534.9614522457123, - 1535.0600357055664, - 1535.1603939533234, - 1535.2622575759888, - 1535.3602058887482, - 1535.462120294571, - 1535.56028008461, - 1535.6601366996765, - 1535.7611837387085, - 1535.8639693260193, - 1535.9614548683167, - 1536.06116604805, - 1536.1607356071472, - 1536.2609808444977, - 1536.3626313209534, - 1536.4609956741333, - 1536.564481496811, - 1536.6640095710754, - 1536.763158082962, - 1536.8629369735718, - 1536.9626727104187, - 1537.0616796016693, - 1537.1621129512787, - 1537.2617573738098, - 1537.3618972301483, - 1537.462711572647, - 1537.562515258789, - 1537.6621596813202, - 1537.7639846801758, - 1537.8620209693909, - 1537.9622814655304, - 1538.0627496242523, - 1538.1621263027191, - 1538.2627971172333, - 1538.366781949997, - 1538.4637882709503, - 1538.563273191452, - 1538.66330909729, - 1538.7667174339294, - 1538.8636915683746, - 1538.9630060195923, - 1539.063859462738, - 1539.1625623703003, - 1539.2660901546478, - 1539.3630833625793, - 1539.464448928833, - 1539.5636985301971, - 1539.6643221378326, - 1539.7645237445831, - 1539.8643732070923, - 1539.9644606113434, - 1540.0639703273773, - 1540.1641156673431, - 1540.2658836841583, - 1540.3652892112732, - 1540.4671607017517, - 1540.5652508735657, - 1540.669272184372, - 1540.7651839256287, - 1540.8669271469116, - 1540.9673836231232, - 1541.0654036998749, - 1541.1660828590393, - 1541.2674746513367, - 1541.3676433563232, - 1541.4656250476837, - 1541.5665922164917, - 1541.6681351661682, - 1541.7672548294067, - 1541.867030620575, - 1541.9676649570465, - 1542.0670235157013, - 1542.1689057350159, - 1542.2671897411346, - 1542.3672127723694, - 1542.4686870574951, - 1542.5665442943573, - 1542.6705791950226, - 1542.7696046829224, - 1542.8668971061707, - 1542.966644525528, - 1543.0735685825348, - 1543.1732482910156, - 1543.267774105072, - 1543.3676788806915, - 1543.4672544002533, - 1543.5671184062958, - 1543.6677463054657, - 1543.7675108909607, - 1543.8679871559143, - 1543.9693717956543, - 1544.0663883686066, - 1544.1677677631378, - 1544.268888950348, - 1544.3663485050201, - 1544.4664885997772, - 1544.5660860538483, - 1544.6669471263885, - 1544.76717877388, - 1544.8672885894775, - 1544.9685242176056, - 1545.0670084953308, - 1545.1677951812744, - 1545.2673869132996, - 1545.3672273159027, - 1545.467891216278, - 1545.575178861618, - 1545.6677899360657, - 1545.7664551734924, - 1545.8665204048157, - 1545.9671485424042, - 1546.0674130916595, - 1546.1681797504425, - 1546.2676408290863, - 1546.367078781128, - 1546.4679577350616, - 1546.5685453414917, - 1546.6769742965698, - 1546.7727680206299, - 1546.8680868148804, - 1546.9686315059662, - 1547.069181919098, - 1547.167875289917, - 1547.2677521705627, - 1547.3686332702637, - 1547.4707067012787, - 1547.5683662891388, - 1547.6724834442139, - 1547.769639492035, - 1547.8712072372437, - 1547.9770529270172, - 1548.072209596634, - 1548.173274755478, - 1548.2715876102448, - 1548.371628522873, - 1548.4709198474884, - 1548.5714690685272, - 1548.671296596527, - 1548.7715110778809, - 1548.8716838359833, - 1548.97434091568, - 1549.070969581604, - 1549.174753665924, - 1549.2744188308716, - 1549.3733451366425, - 1549.4734070301056, - 1549.5742897987366, - 1549.6723790168762, - 1549.7728595733643, - 1549.8727250099182, - 1549.9772119522095, - 1550.0720105171204, - 1550.1710896492004, - 1550.2725031375885, - 1550.3713836669922, - 1550.4781966209412, - 1550.5779829025269, - 1550.6775233745575, - 1550.774284362793, - 1550.87375998497, - 1550.979849100113, - 1551.0752232074738, - 1551.1747436523438, - 1551.2786514759064, - 1551.3792498111725, - 1551.478197336197, - 1551.579080581665, - 1551.67942070961, - 1551.77863407135, - 1551.880181312561, - 1551.9783499240875, - 1552.0735130310059, - 1552.1743123531342, - 1552.2738902568817, - 1552.3736426830292, - 1552.4735062122345, - 1552.5737590789795, - 1552.6750376224518, - 1552.774917125702, - 1552.874896287918, - 1552.9747967720032, - 1553.0752203464508, - 1553.1760432720184, - 1553.2762243747711, - 1553.3725430965424, - 1553.472339630127, - 1553.5719089508057, - 1553.671792268753, - 1553.7730875015259, - 1553.8719074726105, - 1553.9732356071472, - 1554.072648525238, - 1554.172200679779, - 1554.2724151611328, - 1554.3731021881104, - 1554.4731767177582, - 1554.5727956295013, - 1554.673753976822, - 1554.7773764133453, - 1554.8747208118439, - 1554.9741613864899, - 1555.0747776031494, - 1555.1755096912384, - 1555.279501914978, - 1555.3744592666626, - 1555.4760527610779, - 1555.5740582942963, - 1555.6754522323608, - 1555.7753405570984, - 1555.8802742958069, - 1555.9759588241577, - 1556.074725151062, - 1556.1759669780731, - 1556.2756700515747, - 1556.3753113746643, - 1556.4837319850922, - 1556.5750107765198, - 1556.6751630306244, - 1556.7765123844147, - 1556.8782150745392, - 1556.9785902500153, - 1557.0765113830566, - 1557.1777567863464, - 1557.2783045768738, - 1557.3775517940521, - 1557.4797596931458, - 1557.5780041217804, - 1557.6780152320862, - 1557.7778115272522, - 1557.876960515976, - 1557.9770517349243, - 1558.076621055603, - 1558.180831193924, - 1558.2854754924774, - 1558.3767499923706, - 1558.4804351329803, - 1558.579921722412, - 1558.677288532257, - 1558.7769978046417, - 1558.8778581619263, - 1558.9787356853485, - 1559.0771126747131, - 1559.1767921447754, - 1559.278477191925, - 1559.378291606903, - 1559.4775824546814, - 1559.5807921886444, - 1559.6776638031006, - 1559.778058052063, - 1559.8830723762512, - 1559.9832768440247, - 1560.0840981006622, - 1560.1845769882202, - 1560.2789707183838, - 1560.3786268234253, - 1560.47776389122, - 1560.5785915851593, - 1560.6796667575836, - 1560.7791197299957, - 1560.87948346138, - 1560.978010892868, - 1561.0784831047058, - 1561.1786596775055, - 1561.2765908241272, - 1561.3838136196136, - 1561.4774813652039, - 1561.5815932750702, - 1561.6770639419556, - 1561.7776787281036, - 1561.877956867218, - 1561.9779877662659, - 1562.0776226520538, - 1562.1785109043121, - 1562.2782335281372, - 1562.3815352916718, - 1562.4804756641388, - 1562.5775909423828, - 1562.6809916496277, - 1562.7826879024506, - 1562.8828573226929, - 1562.9838132858276, - 1563.0780189037323, - 1563.1789796352386, - 1563.2802908420563, - 1563.3813588619232, - 1563.480254650116, - 1563.5809354782104, - 1563.680933713913, - 1563.7801339626312, - 1563.880723953247, - 1563.9811205863953, - 1564.0802714824677, - 1564.1794838905334, - 1564.2845251560211, - 1564.3794884681702, - 1564.4791498184204, - 1564.5835678577423, - 1564.6808955669403, - 1564.7788915634155, - 1564.8795139789581, - 1564.9836478233337, - 1565.07950258255, - 1565.1825184822083, - 1565.2819392681122, - 1565.380526304245, - 1565.4812269210815, - 1565.5805473327637, - 1565.684333562851, - 1565.785714149475, - 1565.8849048614502, - 1565.9807634353638, - 1566.0813398361206, - 1566.1810414791107, - 1566.283430814743, - 1566.383866071701, - 1566.484350681305, - 1566.5904591083527, - 1566.6800830364227, - 1566.7800760269165, - 1566.8805696964264, - 1566.9809465408325, - 1567.0811483860016, - 1567.1813688278198, - 1567.2823538780212, - 1567.3819682598114, - 1567.4816749095917, - 1567.5819344520569, - 1567.6825020313263, - 1567.781952381134, - 1567.881548166275, - 1567.982048034668, - 1568.0820636749268, - 1568.1820254325867, - 1568.281239271164, - 1568.3812518119812, - 1568.4811825752258, - 1568.5819082260132, - 1568.6818380355835, - 1568.7822697162628, - 1568.8816404342651, - 1568.9819226264954, - 1569.0865490436554, - 1569.186048746109, - 1569.282539844513, - 1569.3828761577606, - 1569.4822869300842, - 1569.58291721344, - 1569.6838479042053, - 1569.7846109867096, - 1569.8823783397675, - 1569.9836070537567, - 1570.0831260681152, - 1570.1819534301758, - 1570.2878515720367, - 1570.3924379348755, - 1570.4909138679504, - 1570.5902736186981, - 1570.6988174915314, - 1570.7904138565063, - 1570.8904962539673, - 1570.9899044036865, - 1571.0898532867432, - 1571.1898276805878, - 1571.289258480072, - 1571.3903584480286, - 1571.4897434711456, - 1571.5904321670532, - 1571.6920642852783, - 1571.7911806106567, - 1571.8918182849884, - 1571.9967155456543, - 1572.1017162799835, - 1572.2009263038635, - 1572.2912111282349, - 1572.3967843055725, - 1572.4991810321808, - 1572.5943253040314, - 1572.6906354427338, - 1572.7905294895172, - 1572.891780614853, - 1572.9911139011383, - 1573.0927135944366, - 1573.1920285224915 - ], - "y": [ - 83.76114274812721, - 83.6996370304545, - 83.54878753080084, - 83.54878753080084, - 83.06480607142193, - 82.30301924069242, - 81.1122446901451, - 81.29976968859263, - 81.29976968859263, - 80.90653962924904, - 80.9223161466787, - 81.26592794293326, - 80.71546497423597, - 80.71546497423597, - 76.61444602019048, - 81.1904245947816, - 81.3102983268943, - 81.3102983268943, - 81.7642004822879, - 81.71067205145998, - 81.5241836887108, - 81.2241616694737, - 75.5743354439948, - 80.45836365810197, - 80.80265573232855, - 81.57077926862871, - 81.17948975490803, - 81.06281544849067, - 81.24353081597117, - 81.64962513244993, - 81.64962513244993, - 74.84591426118817, - 74.79329747909048, - 75.04620902110442, - 80.49027708261701, - 74.33162576177119, - 73.93398183460002, - 73.89818898764878, - 80.48441635470999, - 80.89289617741183, - 80.89289617741183, - 81.72749045579471, - 82.20268026200965, - 81.99689192274353, - 82.24100111258531, - 81.58896406456569, - 81.58896406456569, - 81.63819961618502, - 82.79111960924124, - 82.98489470744173, - 83.30472038276257, - 82.93433401321494, - 82.10217678640038, - 82.07566476923186, - 82.1668280889102, - 82.1668280889102, - 81.94952375301175, - 81.40199399616861, - 80.79417160070403, - 81.40090586530005, - 81.40090586530005, - 80.07876483155957, - 79.56046195866395, - 79.34337007309273, - 79.57708182716657, - 79.57708182716657, - 80.17395647746217, - 80.17395647746217, - 80.61779862020913, - 80.91181005026822, - 81.10737996587291, - 80.88089318274811, - 81.16089002261695, - 81.05050494325754, - 80.5329330485577, - 80.52270941829909, - 80.59075385580496, - 81.05711292627684, - 81.05711292627684, - 81.05761192959304, - 81.24133970537311, - 81.13312794553292, - 81.48975586928577, - 81.66067783347124, - 81.75615363011674, - 81.97786497689934, - 81.96872592298695, - 81.79811111717099, - 81.4164828066955, - 81.42742409574393, - 80.99408370220014, - 81.05306258934272, - 81.31866195644369, - 81.38796849825273, - 81.5199002124673, - 81.42546122310237, - 81.21781726480528, - 81.11680179504425, - 81.12375458860895, - 80.60452029497227, - 80.87287183685113, - 81.05621503613577, - 80.94187530032005, - 80.77111801424334, - 82.01622907169435, - 82.71119685071639, - 82.71119685071639, - 82.9382361069159, - 82.95892291293195, - 83.18474730626012, - 83.18727197437012, - 83.01875241098166, - 83.26942068952766, - 83.26942068952766, - 82.93851250063271, - 82.96893736506414, - 82.8777919023593, - 83.00633914740838, - 82.90416463027448, - 82.92207723519947, - 83.01305390094993, - 83.01305390094993, - 83.26823382948452, - 83.17203845146958, - 83.32866090954606, - 83.32866090954606, - 83.26320955370271, - 82.90403148671328, - 82.90403148671328, - 82.80044943653597, - 82.95104431212984, - 82.86981564862735, - 82.7562462033432, - 82.80913483180717, - 82.7562462033432, - 82.89776799593704, - 83.06802056003576, - 82.88382379285326, - 82.6643082390751, - 82.29083518126988, - 82.69824725164553, - 82.6612221782604, - 82.70796743393076, - 83.05459805572441, - 83.0327935622959, - 83.05384507228102, - 83.08567342654217, - 82.97777100625392, - 82.94847105314322, - 82.96362477904864, - 82.76389921805949, - 82.43798227181517, - 82.6452704632163, - 82.6452704632163, - 82.46386021230367, - 82.61596200095155, - 82.35581481345591, - 82.40524022636856, - 82.63387000291895, - 82.63387000291895, - 83.02591448590036, - 83.06152603170273, - 83.02590314051346, - 83.09973888206517, - 83.00893029196857, - 82.71909749776394, - 82.84942149214588, - 82.96519311325079, - 82.7460890260633, - 82.24794406690245, - 81.96584402954734, - 82.12481355572537, - 81.1475588241804, - 80.447101066105, - 80.39758261558036, - 80.39758261558036, - 80.06195426948796, - 80.06195426948796, - 79.99135775421796, - 80.04390275529761, - 80.29827510600211, - 79.81287354066625, - 79.32001738298403, - 79.32001738298403, - 79.24125478238616, - 78.93827235362274, - 78.95521544375639, - 78.9529859339072, - 78.95490991490787, - 78.97660627437467, - 78.99296688262905, - 78.99735319703856, - 79.24953234183047, - 79.29918233379173, - 79.007645721132, - 79.00323450548211, - 78.95040599363573, - 78.82748113293421, - 78.82748113293421, - 79.39977875019979, - 79.39977875019979, - 79.50356215913135, - 79.5074279073813, - 79.22331450879456, - 79.23996200698573, - 79.24137884944577, - 79.03898965787123, - 79.22444315468303, - 79.0585642471471, - 79.17339013455718, - 79.15576560629613, - 79.15576560629613, - 79.15996444246781, - 79.15996444246781, - 79.05664383229059, - 78.85036300463072, - 78.74695191278093, - 78.74695191278093, - 78.71111332757668, - 78.7401338596215, - 78.74013390427812, - 78.7405986666979, - 78.75980364262941, - 78.64486429227773, - 78.6594148795162, - 78.63823794913237, - 78.64907301674147, - 78.78542261152718, - 78.78393944169518, - 78.78917454463611, - 78.78870504591944, - 78.78589151201668, - 78.89961208379891, - 78.99937494315289, - 78.98237797089418, - 78.81302599166514, - 78.91187187959929, - 78.59213706559578, - 78.62505968928544, - 78.72562023268051, - 78.67216127308183, - 78.84544083274362, - 78.9378568248481, - 79.22708532778027, - 79.51769320721232, - 79.61060919811594, - 79.82033962057103, - 79.71278033912375, - 79.54874639020046, - 79.71278024962574, - 79.44789260134877, - 79.94788380244304, - 79.53921825004831, - 79.25564692253923, - 79.26039191900004, - 79.26039168228252, - 79.26039063869807, - 79.27202406479296, - 79.25136713689302, - 79.25615546447477, - 79.27259886781006, - 79.67071949640035, - 79.77469086304254, - 80.00064174002965, - 79.67555691520978, - 79.62658306827191, - 79.62658306827191, - 80.03355823926361, - 80.03243534283989, - 80.03243534283989, - 79.71703117866993, - 79.29079628902808, - 79.29079628902808, - 79.18268523234822, - 79.15406278759262, - 79.246214349795, - 79.246214349795, - 79.51193818258547, - 79.80191265242466, - 80.20896477915518, - 80.20896477915518, - 81.18252176628918, - 82.13957467229542, - 80.89935371212599, - 82.00661537702413, - 81.71735789055859, - 81.4227096299443, - 80.61005088451712, - 72.58475596338006, - 71.42491413959043, - 69.48370978233093, - 67.24663654729616, - 65.40792328273044, - 63.667895009458604, - 62.56506851394048, - 62.71491400896277, - 63.07721097953723, - 63.260390580153874, - 63.89203601954043, - 63.89203601954043, - 64.80011652125846, - 64.46770436998138, - 63.65089405719001, - 63.08412199168161, - 63.02498071238948, - 63.05153997653645, - 63.35383843025976, - 63.5419659101775, - 63.51614129605257, - 63.31617107406137, - 63.328442851131726, - 63.3778911263601, - 63.5974302108783, - 63.95574961921733, - 64.47737482161776, - 63.97601313206847, - 63.240462525180156, - 63.16090706053151, - 63.33998620586513, - 63.386043571053854, - 63.35802684644964, - 63.190467544324136, - 63.16619124852665, - 63.27609667905725, - 62.976946820807804, - 63.308883718330215, - 63.2328647622815, - 63.24757884966848, - 63.34858746302158, - 63.421837572310956, - 63.076719493424484, - 62.806709011414235, - 62.695465260615016, - 63.11708487133993, - 63.29540431616884, - 62.924994538691394, - 62.96157277233073, - 62.82664363120112, - 62.91249406266628, - 62.92599731146321, - 62.70822373627183, - 62.52285423663897, - 62.29738718388797, - 62.187331465654964, - 61.89565810632407, - 61.65041271291508, - 62.098362234208516, - 62.22797221273917, - 62.18544084105297, - 62.18544084105297, - 62.15494261884158, - 62.102051659984305, - 61.9910735396073, - 61.987349591660966, - 61.94951507485705, - 62.11326360321755, - 62.17171437031221, - 62.435995288470814, - 62.59276601258905, - 62.511917936820275, - 62.52091771584418, - 62.74558274589324, - 62.69667974592382, - 62.758570647895304, - 63.08378929728774, - 63.17945874489853, - 63.482970243909065, - 63.482970243909065, - 63.29517386946006, - 63.29517386946006, - 63.34216723263033, - 63.61729664231178, - 63.61500053293481, - 63.3392965378083, - 63.713034611668064, - 63.25943929876169, - 62.71431647251939, - 62.98203558664314, - 63.27547931759642, - 64.03045024573152, - 64.90865578155513, - 64.90865578155513, - 63.77359319313694, - 62.63596404531317, - 58.940431511416485, - 57.86458244653484, - 113.22579194497328, - 112.84477017897403, - 112.54140396553507, - 113.02415834177523, - 113.02415834177523, - 60.77866737504902, - 115.0472239010436, - 64.59693305842785, - 64.59693305842785, - 62.97449148578399, - 63.09586573649993, - 63.24079390316527, - 63.27626800494712, - 62.73942141996395, - 62.89579230813295, - 63.11151458248564, - 63.198776115963895, - 62.96792435572314, - 63.31682507349154, - 63.791918383212725, - 63.56088936111611, - 63.24325055392229, - 63.36914279328262, - 63.43913216946415, - 63.62777653147679, - 63.62777653147679, - 64.1234727056543, - 63.87720527265861, - 63.87720527265861, - 63.86363396957378, - 63.50636265214098, - 63.088393375375524, - 62.95897967942501, - 63.06335868255457, - 64.38433014908874, - 66.41662151031962, - 66.68635674798824, - 66.58004973798478, - 67.05397645355951, - 69.13770484456946, - 72.60826782293348, - 71.22289679894448, - 67.85415890145323, - 66.82026765102677, - 67.0279951508054, - 68.99470691253592, - 64.56178747604507, - 64.71572591735045, - 64.81550861217778, - 65.17210252264952, - 65.38609306059062, - 65.41161166582478, - 65.70803618861025, - 65.21754879858123, - 64.60027709400414, - 64.71536576751778, - 64.81864305642314, - 65.80789223106711, - 66.4815865802161, - 66.0989942919702, - 66.4785641003112, - 63.9386403059837, - 62.94261069014711, - 62.55655008678348, - 63.24230036965543, - 63.93480028890227, - 64.47850842775733, - 64.44903853588985, - 64.04291223430245, - 63.93706553458525, - 63.83305583307665, - 64.40856643822579, - 63.02487933830343, - 62.97877846010548, - 63.108072930066044, - 63.385788042492464, - 63.47927898392295, - 63.5481622816088, - 63.328751900176755, - 63.37278044146055, - 63.26054349771587, - 63.62989647611692, - 63.86546100005399, - 63.07498817283224, - 66.07536243140154, - 67.84196433485278, - 67.58248192764225, - 65.05172698866197, - 63.09337455390207, - 63.154896622946694, - 62.70726397039119, - 63.39698939439623, - 63.762308269278286, - 63.81818845868181, - 66.83219117904619, - 66.87576463564997, - 69.43647883318938, - 74.06472153237745, - 74.06472153237745, - 77.41271480026232, - 65.89130929157591, - 65.89130929157591, - 65.05056462326988, - 63.2003636186484, - 62.78420114687209, - 63.547765213262906, - 63.698275113603046, - 64.28556701257108, - 64.63520968561818, - 64.44713487041643, - 64.28112341676712, - 63.98177981921698, - 63.7704426946765, - 64.2499725268844, - 65.65622045333468, - 66.26948080608803, - 64.77265266724386, - 63.52061821930033, - 63.655025714606666, - 63.84273227467416, - 64.20494736238321, - 64.52416043840712, - 64.13490091174168, - 63.38131513817884, - 63.86576117293614, - 63.86576117293614, - 64.37229190080947, - 64.1444052819998, - 63.99805659404057, - 67.6546462092717, - 69.31455867497762, - 68.97864236345838, - 66.6157508695973, - 65.88838358585227, - 65.65516625472165, - 66.01476391414722, - 69.52239694500706, - 64.6785642784356, - 64.83640750447793, - 65.75608365675974, - 66.78182769871617, - 66.9260620641508, - 66.85388358432357, - 66.98677168393782, - 67.35143447524423, - 79.73009009800009, - 85.00330625739814, - 85.75607918535893, - 70.39821799330129, - 70.39821799330129, - 67.90121113741819, - 64.12512502754998, - 63.4732811505001, - 62.96034499551069, - 62.54520795314316, - 65.8398510800884, - 66.71602489425558, - 67.150309303443, - 67.04024735417231, - 66.3754253934758, - 66.37284573103217, - 65.27541013590657, - 64.9949366733646, - 64.73091452358318, - 64.62634999980443, - 64.44265562630761, - 64.44265562630761, - 64.25672877675271, - 64.18423036811288, - 64.37393429219314, - 64.14797743875157, - 62.774747472366855, - 62.66060679427305, - 62.51745100872031, - 62.65425254324648, - 63.14516388905816, - 63.4108069183416, - 64.56161136316743, - 64.9784755554036, - 65.10258782924038, - 65.60391984028705, - 66.34874631708215, - 66.37994235899973, - 65.5738301854758, - 65.14493322381558, - 64.61169725202701, - 64.59002982443009, - 64.45344785849285, - 63.504587988460486, - 63.66793771105459, - 63.80349078697593, - 63.65084010017718, - 63.706148394114926, - 64.45830541009181, - 64.56297153150541, - 64.76909266521095, - 65.3384170821311, - 64.81173852001687, - 64.21759640945974, - 64.14186665575868, - 64.15068059892393, - 63.4357275898847, - 63.11649891586443, - 63.0082938883074, - 63.03568716541642, - 63.10706108339128, - 62.31104259890723, - 61.86637317945259, - 61.90707290514262, - 61.9453838321509, - 62.20598118613347, - 63.041407967205316, - 64.55496937899395, - 65.77678851480131, - 63.89123590012053, - 65.5487962945978, - 66.26844816955915, - 66.62173389802598, - 66.52382834677613, - 66.56811630256627, - 66.86331424603458, - 66.8298293577279, - 66.6360510628727, - 66.06959970393967, - 64.73648779281521, - 63.92750965521859, - 64.44989970573492, - 64.12255633966217, - 64.37707697339695, - 65.58660374551408, - 64.98554476689881, - 66.23592209614077, - 68.3411319617164, - 71.64452901767255, - 70.18790534343617, - 69.63726717594307, - 69.36877915554157, - 67.42778251592664, - 67.17060034763043, - 67.17060034763043, - 66.59542773893459, - 67.05754879085566, - 67.83938985807362, - 66.97690692581908, - 68.62229635942921, - 68.62229635942921, - 67.3268484344104, - 64.52124371670904, - 73.85537140575738, - 73.85537140575738, - 74.58933183145002, - 75.7356149688712, - 66.98012832572924, - 66.0679423497492, - 63.649991550905696, - 63.8881853152276, - 65.81100602820875, - 67.9986574250136, - 67.7028563529933, - 67.91311441612649, - 63.28511287042659, - 80.48896366673723, - 88.21611033780027, - 66.82171719325113, - 78.67038993108923, - 76.77079647385692, - 76.07269176161505, - 70.46393038836014, - 64.46193192356492, - 65.53768062350063, - 68.33088186501404, - 71.49226949961704, - 99.04164532396217, - 91.43854082623541, - 69.73707918734094, - 69.05808962298002, - 69.29176079484989, - 64.80823423367524, - 63.63587012133844, - 63.1094373744005, - 63.14521402100748, - 62.988123379500145, - 62.953915131686415, - 64.37433110766544, - 64.92986972262807, - 66.038679924551, - 75.05544289599051, - 67.86116282850239, - 69.88028927482365, - 75.58400809668386, - 85.66871505146574, - 84.53204487819774, - 76.26625320208602, - 63.030256500981146, - 64.93169800478738, - 64.78514610032701, - 63.850116192963974, - 63.73121936383448, - 63.581428362909634, - 63.462715732899625, - 63.54463610039599, - 63.61486750942343, - 63.261278944505456, - 69.21346364780159, - 62.929006719435634, - 63.83137293181157, - 65.47850201623581, - 71.31185816574305, - 73.60134152466871, - 73.60134152466871, - 71.48574130213231, - 71.22575110812232, - 70.90159728542723, - 70.5096395870723, - 68.97568392017676, - 68.16147159654895, - 66.84930018856073, - 65.43821163703953, - 64.17295696990104, - 108.1719091774194, - 108.48205217423666, - 108.79986208952556, - 108.7411101427096, - 107.98864196482138, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006 - ] - } - ], - "layout": { - "autosize": false, - "font": { - "color": "black", - "family": "Courier New, monospace", - "size": 22 - }, - "height": 600, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Range of Motion kneeRight" - }, - "width": 750, - "xaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "time [s]" - } - }, - "yaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "ROM [degrees]" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "linkText": "Export to plot.ly", - "plotlyServerURL": "https://plot.ly", - "showLink": false - }, - "data": [ - { - "line": { - "color": "blue", - "width": 3 - }, - "mode": "lines", - "name": "Real trend", - "type": "scatter", - "x": [ - 1499.2411363124847, - 1499.3432846069336, - 1499.4427211284637, - 1499.54013133049, - 1499.6420300006866, - 1499.744064092636, - 1499.8401839733124, - 1499.9462168216705, - 1500.0419936180115, - 1500.1414563655853, - 1500.2422320842743, - 1500.3411314487457, - 1500.441514492035, - 1500.541243314743, - 1500.6429286003113, - 1500.7421760559082, - 1500.8417778015137, - 1500.9413657188416, - 1501.0417659282684, - 1501.1428897380829, - 1501.240436553955, - 1501.3419153690338, - 1501.441132068634, - 1501.5403683185577, - 1501.6449313163757, - 1501.7413523197174, - 1501.8423101902008, - 1501.9408650398254, - 1502.04141497612, - 1502.1416535377502, - 1502.2421522140503, - 1502.3436872959137, - 1502.4428606033325, - 1502.5419516563416, - 1502.6438164710999, - 1502.739751815796, - 1502.839929819107, - 1502.9432377815247, - 1503.0396859645844, - 1503.1407148838043, - 1503.2416439056396, - 1503.3399159908295, - 1503.4405806064606, - 1503.542091369629, - 1503.6399137973785, - 1503.7397291660309, - 1503.8402659893036, - 1503.9417126178741, - 1504.0408883094788, - 1504.1431605815887, - 1504.2412109375, - 1504.3424327373505, - 1504.442084312439, - 1504.5419890880585, - 1504.6418566703796, - 1504.7421357631683, - 1504.8420453071594, - 1504.9417133331299, - 1505.0427649021149, - 1505.1421146392822, - 1505.2413144111633, - 1505.3408071994781, - 1505.4415457248688, - 1505.542934179306, - 1505.6415820121765, - 1505.741807460785, - 1505.8417615890503, - 1505.9422342777252, - 1506.0417664051056, - 1506.142252922058, - 1506.2424128055573, - 1506.3428943157196, - 1506.4433236122131, - 1506.5426783561707, - 1506.6421117782593, - 1506.74356341362, - 1506.8419032096863, - 1506.9436628818512, - 1507.042890548706, - 1507.143632888794, - 1507.2437996864319, - 1507.34317612648, - 1507.4439723491669, - 1507.5464203357697, - 1507.646990776062, - 1507.743609905243, - 1507.844081878662, - 1507.944857597351, - 1508.0438890457153, - 1508.143606185913, - 1508.2456514835358, - 1508.3450417518616, - 1508.444191455841, - 1508.5442969799042, - 1508.6431493759155, - 1508.7441477775574, - 1508.8442180156708, - 1508.9457623958588, - 1509.0446989536285, - 1509.1442427635193, - 1509.2483496665955, - 1509.348049879074, - 1509.447769165039, - 1509.5452642440796, - 1509.6454932689667, - 1509.7466208934784, - 1509.8461413383484, - 1509.9450035095215, - 1510.0446655750275, - 1510.1453218460083, - 1510.2444643974304, - 1510.3476753234863, - 1510.444744348526, - 1510.5449130535126, - 1510.6449630260468, - 1510.7453105449677, - 1510.8460247516632, - 1510.9460620880127, - 1511.0450239181519, - 1511.147045135498, - 1511.2464575767517, - 1511.3476495742798, - 1511.4461619853973, - 1511.5460538864136, - 1511.6458253860474, - 1511.7523272037506, - 1511.8473920822144, - 1511.9467968940735, - 1512.0458340644836, - 1512.14905834198, - 1512.2465064525604, - 1512.3464360237122, - 1512.4465262889862, - 1512.5464425086975, - 1512.6461458206177, - 1512.7456891536713, - 1512.846199274063, - 1512.9469623565674, - 1513.046472787857, - 1513.1472702026367, - 1513.2464673519135, - 1513.3472352027893, - 1513.4477665424347, - 1513.5469961166382, - 1513.6465792655945, - 1513.7474553585052, - 1513.8473408222198, - 1513.9478917121887, - 1514.048181295395, - 1514.1470139026642, - 1514.2469763755798, - 1514.347504377365, - 1514.4472517967224, - 1514.548014163971, - 1514.6466579437256, - 1514.747255563736, - 1514.8468098640442, - 1514.9472517967224, - 1515.0483257770538, - 1515.1476039886475, - 1515.2474853992462, - 1515.349123954773, - 1515.448129415512, - 1515.5479564666748, - 1515.6483643054962, - 1515.7478876113892, - 1515.848218679428, - 1515.9479448795319, - 1516.0482194423676, - 1516.149117231369, - 1516.24773478508, - 1516.3488357067108, - 1516.4485018253326, - 1516.548581123352, - 1516.6529862880707, - 1516.7489988803864, - 1516.8483703136444, - 1516.9493639469147, - 1517.0485661029816, - 1517.1542015075684, - 1517.2489612102509, - 1517.3534693717957, - 1517.4531128406525, - 1517.553725719452, - 1517.6531822681427, - 1517.7508800029755, - 1517.8505020141602, - 1517.9501507282257, - 1518.0533425807953, - 1518.154797554016, - 1518.252271413803, - 1518.3584887981415, - 1518.4496307373047, - 1518.5517852306366, - 1518.6547417640686, - 1518.751220703125, - 1518.8547055721283, - 1518.9500937461853, - 1519.0509328842163, - 1519.1500902175903, - 1519.2508342266083, - 1519.3509469032288, - 1519.4529166221619, - 1519.552564382553, - 1519.6508638858795, - 1519.7502257823944, - 1519.8513631820679, - 1519.9507722854614, - 1520.0511844158173, - 1520.1549203395844, - 1520.2553119659424, - 1520.355444908142, - 1520.4572768211365, - 1520.5562913417816, - 1520.6547539234161, - 1520.7517511844635, - 1520.852136850357, - 1520.956214427948, - 1521.0517673492432, - 1521.151982307434, - 1521.2533135414124, - 1521.3525230884552, - 1521.4546430110931, - 1521.5537049770355, - 1521.6560616493225, - 1521.756957769394, - 1521.861038684845, - 1521.9608080387115, - 1522.0553195476532, - 1522.1532826423645, - 1522.2527394294739, - 1522.3522148132324, - 1522.4540903568268, - 1522.5571751594543, - 1522.654535293579, - 1522.7544548511505, - 1522.8560378551483, - 1522.953887462616, - 1523.0526440143585, - 1523.1566863059998, - 1523.2580780982971, - 1523.3567478656769, - 1523.454469203949, - 1523.5542244911194, - 1523.658311843872, - 1523.7581009864807, - 1523.8582689762115, - 1523.953364610672, - 1524.054563999176, - 1524.1584029197693, - 1524.2576098442078, - 1524.3543453216553, - 1524.4550700187683, - 1524.5540347099304, - 1524.6535897254944, - 1524.753868341446, - 1524.853411436081, - 1524.95521068573, - 1525.054139137268, - 1525.1547272205353, - 1525.2555606365204, - 1525.3549020290375, - 1525.4566402435303, - 1525.5587475299835, - 1525.6535289287567, - 1525.7547373771667, - 1525.8536713123322, - 1525.9546175003052, - 1526.0546753406525, - 1526.1549615859985, - 1526.255040884018, - 1526.3548610210419, - 1526.454764842987, - 1526.5555267333984, - 1526.6554877758026, - 1526.7556302547455, - 1526.8551664352417, - 1526.9557905197144, - 1527.0557622909546, - 1527.1561093330383, - 1527.2571275234222, - 1527.356971502304, - 1527.457272529602, - 1527.5553719997406, - 1527.6574912071228, - 1527.757332086563, - 1527.8562273979187, - 1527.9594457149506, - 1528.0566897392273, - 1528.1583421230316, - 1528.2581007480621, - 1528.355853319168, - 1528.4608187675476, - 1528.5574316978455, - 1528.6561155319214, - 1528.7592558860779, - 1528.8586099147797, - 1528.9628987312317, - 1529.0560810565948, - 1529.1571590900421, - 1529.2560682296753, - 1529.3564767837524, - 1529.456878900528, - 1529.5586001873016, - 1529.657800912857, - 1529.7575800418854, - 1529.8577151298523, - 1529.9580373764038, - 1530.0567288398743, - 1530.157428264618, - 1530.2587399482727, - 1530.3589704036713, - 1530.457849740982, - 1530.5578382015228, - 1530.658446073532, - 1530.757824897766, - 1530.8616199493408, - 1530.960708618164, - 1531.059900522232, - 1531.162596464157, - 1531.2573883533478, - 1531.3600792884827, - 1531.458923816681, - 1531.5627195835114, - 1531.6612637043, - 1531.7576656341553, - 1531.8620171546936, - 1531.9599452018738, - 1532.0599632263184, - 1532.1607375144958, - 1532.259782075882, - 1532.3589525222778, - 1532.4589982032776, - 1532.5596570968628, - 1532.660763502121, - 1532.759989976883, - 1532.859920501709, - 1532.9633507728577, - 1533.0590443611145, - 1533.159485578537, - 1533.2591478824615, - 1533.358909368515, - 1533.4588725566864, - 1533.5592203140259, - 1533.6601333618164, - 1533.758960723877, - 1533.8600804805756, - 1533.9596378803253, - 1534.0594065189362, - 1534.1598281860352, - 1534.2596225738525, - 1534.360122680664, - 1534.4612867832184, - 1534.5604510307312, - 1534.6615297794342, - 1534.76198220253, - 1534.8614101409912, - 1534.9614522457123, - 1535.0600357055664, - 1535.1603939533234, - 1535.2622575759888, - 1535.3602058887482, - 1535.462120294571, - 1535.56028008461, - 1535.6601366996765, - 1535.7611837387085, - 1535.8639693260193, - 1535.9614548683167, - 1536.06116604805, - 1536.1607356071472, - 1536.2609808444977, - 1536.3626313209534, - 1536.4609956741333, - 1536.564481496811, - 1536.6640095710754, - 1536.763158082962, - 1536.8629369735718, - 1536.9626727104187, - 1537.0616796016693, - 1537.1621129512787, - 1537.2617573738098, - 1537.3618972301483, - 1537.462711572647, - 1537.562515258789, - 1537.6621596813202, - 1537.7639846801758, - 1537.8620209693909, - 1537.9622814655304, - 1538.0627496242523, - 1538.1621263027191, - 1538.2627971172333, - 1538.366781949997, - 1538.4637882709503, - 1538.563273191452, - 1538.66330909729, - 1538.7667174339294, - 1538.8636915683746, - 1538.9630060195923, - 1539.063859462738, - 1539.1625623703003, - 1539.2660901546478, - 1539.3630833625793, - 1539.464448928833, - 1539.5636985301971, - 1539.6643221378326, - 1539.7645237445831, - 1539.8643732070923, - 1539.9644606113434, - 1540.0639703273773, - 1540.1641156673431, - 1540.2658836841583, - 1540.3652892112732, - 1540.4671607017517, - 1540.5652508735657, - 1540.669272184372, - 1540.7651839256287, - 1540.8669271469116, - 1540.9673836231232, - 1541.0654036998749, - 1541.1660828590393, - 1541.2674746513367, - 1541.3676433563232, - 1541.4656250476837, - 1541.5665922164917, - 1541.6681351661682, - 1541.7672548294067, - 1541.867030620575, - 1541.9676649570465, - 1542.0670235157013, - 1542.1689057350159, - 1542.2671897411346, - 1542.3672127723694, - 1542.4686870574951, - 1542.5665442943573, - 1542.6705791950226, - 1542.7696046829224, - 1542.8668971061707, - 1542.966644525528, - 1543.0735685825348, - 1543.1732482910156, - 1543.267774105072, - 1543.3676788806915, - 1543.4672544002533, - 1543.5671184062958, - 1543.6677463054657, - 1543.7675108909607, - 1543.8679871559143, - 1543.9693717956543, - 1544.0663883686066, - 1544.1677677631378, - 1544.268888950348, - 1544.3663485050201, - 1544.4664885997772, - 1544.5660860538483, - 1544.6669471263885, - 1544.76717877388, - 1544.8672885894775, - 1544.9685242176056, - 1545.0670084953308, - 1545.1677951812744, - 1545.2673869132996, - 1545.3672273159027, - 1545.467891216278, - 1545.575178861618, - 1545.6677899360657, - 1545.7664551734924, - 1545.8665204048157, - 1545.9671485424042, - 1546.0674130916595, - 1546.1681797504425, - 1546.2676408290863, - 1546.367078781128, - 1546.4679577350616, - 1546.5685453414917, - 1546.6769742965698, - 1546.7727680206299, - 1546.8680868148804, - 1546.9686315059662, - 1547.069181919098, - 1547.167875289917, - 1547.2677521705627, - 1547.3686332702637, - 1547.4707067012787, - 1547.5683662891388, - 1547.6724834442139, - 1547.769639492035, - 1547.8712072372437, - 1547.9770529270172, - 1548.072209596634, - 1548.173274755478, - 1548.2715876102448, - 1548.371628522873, - 1548.4709198474884, - 1548.5714690685272, - 1548.671296596527, - 1548.7715110778809, - 1548.8716838359833, - 1548.97434091568, - 1549.070969581604, - 1549.174753665924, - 1549.2744188308716, - 1549.3733451366425, - 1549.4734070301056, - 1549.5742897987366, - 1549.6723790168762, - 1549.7728595733643, - 1549.8727250099182, - 1549.9772119522095, - 1550.0720105171204, - 1550.1710896492004, - 1550.2725031375885, - 1550.3713836669922, - 1550.4781966209412, - 1550.5779829025269, - 1550.6775233745575, - 1550.774284362793, - 1550.87375998497, - 1550.979849100113, - 1551.0752232074738, - 1551.1747436523438, - 1551.2786514759064, - 1551.3792498111725, - 1551.478197336197, - 1551.579080581665, - 1551.67942070961, - 1551.77863407135, - 1551.880181312561, - 1551.9783499240875, - 1552.0735130310059, - 1552.1743123531342, - 1552.2738902568817, - 1552.3736426830292, - 1552.4735062122345, - 1552.5737590789795, - 1552.6750376224518, - 1552.774917125702, - 1552.874896287918, - 1552.9747967720032, - 1553.0752203464508, - 1553.1760432720184, - 1553.2762243747711, - 1553.3725430965424, - 1553.472339630127, - 1553.5719089508057, - 1553.671792268753, - 1553.7730875015259, - 1553.8719074726105, - 1553.9732356071472, - 1554.072648525238, - 1554.172200679779, - 1554.2724151611328, - 1554.3731021881104, - 1554.4731767177582, - 1554.5727956295013, - 1554.673753976822, - 1554.7773764133453, - 1554.8747208118439, - 1554.9741613864899, - 1555.0747776031494, - 1555.1755096912384, - 1555.279501914978, - 1555.3744592666626, - 1555.4760527610779, - 1555.5740582942963, - 1555.6754522323608, - 1555.7753405570984, - 1555.8802742958069, - 1555.9759588241577, - 1556.074725151062, - 1556.1759669780731, - 1556.2756700515747, - 1556.3753113746643, - 1556.4837319850922, - 1556.5750107765198, - 1556.6751630306244, - 1556.7765123844147, - 1556.8782150745392, - 1556.9785902500153, - 1557.0765113830566, - 1557.1777567863464, - 1557.2783045768738, - 1557.3775517940521, - 1557.4797596931458, - 1557.5780041217804, - 1557.6780152320862, - 1557.7778115272522, - 1557.876960515976, - 1557.9770517349243, - 1558.076621055603, - 1558.180831193924, - 1558.2854754924774, - 1558.3767499923706, - 1558.4804351329803, - 1558.579921722412, - 1558.677288532257, - 1558.7769978046417, - 1558.8778581619263, - 1558.9787356853485, - 1559.0771126747131, - 1559.1767921447754, - 1559.278477191925, - 1559.378291606903, - 1559.4775824546814, - 1559.5807921886444, - 1559.6776638031006, - 1559.778058052063, - 1559.8830723762512, - 1559.9832768440247, - 1560.0840981006622, - 1560.1845769882202, - 1560.2789707183838, - 1560.3786268234253, - 1560.47776389122, - 1560.5785915851593, - 1560.6796667575836, - 1560.7791197299957, - 1560.87948346138, - 1560.978010892868, - 1561.0784831047058, - 1561.1786596775055, - 1561.2765908241272, - 1561.3838136196136, - 1561.4774813652039, - 1561.5815932750702, - 1561.6770639419556, - 1561.7776787281036, - 1561.877956867218, - 1561.9779877662659, - 1562.0776226520538, - 1562.1785109043121, - 1562.2782335281372, - 1562.3815352916718, - 1562.4804756641388, - 1562.5775909423828, - 1562.6809916496277, - 1562.7826879024506, - 1562.8828573226929, - 1562.9838132858276, - 1563.0780189037323, - 1563.1789796352386, - 1563.2802908420563, - 1563.3813588619232, - 1563.480254650116, - 1563.5809354782104, - 1563.680933713913, - 1563.7801339626312, - 1563.880723953247, - 1563.9811205863953, - 1564.0802714824677, - 1564.1794838905334, - 1564.2845251560211, - 1564.3794884681702, - 1564.4791498184204, - 1564.5835678577423, - 1564.6808955669403, - 1564.7788915634155, - 1564.8795139789581, - 1564.9836478233337, - 1565.07950258255, - 1565.1825184822083, - 1565.2819392681122, - 1565.380526304245, - 1565.4812269210815, - 1565.5805473327637, - 1565.684333562851, - 1565.785714149475, - 1565.8849048614502, - 1565.9807634353638, - 1566.0813398361206, - 1566.1810414791107, - 1566.283430814743, - 1566.383866071701, - 1566.484350681305, - 1566.5904591083527, - 1566.6800830364227, - 1566.7800760269165, - 1566.8805696964264, - 1566.9809465408325, - 1567.0811483860016, - 1567.1813688278198, - 1567.2823538780212, - 1567.3819682598114, - 1567.4816749095917, - 1567.5819344520569, - 1567.6825020313263, - 1567.781952381134, - 1567.881548166275, - 1567.982048034668, - 1568.0820636749268, - 1568.1820254325867, - 1568.281239271164, - 1568.3812518119812, - 1568.4811825752258, - 1568.5819082260132, - 1568.6818380355835, - 1568.7822697162628, - 1568.8816404342651, - 1568.9819226264954, - 1569.0865490436554, - 1569.186048746109, - 1569.282539844513, - 1569.3828761577606, - 1569.4822869300842, - 1569.58291721344, - 1569.6838479042053, - 1569.7846109867096, - 1569.8823783397675, - 1569.9836070537567, - 1570.0831260681152, - 1570.1819534301758, - 1570.2878515720367, - 1570.3924379348755, - 1570.4909138679504, - 1570.5902736186981, - 1570.6988174915314, - 1570.7904138565063, - 1570.8904962539673, - 1570.9899044036865, - 1571.0898532867432, - 1571.1898276805878, - 1571.289258480072, - 1571.3903584480286, - 1571.4897434711456, - 1571.5904321670532, - 1571.6920642852783, - 1571.7911806106567, - 1571.8918182849884, - 1571.9967155456543, - 1572.1017162799835, - 1572.2009263038635, - 1572.2912111282349, - 1572.3967843055725, - 1572.4991810321808, - 1572.5943253040314, - 1572.6906354427338, - 1572.7905294895172, - 1572.891780614853, - 1572.9911139011383, - 1573.0927135944366, - 1573.1920285224915 - ], - "y": [ - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90 - ] - } - ], - "layout": { - "autosize": false, - "font": { - "color": "black", - "family": "Courier New, monospace", - "size": 22 - }, - "height": 600, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Range of Motion ankleRight" - }, - "width": 750, - "xaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "time [s]" - } - }, - "yaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "ROM [degrees]" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "linkText": "Export to plot.ly", - "plotlyServerURL": "https://plot.ly", - "showLink": false - }, - "data": [ - { - "line": { - "color": "blue", - "width": 3 - }, - "mode": "lines", - "name": "Feet distance", - "type": "scatter", - "x": [ - 1499.2411363124847, - 1499.3432846069336, - 1499.4427211284637, - 1499.54013133049, - 1499.6420300006866, - 1499.744064092636, - 1499.8401839733124, - 1499.9462168216705, - 1500.0419936180115, - 1500.1414563655853, - 1500.2422320842743, - 1500.3411314487457, - 1500.441514492035, - 1500.541243314743, - 1500.6429286003113, - 1500.7421760559082, - 1500.8417778015137, - 1500.9413657188416, - 1501.0417659282684, - 1501.1428897380829, - 1501.240436553955, - 1501.3419153690338, - 1501.441132068634, - 1501.5403683185577, - 1501.6449313163757, - 1501.7413523197174, - 1501.8423101902008, - 1501.9408650398254, - 1502.04141497612, - 1502.1416535377502, - 1502.2421522140503, - 1502.3436872959137, - 1502.4428606033325, - 1502.5419516563416, - 1502.6438164710999, - 1502.739751815796, - 1502.839929819107, - 1502.9432377815247, - 1503.0396859645844, - 1503.1407148838043, - 1503.2416439056396, - 1503.3399159908295, - 1503.4405806064606, - 1503.542091369629, - 1503.6399137973785, - 1503.7397291660309, - 1503.8402659893036, - 1503.9417126178741, - 1504.0408883094788, - 1504.1431605815887, - 1504.2412109375, - 1504.3424327373505, - 1504.442084312439, - 1504.5419890880585, - 1504.6418566703796, - 1504.7421357631683, - 1504.8420453071594, - 1504.9417133331299, - 1505.0427649021149, - 1505.1421146392822, - 1505.2413144111633, - 1505.3408071994781, - 1505.4415457248688, - 1505.542934179306, - 1505.6415820121765, - 1505.741807460785, - 1505.8417615890503, - 1505.9422342777252, - 1506.0417664051056, - 1506.142252922058, - 1506.2424128055573, - 1506.3428943157196, - 1506.4433236122131, - 1506.5426783561707, - 1506.6421117782593, - 1506.74356341362, - 1506.8419032096863, - 1506.9436628818512, - 1507.042890548706, - 1507.143632888794, - 1507.2437996864319, - 1507.34317612648, - 1507.4439723491669, - 1507.5464203357697, - 1507.646990776062, - 1507.743609905243, - 1507.844081878662, - 1507.944857597351, - 1508.0438890457153, - 1508.143606185913, - 1508.2456514835358, - 1508.3450417518616, - 1508.444191455841, - 1508.5442969799042, - 1508.6431493759155, - 1508.7441477775574, - 1508.8442180156708, - 1508.9457623958588, - 1509.0446989536285, - 1509.1442427635193, - 1509.2483496665955, - 1509.348049879074, - 1509.447769165039, - 1509.5452642440796, - 1509.6454932689667, - 1509.7466208934784, - 1509.8461413383484, - 1509.9450035095215, - 1510.0446655750275, - 1510.1453218460083, - 1510.2444643974304, - 1510.3476753234863, - 1510.444744348526, - 1510.5449130535126, - 1510.6449630260468, - 1510.7453105449677, - 1510.8460247516632, - 1510.9460620880127, - 1511.0450239181519, - 1511.147045135498, - 1511.2464575767517, - 1511.3476495742798, - 1511.4461619853973, - 1511.5460538864136, - 1511.6458253860474, - 1511.7523272037506, - 1511.8473920822144, - 1511.9467968940735, - 1512.0458340644836, - 1512.14905834198, - 1512.2465064525604, - 1512.3464360237122, - 1512.4465262889862, - 1512.5464425086975, - 1512.6461458206177, - 1512.7456891536713, - 1512.846199274063, - 1512.9469623565674, - 1513.046472787857, - 1513.1472702026367, - 1513.2464673519135, - 1513.3472352027893, - 1513.4477665424347, - 1513.5469961166382, - 1513.6465792655945, - 1513.7474553585052, - 1513.8473408222198, - 1513.9478917121887, - 1514.048181295395, - 1514.1470139026642, - 1514.2469763755798, - 1514.347504377365, - 1514.4472517967224, - 1514.548014163971, - 1514.6466579437256, - 1514.747255563736, - 1514.8468098640442, - 1514.9472517967224, - 1515.0483257770538, - 1515.1476039886475, - 1515.2474853992462, - 1515.349123954773, - 1515.448129415512, - 1515.5479564666748, - 1515.6483643054962, - 1515.7478876113892, - 1515.848218679428, - 1515.9479448795319, - 1516.0482194423676, - 1516.149117231369, - 1516.24773478508, - 1516.3488357067108, - 1516.4485018253326, - 1516.548581123352, - 1516.6529862880707, - 1516.7489988803864, - 1516.8483703136444, - 1516.9493639469147, - 1517.0485661029816, - 1517.1542015075684, - 1517.2489612102509, - 1517.3534693717957, - 1517.4531128406525, - 1517.553725719452, - 1517.6531822681427, - 1517.7508800029755, - 1517.8505020141602, - 1517.9501507282257, - 1518.0533425807953, - 1518.154797554016, - 1518.252271413803, - 1518.3584887981415, - 1518.4496307373047, - 1518.5517852306366, - 1518.6547417640686, - 1518.751220703125, - 1518.8547055721283, - 1518.9500937461853, - 1519.0509328842163, - 1519.1500902175903, - 1519.2508342266083, - 1519.3509469032288, - 1519.4529166221619, - 1519.552564382553, - 1519.6508638858795, - 1519.7502257823944, - 1519.8513631820679, - 1519.9507722854614, - 1520.0511844158173, - 1520.1549203395844, - 1520.2553119659424, - 1520.355444908142, - 1520.4572768211365, - 1520.5562913417816, - 1520.6547539234161, - 1520.7517511844635, - 1520.852136850357, - 1520.956214427948, - 1521.0517673492432, - 1521.151982307434, - 1521.2533135414124, - 1521.3525230884552, - 1521.4546430110931, - 1521.5537049770355, - 1521.6560616493225, - 1521.756957769394, - 1521.861038684845, - 1521.9608080387115, - 1522.0553195476532, - 1522.1532826423645, - 1522.2527394294739, - 1522.3522148132324, - 1522.4540903568268, - 1522.5571751594543, - 1522.654535293579, - 1522.7544548511505, - 1522.8560378551483, - 1522.953887462616, - 1523.0526440143585, - 1523.1566863059998, - 1523.2580780982971, - 1523.3567478656769, - 1523.454469203949, - 1523.5542244911194, - 1523.658311843872, - 1523.7581009864807, - 1523.8582689762115, - 1523.953364610672, - 1524.054563999176, - 1524.1584029197693, - 1524.2576098442078, - 1524.3543453216553, - 1524.4550700187683, - 1524.5540347099304, - 1524.6535897254944, - 1524.753868341446, - 1524.853411436081, - 1524.95521068573, - 1525.054139137268, - 1525.1547272205353, - 1525.2555606365204, - 1525.3549020290375, - 1525.4566402435303, - 1525.5587475299835, - 1525.6535289287567, - 1525.7547373771667, - 1525.8536713123322, - 1525.9546175003052, - 1526.0546753406525, - 1526.1549615859985, - 1526.255040884018, - 1526.3548610210419, - 1526.454764842987, - 1526.5555267333984, - 1526.6554877758026, - 1526.7556302547455, - 1526.8551664352417, - 1526.9557905197144, - 1527.0557622909546, - 1527.1561093330383, - 1527.2571275234222, - 1527.356971502304, - 1527.457272529602, - 1527.5553719997406, - 1527.6574912071228, - 1527.757332086563, - 1527.8562273979187, - 1527.9594457149506, - 1528.0566897392273, - 1528.1583421230316, - 1528.2581007480621, - 1528.355853319168, - 1528.4608187675476, - 1528.5574316978455, - 1528.6561155319214, - 1528.7592558860779, - 1528.8586099147797, - 1528.9628987312317, - 1529.0560810565948, - 1529.1571590900421, - 1529.2560682296753, - 1529.3564767837524, - 1529.456878900528, - 1529.5586001873016, - 1529.657800912857, - 1529.7575800418854, - 1529.8577151298523, - 1529.9580373764038, - 1530.0567288398743, - 1530.157428264618, - 1530.2587399482727, - 1530.3589704036713, - 1530.457849740982, - 1530.5578382015228, - 1530.658446073532, - 1530.757824897766, - 1530.8616199493408, - 1530.960708618164, - 1531.059900522232, - 1531.162596464157, - 1531.2573883533478, - 1531.3600792884827, - 1531.458923816681, - 1531.5627195835114, - 1531.6612637043, - 1531.7576656341553, - 1531.8620171546936, - 1531.9599452018738, - 1532.0599632263184, - 1532.1607375144958, - 1532.259782075882, - 1532.3589525222778, - 1532.4589982032776, - 1532.5596570968628, - 1532.660763502121, - 1532.759989976883, - 1532.859920501709, - 1532.9633507728577, - 1533.0590443611145, - 1533.159485578537, - 1533.2591478824615, - 1533.358909368515, - 1533.4588725566864, - 1533.5592203140259, - 1533.6601333618164, - 1533.758960723877, - 1533.8600804805756, - 1533.9596378803253, - 1534.0594065189362, - 1534.1598281860352, - 1534.2596225738525, - 1534.360122680664, - 1534.4612867832184, - 1534.5604510307312, - 1534.6615297794342, - 1534.76198220253, - 1534.8614101409912, - 1534.9614522457123, - 1535.0600357055664, - 1535.1603939533234, - 1535.2622575759888, - 1535.3602058887482, - 1535.462120294571, - 1535.56028008461, - 1535.6601366996765, - 1535.7611837387085, - 1535.8639693260193, - 1535.9614548683167, - 1536.06116604805, - 1536.1607356071472, - 1536.2609808444977, - 1536.3626313209534, - 1536.4609956741333, - 1536.564481496811, - 1536.6640095710754, - 1536.763158082962, - 1536.8629369735718, - 1536.9626727104187, - 1537.0616796016693, - 1537.1621129512787, - 1537.2617573738098, - 1537.3618972301483, - 1537.462711572647, - 1537.562515258789, - 1537.6621596813202, - 1537.7639846801758, - 1537.8620209693909, - 1537.9622814655304, - 1538.0627496242523, - 1538.1621263027191, - 1538.2627971172333, - 1538.366781949997, - 1538.4637882709503, - 1538.563273191452, - 1538.66330909729, - 1538.7667174339294, - 1538.8636915683746, - 1538.9630060195923, - 1539.063859462738, - 1539.1625623703003, - 1539.2660901546478, - 1539.3630833625793, - 1539.464448928833, - 1539.5636985301971, - 1539.6643221378326, - 1539.7645237445831, - 1539.8643732070923, - 1539.9644606113434, - 1540.0639703273773, - 1540.1641156673431, - 1540.2658836841583, - 1540.3652892112732, - 1540.4671607017517, - 1540.5652508735657, - 1540.669272184372, - 1540.7651839256287, - 1540.8669271469116, - 1540.9673836231232, - 1541.0654036998749, - 1541.1660828590393, - 1541.2674746513367, - 1541.3676433563232, - 1541.4656250476837, - 1541.5665922164917, - 1541.6681351661682, - 1541.7672548294067, - 1541.867030620575, - 1541.9676649570465, - 1542.0670235157013, - 1542.1689057350159, - 1542.2671897411346, - 1542.3672127723694, - 1542.4686870574951, - 1542.5665442943573, - 1542.6705791950226, - 1542.7696046829224, - 1542.8668971061707, - 1542.966644525528, - 1543.0735685825348, - 1543.1732482910156, - 1543.267774105072, - 1543.3676788806915, - 1543.4672544002533, - 1543.5671184062958, - 1543.6677463054657, - 1543.7675108909607, - 1543.8679871559143, - 1543.9693717956543, - 1544.0663883686066, - 1544.1677677631378, - 1544.268888950348, - 1544.3663485050201, - 1544.4664885997772, - 1544.5660860538483, - 1544.6669471263885, - 1544.76717877388, - 1544.8672885894775, - 1544.9685242176056, - 1545.0670084953308, - 1545.1677951812744, - 1545.2673869132996, - 1545.3672273159027, - 1545.467891216278, - 1545.575178861618, - 1545.6677899360657, - 1545.7664551734924, - 1545.8665204048157, - 1545.9671485424042, - 1546.0674130916595, - 1546.1681797504425, - 1546.2676408290863, - 1546.367078781128, - 1546.4679577350616, - 1546.5685453414917, - 1546.6769742965698, - 1546.7727680206299, - 1546.8680868148804, - 1546.9686315059662, - 1547.069181919098, - 1547.167875289917, - 1547.2677521705627, - 1547.3686332702637, - 1547.4707067012787, - 1547.5683662891388, - 1547.6724834442139, - 1547.769639492035, - 1547.8712072372437, - 1547.9770529270172, - 1548.072209596634, - 1548.173274755478, - 1548.2715876102448, - 1548.371628522873, - 1548.4709198474884, - 1548.5714690685272, - 1548.671296596527, - 1548.7715110778809, - 1548.8716838359833, - 1548.97434091568, - 1549.070969581604, - 1549.174753665924, - 1549.2744188308716, - 1549.3733451366425, - 1549.4734070301056, - 1549.5742897987366, - 1549.6723790168762, - 1549.7728595733643, - 1549.8727250099182, - 1549.9772119522095, - 1550.0720105171204, - 1550.1710896492004, - 1550.2725031375885, - 1550.3713836669922, - 1550.4781966209412, - 1550.5779829025269, - 1550.6775233745575, - 1550.774284362793, - 1550.87375998497, - 1550.979849100113, - 1551.0752232074738, - 1551.1747436523438, - 1551.2786514759064, - 1551.3792498111725, - 1551.478197336197, - 1551.579080581665, - 1551.67942070961, - 1551.77863407135, - 1551.880181312561, - 1551.9783499240875, - 1552.0735130310059, - 1552.1743123531342, - 1552.2738902568817, - 1552.3736426830292, - 1552.4735062122345, - 1552.5737590789795, - 1552.6750376224518, - 1552.774917125702, - 1552.874896287918, - 1552.9747967720032, - 1553.0752203464508, - 1553.1760432720184, - 1553.2762243747711, - 1553.3725430965424, - 1553.472339630127, - 1553.5719089508057, - 1553.671792268753, - 1553.7730875015259, - 1553.8719074726105, - 1553.9732356071472, - 1554.072648525238, - 1554.172200679779, - 1554.2724151611328, - 1554.3731021881104, - 1554.4731767177582, - 1554.5727956295013, - 1554.673753976822, - 1554.7773764133453, - 1554.8747208118439, - 1554.9741613864899, - 1555.0747776031494, - 1555.1755096912384, - 1555.279501914978, - 1555.3744592666626, - 1555.4760527610779, - 1555.5740582942963, - 1555.6754522323608, - 1555.7753405570984, - 1555.8802742958069, - 1555.9759588241577, - 1556.074725151062, - 1556.1759669780731, - 1556.2756700515747, - 1556.3753113746643, - 1556.4837319850922, - 1556.5750107765198, - 1556.6751630306244, - 1556.7765123844147, - 1556.8782150745392, - 1556.9785902500153, - 1557.0765113830566, - 1557.1777567863464, - 1557.2783045768738, - 1557.3775517940521, - 1557.4797596931458, - 1557.5780041217804, - 1557.6780152320862, - 1557.7778115272522, - 1557.876960515976, - 1557.9770517349243, - 1558.076621055603, - 1558.180831193924, - 1558.2854754924774, - 1558.3767499923706, - 1558.4804351329803, - 1558.579921722412, - 1558.677288532257, - 1558.7769978046417, - 1558.8778581619263, - 1558.9787356853485, - 1559.0771126747131, - 1559.1767921447754, - 1559.278477191925, - 1559.378291606903, - 1559.4775824546814, - 1559.5807921886444, - 1559.6776638031006, - 1559.778058052063, - 1559.8830723762512, - 1559.9832768440247, - 1560.0840981006622, - 1560.1845769882202, - 1560.2789707183838, - 1560.3786268234253, - 1560.47776389122, - 1560.5785915851593, - 1560.6796667575836, - 1560.7791197299957, - 1560.87948346138, - 1560.978010892868, - 1561.0784831047058, - 1561.1786596775055, - 1561.2765908241272, - 1561.3838136196136, - 1561.4774813652039, - 1561.5815932750702, - 1561.6770639419556, - 1561.7776787281036, - 1561.877956867218, - 1561.9779877662659, - 1562.0776226520538, - 1562.1785109043121, - 1562.2782335281372, - 1562.3815352916718, - 1562.4804756641388, - 1562.5775909423828, - 1562.6809916496277, - 1562.7826879024506, - 1562.8828573226929, - 1562.9838132858276, - 1563.0780189037323, - 1563.1789796352386, - 1563.2802908420563, - 1563.3813588619232, - 1563.480254650116, - 1563.5809354782104, - 1563.680933713913, - 1563.7801339626312, - 1563.880723953247, - 1563.9811205863953, - 1564.0802714824677, - 1564.1794838905334, - 1564.2845251560211, - 1564.3794884681702, - 1564.4791498184204, - 1564.5835678577423, - 1564.6808955669403, - 1564.7788915634155, - 1564.8795139789581, - 1564.9836478233337, - 1565.07950258255, - 1565.1825184822083, - 1565.2819392681122, - 1565.380526304245, - 1565.4812269210815, - 1565.5805473327637, - 1565.684333562851, - 1565.785714149475, - 1565.8849048614502, - 1565.9807634353638, - 1566.0813398361206, - 1566.1810414791107, - 1566.283430814743, - 1566.383866071701, - 1566.484350681305, - 1566.5904591083527, - 1566.6800830364227, - 1566.7800760269165, - 1566.8805696964264, - 1566.9809465408325, - 1567.0811483860016, - 1567.1813688278198, - 1567.2823538780212, - 1567.3819682598114, - 1567.4816749095917, - 1567.5819344520569, - 1567.6825020313263, - 1567.781952381134, - 1567.881548166275, - 1567.982048034668, - 1568.0820636749268, - 1568.1820254325867, - 1568.281239271164, - 1568.3812518119812, - 1568.4811825752258, - 1568.5819082260132, - 1568.6818380355835, - 1568.7822697162628, - 1568.8816404342651, - 1568.9819226264954, - 1569.0865490436554, - 1569.186048746109, - 1569.282539844513, - 1569.3828761577606, - 1569.4822869300842, - 1569.58291721344, - 1569.6838479042053, - 1569.7846109867096, - 1569.8823783397675, - 1569.9836070537567, - 1570.0831260681152, - 1570.1819534301758, - 1570.2878515720367, - 1570.3924379348755, - 1570.4909138679504, - 1570.5902736186981, - 1570.6988174915314, - 1570.7904138565063, - 1570.8904962539673, - 1570.9899044036865, - 1571.0898532867432, - 1571.1898276805878, - 1571.289258480072, - 1571.3903584480286, - 1571.4897434711456, - 1571.5904321670532, - 1571.6920642852783, - 1571.7911806106567, - 1571.8918182849884, - 1571.9967155456543, - 1572.1017162799835, - 1572.2009263038635, - 1572.2912111282349, - 1572.3967843055725, - 1572.4991810321808, - 1572.5943253040314, - 1572.6906354427338, - 1572.7905294895172, - 1572.891780614853, - 1572.9911139011383, - 1573.0927135944366, - 1573.1920285224915 - ], - "y": [ - 0.15359923338315146, - 0.1303760705686625, - 0.11041550802496904, - 0.09432648864940461, - 0.08283308367105471, - 0.07648989396256711, - 0.07520095884755529, - 0.0780143056512787, - 0.08352989768958635, - 0.09046293523870218, - 0.10343807437971816, - 0.10939106901584048, - 0.11534356598215048, - 0.12488319529238456, - 0.13092544039248843, - 0.1362126330746686, - 0.14164981493134454, - 0.14732165235819458, - 0.15354875604950347, - 0.1578584450191121, - 0.16007301332392268, - 0.1584107412908853, - 0.1602784413476478, - 0.16499914589018025, - 0.17632792926588076, - 0.18810159261839407, - 0.1938887184956852, - 0.20030466889408322, - 0.20995703059958226, - 0.21829618477541038, - 0.22396209469629536, - 0.22977349320803442, - 0.23850548817402395, - 0.23764422433599974, - 0.23521253270579787, - 0.23152708745163056, - 0.2249441559891833, - 0.21645923036383527, - 0.20300631290846943, - 0.1881548683696105, - 0.17316913800002948, - 0.16519139784003783, - 0.1600430051196354, - 0.15430735973024617, - 0.14935379851149974, - 0.1454153177786991, - 0.14142922877115682, - 0.13827422322005173, - 0.13720090993229522, - 0.1382705934680673, - 0.14041479205146692, - 0.14270900157283456, - 0.14564005041090058, - 0.14891443119927855, - 0.1523243127615824, - 0.15411423499827437, - 0.1552683095485325, - 0.15550363458754934, - 0.1563544729380389, - 0.1584345262683066, - 0.16150536509988914, - 0.16333198152255174, - 0.1621373114158306, - 0.1597693469706479, - 0.15578299894267617, - 0.14987100281590746, - 0.14693056288655446, - 0.14595076141080088, - 0.14562885135687642, - 0.14469217195164563, - 0.14425984342211307, - 0.14423095308203807, - 0.1441092688526521, - 0.14459271142473726, - 0.1448647520690782, - 0.1452886019444032, - 0.1453189749342822, - 0.1452974623657728, - 0.14518210261853876, - 0.1445832698315057, - 0.14379237044375914, - 0.14303425772479417, - 0.14232943920308988, - 0.14110002238924768, - 0.1401645002682849, - 0.14010159228067476, - 0.14002313364968064, - 0.1399524900334541, - 0.13977176071096484, - 0.13964589983828504, - 0.13978811873409774, - 0.14070213901980452, - 0.1414362243147675, - 0.14099620820687184, - 0.14155092617309323, - 0.14190459467061384, - 0.14182546440483007, - 0.14114612598304022, - 0.13976493894266673, - 0.13868185481681194, - 0.13775049761673697, - 0.13714479656921894, - 0.13737240675556872, - 0.13734920981712362, - 0.13710891993595567, - 0.13626766382096156, - 0.1351374757552824, - 0.13348950333099413, - 0.13255268428800315, - 0.1315582568384736, - 0.13040040855943033, - 0.12933256053078332, - 0.12844700060960518, - 0.12832069549833808, - 0.1280717024220978, - 0.12787183514295214, - 0.12796821061731195, - 0.12804264768196788, - 0.1283889650029527, - 0.1288697623478332, - 0.12947930666724022, - 0.13037560823486427, - 0.13085843235131048, - 0.13118788749369636, - 0.13141625235320023, - 0.1310209652891217, - 0.13041962575682428, - 0.130251838314062, - 0.1295858732631822, - 0.128631225620906, - 0.12782971054146652, - 0.12716712590340964, - 0.12643411485012837, - 0.12602593623857944, - 0.12568664236790267, - 0.1256387453932493, - 0.12559175545468018, - 0.12673545601720856, - 0.12808326034854817, - 0.12955594602574347, - 0.13065693286229935, - 0.13122756029425797, - 0.13204347203080205, - 0.13271357330113287, - 0.13348664787285625, - 0.134154390355669, - 0.13468080229376, - 0.13498604080064597, - 0.1347534657919487, - 0.13425090199590473, - 0.13353450284354013, - 0.13295046684381182, - 0.13285251519957333, - 0.1329449680112027, - 0.13330345607322158, - 0.13360194919608012, - 0.1339613663350666, - 0.1339892042154157, - 0.13411120196647713, - 0.1343836068820606, - 0.13486602999439648, - 0.13559561530887368, - 0.1358967772268496, - 0.13572357372276833, - 0.1347673531101799, - 0.13378165991335098, - 0.13289289592192416, - 0.1318121588612353, - 0.13073136152171141, - 0.12918573639520098, - 0.12773807101520634, - 0.12626685123102932, - 0.12507461383720328, - 0.12417135672154136, - 0.12365908893945923, - 0.12407987013289727, - 0.12535536072154843, - 0.12674889803169898, - 0.12875904510816844, - 0.13085266495532594, - 0.13313727089227473, - 0.1348729864495563, - 0.136226041354934, - 0.1376540743027578, - 0.13904529149495481, - 0.1403174746026138, - 0.14106595015816673, - 0.1415388366011559, - 0.141116844806614, - 0.14049329067924313, - 0.1404334697583215, - 0.14037331409987286, - 0.14041865118466923, - 0.14083271497538094, - 0.1412475247637737, - 0.14087998547980826, - 0.14056517320911785, - 0.1405740192471816, - 0.1406516658467036, - 0.14035346378953786, - 0.13990978635286352, - 0.13956012642107735, - 0.13918360620577644, - 0.1391972694997156, - 0.1393158994406915, - 0.13956683028493144, - 0.14000701736513396, - 0.14035097496453586, - 0.14083091067765127, - 0.14126360428349644, - 0.14158232234537668, - 0.1418746940519317, - 0.1419755814510944, - 0.14165531799230535, - 0.14108196167953352, - 0.14106232819153425, - 0.14089415507647088, - 0.14079087910362006, - 0.140747248907792, - 0.14067412230129792, - 0.14071343336732664, - 0.14063294816280492, - 0.14069421422569092, - 0.14073144737140872, - 0.14070172727902666, - 0.14082130742466828, - 0.14083718677806276, - 0.14096507738665018, - 0.14092707705183768, - 0.1408686816840432, - 0.1406975864600458, - 0.14035244483249465, - 0.14008823392590036, - 0.13992034255850574, - 0.13996792042578846, - 0.14033151829271134, - 0.14080487029171423, - 0.14116931062085114, - 0.14075337971467453, - 0.14060816978166693, - 0.1401498350239936, - 0.13982152560480657, - 0.13952818745240803, - 0.1392438843154389, - 0.13953053341514207, - 0.13935342803636938, - 0.13980044636368325, - 0.14056682353682906, - 0.14118080361764587, - 0.14129809306954386, - 0.14105319280846715, - 0.1405145890410089, - 0.13964713763822761, - 0.13858121657968897, - 0.13799266228414656, - 0.13743722819657633, - 0.13680117880460285, - 0.13595424193345482, - 0.13563527757048535, - 0.13544159443294093, - 0.13572421497343343, - 0.13698373484714513, - 0.13822270757321287, - 0.13939268421160478, - 0.1400380971190162, - 0.14078323225501777, - 0.1412137033093605, - 0.14072808886441893, - 0.13999418587441242, - 0.13926238298702093, - 0.13838370919921533, - 0.1375879492117255, - 0.1370973479191735, - 0.13901141878793039, - 0.14442055877652182, - 0.14780253837670743, - 0.15544161189327815, - 0.1547640888702488, - 0.1437007805874637, - 0.12915556391999813, - 0.11285998639836128, - 0.09628568672355073, - 0.0834654315230735, - 0.07818581104823479, - 0.08295180318400924, - 0.09378377463608172, - 0.10999391100544392, - 0.12612855682876256, - 0.1401469806111303, - 0.1474732991056942, - 0.1488740251277823, - 0.14366973651908846, - 0.13338145117668831, - 0.12486455865686734, - 0.126794466938517, - 0.13889632962522866, - 0.1478440309037644, - 0.1556722639507108, - 0.1653210461667078, - 0.1716273561908855, - 0.17533525965428187, - 0.17854818059772878, - 0.1795091244652215, - 0.17975005221821733, - 0.1801075049301504, - 0.18139206986306014, - 0.18499039164940845, - 0.1890497043898043, - 0.19232809926760747, - 0.19484460739755408, - 0.1965378578501412, - 0.1982996478704112, - 0.19932254349028294, - 0.20014330109715933, - 0.1993687870766165, - 0.19785978239865473, - 0.196348714723269, - 0.19364421686090066, - 0.19081441008868494, - 0.18993078242196132, - 0.1896106267801113, - 0.18807217124968365, - 0.18730571347639693, - 0.18838871502046436, - 0.18952251854433042, - 0.19006707282565427, - 0.1914680888884373, - 0.19421945776882135, - 0.19653766309906376, - 0.19916452892160996, - 0.20301105883982898, - 0.2043887327908428, - 0.20322944777631086, - 0.19869863955649245, - 0.19225262531037243, - 0.1855858618008019, - 0.17725342016484724, - 0.17039986303438098, - 0.16632822156269825, - 0.16528075106026557, - 0.16859705541655418, - 0.17843186445345857, - 0.19078529788081558, - 0.20499028597450927, - 0.22057503477789883, - 0.23671859385338184, - 0.24966881260418877, - 0.25869181672461294, - 0.2663930409985499, - 0.27401301489099594, - 0.27853979306296817, - 0.27960487450129523, - 0.2786411791443522, - 0.27541756253627153, - 0.26981014561051586, - 0.2621684787084037, - 0.2561118508335101, - 0.24950063253566085, - 0.24328027254518444, - 0.236675827133379, - 0.23068789352768204, - 0.22474702861324214, - 0.2193856910620243, - 0.21441352693975577, - 0.2120272524208417, - 0.20771339420416676, - 0.20193304607871482, - 0.19273978002227649, - 0.18141559483882072, - 0.17113758828102232, - 0.1618470810165105, - 0.15676050396348104, - 0.15275594529941927, - 0.1520918092205958, - 0.19467714131855665, - 0.22158689908077062, - 0.18276329593602925, - 0.1483344674715086, - 0.12023642154053471, - 0.10516244512602266, - 0.10844417496748246, - 0.15685690204957756, - 0.23398887924298972, - 0.2094136173558022, - 0.18313969661052923, - 0.1546329083537307, - 0.13367267805947336, - 0.12297338186007817, - 0.12337569357747968, - 0.13504891360386453, - 0.15640983554421561, - 0.18545637543941113, - 0.22161961664531138, - 0.26336608889262764, - 0.24435704057323007, - 0.20781367970346182, - 0.20707557849773311, - 0.21128993181018327, - 0.2231448612625419, - 0.2437998998958361, - 0.272830865277882, - 0.26406629337858384, - 0.21573169523779903, - 0.21222823475747393, - 0.20908476183442634, - 0.21098124428652662, - 0.21207039977390005, - 0.21270169681197315, - 0.2162094110328234, - 0.21947567709044116, - 0.215325427774656, - 0.20924282513244372, - 0.20035794042384866, - 0.18795472750654044, - 0.17365321446309342, - 0.15708855162818433, - 0.1396857528165922, - 0.12217946460435945, - 0.10448640809258121, - 0.08731882757049395, - 0.07193053000837096, - 0.058956973509737165, - 0.05324879834744947, - 0.05050923243912485, - 0.053847954700090676, - 0.05163587903572366, - 0.04423064625743225, - 0.034310030822094446, - 0.02951041469653509, - 0.05998602266221318, - 0.09897537749377666, - 0.13913260980941766, - 0.17934057451515598, - 0.21906773305131313, - 0.25672593144018596, - 0.28633714626565204, - 0.3139179993327515, - 0.33567909676756147, - 0.3536020234279027, - 0.3583039821180556, - 0.358914823925646, - 0.33382211844958976, - 0.3040907503796084, - 0.2567773381694963, - 0.20662642593319266, - 0.15164529134691399, - 0.10753959968301081, - 0.10583691268124738, - 0.15795532526208722, - 0.23147171473292968, - 0.3064959660572875, - 0.3746239235025284, - 0.43169274181866685, - 0.47639338383524105, - 0.5058372286669887, - 0.5162528056448324, - 0.5095879563543096, - 0.48887162513694976, - 0.4643927532492005, - 0.43239453722595594, - 0.39475351175172246, - 0.3614579845768477, - 0.32601414813450863, - 0.2879373016355591, - 0.2476743414101631, - 0.20335836862816734, - 0.16452024024865367, - 0.14130289852508215, - 0.11413607515289877, - 0.08693904027475652, - 0.05968556883325972, - 0.048597555278327265, - 0.05239635767145141, - 0.060826729028859515, - 0.0634721983423879, - 0.06301253601104127, - 0.04894873375702533, - 0.046229945191935934, - 0.051753784205770106, - 0.056892068090668615, - 0.05946043860523727, - 0.06298611706566214, - 0.06442402838225486, - 0.061979242346401245, - 0.05483069754272293, - 0.034759864237877004, - 0.045255799464369834, - 0.08131532114042571, - 0.11637578294841215, - 0.14951018111133563, - 0.1946028497832991, - 0.2396687414056907, - 0.286280107964128, - 0.33507246550885855, - 0.3823816277899715, - 0.42818618980102946, - 0.45049931805367655, - 0.46118099643555116, - 0.4666849495158193, - 0.45977692193168956, - 0.4510108318338478, - 0.44053356927066734, - 0.4298620022133152, - 0.41884952769424816, - 0.4070029790938692, - 0.38259848038813055, - 0.3547684014082475, - 0.32637249865430873, - 0.2985697019514175, - 0.26039276616010043, - 0.21552766616874852, - 0.16642213923161872, - 0.11719753116472013, - 0.08169933102638303, - 0.0709614059298263, - 0.09565542320887384, - 0.1384325751735772, - 0.18870247426539252, - 0.241895298044557, - 0.2979318591071, - 0.35427915899531603, - 0.42228164845948507, - 0.4731309781156142, - 0.5065479944503032, - 0.5127448824223986, - 0.4963315631298395, - 0.47047451138655716, - 0.44011634860393756, - 0.4136073730675575, - 0.3763303074611598, - 0.32616439885375537, - 0.26591811483117844, - 0.1836787498832283, - 0.10582063352251814, - 0.046216266129037495, - 0.0876711575359486, - 0.16578577892748633, - 0.24001990546031707, - 0.3022134662963836, - 0.35243169864731755, - 0.3905423950158482, - 0.4369337888588198, - 0.47925005661554476, - 0.5181339124679917, - 0.5359805858360053, - 0.5378130566192457, - 0.5335561687208746, - 0.5252234750157189, - 0.5142848768619108, - 0.5011475447041737, - 0.4874478466753575, - 0.47807563203021786, - 0.4686704978013906, - 0.46060096847201965, - 0.45488647419575934, - 0.44732269506311817, - 0.43580283076967197, - 0.42011287820200743, - 0.4020195460184477, - 0.38256035072263156, - 0.36290206590428153, - 0.34424537386827747, - 0.3281090640632632, - 0.31659967989616855, - 0.31079904178053935, - 0.3078523990101132, - 0.30693325740470967, - 0.30415504693892065, - 0.2986445643772791, - 0.2865669085437129, - 0.2738221929279342, - 0.2594956918922886, - 0.24311982354595163, - 0.2247165216446675, - 0.20513333656519583, - 0.19038030217463386, - 0.18884344575193843, - 0.20525195974731555, - 0.23570597475470564, - 0.27381861966639187, - 0.3159427908637543, - 0.3544706902227405, - 0.3826924006716461, - 0.3948323633467445, - 0.38727754692347477, - 0.3623749468872423, - 0.3245368068289043, - 0.2752414848537111, - 0.221497521219353, - 0.1688864319914069, - 0.13558010859743644, - 0.13923024797487632, - 0.17427742300480079, - 0.1885961117852537, - 0.2026723719544215, - 0.22091821478286888, - 0.2216273792264502, - 0.2101102143504499, - 0.17811916634212452, - 0.1283317715684069, - 0.06960820417540947, - 0.050598453948573284, - 0.10282223027840261, - 0.1576716964604617, - 0.21164899847410845, - 0.2581092772528668, - 0.28696416878741693, - 0.2819878322122878, - 0.26242669169139937, - 0.2347375672221882, - 0.20873661359089232, - 0.18354156236727454, - 0.17649569181804003, - 0.16235869452470605, - 0.15505584643889975, - 0.16279254371408228, - 0.18122868074075757, - 0.21648197702871247, - 0.26456910121104804, - 0.31918810373416656, - 0.3604392804991785, - 0.39146365880782075, - 0.39741475644902974, - 0.39933692462755366, - 0.40879289234120253, - 0.39815946733473756, - 0.3593731686621529, - 0.344712159894648, - 0.3188079794932089, - 0.28659161492228463, - 0.2580643844443568, - 0.2266189694799521, - 0.1826906762086275, - 0.12991342245969406, - 0.07503223523323439, - 0.0668737294959825, - 0.11866391040500256, - 0.17318894348988884, - 0.22670070558353042, - 0.27592346549911706, - 0.2994221286593009, - 0.317201028293822, - 0.31288501162993093, - 0.29047574033289875, - 0.27417520603609596, - 0.2507785718278198, - 0.2043840648816473, - 0.1725164820537431, - 0.13169426567950257, - 0.10021036021337207, - 0.08871557799598465, - 0.06630343182604255, - 0.05285354647758606, - 0.0540822147257575, - 0.057455339942600346, - 0.05784628538943648, - 0.05015418347389545, - 0.045460976479974345, - 0.0370912988035706, - 0.04561097128061289, - 0.047737055697650924, - 0.054843769216020875, - 0.07259494687974884, - 0.10039809083475205, - 0.12495403216220508, - 0.14391553090690373, - 0.15211841931141967, - 0.14698736898697257, - 0.1312470978155742, - 0.11093319608086213, - 0.061954176994679616, - 0.03743288085454864, - 0.04091036238728847, - 0.03701835956138408, - 0.03310739691008786, - 0.02671444992910918, - 0.019044828215301762, - 0.022755639137795495, - 0.04544469996299811, - 0.07156660238733198, - 0.10498969777834538, - 0.13375410125159476, - 0.15640853600580482, - 0.16615938505696545, - 0.16580828383317134, - 0.1586924436208286, - 0.14828527866185384, - 0.13483959937369344, - 0.11460934276698125, - 0.3768508896042729, - 0.49019955191562603, - 0.4561785525130461, - 0.29173309149718446, - 0.017229024878091387, - 0.35882695657266883, - 1.0948230050435992, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1.1894007173015815, - 0.5176917389766184, - 0.311662445419641, - 0.40533672119997066, - 0.5459296743877221, - 0.6044786638451025, - 0.5637191292680268, - 0.4974558984106131, - 0.5131282004217469, - 0.5161917164513484, - 0.5048404828184011, - 0.4772952247722993, - 0.4772952247722993, - 0.4772952247722993, - 0.4772952247722993, - 0.4772952247722993, - 0.4772952247722993, - 0.4772952247722993, - 0.4772952247722993, - 0.4772952247722993, - 0.4772952247722993, - 0.4772952247722993, - 0.4772952247722964, - 0.4772952247722964, - 0.4772952247722964, - 0.4772952247722964, - 0.4772952247722964, - 0.4772952247722964, - 0.4772952247722964, - 0.47729522477229647, - 0.47729522477229647, - 0.47729522477229647 - ] - }, - { - "marker": { - "color": "red", - "size": 10 - }, - "mode": "markers", - "name": "Heel strikes", - "type": "scatter", - "x": [ - 1501.240436553955, - 1502.4428606033325, - 1505.3408071994781, - 1506.8419032096863, - 1508.7441477775574, - 1511.6458253860474, - 1513.9478917121887, - 1515.448129415512, - 1517.9501507282257, - 1519.0509328842163, - 1520.4572768211365, - 1521.9608080387115, - 1522.953887462616, - 1524.1584029197693, - 1525.8536713123322, - 1526.8551664352417, - 1528.2581007480621, - 1530.5578382015228, - 1532.3589525222778, - 1534.360122680664, - 1537.462711572647, - 1539.2660901546478, - 1541.6681351661682, - 1543.267774105072, - 1544.76717877388, - 1547.4707067012787, - 1549.070969581604, - 1551.67942070961, - 1553.7730875015259, - 1557.5780041217804, - 1558.8778581619263, - 1559.8830723762512, - 1561.6770639419556, - 1563.3813588619232, - 1564.7788915634155, - 1565.8849048614502, - 1567.5819344520569, - 1568.7822697162628, - 1569.9836070537567 - ], - "y": [ - 0.16007301332392268, - 0.23850548817402395, - 0.16333198152255174, - 0.1453189749342822, - 0.14190459467061384, - 0.13141625235320023, - 0.13498604080064597, - 0.1358967772268496, - 0.1415388366011559, - 0.1406516658467036, - 0.1419755814510944, - 0.14096507738665018, - 0.14116931062085114, - 0.14129809306954386, - 0.1412137033093605, - 0.15544161189327815, - 0.1488740251277823, - 0.20014330109715933, - 0.2043887327908428, - 0.27960487450129523, - 0.23398887924298972, - 0.272830865277882, - 0.053847954700090676, - 0.358914823925646, - 0.5162528056448324, - 0.06442402838225486, - 0.4666849495158193, - 0.5127448824223986, - 0.5378130566192457, - 0.3948323633467445, - 0.2216273792264502, - 0.28696416878741693, - 0.40879289234120253, - 0.317201028293822, - 0.05784628538943648, - 0.15211841931141967, - 0.16615938505696545, - 1.0948230050435992, - 1.1894007173015815 - ] - } - ], - "layout": { - "autosize": false, - "font": { - "color": "black", - "family": "Courier New, monospace", - "size": 22 - }, - "height": 600, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Feet distance" - }, - "width": 750, - "xaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "time [s]" - } - }, - "yaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "dist [m]" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Gait analysis
Step Length Avg. [m]2.701530e-01
Number of steps3.900000e+01
Cadence [steps/s]inf
Speed [m/s]inf
Execution time [s]1.353937e-318
\n", - "
" - ], - "text/plain": [ - " Gait analysis\n", - "Step Length Avg. [m] 2.701530e-01\n", - "Number of steps 3.900000e+01\n", - "Cadence [steps/s] inf\n", - "Speed [m/s] inf\n", - "Execution time [s] 1.353937e-318" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "lastsess_time = time[-1]\n", - "lastsess_result = exercises[-1].result\n", - "lastsess_res_step = []\n", - "\n", - "%matplotlib inline\n", - "%matplotlib inline\n", - "for i in range(len(lastsess_result)):\n", - " lastsess_met,lastsess_resi = lastsess_result[i]\n", - " lastsess_metname = lastsess_met.name\n", - " ################\n", - " # ROM #\n", - " ################\n", - " if lastsess_metname == \"ROM\":\n", - " lastsess_metjoint = lastsess_met.tagjoint\n", - " trace1 = go.Scatter(\n", - " x=lastsess_time,y=lastsess_resi,\n", - " mode='lines',\n", - " line=dict(\n", - " color='blue',\n", - " width=3\n", - " ),\n", - " name='Real trend'\n", - " )\n", - " data = [trace1]\n", - " layout = dict(\n", - " width=750,\n", - " height=600,\n", - " autosize=False,\n", - " title='Range of Motion '+lastsess_metjoint,\n", - " font=dict(family='Courier New, monospace', size=22, color='black'),\n", - " xaxis=dict(\n", - " title='time [s]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " yaxis=dict(\n", - " title='ROM [degrees]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " )\n", - " )\n", - " )\n", - " fig = dict(data=data, layout=layout)\n", - " iplot(fig)\n", - "\n", - " ################\n", - " # STEP #\n", - " ################\n", - " if lastsess_metname == \"step\":\n", - " dist=lastsess_resi[5]\n", - " strikes=lastsess_resi[6]\n", - " trace1 = go.Scatter(\n", - " x=lastsess_time,y=dist,\n", - " mode='lines',\n", - " line=dict(\n", - " color='blue',\n", - " width=3\n", - " ),\n", - " name='Feet distance'\n", - " )\n", - " trace2 = go.Scatter(\n", - " x=lastsess_time[strikes],y=dist[strikes],\n", - " mode='markers',\n", - " marker=dict(\n", - " color='red',\n", - " size=10\n", - " ),\n", - " name='Heel strikes'\n", - " )\n", - " data = [trace1,trace2]\n", - " layout = dict(\n", - " width=750,\n", - " height=600,\n", - " autosize=False,\n", - " title='Feet distance',\n", - " font=dict(family='Courier New, monospace', size=22, color='black'),\n", - " xaxis=dict(\n", - " title='time [s]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " yaxis=dict(\n", - " title='dist [m]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " )\n", - " )\n", - " )\n", - " fig = dict(data=data, layout=layout)\n", - " iplot(fig)\n", - "\n", - " lastsess_res_step.append(lastsess_resi)\n", - " sla = lastsess_res_step[0][8]\n", - " ns = lastsess_res_step[0][1]\n", - " cad = lastsess_res_step[0][2]\n", - " sp = lastsess_res_step[0][3]\n", - " ex = lastsess_res_step[0][4]\n", - " tablestep = pd.DataFrame([sla, ns, cad, sp, ex])\n", - " tablestep.rename(index={0:\"Step Length Avg. [m]\",1:\"Number of steps\",2:\"Cadence [steps/s]\",\n", - " 3:\"Speed [m/s]\",4:\"Execution time [s]\"},\n", - " columns={0:\"Gait analysis\"}, inplace=True)\n", - " display(tablestep)\n", - "\n", - " ################\n", - " # EP #\n", - " ################\n", - " if lastsess_metname == \"EP\":\n", - " target = lastsess_met.target\n", - " trace1 = go.Scatter3d(\n", - " x=lastsess_resi[:,0], y=lastsess_resi[:,1], z=lastsess_resi[:,2],\n", - " mode = 'lines',\n", - " line=dict(\n", - " color='blue',\n", - " width=3\n", - " ),\n", - " name = 'Trajectories'\n", - " )\n", - " trace2 = go.Scatter3d(\n", - " x=[target[0]], y=[target[1]], z=[target[2]],\n", - " mode = 'markers',\n", - " marker=dict(\n", - " color='red',\n", - " size=5\n", - " ),\n", - " name = 'Target to reach'\n", - " )\n", - " data = [trace1, trace2] \n", - " layout = dict(\n", - " margin=dict(\n", - " l=0,\n", - " r=0,\n", - " b=0\n", - " ),\n", - " title='End-point trajectories',\n", - " font=dict(family='Courier New, monospace', size=22, color='black'),\n", - " scene=dict(\n", - " xaxis=dict(\n", - " title='x [cm]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " ),\n", - " gridcolor='rgb(255, 255, 255)',\n", - " zerolinecolor='rgb(255, 255, 255)',\n", - " showbackground=True,\n", - " backgroundcolor='rgb(230, 230,230)'\n", - " ),\n", - " yaxis=dict(\n", - " title='y [cm]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " ),\n", - " gridcolor='rgb(255, 255, 255)',\n", - " zerolinecolor='rgb(255, 255, 255)',\n", - " showbackground=True,\n", - " backgroundcolor='rgb(230, 230,230)'\n", - " ),\n", - " zaxis=dict(\n", - " title='z [cm]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " ),\n", - " gridcolor='rgb(255, 255, 255)',\n", - " zerolinecolor='rgb(255, 255, 255)',\n", - " showbackground=True,\n", - " backgroundcolor='rgb(230, 230,230)'\n", - " ),\n", - " camera=dict(\n", - " up=dict(\n", - " x=0,\n", - " y=0,\n", - " z=1\n", - " ),\n", - " eye=dict(\n", - " x=-1.7428,\n", - " y=1.0707,\n", - " z=0.7100,\n", - " )\n", - " ),\n", - " aspectratio = dict( x=1, y=1, z=0.7 ),\n", - " aspectmode = 'manual'\n", - " ),\n", - " )\n", - " fig = dict(data=data, layout=layout)\n", - " iplot(fig)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
TUG Table
< 10 sNormal mobility
< 20 sGood mobility
< 30 sGait aids
>= 30 sFalling risk
\n", - "
" - ], - "text/plain": [ - " TUG Table\n", - "< 10 s Normal mobility\n", - "< 20 s Good mobility\n", - "< 30 s Gait aids\n", - ">= 30 s Falling risk" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The test has been done in 0.0 s\n", - "The evaluation is \u001b[1;30;42m Normal mobility\n" - ] - } - ], - "source": [ - "if exname == 'tug':\n", - "\n", - " table_tug = pd.DataFrame([['Normal mobility'],['Good mobility'],['Gait aids'],['Falling risk']],\n", - " index=['< 10 s','< 20 s','< 30 s','>= 30 s'],\n", - " columns=['TUG Table'])\n", - " display(table_tug)\n", - "\n", - " time_score = lastsess_res_step[0][4]\n", - " print(\"The test has been done in\",round(time_score,2),\"s\")\n", - " if time_score < 10:\n", - " evaluation = 'Normal mobility'\n", - " print(\"The evaluation is \u001b[1;30;42m\",evaluation)\n", - " elif time_score < 20:\n", - " evaluation = 'Good mobility, no need for gait aids'\n", - " print(\"The evaluation is \u001b[1;30;42m\",evaluation)\n", - " elif time_score < 30:\n", - " evaluation = 'Need for gait aids'\n", - " print(\"The evaluation is \u001b[1;30;43m\",evaluation)\n", - " elif time_score >= 30:\n", - " evaluation = 'Falling risk'\n", - " print(\"The evaluation is \u001b[1;30;41m\",evaluation)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - " \n", - "# Patient progress" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - " \n", - "The exercises performed by the patient during the months under analysis are grouped as following:" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "linkText": "Export to plot.ly", - "plotlyServerURL": "https://plot.ly", - "showLink": false - }, - "data": [ - { - "hole": 0.3, - "hoverinfo": "label+percent+value", - "labels": [ - "reaching_left", - "abduction_left", - "internal-rotation_left", - "external-rotation_left", - "timed-up-and-go" - ], - "marker": { - "colors": [ - "#FEBFB3", - "#E1396C", - "#96D38C", - "#D0F9B1" - ], - "line": { - "color": "#000000", - "width": 2 - } - }, - "textfont": { - "size": 20 - }, - "type": "pie", - "values": [ - 0, - 0, - 0, - 0, - 1 - ] - } - ], - "layout": { - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Performed exercises" - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "labels = [\"reaching_left\",\"abduction_left\",\"internal-rotation_left\",\"external-rotation_left\",\"timed-up-and-go\"]\n", - "values = [tagex.count(\"reaching_left\"), tagex.count(\"abduction_left\"), tagex.count(\"internal_rotation_left\"), \n", - " tagex.count(\"external_rotation_left\"), tagex.count(\"tug\")]\n", - "colors = ['#FEBFB3', '#E1396C', '#96D38C', '#D0F9B1']\n", - "\n", - "trace = go.Pie(labels=labels, values=values,\n", - " #hoverinfo='label+percent', textinfo='value', \n", - " textfont=dict(size=20),\n", - " marker=dict(colors=colors, \n", - " line=dict(color='#000000', width=2)),\n", - " hoverinfo=\"label+percent+value\",\n", - " hole=0.3\n", - " )\n", - "layout = go.Layout(\n", - " title=\"Performed exercises\",\n", - ")\n", - "data = [trace]\n", - "fig = go.Figure(data=data,layout=layout)\n", - "iplot(fig) " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - " \n", - "The trends of the patient metrics, grouped by month, are shown here: " - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "keyp2rommax = {\n", - " \"shoulderCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"head\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footRight\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "keyp2rommin = {\n", - " \"shoulderCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"head\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footRight\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "countrommonth = {\n", - " \"shoulderCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"head\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footRight\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "keyp2rommax_avg = {\n", - " \"shoulderCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"head\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footRight\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "keyp2rommin_avg = {\n", - " \"shoulderCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"head\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"shoulderRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"elbowRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"handRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"hipRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"kneeRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"ankleRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"footRight\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "\n", - "stepmonth = {\n", - " \"step_length\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"numsteps\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"cadence\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"speed\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"time\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "countstepmonth = [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "\n", - "endpointmonth = {\n", - " \"time\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"speed\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "countendpointmonth = [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "\n", - "for i in range(len(exercises)):\n", - " exnamei = exercises[i].name\n", - " for monthi in range(12):\n", - " if countexmonth[exnamei][monthi] != 0:\n", - " res_exi = exercises[i].getResult(monthi)\n", - " for m in range(len(res_exi)): \n", - " single_metric,result_single_metric = res_exi[m]\n", - " single_metric_name = single_metric.name\n", - " if single_metric_name == \"ROM\":\n", - " maxromj = max(result_single_metric)\n", - " minromj = min(result_single_metric)\n", - " tagjoint = single_metric.tagjoint\n", - " keyp2rommax[tagjoint][monthi] = maxromj + keyp2rommax[tagjoint][monthi]\n", - " keyp2rommin[tagjoint][monthi] = minromj + keyp2rommin[tagjoint][monthi]\n", - " countrommonth[tagjoint][monthi] = 1 + countrommonth[tagjoint][monthi] \n", - "\n", - " if single_metric_name == \"step\":\n", - " stepmonth[\"step_length\"][monthi] = single_metric.step_length + stepmonth[\"step_length\"][monthi]\n", - " stepmonth[\"numsteps\"][monthi] = single_metric.nsteps + stepmonth[\"numsteps\"][monthi]\n", - " stepmonth[\"cadence\"][monthi] = single_metric.cadence + stepmonth[\"cadence\"][monthi]\n", - " stepmonth[\"speed\"][monthi] = single_metric.speed + stepmonth[\"speed\"][monthi]\n", - " stepmonth[\"time\"][monthi] = single_metric.ex_time + stepmonth[\"time\"][monthi]\n", - " countstepmonth[monthi] = 1 + countstepmonth[monthi]\n", - "\n", - " if single_metric_name == \"EP\":\n", - " endpointmonth[\"time\"][monthi] = single_metric.ex_time + endpointmonth[\"time\"][monthi]\n", - " endpointmonth[\"speed\"][monthi] = single_metric.speed + endpointmonth[\"speed\"][monthi]\n", - " countendpointmonth[monthi] = 1 + countendpointmonth[monthi]\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "counted_exmonth = {\n", - " \"tug\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"abduction_left\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"internal_rotation_left\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"external_rotation_left\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", - " \"reaching_left\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", - "}\n", - "for i in range(len(exercises)):\n", - " exnamei = exercises[i].name\n", - "\n", - " for monthi in range(12): \n", - " if countexmonth[exnamei][monthi] != 0:\n", - " if counted_exmonth[exnamei][monthi] < 1: \n", - " res_exi = exercises[i].getResult(monthi)\n", - " for m in range(len(res_exi)): \n", - " single_metric,result_single_metric = res_exi[m]\n", - " single_metric_name = single_metric.name\n", - "\n", - " if single_metric_name == \"ROM\":\n", - " tagjoint = single_metric.tagjoint\n", - " if countrommonth[tagjoint][monthi] != 0:\n", - " keyp2rommax_avg[tagjoint][monthi] = keyp2rommax[tagjoint][monthi]/countrommonth[tagjoint][monthi]\n", - " keyp2rommin_avg[tagjoint][monthi] = keyp2rommin[tagjoint][monthi]/countrommonth[tagjoint][monthi]\n", - "\n", - "\n", - " if single_metric_name == \"step\":\n", - " if countstepmonth[monthi] != 0:\n", - " stepmonth[\"step_length\"][monthi] = stepmonth[\"step_length\"][monthi]/countstepmonth[monthi]\n", - " stepmonth[\"numsteps\"][monthi] = stepmonth[\"numsteps\"][monthi]/countstepmonth[monthi]\n", - " stepmonth[\"cadence\"][monthi] = stepmonth[\"cadence\"][monthi]/countstepmonth[monthi]\n", - " stepmonth[\"speed\"][monthi] = stepmonth[\"speed\"][monthi]/countstepmonth[monthi]\n", - " stepmonth[\"time\"][monthi] = stepmonth[\"time\"][monthi]/countstepmonth[monthi] \n", - "\n", - " if single_metric_name == \"EP\":\n", - " if countendpointmonth[monthi] != 0:\n", - " endpointmonth[\"time\"][monthi] = endpointmonth[\"time\"][monthi]/countendpointmonth[monthi]\n", - " endpointmonth[\"speed\"][monthi] = endpointmonth[\"speed\"][monthi]/countendpointmonth[monthi]\n", - "\n", - " counted_exmonth[exnamei][monthi] = 1" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/html": [ - "Results for Timed Up and Go" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "title = \"Results for Timed Up and Go\"\n", - "msg1 = HTML(''+title+'')\n", - "msg2 = HTML(''+title+'')\n", - "if sum(counted_exmonth['tug'])>0:\n", - " display(msg1);\n", - "else:\n", - " display(msg2); " - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": { - "scrolled": false - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
JanFebMarAprMayJunJulAugSepOctNovDec
Number steps2.701530e-0100000000000
Speed [m/s]3.900000e+0100000000000
Step length [m]inf00000000000
Cadence [steps/s]inf00000000000
Execution time [s]1.353937e-31800000000000
\n", - "
" - ], - "text/plain": [ - " Jan Feb Mar Apr May Jun Jul Aug Sep \\\n", - "Number steps 2.701530e-01 0 0 0 0 0 0 0 0 \n", - "Speed [m/s] 3.900000e+01 0 0 0 0 0 0 0 0 \n", - "Step length [m] inf 0 0 0 0 0 0 0 0 \n", - "Cadence [steps/s] inf 0 0 0 0 0 0 0 0 \n", - "Execution time [s] 1.353937e-318 0 0 0 0 0 0 0 0 \n", - "\n", - " Oct Nov Dec \n", - "Number steps 0 0 0 \n", - "Speed [m/s] 0 0 0 \n", - "Step length [m] 0 0 0 \n", - "Cadence [steps/s] 0 0 0 \n", - "Execution time [s] 0 0 0 " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "linkText": "Export to plot.ly", - "plotlyServerURL": "https://plot.ly", - "showLink": false - }, - "data": [ - { - "marker": { - "color": "rgb(0,0,255)" - }, - "name": "Maximum value reached", - "type": "bar", - "x": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "y": [ - 90, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "marker": { - "color": "rgb(255,0,0)" - }, - "name": "Minimum value reached", - "type": "bar", - "x": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "y": [ - 90, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - } - ], - "layout": { - "bargap": 0.1, - "bargroupgap": 0, - "barmode": "group", - "font": { - "color": "black", - "family": "Courier New, monospace", - "size": 18 - }, - "legend": { - "bgcolor": "rgba(255, 255, 255, 0)", - "bordercolor": "rgba(255, 255, 255, 0)" - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Range of Motion Parameters" - }, - "xaxis": { - "tickfont": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 14 - }, - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "Month" - } - }, - "yaxis": { - "tickfont": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 14 - }, - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "ROM hipLeft [degrees]" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "linkText": "Export to plot.ly", - "plotlyServerURL": "https://plot.ly", - "showLink": false - }, - "data": [ - { - "marker": { - "color": "rgb(0,0,255)" - }, - "name": "Maximum value reached", - "type": "bar", - "x": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "y": [ - 114.28675596068301, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "marker": { - "color": "rgb(255,0,0)" - }, - "name": "Minimum value reached", - "type": "bar", - "x": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "y": [ - 60.1781543092217, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - } - ], - "layout": { - "bargap": 0.1, - "bargroupgap": 0, - "barmode": "group", - "font": { - "color": "black", - "family": "Courier New, monospace", - "size": 18 - }, - "legend": { - "bgcolor": "rgba(255, 255, 255, 0)", - "bordercolor": "rgba(255, 255, 255, 0)" - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Range of Motion Parameters" - }, - "xaxis": { - "tickfont": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 14 - }, - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "Month" - } - }, - "yaxis": { - "tickfont": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 14 - }, - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "ROM kneeLeft [degrees]" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "linkText": "Export to plot.ly", - "plotlyServerURL": "https://plot.ly", - "showLink": false - }, - "data": [ - { - "marker": { - "color": "rgb(0,0,255)" - }, - "name": "Maximum value reached", - "type": "bar", - "x": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "y": [ - 90, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "marker": { - "color": "rgb(255,0,0)" - }, - "name": "Minimum value reached", - "type": "bar", - "x": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "y": [ - 90, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - } - ], - "layout": { - "bargap": 0.1, - "bargroupgap": 0, - "barmode": "group", - "font": { - "color": "black", - "family": "Courier New, monospace", - "size": 18 - }, - "legend": { - "bgcolor": "rgba(255, 255, 255, 0)", - "bordercolor": "rgba(255, 255, 255, 0)" - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Range of Motion Parameters" - }, - "xaxis": { - "tickfont": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 14 - }, - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "Month" - } - }, - "yaxis": { - "tickfont": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 14 - }, - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "ROM ankleLeft [degrees]" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "linkText": "Export to plot.ly", - "plotlyServerURL": "https://plot.ly", - "showLink": false - }, - "data": [ - { - "marker": { - "color": "rgb(0,0,255)" - }, - "name": "Maximum value reached", - "type": "bar", - "x": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "y": [ - 90, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "marker": { - "color": "rgb(255,0,0)" - }, - "name": "Minimum value reached", - "type": "bar", - "x": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "y": [ - 90, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - } - ], - "layout": { - "bargap": 0.1, - "bargroupgap": 0, - "barmode": "group", - "font": { - "color": "black", - "family": "Courier New, monospace", - "size": 18 - }, - "legend": { - "bgcolor": "rgba(255, 255, 255, 0)", - "bordercolor": "rgba(255, 255, 255, 0)" - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Range of Motion Parameters" - }, - "xaxis": { - "tickfont": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 14 - }, - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "Month" - } - }, - "yaxis": { - "tickfont": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 14 - }, - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "ROM hipRight [degrees]" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "linkText": "Export to plot.ly", - "plotlyServerURL": "https://plot.ly", - "showLink": false - }, - "data": [ - { - "marker": { - "color": "rgb(0,0,255)" - }, - "name": "Maximum value reached", - "type": "bar", - "x": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "y": [ - 115.0472239010436, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "marker": { - "color": "rgb(255,0,0)" - }, - "name": "Minimum value reached", - "type": "bar", - "x": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "y": [ - 57.86458244653484, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - } - ], - "layout": { - "bargap": 0.1, - "bargroupgap": 0, - "barmode": "group", - "font": { - "color": "black", - "family": "Courier New, monospace", - "size": 18 - }, - "legend": { - "bgcolor": "rgba(255, 255, 255, 0)", - "bordercolor": "rgba(255, 255, 255, 0)" - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Range of Motion Parameters" - }, - "xaxis": { - "tickfont": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 14 - }, - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "Month" - } - }, - "yaxis": { - "tickfont": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 14 - }, - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "ROM kneeRight [degrees]" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "linkText": "Export to plot.ly", - "plotlyServerURL": "https://plot.ly", - "showLink": false - }, - "data": [ - { - "marker": { - "color": "rgb(0,0,255)" - }, - "name": "Maximum value reached", - "type": "bar", - "x": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "y": [ - 90, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "marker": { - "color": "rgb(255,0,0)" - }, - "name": "Minimum value reached", - "type": "bar", - "x": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "y": [ - 90, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - } - ], - "layout": { - "bargap": 0.1, - "bargroupgap": 0, - "barmode": "group", - "font": { - "color": "black", - "family": "Courier New, monospace", - "size": 18 - }, - "legend": { - "bgcolor": "rgba(255, 255, 255, 0)", - "bordercolor": "rgba(255, 255, 255, 0)" - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Range of Motion Parameters" - }, - "xaxis": { - "tickfont": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 14 - }, - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "Month" - } - }, - "yaxis": { - "tickfont": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 14 - }, - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "ROM ankleRight [degrees]" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "allmonths = [1,2,3,4,5,6,7,8,9,10,11,12]\n", - "counted_ex = {\n", - " \"tug\" : 0,\n", - " \"abduction_left\" : 0,\n", - " \"internal_rotation_left\" : 0,\n", - " \"external_rotation_left\" : 0,\n", - " \"reaching_left\" : 0\n", - "}\n", - "for i in range(len(exercises)):\n", - " exnamei = exercises[i].name\n", - " res_exi = exercises[i].result\n", - " if counted_ex[exnamei] < 1:\n", - "\n", - " #############################\n", - " # Results for TUG #\n", - " #############################\n", - " if exnamei == \"tug\":\n", - " counted_ex[exnamei] = 1\n", - " step_month_table = pd.DataFrame.from_dict(stepmonth,orient='index',\n", - " columns=['Jan','Feb','Mar','Apr','May','Jun',\n", - " 'Jul','Aug','Sep','Oct','Nov','Dec'])\n", - " step_month_table.index = [\"Number steps\",\"Speed [m/s]\",\"Step length [m]\",\n", - " \"Cadence [steps/s]\",\"Execution time [s]\"]\n", - " display(step_month_table)\n", - "\n", - " for m in range(len(res_exi)): \n", - " single_metric,result_single_metric = res_exi[m]\n", - " if single_metric.name == \"ROM\":\n", - " tagjoint = single_metric.tagjoint\n", - "\n", - " if np.sum(keyp2rommax_avg[tagjoint]) > 0.0:\n", - " trace1 = go.Bar(\n", - " x=allmonths, \n", - " y=keyp2rommax_avg[tagjoint],\n", - " name='Maximum value reached',\n", - " marker=dict(\n", - " color='rgb(0,0,255)'\n", - " )\n", - " )\n", - " trace2 = go.Bar(\n", - " x=allmonths, \n", - " y=keyp2rommin_avg[tagjoint],\n", - " name='Minimum value reached',\n", - " marker=dict(\n", - " color='rgb(255,0,0)'\n", - " )\n", - " )\n", - " layout = go.Layout(\n", - " title='Range of Motion Parameters',\n", - " font=dict(family='Courier New, monospace', size=18, color='black'),\n", - " xaxis=dict(\n", - " title='Month',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " yaxis=dict(\n", - " title='ROM ' + tagjoint + ' [degrees]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " legend=dict(\n", - " bgcolor='rgba(255, 255, 255, 0)',\n", - " bordercolor='rgba(255, 255, 255, 0)'\n", - " ),\n", - " barmode='group',\n", - " bargap=0.1,\n", - " bargroupgap=0.0\n", - " )\n", - " data=[trace1,trace2]\n", - " fig = go.Figure(data=data, layout=layout)\n", - " iplot(fig) " - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/html": [ - "Results for Abduction" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "title = \"Results for Abduction\"\n", - "msg1 = HTML(''+title+'')\n", - "msg2 = HTML(''+title+'')\n", - "if sum(counted_exmonth['abduction_left'])>0:\n", - " display(msg1);\n", - "else:\n", - " display(msg2); " - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "for i in range(len(exercises)):\n", - " exnamei = exercises[i].name\n", - " res_exi = exercises[i].result\n", - " if counted_ex[exnamei] < 1:\n", - "\n", - " ###################################\n", - " # Results for Abduction #\n", - " ###################################\n", - " if \"abduction\" in exnamei:\n", - " counted_ex[exnamei] = 1 \n", - "\n", - " for m in range(len(res_exi)): \n", - " single_metric,result_single_metric = res_exi[m]\n", - " if single_metric.name == \"ROM\":\n", - " tagjoint = single_metric.tagjoint\n", - "\n", - " if np.sum(keyp2rommax_avg[tagjoint]) > 0.0:\n", - " trace1 = go.Bar(\n", - " x=allmonths, \n", - " y=keyp2rommax_avg[tagjoint],\n", - " name='Maximum value reached',\n", - " marker=dict(\n", - " color='rgb(0,0,255)'\n", - " )\n", - " )\n", - " trace2 = go.Bar(\n", - " x=allmonths, \n", - " y=keyp2rommin_avg[tagjoint],\n", - " name='Minimum value reached',\n", - " marker=dict(\n", - " color='rgb(255,0,0)'\n", - " )\n", - " )\n", - " layout = go.Layout(\n", - " title='Range of Motion Parameters',\n", - " font=dict(family='Courier New, monospace', size=18, color='black'),\n", - " xaxis=dict(\n", - " title='Month',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " yaxis=dict(\n", - " title='ROM ' + tagjoint + ' [degrees]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " legend=dict(\n", - " bgcolor='rgba(255, 255, 255, 0)',\n", - " bordercolor='rgba(255, 255, 255, 0)'\n", - " ),\n", - " barmode='group',\n", - " bargap=0.1,\n", - " bargroupgap=0.0\n", - " )\n", - " data=[trace1,trace2]\n", - " fig = go.Figure(data=data, layout=layout)\n", - " iplot(fig) " - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/html": [ - "Results for Internal Rotation" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "title = \"Results for Internal Rotation\"\n", - "msg1 = HTML(''+title+'')\n", - "msg2 = HTML(''+title+'')\n", - "if sum(counted_exmonth['internal_rotation_left'])>0:\n", - " display(msg1);\n", - "else:\n", - " display(msg2); " - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "for i in range(len(exercises)):\n", - " exnamei = exercises[i].name\n", - " res_exi = exercises[i].result\n", - " if counted_ex[exnamei] < 1:\n", - "\n", - " ###################################\n", - " # Results for Internal #\n", - " ###################################\n", - " if \"internal_rotation\" in exnamei:\n", - " counted_ex[exnamei] = 1 \n", - "\n", - " for m in range(len(res_exi)): \n", - " single_metric,result_single_metric = res_exi[m]\n", - " if single_metric.name == \"ROM\":\n", - " tagjoint = single_metric.tagjoint\n", - "\n", - " if np.sum(keyp2rommax_avg[tagjoint]) > 0.0:\n", - " trace1 = go.Bar(\n", - " x=allmonths, \n", - " y=keyp2rommax_avg[tagjoint],\n", - " name='Maximum value reached',\n", - " marker=dict(\n", - " color='rgb(0,0,255)'\n", - " )\n", - " )\n", - " trace2 = go.Bar(\n", - " x=allmonths, \n", - " y=keyp2rommin_avg[tagjoint],\n", - " name='Minimum value reached',\n", - " marker=dict(\n", - " color='rgb(255,0,0)'\n", - " )\n", - " )\n", - " layout = go.Layout(\n", - " title='Range of Motion Parameters',\n", - " font=dict(family='Courier New, monospace', size=18, color='black'),\n", - " xaxis=dict(\n", - " title='Month',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " yaxis=dict(\n", - " title='ROM ' + tagjoint + ' [degrees]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " legend=dict(\n", - " bgcolor='rgba(255, 255, 255, 0)',\n", - " bordercolor='rgba(255, 255, 255, 0)'\n", - " ),\n", - " barmode='group',\n", - " bargap=0.1,\n", - " bargroupgap=0.0\n", - " )\n", - " data=[trace1,trace2]\n", - " fig = go.Figure(data=data, layout=layout)\n", - " iplot(fig) " - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/html": [ - "Results for External Rotation" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "title = \"Results for External Rotation\"\n", - "msg1 = HTML(''+title+'')\n", - "msg2 = HTML(''+title+'')\n", - "if sum(counted_exmonth['external_rotation_left'])>0:\n", - " display(msg1);\n", - "else:\n", - " display(msg2); " - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "for i in range(len(exercises)):\n", - " exnamei = exercises[i].name\n", - " res_exi = exercises[i].result\n", - " if counted_ex[exnamei] < 1:\n", - "\n", - " ###################################\n", - " # Results for External #\n", - " ###################################\n", - " if \"external_rotation\" in exnamei:\n", - " counted_ex[exnamei] = 1 \n", - "\n", - " for m in range(len(res_exi)): \n", - " single_metric,result_single_metric = res_exi[m]\n", - " if single_metric.name == \"ROM\":\n", - " tagjoint = single_metric.tagjoint\n", - "\n", - " if np.sum(keyp2rommax_avg[tagjoint]) > 0.0:\n", - " trace1 = go.Bar(\n", - " x=allmonths, \n", - " y=keyp2rommax_avg[tagjoint],\n", - " name='Maximum value reached',\n", - " marker=dict(\n", - " color='rgb(0,0,255)'\n", - " )\n", - " )\n", - " trace2 = go.Bar(\n", - " x=allmonths, \n", - " y=keyp2rommin_avg[tagjoint],\n", - " name='Minimum value reached',\n", - " marker=dict(\n", - " color='rgb(255,0,0)'\n", - " )\n", - " )\n", - " layout = go.Layout(\n", - " title='Range of Motion Parameters',\n", - " font=dict(family='Courier New, monospace', size=18, color='black'),\n", - " xaxis=dict(\n", - " title='Month',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " yaxis=dict(\n", - " title='ROM ' + tagjoint + ' [degrees]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " legend=dict(\n", - " bgcolor='rgba(255, 255, 255, 0)',\n", - " bordercolor='rgba(255, 255, 255, 0)'\n", - " ),\n", - " barmode='group',\n", - " bargap=0.1,\n", - " bargroupgap=0.0\n", - " )\n", - " data=[trace1,trace2]\n", - " fig = go.Figure(data=data, layout=layout)\n", - " iplot(fig) " - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/html": [ - "Results for Reaching" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "title = \"Results for Reaching\"\n", - "msg1 = HTML(''+title+'')\n", - "msg2 = HTML(''+title+'')\n", - "if sum(counted_exmonth['reaching_left'])>0:\n", - " display(msg1);\n", - "else:\n", - " display(msg2); " - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "for i in range(len(exercises)):\n", - " exnamei = exercises[i].name\n", - " res_exi = exercises[i].result\n", - " if counted_ex[exnamei] < 1:\n", - "\n", - " ###################################\n", - " # Results for Reaching #\n", - " ###################################\n", - " if \"reaching\" in exnamei:\n", - " counted_ex[exnamei] = 1 \n", - "\n", - " for m in range(len(res_exi)): \n", - " single_metric,result_single_metric = res_exi[m]\n", - " if single_metric.name == \"EP\":\n", - " trace1 = go.Bar(\n", - " x=allmonths, \n", - " y=endpointmonth[\"time\"],\n", - " name='Time',\n", - " marker=dict(\n", - " color='rgb(0,0,255)'\n", - " )\n", - " )\n", - " layout = go.Layout(\n", - " title='Reaching parameters',\n", - " font=dict(family='Courier New, monospace', size=18, color='black'),\n", - " xaxis=dict(\n", - " title='Month',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " yaxis=dict(\n", - " title='Execution time [s]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " legend=dict(\n", - " bgcolor='rgba(255, 255, 255, 0)',\n", - " bordercolor='rgba(255, 255, 255, 0)'\n", - " ),\n", - " barmode='group',\n", - " bargap=0.1,\n", - " bargroupgap=0.0\n", - " )\n", - " data=[trace1]\n", - " fig = go.Figure(data=data, layout=layout)\n", - " iplot(fig) \n", - "\n", - " trace1 = go.Bar(\n", - " x=allmonths, \n", - " y=endpointmonth[\"speed\"],\n", - " name='Speed',\n", - " marker=dict(\n", - " color='rgb(0,0,255)'\n", - " )\n", - " )\n", - " layout = go.Layout(\n", - " font=dict(family='Courier New, monospace', size=18, color='black'),\n", - " xaxis=dict(\n", - " title='Month',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " yaxis=dict(\n", - " title='Speed [m/s]',\n", - " titlefont=dict(\n", - " family='Courier New, monospace',\n", - " size=18,\n", - " color='#7f7f7f'\n", - " ),\n", - " tickfont=dict(\n", - " family='Courier New, monospace',\n", - " size=14,\n", - " color='#7f7f7f'\n", - " )\n", - " ),\n", - " legend=dict(\n", - " bgcolor='rgba(255, 255, 255, 0)',\n", - " bordercolor='rgba(255, 255, 255, 0)'\n", - " ),\n", - " barmode='group',\n", - " bargap=0.1,\n", - " bargroupgap=0.0\n", - " )\n", - " data=[trace1]\n", - " fig = go.Figure(data=data, layout=layout)\n", - " iplot(fig) " - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "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.6" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/report/report-ita-debugging.ipynb b/report/report-ita-debugging.ipynb new file mode 100644 index 00000000..94fba967 --- /dev/null +++ b/report/report-ita-debugging.ipynb @@ -0,0 +1,4893 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#import libraries\n", + "import warnings \n", + "warnings.filterwarnings(\"ignore\",category=FutureWarning)\n", + "warnings.filterwarnings(\"ignore\", message=\"numpy.dtype size changed\")\n", + "import scipy.io as spio\n", + "import scipy.signal\n", + "import scipy.ndimage\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from mpl_toolkits.mplot3d import Axes3D\n", + "from collections import namedtuple\n", + "import math \n", + "import re \n", + "import pandas as pd\n", + "import os\n", + "import glob\n", + "from os.path import expanduser\n", + "import datetime\n", + "import statistics as stats\n", + "from plotly import __version__\n", + "from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot\n", + "import plotly.graph_objs as go\n", + "init_notebook_mode(connected=True)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "def color_negative_red(val):\n", + " color = 'red' if val > 110 else 'black'\n", + " return 'color: %s' % color\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "class Keypoint:\n", + " tag = \"\"\n", + " parent = ['']\n", + " child = ['']\n", + " point = None\n", + "\n", + " def __init__(self,tag=None,parent=None,child=None,point=None):\n", + " if tag is not None: \n", + " self.tag = tag\n", + " if parent is not None:\n", + " self.parent = parent\n", + " if child is not None:\n", + " self.child = child\n", + " if point is not None:\n", + " self.point = point\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "class Skeleton:\n", + " keypoints = [Keypoint() for i in range(17)]\n", + " tag2id = {\n", + " \"shoulderCenter\" : 0,\n", + " \"head\" : 1,\n", + " \"shoulderLeft\" : 2,\n", + " \"elbowLeft\" : 3,\n", + " \"handLeft\" : 4,\n", + " \"shoulderRight\" : 5,\n", + " \"elbowRight\" : 6,\n", + " \"handRight\" : 7,\n", + " \"hipCenter\" : 8,\n", + " \"hipLeft\" : 9,\n", + " \"kneeLeft\" : 10,\n", + " \"ankleLeft\" : 11,\n", + " \"footLeft\" : 12,\n", + " \"hipRight\" : 13,\n", + " \"kneeRight\" : 14,\n", + " \"ankleRight\" : 15,\n", + " \"footRight\" : 16,\n", + " }\n", + " keypoints[tag2id[\"shoulderCenter\"]] = Keypoint(\"shoulderCenter\",[''],['head','shoulderLeft','shoulderRight','hipCenter'])\n", + " keypoints[tag2id[\"head\"]] = Keypoint(\"head\",['shoulderCenter'],[''])\n", + " keypoints[tag2id[\"shoulderLeft\"]] = Keypoint(\"shoulderLeft\",['shoulderCenter'],['elbowLeft'])\n", + " keypoints[tag2id[\"elbowLeft\"]] = Keypoint(\"elbowLeft\",['shoulderLeft'],['handLeft'])\n", + " keypoints[tag2id[\"handLeft\"]] = Keypoint(\"handLeft\",['elbowLeft'],[''])\n", + " keypoints[tag2id[\"shoulderRight\"]] = Keypoint(\"shoulderRight\",['shoulderCenter'],['elbowRight'])\n", + " keypoints[tag2id[\"elbowRight\"]] = Keypoint(\"elbowRight\",['shoulderRight'],['handRight'])\n", + " keypoints[tag2id[\"handRight\"]] = Keypoint(\"handRight\",['elbowRight'],[''])\n", + " keypoints[tag2id[\"hipCenter\"]] = Keypoint(\"hipCenter\",['shoulderCenter'],['hipLeft','hipRight'])\n", + " keypoints[tag2id[\"hipLeft\"]] = Keypoint(\"hipLeft\",['shoulderCenter'],['kneeLeft'])\n", + " keypoints[tag2id[\"kneeLeft\"]] = Keypoint(\"kneeLeft\",['hipLeft'],['ankleLeft'])\n", + " keypoints[tag2id[\"ankleLeft\"]] = Keypoint(\"ankleLeft\",['kneeLeft'],['footLeft'])\n", + " keypoints[tag2id[\"footLeft\"]] = Keypoint(\"footLeft\",['ankleLeft'],[''])\n", + " keypoints[tag2id[\"hipRight\"]] = Keypoint(\"hipRight\",['shoulderCenter'],['kneeRight'])\n", + " keypoints[tag2id[\"kneeRight\"]] = Keypoint(\"kneeRight\",['hipRight'],['ankleRight'])\n", + " keypoints[tag2id[\"ankleRight\"]] = Keypoint(\"ankleRight\",['kneeRight'],['footRight'])\n", + " keypoints[tag2id[\"footRight\"]] = Keypoint(\"footRight\",['ankleRight'],[''])\n", + "\n", + " def __init__(self,keyp_map=None):\n", + " if keyp_map is not None:\n", + " for tag in keyp_map.keys():\n", + " self.keypoints[self.tag2id[tag]].point = keyp_map[tag] \n", + "\n", + " def getKeypoint(self,keyp_tag):\n", + " return self.keypoints[self.tag2id[keyp_tag]].point\n", + "\n", + " def getChild(self,keyp_tag):\n", + " return self.keypoints[self.tag2id[keyp_tag]].child\n", + "\n", + " def getParent(self,keyp_tag):\n", + " return self.keypoints[self.tag2id[keyp_tag]].parent\n", + "\n", + " def getTransformation(self):\n", + " sagittal = None\n", + " coronal = None\n", + " transverse = None\n", + " T = np.eye(4,4)\n", + " if self.getKeypoint(\"shoulderLeft\") is not None:\n", + " if self.getKeypoint(\"shoulderRight\") is not None:\n", + " sagittal = self.getKeypoint(\"shoulderLeft\")[0]-self.getKeypoint(\"shoulderRight\")[0]\n", + " sagittal = sagittal/np.linalg.norm(sagittal)\n", + " if self.getKeypoint(\"shoulderCenter\") is not None:\n", + " if self.getKeypoint(\"hipLeft\") is not None:\n", + " if self.getKeypoint(\"hipRight\") is not None:\n", + " transverse = self.getKeypoint(\"shoulderCenter\")[0]-0.5*(self.getKeypoint(\"hipLeft\")[0]+self.getKeypoint(\"hipRight\")[0])\n", + " transverse = transverse/np.linalg.norm(transverse)\n", + " if self.getKeypoint(\"shoulderCenter\") is not None:\n", + " pSC = self.getKeypoint(\"shoulderCenter\")[0]\n", + "\n", + " if sagittal is not None:\n", + " if coronal is not None:\n", + " coronal = np.cross(sagittal,transverse)\n", + " T[0,0]=coronal[0]\n", + " T[1,0]=coronal[1]\n", + " T[2,0]=coronal[2]\n", + " T[0,1]=sagittal[0]\n", + " T[1,1]=sagittal[1]\n", + " T[2,1]=sagittal[2]\n", + " T[0,2]=transverse[0]\n", + " T[1,2]=transverse[1]\n", + " T[2,2]=transverse[2]\n", + " T[0,3]=pSC[0]\n", + " T[1,3]=pSC[1]\n", + " T[2,3]=pSC[2]\n", + " T[3,3]=1\n", + " return T\n", + "\n", + " def show(self):\n", + " for i in range(len(self.keypoints)):\n", + " k = self.keypoints[i]\n", + " print(\"keypoint[\", k.tag, \"]\", \"=\", k.point)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "class Exercise:\n", + " name = \"\"\n", + " typee = \"\"\n", + " metrics = []\n", + "\n", + "class Tug(Exercise):\n", + " name = \"tug\"\n", + " typee = \"test\"\n", + " metrics = [\"ROM_0\",\"ROM_1\",\"ROM_2\",\"ROM_3\",\"ROM_4\",\"ROM_5\",\"step_0\"]\n", + " result = []\n", + " month_res = {\n", + " 0: [],\n", + " 1: [],\n", + " 2: [],\n", + " 3: [],\n", + " 4: [],\n", + " 5: [],\n", + " 6: [],\n", + " 7: [],\n", + " 8: [],\n", + " 9: [],\n", + " 10: [],\n", + " 11: []\n", + " }\n", + "\n", + " def __init__(self,month,result):\n", + " self.result = result\n", + " self.month_res[month] = result\n", + "\n", + " def getResult(self,month):\n", + " return self.month_res[month]\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "class Metric:\n", + " name = ''\n", + "\n", + " def __init__(self,name):\n", + " self.name = name\n", + "\n", + "\n", + "class Step(Metric):\n", + " name = \"step\"\n", + " en_projection = False\n", + " medfilt = 1\n", + " step_thresh = 0.0\n", + " tstart = 0.0\n", + " tend = 0.0\n", + " step_length = []\n", + " step_width = []\n", + " step_distance = []\n", + " filtered_step_distance = []\n", + " strikes = []\n", + " nsteps = 0\n", + " cadence = 0.0\n", + " speed = 0.0\n", + " ex_time = 0.0\n", + " \n", + " def __init__(self,medfilt_window,en_projection,tstart,tend,step_thresh):\n", + "\n", + " # scipy median filter requires odd kernel size\n", + " self.medfilt = int(medfilt_window)\n", + " if not (self.medfilt & 1):\n", + " self.medfilt = self.medfilt + 1\n", + "\n", + " self.tstart = tstart\n", + " self.tend = tend\n", + " self.step_thresh = step_thresh\n", + " self.en_projection = en_projection\n", + "\n", + " def compute(self,skeleton):\n", + " alj = skeleton.getKeypoint(\"ankleLeft\")\n", + " arj = skeleton.getKeypoint(\"ankleRight\")\n", + " ankles_diff = alj[:, :2] - arj[:, :2]\n", + "\n", + " if self.en_projection:\n", + " if skeleton.getKeypoint(\"shoulderLeft\") is not None and skeleton.getKeypoint(\"shoulderRight\") is not None:\n", + " sagittal = skeleton.getKeypoint(\"shoulderLeft\")[0] - skeleton.getKeypoint(\"shoulderRight\")[0]\n", + " sagittal = sagittal / np.linalg.norm(sagittal)\n", + " for i in range(len(alj)):\n", + " v = alj[i,:] - arj[i,:]\n", + " dist = np.dot(v,np.transpose(sagittal))\n", + " v = v - dist * sagittal\n", + " self.step_distance.append(np.linalg.norm(v))\n", + " self.filtered_step_distance = scipy.signal.medfilt(self.step_distance,kernel_size=self.medfilt)\n", + " else:\n", + " # ankles_diff_filtered = scipy.ndimage.median_filter(ankles_diff, size = (self.medfilt, self.medfilt))\n", + " ankles_diff_filtered = scipy.signal.savgol_filter(ankles_diff, 20, 2, axis=0)\n", + " self.filtered_step_distance = np.linalg.norm(ankles_diff_filtered, axis=1)\n", + " self.step_distance = np.linalg.norm(ankles_diff, axis=1)\n", + "\n", + " outliers_indices = np.where(np.abs(scipy.stats.zscore(self.filtered_step_distance)) > 3)[0]\n", + " self.filtered_step_distance[outliers_indices] = 0.0\n", + "\n", + " #self.strikes = scipy.signal.find_peaks_cwt(self.filtered_step_distance, np.arange(1, 42), min_snr=1)\n", + " self.strikes,_ = scipy.signal.find_peaks(self.filtered_step_distance, height = self.step_thresh, distance = 10)\n", + " slen = self.filtered_step_distance[self.strikes]\n", + " self.step_length = stats.mean(slen)\n", + " self.step_width = np.fabs(ankles_diff)\n", + " self.nsteps = len(self.strikes)\n", + " self.cadence = self.nsteps / (self.tend - self.tstart)\n", + " self.speed = self.step_length * self.cadence\n", + " self.ex_time = self.tend - self.tstart\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "class Metric:\n", + " name = ''\n", + "\n", + " def __init__(self,name):\n", + " self.name = name\n", + "\n", + "\n", + "class Step(Metric):\n", + " name = \"step\"\n", + " en_projection = False\n", + " medfilt = 1\n", + " step_thresh = 0.0\n", + " tstart = 0.0\n", + " tstanding = 0.0\n", + " tforward = 0.0\n", + " tturning = 0.0\n", + " tbackward = 0.0\n", + " tsitting = 0.0\n", + " tend = 0.0\n", + " step_length = []\n", + " step_width = []\n", + " step_distance = []\n", + " filtered_step_distance = []\n", + " strikes = []\n", + " nsteps = 0\n", + " cadence = 0.0\n", + " speed = 0.0\n", + " ex_time = 0.0\n", + " \n", + " def __init__(self,medfilt_window,en_projection,step_thresh):\n", + "\n", + " # scipy median filter requires odd kernel size\n", + " self.medfilt = int(medfilt_window)\n", + " if not (self.medfilt & 1):\n", + " self.medfilt = self.medfilt + 1\n", + "\n", + " self.step_thresh = step_thresh\n", + " self.en_projection = en_projection\n", + "\n", + " def compute_timing(self, skeleton):\n", + " sc = skeleton.getKeypoint(\"shouldCenter\")\n", + " hc = skeleton.getKeypoint(\"hipCenter\")\n", + " alj = skeleton.getKeypoint(\"ankleLeft\")\n", + " arj = skeleton.getKeypoint(\"ankleRight\")\n", + "\n", + " vel_hipCenter_x = scipy.signal.savgol_filter(hc, 20, 2, 1, axis=1)\n", + " vel_hipCenter_z = scipy.signal.savgol_filter(hc, 20, 2, 1, axis=2)\n", + " vel_ankleLeft_x = scipy.signal.savgol_filter(alj, 20, 2, 1, axis=1)\n", + " vel_ankleLeft_z = scipy.signal.savgol_filter(alj, 20, 2, 1, axis=2)\n", + " vel_ankleRight_x = scipy.signal.savgol_filter(arj, 20, 2, 1, axis=1)\n", + " vel_ankleRight_z = scipy.signal.savgol_filter(arj, 20, 2, 1, axis=2)\n", + "\n", + " def compute(self,skeleton):\n", + " alj = skeleton.getKeypoint(\"ankleLeft\")\n", + " arj = skeleton.getKeypoint(\"ankleRight\")\n", + " ankles_diff = alj[:, :2] - arj[:, :2]\n", + "\n", + " if self.en_projection:\n", + " if skeleton.getKeypoint(\"shoulderLeft\") is not None and skeleton.getKeypoint(\"shoulderRight\") is not None:\n", + " sagittal = skeleton.getKeypoint(\"shoulderLeft\")[0] - skeleton.getKeypoint(\"shoulderRight\")[0]\n", + " sagittal = sagittal / np.linalg.norm(sagittal)\n", + " for i in range(len(alj)):\n", + " v = alj[i,:] - arj[i,:]\n", + " dist = np.dot(v,np.transpose(sagittal))\n", + " v = v - dist * sagittal\n", + " self.step_distance.append(np.linalg.norm(v))\n", + " self.filtered_step_distance = scipy.signal.medfilt(self.step_distance,kernel_size=self.medfilt)\n", + " else:\n", + " # ankles_diff_filtered = scipy.ndimage.median_filter(ankles_diff, size = (self.medfilt, self.medfilt))\n", + " ankles_diff_filtered = scipy.signal.savgol_filter(ankles_diff, 20, 2, axis=0)\n", + " self.filtered_step_distance = np.linalg.norm(ankles_diff_filtered, axis=1)\n", + " self.step_distance = np.linalg.norm(ankles_diff, axis=1)\n", + "\n", + " outliers_indices = np.where(np.abs(scipy.stats.zscore(self.filtered_step_distance)) > 3)[0]\n", + " self.filtered_step_distance[outliers_indices] = 0.0\n", + "\n", + " #self.strikes = scipy.signal.find_peaks_cwt(self.filtered_step_distance, np.arange(1, 42), min_snr=1)\n", + " self.strikes,_ = scipy.signal.find_peaks(self.filtered_step_distance, height = self.step_thresh, distance = 10)\n", + " slen = self.filtered_step_distance[self.strikes]\n", + " self.step_length = stats.mean(slen)\n", + " self.step_width = np.fabs(ankles_diff)\n", + " self.nsteps = len(self.strikes)\n", + " self.cadence = self.nsteps / (self.tend - self.tstart)\n", + " self.speed = self.step_length * self.cadence\n", + " self.ex_time = self.tend - self.tstart\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "def loadmat(filename):\n", + " '''\n", + " this function should be called instead of direct spio.loadmat\n", + " as it cures the problem of not properly recovering python dictionaries\n", + " from mat files. It calls the function check keys to cure all entries\n", + " which are still mat-objects\n", + " '''\n", + " data = spio.loadmat(filename, struct_as_record=False, squeeze_me=True)\n", + " return _check_keys(data)\n", + "\n", + "def _check_keys(dict):\n", + " '''\n", + " checks if entries in dictionary are mat-objects. If yes\n", + " todict is called to change them to nested dictionaries\n", + " '''\n", + " for key in dict:\n", + " if isinstance(dict[key], spio.matlab.mat_struct):\n", + " dict[key] = _todict(dict[key])\n", + " return dict \n", + "\n", + "def _todict(matobj):\n", + " '''\n", + " A recursive function which constructs from matobjects nested dictionaries\n", + " '''\n", + " dict = {}\n", + " for strg in matobj._fieldnames:\n", + " elem = matobj.__dict__[strg]\n", + " if isinstance(elem, spio.matlab.mat_struct):\n", + " dict[strg] = _todict(elem)\n", + " else:\n", + " dict[strg] = elem\n", + " return dict\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## Dati anagrafici " + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Paziente
Nome002
Cognome
Età
\n", + "
" + ], + "text/plain": [ + " Paziente\n", + "Nome 002\n", + "Cognome \n", + "Età " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "#load file \n", + "home = expanduser(\"~\")\n", + "id_patient = 'datadump-FDG-002-20230208-mr'\n", + "pth = home + '/dev_iit/assistive-rehab/data_exp/'+ id_patient\n", + "files = glob.glob(os.path.join(pth, '*.mat'))\n", + "lastfile = max(files, key=os.path.getctime)\n", + "\n", + "#print personal data\n", + "i = [pos for pos, char in enumerate(lastfile) if char == \"-\"]\n", + "i1 = i[-3]\n", + "i2 = i[-2]\n", + "name = lastfile[i1+1:i2]\n", + "surname = \"\"\n", + "age = \"\"\n", + "\n", + "personaldata = []\n", + "personaldata.append(name)\n", + "personaldata.append(surname)\n", + "personaldata.append(age) \n", + "table = pd.DataFrame(personaldata) \n", + "table.rename(index={0:\"Nome\",1:\"Cognome\",2:\"Età\"}, columns={0:\"Paziente\"}, inplace=True)\n", + "display(table) " + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "\n", + "data = []\n", + "ctime = []\n", + "filename = []\n", + "tagex = []\n", + "files.sort(key=os.path.getctime)\n", + "for fi in files:\n", + " i = [pos for pos, char in enumerate(fi) if char == \"-\"]\n", + " i1 = i[-3]\n", + " i2 = i[-2]\n", + " i3 = i[-1]\n", + " namei = fi[i1+1:i2]\n", + " if namei == name:\n", + " filename.append(fi)\n", + " data.append(loadmat(fi)) #data.append(scipy.io.loadmat(fi))\n", + " tagex.append(fi[i2+1:i3])\n", + " ctime.append(os.path.getctime(fi)) " + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "time = []\n", + "month = []\n", + "exercises = []\n", + "ex_names = []\n", + "#count how many exercise of the same type were performed at that month\n", + "countexmonth = {\n", + " \"tug\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", + "}\n", + "\n", + "for i in range(len(data)):\n", + "\n", + " datai = data[i]\n", + " time.append(datai['Time_samples'])\n", + " monthi = datetime.date.fromtimestamp(ctime[i]).month-1\n", + " month.append(monthi)\n", + " shoulderCenter = datai['Keypoints']['shoulderCenter']\n", + " head = datai['Keypoints']['head']\n", + " shoulderLeft = datai['Keypoints']['shoulderLeft']\n", + " shoulderRight = datai['Keypoints']['shoulderRight']\n", + " elbowLeft = datai['Keypoints']['elbowLeft']\n", + " handLeft = datai['Keypoints']['handLeft']\n", + " elbowRight = datai['Keypoints']['elbowRight']\n", + " handRight = datai['Keypoints']['handRight']\n", + " hipLeft = datai['Keypoints']['hipLeft']\n", + " hipRight = datai['Keypoints']['hipRight']\n", + " ankleLeft = datai['Keypoints']['ankleLeft']\n", + " ankleRight = datai['Keypoints']['ankleRight']\n", + " kneeLeft = datai['Keypoints']['kneeLeft']\n", + " kneeRight = datai['Keypoints']['kneeRight']\n", + " footLeft = datai['Keypoints']['footLeft']\n", + " footRight = datai['Keypoints']['footRight']\n", + " hipCenter = datai['Keypoints']['hipCenter']\n", + "\n", + " key_pam = {\n", + " \"shoulderCenter\" : shoulderCenter,\n", + " \"head\" : head,\n", + " \"shoulderLeft\" : shoulderLeft,\n", + " \"shoulderRight\" : shoulderRight,\n", + " \"elbowLeft\" : elbowLeft,\n", + " \"handLeft\" : handLeft,\n", + " \"elbowRight\" : elbowRight,\n", + " \"handRight\" : handRight,\n", + " \"hipLeft\" : hipLeft,\n", + " \"hipRight\" : hipRight,\n", + " \"ankleLeft\" : ankleLeft,\n", + " \"ankleRight\" : ankleRight,\n", + " \"kneeLeft\" : kneeLeft,\n", + " \"kneeRight\" : kneeRight,\n", + " \"footLeft\" : footLeft,\n", + " \"footRight\" : footRight,\n", + " \"hipCenter\" : hipCenter\n", + " }\n", + " s=Skeleton(key_pam)\n", + " #s.show()\n", + "\n", + " exname = datai[\"Exercise\"][\"name\"]\n", + " exname = re.sub(r'[^\\w]','',exname)\n", + " ex_names.append(exname)\n", + " result_singleexercise = []\n", + " allmet = datai[\"Exercise\"][\"metrics\"]\n", + " metrics = allmet.keys()\n", + " for metname in metrics:\n", + "\n", + " if \"step\" in metname:\n", + " flt = allmet[metname][\"median_filter_window\"]\n", + " proj = allmet[metname][\"enable_plane_projection\"]\n", + " proj = False\n", + " tstart = allmet[metname][\"tstart\"]\n", + " tend = allmet[metname][\"tend\"]\n", + " step_thresh = allmet[metname][\"step_thresh\"]\n", + " step = Step(flt,proj,tstart,tend,step_thresh)\n", + " step.compute(s)\n", + " stepmet = [step.step_distance, step.nsteps, step.cadence, step.speed, step.ex_time,\n", + " step.filtered_step_distance, step.strikes, step.step_width, step.step_length]\n", + " result_singleexercise.append((step,stepmet))\n", + "\n", + "\n", + " if exname == \"tug\":\n", + " ex = Tug(monthi,result_singleexercise)\n", + "\n", + " countexmonth[exname][monthi] = 1 + countexmonth[exname][monthi]\n", + "\n", + " exercises.append(ex) " + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "276.87239241600037" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "time[0][0]" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[-5.70641829e-01, 2.94318713e-01, 9.82976553e-01],\n", + " [-5.61625400e-01, 2.93720468e-01, 9.69396759e-01],\n", + " [-5.61593561e-01, 2.93583246e-01, 9.78265678e-01],\n", + " [-5.69742587e-01, 2.89779798e-01, 9.56580846e-01],\n", + " [-5.69715011e-01, 2.89661771e-01, 9.65446336e-01],\n", + " [-5.70172904e-01, 2.91976618e-01, 9.79029764e-01],\n", + " [-5.62177366e-01, 2.96500591e-01, 9.66116878e-01],\n", + " [-5.71167562e-01, 2.96947485e-01, 9.78936220e-01],\n", + " [-5.62983011e-01, 3.00606552e-01, 9.90203209e-01],\n", + " [-5.63018987e-01, 3.00761604e-01, 9.81323299e-01],\n", + " [-5.70641829e-01, 2.94318713e-01, 9.82976553e-01],\n", + " [-5.70641829e-01, 2.94318713e-01, 9.82976553e-01],\n", + " [-5.71637281e-01, 2.99293611e-01, 9.82899524e-01],\n", + " [-5.64023592e-01, 3.05851849e-01, 9.91710606e-01],\n", + " [-5.64023592e-01, 3.05851849e-01, 9.91710606e-01],\n", + " [-5.71600517e-01, 2.99136259e-01, 9.91779856e-01],\n", + " [-5.70641829e-01, 2.94318713e-01, 9.82976553e-01],\n", + " [-5.70641829e-01, 2.94318713e-01, 9.82976553e-01],\n", + " [-5.62084450e-01, 2.96056310e-01, 9.82976553e-01],\n", + " [-5.62084450e-01, 2.96056310e-01, 9.82976553e-01],\n", + " [-5.62047902e-01, 2.95898793e-01, 9.91849106e-01],\n", + " [-5.61096678e-01, 2.91080128e-01, 9.83053578e-01],\n", + " [-5.60108905e-01, 2.86103947e-01, 9.83130603e-01],\n", + " [-5.68241259e-01, 2.82301130e-01, 9.71102784e-01],\n", + " [-5.61624627e-01, 2.93716534e-01, 9.69372505e-01],\n", + " [-5.62126253e-01, 2.96240092e-01, 9.64588744e-01],\n", + " [-5.61166349e-01, 2.91384627e-01, 9.55816965e-01],\n", + " [-5.61166349e-01, 2.91384627e-01, 9.55816965e-01],\n", + " [-5.67699981e-01, 2.79590049e-01, 9.64869260e-01],\n", + " [-5.51296587e-01, 2.41663337e-01, 9.56829732e-01],\n", + " [-5.38856106e-01, 1.78961196e-01, 9.40391321e-01],\n", + " [-5.17814312e-01, 3.02037879e-02, 9.26418272e-01],\n", + " [-4.77722983e-01, -9.82088643e-02, 9.29889739e-01],\n", + " [-4.77722983e-01, -9.82088643e-02, 9.29889739e-01],\n", + " [-4.64957797e-01, -1.45874384e-01, 9.46682550e-01],\n", + " [-4.51864512e-01, -1.94284859e-01, 9.61774171e-01],\n", + " [-4.40188157e-01, -2.22384999e-01, 1.04170362e+00],\n", + " [-4.19944068e-01, -2.63620349e-01, 1.13527339e+00],\n", + " [-4.17556631e-01, -3.25925043e-01, 1.17238177e+00],\n", + " [-4.04650233e-01, -3.73348115e-01, 1.17413960e+00],\n", + " [-3.96038942e-01, -4.78577480e-01, 1.20010454e+00],\n", + " [-3.91320926e-01, -6.01433371e-01, 1.20847724e+00],\n", + " [-3.63922411e-01, -7.01871005e-01, 1.21494119e+00],\n", + " [-3.42573667e-01, -8.09401917e-01, 1.22796039e+00],\n", + " [-3.11146398e-01, -9.28414413e-01, 1.22069989e+00],\n", + " [-2.81661367e-01, -1.05068610e+00, 1.19831262e+00],\n", + " [-2.46640719e-01, -1.17283787e+00, 1.19742075e+00],\n", + " [-2.12804297e-01, -1.29851027e+00, 1.20785884e+00],\n", + " [-1.88984630e-01, -1.42152915e+00, 1.21635805e+00],\n", + " [-1.54003925e-01, -1.54097234e+00, 1.20385364e+00],\n", + " [-1.33791152e-01, -1.67945531e+00, 1.16142395e+00],\n", + " [-1.09920589e-01, -1.82174533e+00, 1.16313594e+00],\n", + " [-9.56532074e-02, -1.96916010e+00, 1.16738800e+00],\n", + " [-6.88164560e-02, -2.10802319e+00, 1.16565991e+00],\n", + " [-1.36385492e-02, -2.35683317e+00, 1.16107608e+00],\n", + " [ 2.44469199e-02, -2.48364474e+00, 1.13840576e+00],\n", + " [ 2.44469199e-02, -2.48364474e+00, 1.13840576e+00],\n", + " [ 5.17051763e-02, -2.56533284e+00, 1.13172742e+00],\n", + " [ 9.78122167e-02, -2.67928356e+00, 1.13896422e+00],\n", + " [ 1.37799288e-01, -2.88978819e+00, 1.12970373e+00],\n", + " [ 1.37799288e-01, -2.88978819e+00, 1.12970373e+00],\n", + " [ 1.54173071e-01, -3.03388551e+00, 1.12063370e+00],\n", + " [ 2.20024855e-01, -3.25049626e+00, 1.14006097e+00],\n", + " [ 2.20024855e-01, -3.25049626e+00, 1.14006097e+00],\n", + " [ 2.72729308e-01, -3.37517601e+00, 1.15516142e+00],\n", + " [ 3.00865749e-01, -3.36880973e+00, 1.14507272e+00],\n", + " [ 3.18614467e-01, -3.34071223e+00, 1.12888384e+00],\n", + " [ 3.18614467e-01, -3.34071223e+00, 1.12888384e+00],\n", + " [ 3.27095412e-01, -3.29762760e+00, 1.12492914e+00],\n", + " [ 3.31546460e-01, -3.23358056e+00, 1.11831164e+00],\n", + " [ 3.48161101e-01, -3.16705397e+00, 1.11803032e+00],\n", + " [ 3.74228663e-01, -3.07039399e+00, 1.11964088e+00],\n", + " [ 3.86918978e-01, -2.96177973e+00, 1.11811484e+00],\n", + " [ 3.67582205e-01, -2.74790312e+00, 1.16297254e+00],\n", + " [ 3.43174472e-01, -2.64146177e+00, 1.16579169e+00],\n", + " [ 3.43174472e-01, -2.64146177e+00, 1.16579169e+00],\n", + " [ 2.73030370e-01, -2.42530411e+00, 1.14414868e+00],\n", + " [ 2.73030370e-01, -2.42530411e+00, 1.14414868e+00],\n", + " [ 2.37459090e-01, -2.29093896e+00, 1.15526442e+00],\n", + " [ 2.03797714e-01, -2.16275380e+00, 1.19512369e+00],\n", + " [ 1.57441815e-01, -2.04041615e+00, 1.20615571e+00],\n", + " [ 9.66392865e-02, -1.89711892e+00, 1.18784193e+00],\n", + " [ 6.03714995e-02, -1.76093693e+00, 1.18100027e+00],\n", + " [ 2.43987916e-02, -1.61933162e+00, 1.21235254e+00],\n", + " [-7.70567648e-04, -1.50316356e+00, 1.24021112e+00],\n", + " [-2.19669070e-02, -1.38131771e+00, 1.26125957e+00],\n", + " [-6.57841663e-02, -1.23093151e+00, 1.24362327e+00],\n", + " [-8.73942334e-02, -1.11391233e+00, 1.23892072e+00],\n", + " [-1.12901010e-01, -1.00510632e+00, 1.22939540e+00],\n", + " [-1.56398410e-01, -8.76428629e-01, 1.25625772e+00],\n", + " [-2.04046015e-01, -7.78815129e-01, 1.27528245e+00],\n", + " [-2.60221328e-01, -7.13655823e-01, 1.29752496e+00],\n", + " [-3.12489152e-01, -6.32200647e-01, 1.30250639e+00],\n", + " [-3.61974927e-01, -5.32927303e-01, 1.30053007e+00],\n", + " [-3.98113563e-01, -4.42279817e-01, 1.31765962e+00],\n", + " [-4.22528532e-01, -4.06459618e-01, 1.30793737e+00],\n", + " [-4.53493292e-01, -3.58848370e-01, 1.30643199e+00],\n", + " [-4.71452004e-01, -2.85616594e-01, 1.26412693e+00],\n", + " [-4.99839089e-01, -2.42675255e-01, 1.22404183e+00],\n", + " [-5.38791081e-01, -2.20513164e-01, 1.19875171e+00],\n", + " [-5.35991927e-01, -1.88040228e-01, 1.14394061e+00],\n", + " [-5.52219777e-01, -1.62697589e-01, 1.04453642e+00],\n", + " [-5.28680539e-01, -1.31737926e-01, 9.77273494e-01],\n", + " [-5.07417149e-01, -1.10752469e-01, 9.56943860e-01],\n", + " [-5.07552600e-01, -8.64313218e-02, 9.34759849e-01],\n", + " [-4.99012538e-01, -6.37548949e-02, 9.31151429e-01],\n", + " [-5.09737981e-01, 3.23184444e-02, 9.67252314e-01],\n", + " [-5.23632791e-01, 1.02321032e-01, 9.68235432e-01],\n", + " [-5.39878448e-01, 1.40529934e-01, 9.58855272e-01],\n", + " [-5.42386005e-01, 1.96794366e-01, 9.66458841e-01],\n", + " [-5.42386005e-01, 1.96794366e-01, 9.66458841e-01],\n", + " [-5.53243186e-01, 2.51489741e-01, 9.65430284e-01],\n", + " [-5.56231492e-01, 2.66524101e-01, 9.56323346e-01],\n", + " [-5.55244492e-01, 2.61551853e-01, 9.56424625e-01],\n", + " [-5.57244267e-01, 2.71627505e-01, 9.56985953e-01],\n", + " [-5.57244267e-01, 2.71627505e-01, 9.56985953e-01],\n", + " [-5.57675856e-01, 2.73823610e-01, 9.69753366e-01],\n", + " [-5.57108819e-01, 2.71016865e-01, 9.92195347e-01],\n", + " [-5.65664711e-01, 2.69444937e-01, 9.83361686e-01],\n", + " [-5.61645978e-01, 2.49387377e-01, 9.92472341e-01],\n", + " [-5.53157534e-01, 2.51111227e-01, 9.92472341e-01],\n", + " [-5.62678402e-01, 2.54520482e-01, 9.83592770e-01],\n", + " [-5.55169902e-01, 2.61222328e-01, 9.83515741e-01],\n", + " [-5.55169902e-01, 2.61222328e-01, 9.83515741e-01]])" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "s.keypoints[0].point" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "s.keypoints[0].point[:,0]\n", + "import matplotlib.pyplot as plt\n", + "plt.plot(s.keypoints[0].point[:,0], s.keypoints[0].point[:,1])\n", + "plt.ylabel('some numbers')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "def compute_timing(skeleton, tag):\n", + " sc = skeleton.getKeypoint(tag)\n", + "\n", + " win=10\n", + " poly_ord=2\n", + " dev_ord=1\n", + "\n", + " acc_x = scipy.signal.savgol_filter(sc[:,0], win, poly_ord, 2, delta = time[0][1]-time[0][0], axis=0)\n", + " acc_y = scipy.signal.savgol_filter(sc[:,1], win, poly_ord, 2, delta = time[0][1]-time[0][0], axis=0)\n", + " acc_z = scipy.signal.savgol_filter(sc[:,2], win, poly_ord, 2, delta = time[0][1]-time[0][0], axis=0)\n", + " vel_x = scipy.signal.savgol_filter(sc[:,0], win, poly_ord, dev_ord, delta = time[0][1]-time[0][0], axis=0)\n", + " vel_y = scipy.signal.savgol_filter(sc[:,1], win, poly_ord, dev_ord, delta = time[0][1]-time[0][0], axis=0)\n", + " vel_z = scipy.signal.savgol_filter(sc[:,2], win, poly_ord, dev_ord, delta = time[0][1]-time[0][0], axis=0) \n", + "\n", + " return vel_x, vel_y, vel_z, acc_x, acc_y, acc_z\n", + "\n", + "vel_shoulCenter_x, vel_shoulCenter_y, vel_shoulCenter_z, acc_shoulCenter_x, acc_shoulCenter_y, acc_shoulCenter_z= compute_timing(s, \"shoulderCenter\")\n", + "vel_hipCenter_x, vel_hipCenter_y, vel_hipCenter_z, acc_hipCenter_x, acc_hipCenter_y, acc_hipCenter_z = compute_timing(s, \"hipCenter\")\n", + "vel_ankleLeft_x, vel_ankleLeft_y, vel_ankleLeft_z, acc_ankleLeft_x, acc_ankleLeft_y, acc_ankleLeft_z = compute_timing(s, \"ankleLeft\")\n", + "vel_ankleRight_x, vel_ankleRight_y, vel_ankleRight_z, acc_ankleRight_x, acc_ankleRight_y, acc_ankleRight_z = compute_timing(s, \"ankleRight\")\n", + "vel_shoulRight_x, vel_shoulRight_y, vel_shoulRight_z, acc_shoulRight_x, acc_shoulRight_y, acc_shoulRight_z = compute_timing(s, \"shoulderRight\")\n", + "vel_shoulLeft_x, vel_shoulLeft_y, vel_shoulLeft_z, acc_shoulLeft_x, acc_shoulLeft_y, acc_shoulLeft_z = compute_timing(s, \"shoulderLeft\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Fase di alzata" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "###### L'alzata inizia quando noto un'accelerazione in z del centro delle spalle e, contemporaneamente, una crescita della distanza in y tra il centro delle spalle e il centro delle anche." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "dur= 29 #49\n", + "nsigma=3\n", + "# init_mean= np.mean(acc_shoulCenter_z[0:49])\n", + "# init_std= np.std(acc_shoulCenter_z[0:49])\n", + "# cond1 = np.where(np.abs((acc_shoulCenter_z-init_mean)/init_std) > nsigma)[0]\n", + "init_mean= np.mean(acc_hipCenter_z[0:dur])\n", + "init_std= np.std(acc_hipCenter_z[0:dur])\n", + "cond1 = np.where(np.abs((acc_hipCenter_z-init_mean)/init_std) > nsigma)[0]\n", + "\n", + "cond2=np.where(np.diff(np.sign(acc_hipCenter_y-acc_shoulCenter_y)))[0]\n", + "\n", + "in_stand_idx= np.intersect1d(cond1,cond2)[0]\n", + "\n", + "#L'alzata finisce quando il centro delle spalle non varia piu' la sua altezza #FDG preferisce quando inizia la camminata\n", + "#zero_vel = np.where(np.diff(np.sign(vel_shoulCenter_z[in_stand_idx:])))\n", + "#fin_stand_idx = in_stand_idx + zero_vel[0][1]\n" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 30, 31, 32, 33, 34, 37, 38, 97, 98, 99, 102, 103, 104,\n", + " 105, 106])" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cond1" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'in_wf_idx' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[20], line 9\u001b[0m\n\u001b[1;32m 7\u001b[0m axs[\u001b[39m1\u001b[39m]\u001b[39m.\u001b[39mplot(time[\u001b[39m0\u001b[39m][\u001b[39m0\u001b[39m:\u001b[39m-\u001b[39m\u001b[39m1\u001b[39m], vel_shoulCenter_z)\n\u001b[1;32m 8\u001b[0m \u001b[39m#axs[1].plot(time[0][fin_stand_idx],vel_shoulCenter_z[fin_stand_idx], 'ro')\u001b[39;00m\n\u001b[0;32m----> 9\u001b[0m axs[\u001b[39m1\u001b[39m]\u001b[39m.\u001b[39mplot(time[\u001b[39m0\u001b[39m][in_wf_idx],vel_shoulCenter_z[in_wf_idx], \u001b[39m'\u001b[39m\u001b[39mro\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[1;32m 10\u001b[0m \u001b[39m#axs[1].plot(time[0][0:-1], np.zeros((len(vel_shoulCenter_z),1)))\u001b[39;00m\n\u001b[1;32m 11\u001b[0m axs[\u001b[39m1\u001b[39m]\u001b[39m.\u001b[39mset_ylabel(\u001b[39m'\u001b[39m\u001b[39mVelocity\u001b[39m\u001b[39m'\u001b[39m)\n", + "\u001b[0;31mNameError\u001b[0m: name 'in_wf_idx' is not defined" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axs = plt.subplots(3)\n", + "axs[0].plot(time[0][0:-1], acc_shoulCenter_z)\n", + "axs[0].plot(time[0][in_stand_idx],acc_shoulCenter_z[in_stand_idx], 'go')\n", + "#axs[0].plot(time[0][0:-1], np.zeros((len(vel_shoulCenter_z),1)))\n", + "axs[0].set_ylabel('Acceleration')\n", + "\n", + "axs[1].plot(time[0][0:-1], vel_shoulCenter_z)\n", + "#axs[1].plot(time[0][fin_stand_idx],vel_shoulCenter_z[fin_stand_idx], 'ro')\n", + "axs[1].plot(time[0][in_wf_idx],vel_shoulCenter_z[in_wf_idx], 'ro')\n", + "#axs[1].plot(time[0][0:-1], np.zeros((len(vel_shoulCenter_z),1)))\n", + "axs[1].set_ylabel('Velocity')\n", + "\n", + "axs[2].plot(time[0][0:-1], s.keypoints[0].point[:,2])\n", + "axs[2].plot(time[0][in_stand_idx],s.keypoints[0].point[in_stand_idx,2], 'go')\n", + "#axs[2].plot(time[0][fin_stand_idx],s.keypoints[0].point[fin_stand_idx,2], 'ro')\n", + "axs[2].plot(time[0][in_wf_idx],s.keypoints[0].point[in_wf_idx,2], 'ro')\n", + "axs[2].set_ylabel('Position')\n", + "\n", + "print('Alzata inizia a:')\n", + "print(time[0][in_stand_idx])\n", + "print('e finisce a: ') \n", + "#print(time[0][fin_stand_idx])\n", + "print(time[0][in_wf_idx])\n", + "print('Dura:')\n", + "print(time[0][in_wf_idx]-time[0][in_stand_idx])" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Fase di camminata andata" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "###### La camminata inizia appena uno dei due piedi accelera in y e finisce con l'inizio della rotazione. Quest'ultima inizia quando la distanza in x delle due spalle inizia a descrescere e ho superato la linea dei 3m." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "La camminata di andata inizia a:\n", + "280.48265051841736\n", + "e finisce a: \n", + "282.77765107154846\n", + "Dura:\n", + "2.2950005531311035\n" + ] + } + ], + "source": [ + "nsigma=3\n", + "init_mean= np.mean(acc_ankleRight_y[0:dur])\n", + "init_std= np.std(acc_ankleRight_y[0:dur])\n", + "in_wf_Right_y_idx = np.where(np.abs((acc_ankleRight_y-init_mean)/init_std) > nsigma)[0]\n", + "in_wf_Right_y_idx = np.where(vel_ankleRight_y[in_stand_idx:] < -1)[0]+in_stand_idx-2\n", + "init_mean= np.mean(acc_ankleLeft_y[0:dur])\n", + "init_std= np.std(acc_ankleLeft_y[0:dur])\n", + "in_wf_Left_y_idx = np.where(np.abs((acc_ankleLeft_y-init_mean)/init_std) > nsigma)[0]\n", + "in_wf_Left_y_idx = np.where(vel_ankleLeft_y[in_stand_idx:] < -1)[0]+in_stand_idx-2\n", + "#in_wf_idx= np.minimum(in_wf_Right_y_idx, in_wf_Left_y_idx)[0]\n", + "if in_wf_Right_y_idx[0]0))[0]\n", + "diff_vel_x=vel_shoulRight_x-vel_shoulLeft_x\n", + "diff_acc_x=acc_shoulRight_x-acc_shoulLeft_x\n", + "cond1= np.array(np.where(diff_acc_x>0))[0]\n", + "\n", + "rfoot_cross3m = np.array(np.where(s.keypoints[15].point[:,1]<-3.))[0]#\n", + "lfoot_cross3m = np.array(np.where(s.keypoints[11].point[:,1]<-3.))[0]#\n", + "if rfoot_cross3m[0]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axs = plt.subplots(3,3)\n", + "axs[0,0].plot(time[0][0:-1], acc_ankleRight_x, label= 'R')\n", + "axs[0,0].plot(time[0][0:-1], acc_ankleLeft_x, label= 'L')\n", + "#axs[0,0].plot(time[0][0:-1], np.zeros((len(vel_ankleRight_x),1)))\n", + "axs[0,0].set_ylabel('Acceleration')\n", + "axs[0,0].set_title('Ankle X-dim')\n", + "axs[0,0].legend()\n", + "\n", + "axs[1,0].plot(time[0][0:-1], vel_ankleRight_x)\n", + "axs[1,0].plot(time[0][0:-1], vel_ankleLeft_x)\n", + "#axs[1,0].plot(time[0][0:-1], np.zeros((len(vel_ankleRight_x),1)))\n", + "axs[1,0].set_ylabel('Velocity')\n", + "\n", + "axs[2,0].plot(time[0][0:-1], s.keypoints[15].point[:,0])\n", + "axs[2,0].plot(time[0][0:-1], s.keypoints[11].point[:,0])\n", + "axs[2,0].set_ylabel('Position')\n", + "\n", + "axs[0,1].plot(time[0][0:-1], acc_ankleRight_y)\n", + "axs[0,1].plot(time[0][in_wf_Right_y_idx],acc_ankleRight_y[in_wf_Right_y_idx], 'go')\n", + "axs[0,1].plot(time[0][0:-1], acc_ankleLeft_y)\n", + "axs[0,1].plot(time[0][in_wf_Left_y_idx],acc_ankleLeft_y[in_wf_Left_y_idx], 'go')\n", + "#axs[0,1].plot(time[0][0:-1], np.zeros((len(vel_ankleRight_y),1)))\n", + "axs[0,1].set_title('Ankle Y-dim')\n", + "\n", + "axs[1,1].plot(time[0][0:-1], vel_ankleRight_y)\n", + "axs[1,1].plot(time[0][0:-1], vel_ankleLeft_y)\n", + "#axs[1,1].plot(time[0][0:-1], np.zeros((len(vel_ankleRight_y),1)))\n", + "\n", + "axs[2,1].plot(time[0][0:-1], s.keypoints[15].point[:,1])\n", + "axs[2,1].plot(time[0][in_wf_idx],s.keypoints[15].point[in_wf_idx,1], 'go')\n", + "axs[2,1].plot(time[0][fin_wf_idx],s.keypoints[15].point[fin_wf_idx,1], 'ro')\n", + "#axs[2,1].plot(time[0][0:-1], s.keypoints[11].point[:,1])\n", + "#axs[2,1].plot(time[0][in_wf_Left_y_idx],s.keypoints[11].point[in_wf_Left_y_idx,1], 'go')\n", + "axs[2,1].plot(time[0][0:-1], -3*np.ones((len(vel_ankleRight_x),1)), 'k--')\n", + "#axs[2,1].set_ylim([-0.5, 0.5])\n", + "\n", + "axs[0,2].plot(time[0][0:-1], acc_shoulRight_x)\n", + "#axs[0,2].plot(time[0][finish_idx],acc_shoulRight_x[finish_idx], 'go')\n", + "#axs[0,2].plot(time[0][0:-1], np.zeros((len(vel_shoulRight_x),1)))\n", + "axs[0,2].set_title('Shoulder right X-dim')\n", + "\n", + "axs[1,2].plot(time[0][0:-1], vel_shoulRight_x)\n", + "#axs[1,2].plot(time[0][0:-1], np.zeros((len(vel_shoulRight_x),1)))\n", + "\n", + "axs[2,2].plot(time[0][0:-1], s.keypoints[5].point[:,0])\n", + "axs[2,2].plot(time[0][fin_wf_idx],s.keypoints[5].point[fin_wf_idx,0], 'ro')\n", + "#axs[2,2].plot(time[0][0:-1], -3*np.ones((len(vel_shoulRight_x),1)))\n", + "\n", + "print('La camminata di andata inizia a:')\n", + "print(time[0][in_wf_idx])\n", + "print('e finisce a: ') \n", + "print(time[0][fin_wf_idx])\n", + "print('Dura:')\n", + "print(time[0][fin_wf_idx]-time[0][in_wf_idx])" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(time[0][0:-1], s.keypoints[15].point[:,1])\n", + "plt.plot(time[0][in_wf_idx],s.keypoints[15].point[in_wf_idx,1], 'go')\n", + "plt.plot(time[0][fin_wf_idx],s.keypoints[15].point[fin_wf_idx,1], 'ro')\n", + "plt.plot(time[0][0:-1], vel_ankleRight_y)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Fase di rotazione" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "###### La fase di rotazione quando la distanza in x delle due spalle ritorna ai valori iniziali e la velocita' in y del centro spalle e' positiva." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "La prima rotazione termina a:\n", + "284.09495306015015\n", + "Dura:\n", + "1.3173019886016846\n" + ] + } + ], + "source": [ + "diff_shoul = s.keypoints[5].point[:,0]-s.keypoints[2].point[:,0]\n", + "cond1= np.array(np.where(abs(diff_shoul[fin_wf_idx:]-abs(diff_shoul[0]))<0.01))[0]\n", + "\n", + "cond2 = np.array(np.where(vel_shoulCenter_y[fin_wf_idx:]>0.))[0]#\n", + "\n", + "fin_turn1_idx=np.intersect1d(cond1,cond2)[0]+fin_wf_idx\n", + "\n", + "print('La prima rotazione termina a:')\n", + "print(time[0][fin_turn1_idx])\n", + "print('Dura:')\n", + "print(time[0][fin_turn1_idx]-time[0][fin_wf_idx])" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([13, 14, 15, 16, 17, 18, 21, 22, 27])" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cond1" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "La camminata di rotazione inizia a:\n", + "282.77765107154846\n", + "e finisce a: \n", + "284.09495306015015\n", + "Dura:\n", + "1.3173019886016846\n" + ] + }, + { + "data": { + "image/png": "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IUHFx8er8ePHq7Zt26qioiKllFLl5eUqIyOj0u3ZZ59V/v7+qrCwUCmlVGFhoQoNDVVTpkxRe/fuVQkJCWrSpEmqZcuWymw2u/L0HKK2a6SUUhdeeKEaOHCg2rBhgzp06JB67rnnlF6vV1u3brW3GTt2rOrdu7dav369Wrt2rYqLi1PXXnutK07JKRxxnRYvXqymTJmili5dqg4dOqR+/vlnFRERoR544AFXnZZDOepnqcLdd9+txo0bpwC1bdu2BjwT53HUNVq4cKEKCQlR7733ntq3b5/atWuXWrBggStOyeEcdY06duyoxo8fr7Zv367279+vZsyYoXx9fVVGRoYrTsttSLIkapWVlaUAtXr16mrb9OnTR02dOtX+/aZNmxSgkpOT7cd27NihAHXgwAGnxusKp7tGfn5+6osvvqjULjQ0VH300UdKKaV2796tALVp0yb7/YsXL1Y6nU6lpaU1TOANrD7X6XTmzJmj2rVr57Q4XelsrtHvv/+uunTponbt2tWkkqV/q881slgsqnXr1urjjz9u0FhdpT7XKDs7WwFqzZo19vsLCgoUoP7888+GCdxNyTCcqFV+fj4AoaGhp71/y5YtxMfHM23aNPuxzp07ExYWxieffILZbKa0tJRPPvmErl27Ehsb2xBhN6jTXaOhQ4eyYMECcnNzsdlszJ8/n7KyMkaOHAnAP//8Q3BwMAMGDLA/ZvTo0ej1ejZs2NCg8TeU+lyn6p6nup/Hxq6+1+jo0aPceuutfPnll/j6+jZ02A2qPtdo69atpKWlodfr6du3L61atWLcuHEkJCS44hScrj7XKCwsjM6dO/PFF19QXFxMeXk5H3zwAREREfTv398Vp+E+XJ2tCfdmtVrVxRdfrIYNG1Ztm+nTp6uuXbtWOb5z507VoUMHpdfrlV6vV507d1ZJSUnODNclqrtGx48fVxdddJEClIeHhwoMDFRLly613//CCy+oTp06VXm+Fi1aqHfffdfpcTe0+l6nfztw4IAKDAxUH374obNDbnD1vUY2m02NHTtWPffcc0oppRITE5tsz1J9r9G8efMUoNq2basWLlyoNm/erK699loVFhamcnJyGvo0nOpsftdSUlJU//79lU6nUwaDQbVq1eq0w73NjfQsiRrdeeedJCQkMH/+/NPeX1payjfffFOpV6ni+LRp0xg2bBjr169n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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axs = plt.subplots(3)\n", + "#axs[0].plot(time[0][0:-1], acc_shoulRight_x, label='R')\n", + "#axs[0].plot(time[0][0:-1], acc_shoulLeft_x, label='L')\n", + "axs[0].plot(time[0][0:-1], acc_shoulRight_x-acc_shoulLeft_x)\n", + "axs[0].set_ylabel('Acceleration')\n", + "axs[0].set_title('X-dim')\n", + "axs[0].legend()\n", + "\n", + "#axs[1].plot(time[0][0:-1], vel_shoulRight_x)\n", + "#axs[1].plot(time[0][0:-1], vel_shoulLeft_x)\n", + "diff_vel_x=vel_shoulRight_x-vel_shoulLeft_x\n", + "#fin_turn_idx= np.where(np.diff(np.sign(diff_vel_x[fin_wf_idx:])))[0][0]+fin_wf_idx\n", + "axs[1].plot(time[0][0:-1], diff_vel_x)\n", + "axs[1].plot(time[0][0:-1], vel_shoulCenter_y)\n", + "axs[1].plot(time[0][fin_wf_idx],diff_vel_x[fin_wf_idx], 'go')\n", + "axs[1].plot(time[0][fin_turn1_idx],diff_vel_x[fin_turn1_idx], 'ro')\n", + "axs[1].plot(time[0][0:-1], 0*np.ones((len(vel_shoulRight_x),1)), 'k--')\n", + "axs[1].set_ylabel('Velocity')\n", + "\n", + "#axs[2].plot(time[0][0:-1], s.keypoints[5].point[:,0])\n", + "#axs[2].plot(time[0][0:-1], s.keypoints[2].point[:,0])\n", + "axs[2].plot(time[0][0:-1], s.keypoints[5].point[:,0]-s.keypoints[2].point[:,0])\n", + "#axs[2].plot(time[0][0:-1], s.keypoints[0].point[:,1])\n", + "axs[2].plot(time[0][fin_wf_idx], diff_shoul[fin_wf_idx], 'go')\n", + "axs[2].plot(time[0][fin_turn1_idx], diff_shoul[fin_turn1_idx], 'ro')\n", + "axs[2].plot(time[0][0:-1], 0*np.ones((len(vel_shoulRight_x),1)), 'k--')\n", + "axs[2].plot(time[0][0:-1], abs(diff_shoul[0])*np.ones((len(vel_shoulRight_x),1)), 'k--')\n", + "axs[2].set_ylabel('Position')\n", + "\n", + "print('La camminata di rotazione inizia a:')\n", + "print(time[0][fin_wf_idx])\n", + "print('e finisce a: ') \n", + "print(time[0][fin_turn1_idx])\n", + "print('Dura:')\n", + "print(time[0][fin_turn1_idx]-time[0][fin_wf_idx])" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Fase di camminata ritorno" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "###### La fase di camminata di ritorno termina quando inizia la seconda rotazione." + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "La camminata di ritorno inizia a:\n", + "284.09495306015015\n", + "e finisce a: \n", + "287.48109245300293\n", + "Dura:\n", + "3.386139392852783\n" + ] + } + ], + "source": [ + "# pos_ankleRight_x=s.keypoints[15].point[:,0]\n", + "# pos_ankleLeft_x=s.keypoints[11].point[:,0]\n", + "# fin_wb_idxR = np.where(np.diff(pos_ankleRight_x[fin_turn_idx:])>0.3)[0][0]+fin_turn_idx\n", + "# fin_wb_idxL = np.where(np.diff(pos_ankleLeft_x[fin_turn_idx:])>0.3)[0][0]+fin_turn_idx\n", + "# #fin_wb_idxR = np.where(np.diff(np.sign(vel_ankleRight_x[fin_turn_idx:])))[0][0]+fin_turn_idx\n", + "# #fin_wb_idxL = np.where(np.diff(np.sign(vel_ankleLeft_x[fin_turn_idx:])))[0][0]+fin_turn_idx\n", + "\n", + "diff_acc_x=acc_shoulRight_x-acc_shoulLeft_x\n", + "cond1= np.array(np.where(diff_acc_x[fin_turn1_idx:]<0))[0]\n", + "\n", + "rfoot_cross0m = np.array(np.where(s.keypoints[15].point[fin_turn1_idx:,1]>0.))[0]#\n", + "lfoot_cross0m = np.array(np.where(s.keypoints[11].point[fin_turn1_idx:,1]>0.))[0]#\n", + "if rfoot_cross0m[0]0.))[0]#\n", + "\n", + "fin_wb_idx=cond1[0]+fin_turn1_idx\n", + "print(time[0][fin_wb_idx])" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "La camminata di ritorno inizia a:\n", + "284.09495306015015\n", + "e finisce a: \n", + "285.97971391677856\n", + "Dura:\n", + "1.884760856628418\n" + ] + } + ], + "source": [ + "fig, axs = plt.subplots(3,1)\n", + "\n", + "axs[0].plot(time[0][0:-1], acc_ankleRight_x, label= 'R')\n", + "axs[0].plot(time[0][0:-1], acc_ankleLeft_x, label= 'L')\n", + "axs[0].plot(time[0][0:-1], np.zeros((len(vel_ankleRight_x),1)))\n", + "axs[0].set_ylabel('Acceleration')\n", + "axs[0].set_title('X-dim')\n", + "axs[0].legend()\n", + "\n", + "axs[1].plot(time[0][0:-1], vel_ankleRight_x)\n", + "axs[1].plot(time[0][0:-1], vel_ankleLeft_x)\n", + "axs[1].plot(time[0][0:-1], np.zeros((len(vel_ankleRight_x),1)))\n", + "axs[1].set_ylabel('Velocity')\n", + "\n", + "axs[2].plot(time[0][0:-1], s.keypoints[15].point[:,0])\n", + "axs[2].plot(time[0][fin_turn1_idx],s.keypoints[15].point[fin_turn1_idx,0], 'go')\n", + "#axs[2].plot(time[0][fin_wb_idxR],s.keypoints[15].point[fin_wb_idxR,0], 'ro')\n", + "axs[2].plot(time[0][fin_wb_idx],s.keypoints[15].point[fin_wb_idx,0], 'yo')\n", + "axs[2].plot(time[0][0:-1], s.keypoints[11].point[:,0])\n", + "axs[2].plot(time[0][fin_turn1_idx],s.keypoints[11].point[fin_turn1_idx,0], 'go')\n", + "#axs[2].plot(time[0][fin_wb_idxL],s.keypoints[11].point[fin_wb_idxL,0], 'ro')\n", + "axs[2].plot(time[0][fin_wb_idx],s.keypoints[11].point[fin_wb_idx,0], 'yo')\n", + "axs[2].set_ylabel('Position')\n", + "\n", + "#fin_wb_idx=np.minimum(fin_wb_idxR, fin_wb_idxL)\n", + "#fin_wb_idx=np.maximum(fin_wb_idxR, fin_wb_idxL)\n", + "\n", + "plt.show()\n", + "print('La camminata di ritorno inizia a:')\n", + "print(time[0][fin_turn1_idx])\n", + "print('e finisce a: ') \n", + "print(time[0][fin_wb_idx])\n", + "print('Dura:')\n", + "print(time[0][fin_wb_idx]-time[0][fin_turn1_idx])\n", + "#print(time[0][np.minimum(fin_wb_idxR, fin_wb_idxL)]-time[0][fin_turn_idx])" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Fase di rotazione 2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "###### La seconda rotazione termina quando noto una decelerazione in z del centro delle spalle e, contemporaneamente, una diminuzione della distanza in y tra il centro delle spalle e il centro delle anche.\n", + "###### La seconda rotazione termina quando..." + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": {}, + "outputs": [], + "source": [ + "nsigma=3\n", + "# init_mean= np.mean(acc_shoulCenter_z[0:49])\n", + "# init_std= np.std(acc_shoulCenter_z[0:49])\n", + "cond1 = np.where(vel_shoulCenter_z[fin_wb_idx:] < 0.)[0]\n", + "\n", + "#cond2=np.where(np.diff(np.sign(acc_hipCenter_y[fin_wb_idx:]-acc_shoulCenter_y[fin_wb_idx:])))[0]\n", + "#cond2=np.where(np.diff(np.sign(vel_hipCenter_y[fin_wb_idx:]-vel_shoulCenter_y[fin_wb_idx:])))[0]\n", + "cond2=np.where(vel_hipCenter_y[fin_wb_idx:]>vel_shoulCenter_y[fin_wb_idx:])[0]\n", + "cond2=np.where(np.sign(vel_hipCenter_y[fin_wb_idx:]-vel_shoulCenter_y[fin_wb_idx:])>0)[0]\n", + "\n", + "\n", + "fin_turn2_idx= np.intersect1d(cond1,cond2)[0]+fin_wb_idx\n", + "\n", + "fin_turn2_idx = np.where(np.abs(vel_hipCenter_y[fin_wb_idx:]-vel_shoulCenter_y[fin_wb_idx:]-0.05)>0)[0][0]+fin_wb_idx\n", + "\n", + "strikes,_ = scipy.signal.find_peaks(-acc_shoulCenter_z[fin_wb_idx:], height = 0.0, distance = 10)\n", + "fin_turn2_idx = strikes[0]+fin_wb_idx\n", + "\n", + "#L'alzata finisce quando il centro delle spalle non varia piu' la sua altezza #FDG preferisce quando inizia la camminata\n", + "#zero_vel = np.where(np.diff(np.sign(vel_shoulCenter_z[in_stand_idx:])))\n", + "#fin_stand_idx = in_stand_idx + zero_vel[0][1]\n", + "\n", + "# diff_shoul = s.keypoints[5].point[:,0]-s.keypoints[2].point[:,0]\n", + "# cond1= np.array(np.where(abs(diff_shoul[fin_wb_idx:]-abs(diff_shoul[0]))<0.1))[0]\n", + "# fin_turn2_idx= cond1[0]+fin_wb_idx" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "La camminata di rotazione inizia a:\n", + "285.97971391677856\n", + "e finisce a: \n", + "286.59415078163147\n", + "Dura:\n", + "0.6144368648529053\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkIAAAGzCAYAAADDgXghAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAADGjElEQVR4nOzdd3iTVfvA8W+SpnvvTcvee8gSEFwgiuBGQUVfRVyv+nO9Km4U997iBgRxIqgMAQHZBcoqbSndi+6ZNjm/P0IjlZYOknTdn+vKpX1y8jz3c2iTO2dqlFIKIYQQQogOSNvSAQghhBBCtBRJhIQQQgjRYUkiJIQQQogOSxIhIYQQQnRYkggJIYQQosOSREgIIYQQHZYkQkIIIYTosCQREkIIIUSHJYmQEEIIITosSYSEEB1SUlISGo2Gzz77zHLsySefRKPRtFxQQgi7k0RICNHqXX/99Tg7OxMXF3facy+88AIajYZffvmlBSITQrR1kggJIVq9V199FVdXV26//fZax48dO8bTTz/NjBkzuOSSS876Oo899hjl5eVnfR4hRNshiZAQotULDAzkxRdfZP369Xz++eeW43fccQd6vZ433njDKtdxcHDA2dnZKucSQrQNkggJIdqEW265hdGjR/PAAw9w4sQJlixZwurVq3n22WcJCws742sLCgq48cYb8fLywtvbm9mzZ1NQUHBaubrGCGk0Gu68806WLVtG7969cXFxYeTIkezfvx+ADz74gK5du+Ls7Mz48eNJSkqy1i0LIezAoaUDEEKIxtBoNHzwwQcMGjSIuXPnsmnTJoYOHcq8efPO+DqlFJdddhl//fUXt99+O7169eL7779n9uzZjb72pk2b+OmnnyzXWrBgAZdccgkPPvgg7777LnfccQf5+fksXLiQm2++mXXr1p3VvQoh7EcSISFEm9GnTx8eeOABFixYgE6nY+XKlWi1Z27Y/umnn9i4cSMLFy7k//7v/wCYO3cuEyZMaPR1jxw5wuHDh4mKigLAx8eH2267jWeffZa4uDg8PDwAMBqNLFiwgKSkJEtZIUTrJl1jQog2xd/fH4DQ0FD69u3bYPlff/0VBwcH5s6dazmm0+m46667Gn3NiRMn1kpsRowYAcCMGTMsSdCpxxMTExt9biFEy5JESAjRZqSkpDB//nz69u1LSkoKCxcutDyXl5dHZmam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QDQaDTExMXa4A9uzZh2tXLmSESNG4OLigo+PD9OmTbPTXdieteopLi6Oyy67DH9/fzw9PRkzZgzr16+35620Pk3e9VS0aRdeeKFatGiRio2NVTExMWry5MkqMjJSlZSUKKWUqq6uVhkZGbUeTz31lHJ3d1fFxcVKKaWKi4uVr6+vuvHGG9Xhw4dVbGysmjFjhgoKClIGg6Elb89qGqonpZQ6//zz1bBhw9S2bdtUQkKCeuaZZ5RWq1W7d++2lLnooovUgAED1N9//602bdqkunbtqq699tqWuCWrs0YdrVq1St14443qt99+UwkJCerHH39UgYGB6v7772+p27Iqa/0e1bj77rvVxRdfrAC1Z88eO96J7VirjpYvX658fHzUe++9p44cOaIOHDigli5d2hK3ZBPWqqdu3bqpyZMnq71796q4uDh1xx13KFdXV5WRkdESt9UqSCLUwWVnZytAbdiwod4yAwcOVDfffLPl5x07dihAJScnW47t27dPAero0aM2jbel1FVPbm5u6osvvqhVztfXV3300UdKKaUOHjyoALVjxw7L86tWrVIajUalpaXZJ3A7ak4d1WXhwoUqOjraZnG2pLOpo19//VX17NlTHThwoF0lQv/WnDqqqqpSYWFh6uOPP7ZrrC2pOfWUk5OjALVx40bL80VFRQpQf/zxh30Cb4Wka6yDKywsBMDX17fO53ft2kVMTAxz5syxHOvRowd+fn588sknGAwGysvL+eSTT+jVqxdRUVH2CNvu6qqnUaNGsXTpUvLy8jCZTCxZsoSKigrGjx8PwNatW/H29mbo0KGW10yaNAmtVsu2bdvsGr89NKeO6jtPfb+PbV1z6ygrK4tbb72VL7/8EldXV3uHbVfNqaPdu3eTlpaGVqtl0KBBhISEcPHFFxMbG9sSt2AXzaknPz8/evTowRdffEFpaSnV1dV88MEHBAYGMmTIkJa4jdahpTMx0XKMRqOaMmWKGj16dL1l5s6dq3r16nXa8f3796suXboorVartFqt6tGjh0pKSrJluC2mvnrKz89XF1xwgQKUg4OD8vT0VL/99pvl+eeee0517979tPMFBASod9991+Zx21Nz6+jfjh49qjw9PdWHH35o65Dtrrl1ZDKZ1EUXXaSeeeYZpZRSx44da7ctQs2to8WLFytARUZGquXLl6udO3eqa6+9Vvn5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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axs = plt.subplots(3)\n", + "#axs[0].plot(time[0][0:-1], acc_shoulRight_x, label='R')\n", + "#axs[0].plot(time[0][0:-1], acc_shoulLeft_x, label='L')\n", + "axs[0].plot(time[0][0:-1], acc_shoulRight_x-acc_shoulLeft_x)\n", + "axs[0].set_ylabel('Acceleration')\n", + "axs[0].set_title('X-dim')\n", + "axs[0].legend()\n", + "\n", + "#axs[1].plot(time[0][0:-1], vel_shoulRight_x)\n", + "#axs[1].plot(time[0][0:-1], vel_shoulLeft_x)\n", + "diff_vel_x=vel_shoulRight_x-vel_shoulLeft_x\n", + "axs[1].plot(time[0][0:-1], diff_vel_x)\n", + "#axs[1].plot(time[0][in_turn2_idx],diff_vel_x[in_turn2_idx], 'go')\n", + "axs[1].plot(time[0][fin_wb_idx],diff_vel_x[fin_wb_idx], 'go')\n", + "axs[1].plot(time[0][fin_turn2_idx],diff_vel_x[fin_turn2_idx], 'ro')\n", + "axs[1].plot(time[0][0:-1], 0*np.ones((len(vel_shoulRight_x),1)), 'k--')\n", + "axs[1].set_ylabel('Velocity')\n", + "\n", + "axs[2].plot(time[0][0:-1], s.keypoints[5].point[:,0])\n", + "axs[2].plot(time[0][0:-1], s.keypoints[2].point[:,0])\n", + "diff_shoul = s.keypoints[5].point[:,0]-s.keypoints[2].point[:,0]\n", + "axs[2].plot(time[0][0:-1], s.keypoints[5].point[:,0]-s.keypoints[2].point[:,0])\n", + "axs[2].plot(time[0][fin_wb_idx], diff_shoul[fin_wb_idx], 'go')\n", + "axs[2].plot(time[0][fin_turn2_idx], diff_shoul[fin_turn2_idx], 'ro')\n", + "axs[2].plot(time[0][0:-1], 0*np.ones((len(vel_shoulRight_x),1)), 'k--')\n", + "axs[2].set_ylabel('Position')\n", + "\n", + "print('La camminata di rotazione inizia a:')\n", + "print(time[0][fin_wb_idx])\n", + "print('e finisce a: ') \n", + "print(time[0][fin_turn2_idx])\n", + "print('Dura:')\n", + "print(time[0][fin_turn2_idx]-time[0][fin_wb_idx])\n", + "\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Fase di discesa" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(124,)" + ] + }, + "execution_count": 83, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "time[0][0:-1].shape" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Discesa inizia a:\n", + "286.59415078163147\n", + "e finisce a: \n", + "287.48109245300293\n", + "Dura:\n", + "0.88694167137146\n", + "Tutto il trial dura:\n", + "7.605099678039551\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "nsigma=3\n", + "#zero_vel = np.where(np.diff(np.sign(vel_shoulCenter_z[fin_turn2_idx:])))[0]\n", + "#in_sit_idx= fin_turn2_idx + zero_vel[0]\n", + "\n", + "init_mean= np.mean(acc_shoulCenter_z[:dur])\n", + "init_std= np.std(acc_shoulCenter_z[:dur])\n", + "outliers_indices1 = np.where(np.abs((acc_shoulCenter_z[fin_turn2_idx:]-init_mean)/init_std) < nsigma)[0]\n", + "init_mean= np.mean(s.keypoints[0].point[:dur,2])\n", + "init_std= np.std(s.keypoints[0].point[:dur,2])\n", + "outliers_indices2 = np.where(np.abs((s.keypoints[0].point[fin_turn2_idx:,2]-init_mean)/init_std) < nsigma)[0]\n", + "elem=np.intersect1d(outliers_indices1,outliers_indices2)[0]\n", + "if (elem==0): \n", + " fin_sit_idx = len(time[0][0:-1])-1\n", + "else:\n", + " fin_sit_idx = fin_turn2_idx + elem\n", + "\n", + "fig, axs = plt.subplots(3)\n", + "axs[0].plot(time[0][0:-1], acc_shoulCenter_z)\n", + "axs[0].plot(time[0][fin_sit_idx],acc_shoulCenter_z[fin_sit_idx], 'ro')\n", + "axs[0].set_ylabel('Acceleration')\n", + "\n", + "axs[1].plot(time[0][0:-1], vel_shoulCenter_z)\n", + "axs[1].plot(time[0][fin_turn2_idx],vel_shoulCenter_z[fin_turn2_idx], 'go')\n", + "axs[1].set_ylabel('Velocity')\n", + "\n", + "axs[2].plot(time[0][0:-1], s.keypoints[0].point[:,2])\n", + "axs[2].plot(time[0][fin_turn2_idx],s.keypoints[0].point[fin_turn2_idx,2], 'go')\n", + "axs[2].plot(time[0][fin_sit_idx],s.keypoints[0].point[fin_sit_idx,2], 'ro')\n", + "axs[2].set_ylabel('Position')\n", + "\n", + "print('Discesa inizia a:')\n", + "print(time[0][fin_turn2_idx])\n", + "print('e finisce a: ') \n", + "print(time[0][fin_sit_idx])\n", + "print('Dura:')\n", + "print(time[0][fin_sit_idx]-time[0][fin_turn2_idx])\n", + "\n", + "print('Tutto il trial dura:')\n", + "print(time[0][fin_sit_idx]-time[0][in_stand_idx])" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'Position')" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axs = plt.subplots(3)\n", + "axs[0].plot(time[0][0:-1], acc_shoulCenter_y)\n", + "axs[0].plot(time[0][0:-1], acc_hipCenter_y)\n", + "axs[0].plot(time[0][0:-1], acc_hipCenter_y-acc_shoulCenter_y)\n", + "axs[0].set_ylabel('Acceleration')\n", + "\n", + "axs[1].plot(time[0][0:-1], vel_shoulCenter_y)\n", + "axs[1].plot(time[0][0:-1], vel_hipCenter_y)\n", + "axs[1].plot(time[0][0:-1], vel_hipCenter_y-vel_shoulCenter_y)\n", + "axs[1].set_ylabel('Velocity')\n", + "\n", + "axs[2].plot(time[0][0:-1], s.keypoints[0].point[:,1])\n", + "axs[2].plot(time[0][0:-1], s.keypoints[8].point[:,1])\n", + "axs[2].plot(time[0][0:-1], s.keypoints[8].point[:,1]-s.keypoints[0].point[:,1])\n", + "axs[2].set_ylabel('Position')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/tmp/ipykernel_19772/2546345123.py:8: UserWarning:\n", + "\n", + "Setting the 'color' property will override the edgecolor or facecolor properties.\n", + "\n", + "/tmp/ipykernel_19772/2546345123.py:19: UserWarning:\n", + "\n", + "Setting the 'color' property will override the edgecolor or facecolor properties.\n", + "\n", + "/tmp/ipykernel_19772/2546345123.py:30: UserWarning:\n", + "\n", + "Setting the 'color' property will override the edgecolor or facecolor properties.\n", + "\n", + "/tmp/ipykernel_19772/2546345123.py:41: UserWarning:\n", + "\n", + "Setting the 'color' property will override the edgecolor or facecolor properties.\n", + "\n", + "/tmp/ipykernel_19772/2546345123.py:52: UserWarning:\n", + "\n", + "Setting the 'color' property will override the edgecolor or facecolor properties.\n", + "\n" + ] + }, + { + "ename": "NameError", + "evalue": "name 'fin_sit_idx' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[37], line 61\u001b[0m\n\u001b[1;32m 52\u001b[0m rect5\u001b[39m=\u001b[39mmpatches\u001b[39m.\u001b[39mRectangle((left,bottom),width,height, \n\u001b[1;32m 53\u001b[0m \u001b[39m#fill=False,\u001b[39;00m\n\u001b[1;32m 54\u001b[0m alpha\u001b[39m=\u001b[39m\u001b[39m0.15\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 58\u001b[0m label \u001b[39m=\u001b[39m\u001b[39mf\u001b[39m\u001b[39m'\u001b[39m\u001b[39m2nd turn (\u001b[39m\u001b[39m{\u001b[39;00mdurata_fase\u001b[39m}\u001b[39;00m\u001b[39m\"\u001b[39m\u001b[39m)\u001b[39m\u001b[39m'\u001b[39m,\n\u001b[1;32m 59\u001b[0m facecolor\u001b[39m=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39morange\u001b[39m\u001b[39m\"\u001b[39m)\n\u001b[1;32m 60\u001b[0m plt\u001b[39m.\u001b[39mgca()\u001b[39m.\u001b[39madd_patch(rect5)\n\u001b[0;32m---> 61\u001b[0m left, bottom, width, height \u001b[39m=\u001b[39m (time[\u001b[39m0\u001b[39m][fin_turn2_idx], \u001b[39m-\u001b[39m\u001b[39m3.5\u001b[39m, time[\u001b[39m0\u001b[39m][fin_sit_idx]\u001b[39m-\u001b[39mtime[\u001b[39m0\u001b[39m][fin_turn2_idx], \u001b[39m4\u001b[39m)\n\u001b[1;32m 62\u001b[0m durata_fase\u001b[39m=\u001b[39m \u001b[39mformat\u001b[39m(time[\u001b[39m0\u001b[39m][fin_sit_idx]\u001b[39m-\u001b[39mtime[\u001b[39m0\u001b[39m][fin_turn2_idx],\u001b[39m'\u001b[39m\u001b[39m.2f\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[1;32m 63\u001b[0m rect6\u001b[39m=\u001b[39mmpatches\u001b[39m.\u001b[39mRectangle((left,bottom),width,height, \n\u001b[1;32m 64\u001b[0m \u001b[39m#fill=False,\u001b[39;00m\n\u001b[1;32m 65\u001b[0m alpha\u001b[39m=\u001b[39m\u001b[39m0.15\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 69\u001b[0m label \u001b[39m=\u001b[39m\u001b[39mf\u001b[39m\u001b[39m'\u001b[39m\u001b[39mStand2Sit (\u001b[39m\u001b[39m{\u001b[39;00mdurata_fase\u001b[39m}\u001b[39;00m\u001b[39m\"\u001b[39m\u001b[39m)\u001b[39m\u001b[39m'\u001b[39m,\n\u001b[1;32m 70\u001b[0m facecolor\u001b[39m=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m#FFEB00\u001b[39m\u001b[39m\"\u001b[39m)\n", + "\u001b[0;31mNameError\u001b[0m: name 'fin_sit_idx' is not defined" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\t\n", + "import matplotlib.patches as mpatches\n", + "plt.plot(time[0][0:-1], s.keypoints[15].point[:,1], label ='R')\n", + "plt.plot(time[0][0:-1], s.keypoints[11].point[:,1], label ='L')\n", + "plt.xlabel('Time [s]')\n", + "plt.ylabel('Ankles (y-dim) [m]')\n", + "left, bottom, width, height = (time[0][in_stand_idx], -3.5, time[0][in_wf_idx]-time[0][in_stand_idx], 4)\n", + "durata_fase = format(time[0][in_wf_idx]-time[0][in_stand_idx],'.2f')\n", + "rect1=mpatches.Rectangle((left,bottom),width,height, \n", + " #fill=False,\n", + " alpha=0.15,\n", + " color=\"red\",\n", + " linewidth=1.5,\n", + " linestyle='--',\n", + " label =f'Sit2Stand ({durata_fase}\")',\n", + " facecolor=\"red\")\n", + "plt.gca().add_patch(rect1)\n", + "left, bottom, width, height = (time[0][in_wf_idx], -3.5, time[0][fin_wf_idx]-time[0][in_wf_idx], 4)\n", + "durata_fase = format(time[0][fin_wf_idx]-time[0][in_wf_idx],'.2f')\n", + "rect2=mpatches.Rectangle((left,bottom),width,height, \n", + " #fill=False,\n", + " alpha=0.15,\n", + " color=\"purple\",\n", + " linewidth=1.5,\n", + " linestyle='--',\n", + " label =f'Walk forw ({durata_fase}\")',\n", + " facecolor=\"purple\")\n", + "plt.gca().add_patch(rect2)\n", + "left, bottom, width, height = (time[0][fin_wf_idx], -3.5, time[0][fin_turn1_idx]-time[0][fin_wf_idx], 4)\n", + "durata_fase = format(time[0][fin_turn1_idx]-time[0][fin_wf_idx],'.2f')\n", + "rect3=mpatches.Rectangle((left,bottom),width,height, \n", + " #fill=False,\n", + " alpha=0.15,\n", + " color=\"blue\",\n", + " linewidth=1.5,\n", + " linestyle='--',\n", + " label =f'1st turn ({durata_fase}\")',\n", + " facecolor=\"blue\")\n", + "plt.gca().add_patch(rect3)\n", + "left, bottom, width, height = (time[0][fin_turn1_idx], -3.5, time[0][fin_wb_idx]-time[0][fin_turn1_idx], 4)\n", + "durata_fase = format(time[0][fin_wb_idx]-time[0][fin_turn1_idx],'.2f')\n", + "rect4=mpatches.Rectangle((left,bottom),width,height, \n", + " #fill=False,\n", + " alpha=0.15,\n", + " color=\"green\",\n", + " linewidth=1.5,\n", + " linestyle='--',\n", + " label =f'Walk back ({durata_fase}\")',\n", + " facecolor=\"green\")\n", + "plt.gca().add_patch(rect4)\n", + "left, bottom, width, height = (time[0][fin_wb_idx], -3.5, time[0][fin_turn2_idx]-time[0][fin_wb_idx], 4)\n", + "durata_fase= format(time[0][fin_turn2_idx]-time[0][fin_wb_idx],'.2f')\n", + "rect5=mpatches.Rectangle((left,bottom),width,height, \n", + " #fill=False,\n", + " alpha=0.15,\n", + " color=\"orange\",\n", + " linewidth=1.5,\n", + " linestyle='--',\n", + " label =f'2nd turn ({durata_fase}\")',\n", + " facecolor=\"orange\")\n", + "plt.gca().add_patch(rect5)\n", + "left, bottom, width, height = (time[0][fin_turn2_idx], -3.5, time[0][fin_sit_idx]-time[0][fin_turn2_idx], 4)\n", + "durata_fase= format(time[0][fin_sit_idx]-time[0][fin_turn2_idx],'.2f')\n", + "rect6=mpatches.Rectangle((left,bottom),width,height, \n", + " #fill=False,\n", + " alpha=0.15,\n", + " color=\"#FFEB00\",\n", + " linewidth=1.5,\n", + " linestyle='--',\n", + " label =f'Stand2Sit ({durata_fase}\")',\n", + " facecolor=\"#FFEB00\")\n", + "plt.gca().add_patch(rect6)\n", + "plt.legend()\n", + "plt.savefig(\"/home/carmela/dev_iit/assistive-rehab/EsempioFasiTUG.svg\", format=\"svg\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "dur= 49 #49\n", + "nsigma=3\n", + "\n", + "###\n", + "init_mean= np.mean(acc_hipCenter_z[0:dur])\n", + "init_std= np.std(acc_hipCenter_z[0:dur])\n", + "cond1 = np.where(np.abs((acc_hipCenter_z-init_mean)/init_std) > nsigma)[0]\n", + "\n", + "cond2=np.where(np.diff(np.sign(acc_hipCenter_y-acc_shoulCenter_y)))[0]\n", + "\n", + "in_stand_idx= np.intersect1d(cond1,cond2)[0]\n", + "\n", + "###\n", + "init_mean= np.mean(acc_ankleRight_y[0:dur])\n", + "init_std= np.std(acc_ankleRight_y[0:dur])\n", + "in_wf_Right_y_idx = np.where(np.abs((acc_ankleRight_y-init_mean)/init_std) > nsigma)[0]\n", + "in_wf_Right_y_idx = np.where(vel_ankleRight_y[in_stand_idx:] < -1)[0]+in_stand_idx-2\n", + "init_mean= np.mean(acc_ankleLeft_y[0:dur])\n", + "init_std= np.std(acc_ankleLeft_y[0:dur])\n", + "in_wf_Left_y_idx = np.where(np.abs((acc_ankleLeft_y-init_mean)/init_std) > nsigma)[0]\n", + "in_wf_Left_y_idx = np.where(vel_ankleLeft_y[in_stand_idx:] < -1)[0]+in_stand_idx-2\n", + "#in_wf_idx= np.minimum(in_wf_Right_y_idx, in_wf_Left_y_idx)[0]\n", + "if in_wf_Right_y_idx[0]0))[0]\n", + "diff_vel_x=vel_shoulRight_x-vel_shoulLeft_x\n", + "diff_acc_x=acc_shoulRight_x-acc_shoulLeft_x\n", + "cond1= np.array(np.where(diff_acc_x>0))[0]\n", + "\n", + "rfoot_cross3m = np.array(np.where(s.keypoints[15].point[:,1]<-3.))[0]#\n", + "lfoot_cross3m = np.array(np.where(s.keypoints[11].point[:,1]<-3.))[0]#\n", + "if rfoot_cross3m[0]0.))[0]#\n", + "\n", + "fin_turn1_idx=np.intersect1d(cond1,cond2)[0]+fin_wf_idx\n", + "\n", + "###\n", + "diff_acc_x=acc_shoulRight_x-acc_shoulLeft_x\n", + "cond1= np.array(np.where(diff_acc_x[fin_turn1_idx:]<0))[0]\n", + "\n", + "rfoot_cross0m = np.array(np.where(s.keypoints[15].point[fin_turn1_idx:,1]>0.))[0]#\n", + "lfoot_cross0m = np.array(np.where(s.keypoints[11].point[fin_turn1_idx:,1]>0.))[0]#\n", + "if rfoot_cross0m[0]
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Gait analysis
Step Length Avg. [m]0.311536
Number of steps9.000000
Cadence [steps/s]0.535295
Speed [m/s]0.166764
Execution time [s]16.813154
\n", + "
" + ], + "text/plain": [ + " Gait analysis\n", + "Step Length Avg. [m] 0.311536\n", + "Number of steps 9.000000\n", + "Cadence [steps/s] 0.535295\n", + "Speed [m/s] 0.166764\n", + "Execution time [s] 16.813154" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "lastsess_time = time[-1]\n", + "lastsess_result = exercises[-1].result\n", + "lastsess_res_step = []\n", + "\n", + "%matplotlib inline\n", + "%matplotlib inline\n", + "for i in range(len(lastsess_result)):\n", + " lastsess_met,lastsess_resi = lastsess_result[i]\n", + " lastsess_metname = lastsess_met.name\n", + "\n", + " ################\n", + " # STEP #\n", + " ################\n", + " if lastsess_metname == \"step\":\n", + " dist=lastsess_resi[5]\n", + " strikes=lastsess_resi[6]\n", + " trace1 = go.Scatter(\n", + " x=lastsess_time,y=dist,\n", + " mode='lines',\n", + " line=dict(\n", + " color='blue',\n", + " width=3\n", + " ),\n", + " name='Distanza tra i piedi'\n", + " )\n", + " trace2 = go.Scatter(\n", + " x=lastsess_time[strikes],y=dist[strikes],\n", + " mode='markers',\n", + " marker=dict(\n", + " color='red',\n", + " size=10\n", + " ),\n", + " name='Appoggio tallone'\n", + " )\n", + " data = [trace1,trace2]\n", + " layout = dict(\n", + " width=750,\n", + " height=600,\n", + " autosize=False,\n", + " title='Distanza tra i piedi',\n", + " font=dict(family='Courier New, monospace', size=22, color='black'),\n", + " xaxis=dict(\n", + " title='time [s]',\n", + " titlefont=dict(\n", + " family='Courier New, monospace',\n", + " size=18,\n", + " color='#7f7f7f'\n", + " )\n", + " ),\n", + " yaxis=dict(\n", + " title='dist [m]',\n", + " titlefont=dict(\n", + " family='Courier New, monospace',\n", + " size=18,\n", + " color='#7f7f7f'\n", + " )\n", + " )\n", + " )\n", + " fig = dict(data=data, layout=layout)\n", + " iplot(fig)\n", + "\n", + " lastsess_res_step.append(lastsess_resi)\n", + " sla = lastsess_res_step[0][8]\n", + " ns = lastsess_res_step[0][1]\n", + " cad = lastsess_res_step[0][2]\n", + " sp = lastsess_res_step[0][3]\n", + " ex = lastsess_res_step[0][4]\n", + " tablestep = pd.DataFrame([sla, ns, cad, sp, ex])\n", + " tablestep.rename(index={0:\"Step Length Avg. [m]\",1:\"Number of steps\",2:\"Cadence [steps/s]\",\n", + " 3:\"Speed [m/s]\",4:\"Execution time [s]\"},\n", + " columns={0:\"Gait analysis\"}, inplace=True)\n", + " display(tablestep)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Tabella TUG
< 10 sNormale mobilità
< 20 sBuona mobilita
< 30 sAusili cammino
>= 30 sRischio caduta
\n", + "
" + ], + "text/plain": [ + " Tabella TUG\n", + "< 10 s Normale mobilità\n", + "< 20 s Buona mobilita\n", + "< 30 s Ausili cammino\n", + ">= 30 s Rischio caduta" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Il test è stato svolto in 16.81 s\n", + "La valutazione è \u001b[1;30;42m Buona mobilità, non necessita ausili\n" + ] + } + ], + "source": [ + "if exname == 'tug':\n", + "\n", + " table_tug = pd.DataFrame([['Normale mobilità'],['Buona mobilita'],['Ausili cammino'],['Rischio caduta']],\n", + " index=['< 10 s','< 20 s','< 30 s','>= 30 s'],\n", + " columns=['Tabella TUG'])\n", + " display(table_tug)\n", + "\n", + " time_score = lastsess_res_step[0][4]\n", + " print(\"Il test è stato svolto in\",round(time_score,2),\"s\")\n", + " if time_score < 10:\n", + " evaluation = 'Normale mobilità'\n", + " print(\"La valutazione è \u001b[1;30;42m\",evaluation)\n", + " elif time_score < 20:\n", + " evaluation = 'Buona mobilità, non necessita ausili'\n", + " print(\"La valutazione è \u001b[1;30;42m\",evaluation)\n", + " elif time_score < 30:\n", + " evaluation = 'Necessita ausili cammino'\n", + " print(\"La valutazione è \u001b[1;30;43m\",evaluation)\n", + " elif time_score >= 30:\n", + " evaluation = 'Rischio caduta'\n", + " print(\"La valutazione è \u001b[1;30;41m\",evaluation)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " \n", + "## Andamento stato clinico" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " \n", + "Gli esercizi svolti dal paziente nei mesi in analisi sono raggruppati come segue:" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "hole": 0.3, + "hoverinfo": "label+percent+value", + "labels": [ + "timed-up-and-go" + ], + "marker": { + "colors": [ + "#FEBFB3" + ], + "line": { + "color": "#000000", + "width": 2 + } + }, + "textfont": { + "size": 20 + }, + "type": "pie", + "values": [ + 0 + ] + } + ], + "layout": { + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Performed exercises" + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "labels = [\"timed-up-and-go\"]\n", + "values = [tagex.count(\"tug\")]\n", + "colors = ['#FEBFB3']\n", + "\n", + "trace = go.Pie(labels=labels, values=values,\n", + " #hoverinfo='label+percent', textinfo='value', \n", + " textfont=dict(size=20),\n", + " marker=dict(colors=colors, \n", + " line=dict(color='#000000', width=2)),\n", + " hoverinfo=\"label+percent+value\",\n", + " hole=0.3\n", + " )\n", + "layout = go.Layout(\n", + " title=\"Performed exercises\",\n", + ")\n", + "data = [trace]\n", + "fig = go.Figure(data=data,layout=layout)\n", + "iplot(fig) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " \n", + "Di seguito, si riportano gli andamenti delle metriche del paziente, raggruppati per mese: " + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "keyp2rommax = {\n", + " \"shoulderCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"head\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"shoulderLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"elbowLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"handLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"shoulderRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"elbowRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"handRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"hipCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"hipLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"kneeLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"ankleLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"footLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"hipRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"kneeRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"ankleRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"footRight\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", + "}\n", + "keyp2rommin = {\n", + " \"shoulderCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"head\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"shoulderLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"elbowLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"handLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"shoulderRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"elbowRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"handRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"hipCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"hipLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"kneeLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"ankleLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"footLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"hipRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"kneeRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"ankleRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"footRight\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", + "}\n", + "countrommonth = {\n", + " \"shoulderCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"head\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"shoulderLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"elbowLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"handLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"shoulderRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"elbowRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"handRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"hipCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"hipLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"kneeLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"ankleLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"footLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"hipRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"kneeRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"ankleRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"footRight\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", + "}\n", + "keyp2rommax_avg = {\n", + " \"shoulderCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"head\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"shoulderLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"elbowLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"handLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"shoulderRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"elbowRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"handRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"hipCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"hipLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"kneeLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"ankleLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"footLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"hipRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"kneeRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"ankleRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"footRight\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", + "}\n", + "keyp2rommin_avg = {\n", + " \"shoulderCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"head\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"shoulderLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"elbowLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"handLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"shoulderRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"elbowRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"handRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"hipCenter\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"hipLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"kneeLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"ankleLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"footLeft\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"hipRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"kneeRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"ankleRight\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"footRight\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", + "}\n", + "\n", + "stepmonth = {\n", + " \"step_length\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"numsteps\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"cadence\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"speed\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"time\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", + "}\n", + "countstepmonth = [0,0,0,0,0,0,0,0,0,0,0,0]\n", + "\n", + "endpointmonth = {\n", + " \"time\" : [0,0,0,0,0,0,0,0,0,0,0,0],\n", + " \"speed\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", + "}\n", + "countendpointmonth = [0,0,0,0,0,0,0,0,0,0,0,0]\n", + "\n", + "for i in range(len(exercises)):\n", + " exnamei = exercises[i].name\n", + " for monthi in range(12):\n", + " if countexmonth[exnamei][monthi] != 0:\n", + " res_exi = exercises[i].getResult(monthi)\n", + " for m in range(len(res_exi)): \n", + " single_metric,result_single_metric = res_exi[m]\n", + " single_metric_name = single_metric.name\n", + " \n", + " if single_metric_name == \"step\":\n", + " stepmonth[\"step_length\"][monthi] = single_metric.step_length + stepmonth[\"step_length\"][monthi]\n", + " stepmonth[\"numsteps\"][monthi] = single_metric.nsteps + stepmonth[\"numsteps\"][monthi]\n", + " stepmonth[\"cadence\"][monthi] = single_metric.cadence + stepmonth[\"cadence\"][monthi]\n", + " stepmonth[\"speed\"][monthi] = single_metric.speed + stepmonth[\"speed\"][monthi]\n", + " stepmonth[\"time\"][monthi] = single_metric.ex_time + stepmonth[\"time\"][monthi]\n", + " countstepmonth[monthi] = 1 + countstepmonth[monthi]\n" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "counted_exmonth = {\n", + " \"tug\" : [0,0,0,0,0,0,0,0,0,0,0,0]\n", + "}\n", + "for i in range(len(exercises)):\n", + " exnamei = exercises[i].name\n", + "\n", + " for monthi in range(12): \n", + " if countexmonth[exnamei][monthi] != 0:\n", + " if counted_exmonth[exnamei][monthi] < 1: \n", + " res_exi = exercises[i].getResult(monthi)\n", + " for m in range(len(res_exi)): \n", + " single_metric,result_single_metric = res_exi[m]\n", + " single_metric_name = single_metric.name\n", + "\n", + " if single_metric_name == \"step\":\n", + " if countstepmonth[monthi] != 0:\n", + " stepmonth[\"step_length\"][monthi] = stepmonth[\"step_length\"][monthi]/countstepmonth[monthi]\n", + " stepmonth[\"numsteps\"][monthi] = stepmonth[\"numsteps\"][monthi]/countstepmonth[monthi]\n", + " stepmonth[\"cadence\"][monthi] = stepmonth[\"cadence\"][monthi]/countstepmonth[monthi]\n", + " stepmonth[\"speed\"][monthi] = stepmonth[\"speed\"][monthi]/countstepmonth[monthi]\n", + " stepmonth[\"time\"][monthi] = stepmonth[\"time\"][monthi]/countstepmonth[monthi] \n", + "\n", + " counted_exmonth[exnamei][monthi] = 1" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "Risultati del Timed Up and Go" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "title = \"Risultati del Timed Up and Go\"\n", + "msg1 = HTML(''+title+'')\n", + "msg2 = HTML(''+title+'')\n", + "if sum(counted_exmonth['tug'])>0:\n", + " display(msg1);\n", + "else:\n", + " display(msg2); " + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
JanFebMarAprMayJunJulAugSepOctNovDec
Numero di passi00.3115360000000000
Velocità [m/s]09.0000000000000000
Lunghezza passo [m]00.5352950000000000
Cadenza [steps/s]00.1667640000000000
Tempo di esecuzione [s]016.8131540000000000
\n", + "
" + ], + "text/plain": [ + " Jan Feb Mar Apr May Jun Jul Aug Sep \\\n", + "Numero di passi 0 0.311536 0 0 0 0 0 0 0 \n", + "Velocità [m/s] 0 9.000000 0 0 0 0 0 0 0 \n", + "Lunghezza passo [m] 0 0.535295 0 0 0 0 0 0 0 \n", + "Cadenza [steps/s] 0 0.166764 0 0 0 0 0 0 0 \n", + "Tempo di esecuzione [s] 0 16.813154 0 0 0 0 0 0 0 \n", + "\n", + " Oct Nov Dec \n", + "Numero di passi 0 0 0 \n", + "Velocità [m/s] 0 0 0 \n", + "Lunghezza passo [m] 0 0 0 \n", + "Cadenza [steps/s] 0 0 0 \n", + "Tempo di esecuzione [s] 0 0 0 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "allmonths = [1,2,3,4,5,6,7,8,9,10,11,12]\n", + "counted_ex = {\n", + " \"tug\" : 0\n", + "}\n", + "for i in range(len(exercises)):\n", + " exnamei = exercises[i].name\n", + " res_exi = exercises[i].result\n", + " if counted_ex[exnamei] < 1:\n", + "\n", + " #############################\n", + " # Results for TUG #\n", + " #############################\n", + " if exnamei == \"tug\":\n", + " counted_ex[exnamei] = 1\n", + " step_month_table = pd.DataFrame.from_dict(stepmonth,orient='index',\n", + " columns=['Jan','Feb','Mar','Apr','May','Jun',\n", + " 'Jul','Aug','Sep','Oct','Nov','Dec'])\n", + " step_month_table.index = [\"Numero di passi\",\"Velocità [m/s]\",\"Lunghezza passo [m]\",\n", + " \"Cadenza [steps/s]\",\"Tempo di esecuzione [s]\"]\n", + " display(step_month_table)\n", + "\n", + " for m in range(len(res_exi)): \n", + " single_metric,result_single_metric = res_exi[m]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "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.8.10" + }, + "vscode": { + "interpreter": { + "hash": "916dbcbb3f70747c44a77c7bcd40155683ae19c65e1c03b4aa3499c5328201f1" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/report/report-ita.ipynb b/report/report-ita.ipynb index 3435420b..9b83d2bc 100644 --- a/report/report-ita.ipynb +++ b/report/report-ita.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 71, + "execution_count": 1, "metadata": { "scrolled": false }, @@ -28,7 +28,7 @@ "" ] }, - "execution_count": 71, + "execution_count": 1, "metadata": {}, "output_type": "execute_result" } @@ -55,7 +55,7 @@ }, { "cell_type": "code", - "execution_count": 72, + "execution_count": 2, "metadata": { "scrolled": false }, @@ -70,7 +70,7 @@ " require.undef(\"plotly\");\n", " requirejs.config({\n", " paths: {\n", - " 'plotly': ['https://cdn.plot.ly/plotly-2.16.1.min']\n", + " 'plotly': ['https://cdn.plot.ly/plotly-2.18.0.min']\n", " }\n", " });\n", " require(['plotly'], function(Plotly) {\n", @@ -113,7 +113,7 @@ }, { "cell_type": "code", - "execution_count": 73, + "execution_count": 3, "metadata": { "scrolled": false }, @@ -126,7 +126,7 @@ }, { "cell_type": "code", - "execution_count": 74, + "execution_count": 4, "metadata": { "scrolled": false }, @@ -151,7 +151,7 @@ }, { "cell_type": "code", - "execution_count": 75, + "execution_count": 5, "metadata": { "scrolled": false }, @@ -253,7 +253,7 @@ }, { "cell_type": "code", - "execution_count": 76, + "execution_count": 6, "metadata": { "scrolled": false }, @@ -404,7 +404,7 @@ }, { "cell_type": "code", - "execution_count": 77, + "execution_count": 7, "metadata": { "scrolled": false }, @@ -622,7 +622,7 @@ }, { "cell_type": "code", - "execution_count": 78, + "execution_count": 8, "metadata": { "scrolled": false }, @@ -672,7 +672,7 @@ }, { "cell_type": "code", - "execution_count": 79, + "execution_count": 11, "metadata": { "scrolled": false }, @@ -704,7 +704,7 @@ " \n", " \n", " Nome\n", - " #35\n", + " 001\n", " \n", " \n", " Cognome\n", @@ -720,7 +720,7 @@ ], "text/plain": [ " Paziente\n", - "Nome #35\n", + "Nome 001\n", "Cognome \n", "Età " ] @@ -733,7 +733,8 @@ "\n", "#load file \n", "home = expanduser(\"~\")\n", - "pth = home + '/.local/share/yarp/contexts/motionAnalyzer'\n", + "id_patient = 'datadump-FDG-001-20230208-mr'\n", + "pth = home + '/dev_iit/assistive-rehab/data_exp/'+ id_patient\n", "files = glob.glob(os.path.join(pth, '*.mat'))\n", "lastfile = max(files, key=os.path.getctime)\n", "\n", @@ -756,7 +757,7 @@ }, { "cell_type": "code", - "execution_count": 80, + "execution_count": 13, "metadata": { "scrolled": false }, @@ -783,11 +784,22 @@ }, { "cell_type": "code", - "execution_count": 81, + "execution_count": 20, "metadata": { "scrolled": false }, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/tmp/ipykernel_129311/4137539940.py:86: RuntimeWarning:\n", + "\n", + "invalid value encountered in arccos\n", + "\n" + ] + } + ], "source": [ "time = []\n", "month = []\n", @@ -921,7 +933,7 @@ }, { "cell_type": "code", - "execution_count": 82, + "execution_count": 21, "metadata": { "scrolled": false }, @@ -949,7 +961,7 @@ }, { "cell_type": "code", - "execution_count": 83, + "execution_count": 22, "metadata": { "scrolled": false }, @@ -958,7 +970,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "2023-01-17 11:57:09.119425\n" + "2023-02-24 16:01:24.001305\n" ] } ], @@ -978,7 +990,7 @@ }, { "cell_type": "code", - "execution_count": 84, + "execution_count": 23, "metadata": { "scrolled": true }, @@ -1001,746 +1013,174 @@ "name": "Andamento Reale", "type": "scatter", "x": [ - 1499.2411363124847, - 1499.3432846069336, - 1499.4427211284637, - 1499.54013133049, - 1499.6420300006866, - 1499.744064092636, - 1499.8401839733124, - 1499.9462168216705, - 1500.0419936180115, - 1500.1414563655853, - 1500.2422320842743, - 1500.3411314487457, - 1500.441514492035, - 1500.541243314743, - 1500.6429286003113, - 1500.7421760559082, - 1500.8417778015137, - 1500.9413657188416, - 1501.0417659282684, - 1501.1428897380829, - 1501.240436553955, - 1501.3419153690338, - 1501.441132068634, - 1501.5403683185577, - 1501.6449313163757, - 1501.7413523197174, - 1501.8423101902008, - 1501.9408650398254, - 1502.04141497612, - 1502.1416535377502, - 1502.2421522140503, - 1502.3436872959137, - 1502.4428606033325, - 1502.5419516563416, - 1502.6438164710999, - 1502.739751815796, - 1502.839929819107, - 1502.9432377815247, - 1503.0396859645844, - 1503.1407148838043, - 1503.2416439056396, - 1503.3399159908295, - 1503.4405806064606, - 1503.542091369629, - 1503.6399137973785, - 1503.7397291660309, - 1503.8402659893036, - 1503.9417126178741, - 1504.0408883094788, - 1504.1431605815887, - 1504.2412109375, - 1504.3424327373505, - 1504.442084312439, - 1504.5419890880585, - 1504.6418566703796, - 1504.7421357631683, - 1504.8420453071594, - 1504.9417133331299, - 1505.0427649021149, - 1505.1421146392822, - 1505.2413144111633, - 1505.3408071994781, - 1505.4415457248688, - 1505.542934179306, - 1505.6415820121765, - 1505.741807460785, - 1505.8417615890503, - 1505.9422342777252, - 1506.0417664051056, - 1506.142252922058, - 1506.2424128055573, - 1506.3428943157196, - 1506.4433236122131, - 1506.5426783561707, - 1506.6421117782593, - 1506.74356341362, - 1506.8419032096863, - 1506.9436628818512, - 1507.042890548706, - 1507.143632888794, - 1507.2437996864319, - 1507.34317612648, - 1507.4439723491669, - 1507.5464203357697, - 1507.646990776062, - 1507.743609905243, - 1507.844081878662, - 1507.944857597351, - 1508.0438890457153, - 1508.143606185913, - 1508.2456514835358, - 1508.3450417518616, - 1508.444191455841, - 1508.5442969799042, - 1508.6431493759155, - 1508.7441477775574, - 1508.8442180156708, - 1508.9457623958588, - 1509.0446989536285, - 1509.1442427635193, - 1509.2483496665955, - 1509.348049879074, - 1509.447769165039, - 1509.5452642440796, - 1509.6454932689667, - 1509.7466208934784, - 1509.8461413383484, - 1509.9450035095215, - 1510.0446655750275, - 1510.1453218460083, - 1510.2444643974304, - 1510.3476753234863, - 1510.444744348526, - 1510.5449130535126, - 1510.6449630260468, - 1510.7453105449677, - 1510.8460247516632, - 1510.9460620880127, - 1511.0450239181519, - 1511.147045135498, - 1511.2464575767517, - 1511.3476495742798, - 1511.4461619853973, - 1511.5460538864136, - 1511.6458253860474, - 1511.7523272037506, - 1511.8473920822144, - 1511.9467968940735, - 1512.0458340644836, - 1512.14905834198, - 1512.2465064525604, - 1512.3464360237122, - 1512.4465262889862, - 1512.5464425086975, - 1512.6461458206177, - 1512.7456891536713, - 1512.846199274063, - 1512.9469623565674, - 1513.046472787857, - 1513.1472702026367, - 1513.2464673519135, - 1513.3472352027893, - 1513.4477665424347, - 1513.5469961166382, - 1513.6465792655945, - 1513.7474553585052, - 1513.8473408222198, - 1513.9478917121887, - 1514.048181295395, - 1514.1470139026642, - 1514.2469763755798, - 1514.347504377365, - 1514.4472517967224, - 1514.548014163971, - 1514.6466579437256, - 1514.747255563736, - 1514.8468098640442, - 1514.9472517967224, - 1515.0483257770538, - 1515.1476039886475, - 1515.2474853992462, - 1515.349123954773, - 1515.448129415512, - 1515.5479564666748, - 1515.6483643054962, - 1515.7478876113892, - 1515.848218679428, - 1515.9479448795319, - 1516.0482194423676, - 1516.149117231369, - 1516.24773478508, - 1516.3488357067108, - 1516.4485018253326, - 1516.548581123352, - 1516.6529862880707, - 1516.7489988803864, - 1516.8483703136444, - 1516.9493639469147, - 1517.0485661029816, - 1517.1542015075684, - 1517.2489612102509, - 1517.3534693717957, - 1517.4531128406525, - 1517.553725719452, - 1517.6531822681427, - 1517.7508800029755, - 1517.8505020141602, - 1517.9501507282257, - 1518.0533425807953, - 1518.154797554016, - 1518.252271413803, - 1518.3584887981415, - 1518.4496307373047, - 1518.5517852306366, - 1518.6547417640686, - 1518.751220703125, - 1518.8547055721283, - 1518.9500937461853, - 1519.0509328842163, - 1519.1500902175903, - 1519.2508342266083, - 1519.3509469032288, - 1519.4529166221619, - 1519.552564382553, - 1519.6508638858795, - 1519.7502257823944, - 1519.8513631820679, - 1519.9507722854614, - 1520.0511844158173, - 1520.1549203395844, - 1520.2553119659424, - 1520.355444908142, - 1520.4572768211365, - 1520.5562913417816, - 1520.6547539234161, - 1520.7517511844635, - 1520.852136850357, - 1520.956214427948, - 1521.0517673492432, - 1521.151982307434, - 1521.2533135414124, - 1521.3525230884552, - 1521.4546430110931, - 1521.5537049770355, - 1521.6560616493225, - 1521.756957769394, - 1521.861038684845, - 1521.9608080387115, - 1522.0553195476532, - 1522.1532826423645, - 1522.2527394294739, - 1522.3522148132324, - 1522.4540903568268, - 1522.5571751594543, - 1522.654535293579, - 1522.7544548511505, - 1522.8560378551483, - 1522.953887462616, - 1523.0526440143585, - 1523.1566863059998, - 1523.2580780982971, - 1523.3567478656769, - 1523.454469203949, - 1523.5542244911194, - 1523.658311843872, - 1523.7581009864807, - 1523.8582689762115, - 1523.953364610672, - 1524.054563999176, - 1524.1584029197693, - 1524.2576098442078, - 1524.3543453216553, - 1524.4550700187683, - 1524.5540347099304, - 1524.6535897254944, - 1524.753868341446, - 1524.853411436081, - 1524.95521068573, - 1525.054139137268, - 1525.1547272205353, - 1525.2555606365204, - 1525.3549020290375, - 1525.4566402435303, - 1525.5587475299835, - 1525.6535289287567, - 1525.7547373771667, - 1525.8536713123322, - 1525.9546175003052, - 1526.0546753406525, - 1526.1549615859985, - 1526.255040884018, - 1526.3548610210419, - 1526.454764842987, - 1526.5555267333984, - 1526.6554877758026, - 1526.7556302547455, - 1526.8551664352417, - 1526.9557905197144, - 1527.0557622909546, - 1527.1561093330383, - 1527.2571275234222, - 1527.356971502304, - 1527.457272529602, - 1527.5553719997406, - 1527.6574912071228, - 1527.757332086563, - 1527.8562273979187, - 1527.9594457149506, - 1528.0566897392273, - 1528.1583421230316, - 1528.2581007480621, - 1528.355853319168, - 1528.4608187675476, - 1528.5574316978455, - 1528.6561155319214, - 1528.7592558860779, - 1528.8586099147797, - 1528.9628987312317, - 1529.0560810565948, - 1529.1571590900421, - 1529.2560682296753, - 1529.3564767837524, - 1529.456878900528, - 1529.5586001873016, - 1529.657800912857, - 1529.7575800418854, - 1529.8577151298523, - 1529.9580373764038, - 1530.0567288398743, - 1530.157428264618, - 1530.2587399482727, - 1530.3589704036713, - 1530.457849740982, - 1530.5578382015228, - 1530.658446073532, - 1530.757824897766, - 1530.8616199493408, - 1530.960708618164, - 1531.059900522232, - 1531.162596464157, - 1531.2573883533478, - 1531.3600792884827, - 1531.458923816681, - 1531.5627195835114, - 1531.6612637043, - 1531.7576656341553, - 1531.8620171546936, - 1531.9599452018738, - 1532.0599632263184, - 1532.1607375144958, - 1532.259782075882, - 1532.3589525222778, - 1532.4589982032776, - 1532.5596570968628, - 1532.660763502121, - 1532.759989976883, - 1532.859920501709, - 1532.9633507728577, - 1533.0590443611145, - 1533.159485578537, - 1533.2591478824615, - 1533.358909368515, - 1533.4588725566864, - 1533.5592203140259, - 1533.6601333618164, - 1533.758960723877, - 1533.8600804805756, - 1533.9596378803253, - 1534.0594065189362, - 1534.1598281860352, - 1534.2596225738525, - 1534.360122680664, - 1534.4612867832184, - 1534.5604510307312, - 1534.6615297794342, - 1534.76198220253, - 1534.8614101409912, - 1534.9614522457123, - 1535.0600357055664, - 1535.1603939533234, - 1535.2622575759888, - 1535.3602058887482, - 1535.462120294571, - 1535.56028008461, - 1535.6601366996765, - 1535.7611837387085, - 1535.8639693260193, - 1535.9614548683167, - 1536.06116604805, - 1536.1607356071472, - 1536.2609808444977, - 1536.3626313209534, - 1536.4609956741333, - 1536.564481496811, - 1536.6640095710754, - 1536.763158082962, - 1536.8629369735718, - 1536.9626727104187, - 1537.0616796016693, - 1537.1621129512787, - 1537.2617573738098, - 1537.3618972301483, - 1537.462711572647, - 1537.562515258789, - 1537.6621596813202, - 1537.7639846801758, - 1537.8620209693909, - 1537.9622814655304, - 1538.0627496242523, - 1538.1621263027191, - 1538.2627971172333, - 1538.366781949997, - 1538.4637882709503, - 1538.563273191452, - 1538.66330909729, - 1538.7667174339294, - 1538.8636915683746, - 1538.9630060195923, - 1539.063859462738, - 1539.1625623703003, - 1539.2660901546478, - 1539.3630833625793, - 1539.464448928833, - 1539.5636985301971, - 1539.6643221378326, - 1539.7645237445831, - 1539.8643732070923, - 1539.9644606113434, - 1540.0639703273773, - 1540.1641156673431, - 1540.2658836841583, - 1540.3652892112732, - 1540.4671607017517, - 1540.5652508735657, - 1540.669272184372, - 1540.7651839256287, - 1540.8669271469116, - 1540.9673836231232, - 1541.0654036998749, - 1541.1660828590393, - 1541.2674746513367, - 1541.3676433563232, - 1541.4656250476837, - 1541.5665922164917, - 1541.6681351661682, - 1541.7672548294067, - 1541.867030620575, - 1541.9676649570465, - 1542.0670235157013, - 1542.1689057350159, - 1542.2671897411346, - 1542.3672127723694, - 1542.4686870574951, - 1542.5665442943573, - 1542.6705791950226, - 1542.7696046829224, - 1542.8668971061707, - 1542.966644525528, - 1543.0735685825348, - 1543.1732482910156, - 1543.267774105072, - 1543.3676788806915, - 1543.4672544002533, - 1543.5671184062958, - 1543.6677463054657, - 1543.7675108909607, - 1543.8679871559143, - 1543.9693717956543, - 1544.0663883686066, - 1544.1677677631378, - 1544.268888950348, - 1544.3663485050201, - 1544.4664885997772, - 1544.5660860538483, - 1544.6669471263885, - 1544.76717877388, - 1544.8672885894775, - 1544.9685242176056, - 1545.0670084953308, - 1545.1677951812744, - 1545.2673869132996, - 1545.3672273159027, - 1545.467891216278, - 1545.575178861618, - 1545.6677899360657, - 1545.7664551734924, - 1545.8665204048157, - 1545.9671485424042, - 1546.0674130916595, - 1546.1681797504425, - 1546.2676408290863, - 1546.367078781128, - 1546.4679577350616, - 1546.5685453414917, - 1546.6769742965698, - 1546.7727680206299, - 1546.8680868148804, - 1546.9686315059662, - 1547.069181919098, - 1547.167875289917, - 1547.2677521705627, - 1547.3686332702637, - 1547.4707067012787, - 1547.5683662891388, - 1547.6724834442139, - 1547.769639492035, - 1547.8712072372437, - 1547.9770529270172, - 1548.072209596634, - 1548.173274755478, - 1548.2715876102448, - 1548.371628522873, - 1548.4709198474884, - 1548.5714690685272, - 1548.671296596527, - 1548.7715110778809, - 1548.8716838359833, - 1548.97434091568, - 1549.070969581604, - 1549.174753665924, - 1549.2744188308716, - 1549.3733451366425, - 1549.4734070301056, - 1549.5742897987366, - 1549.6723790168762, - 1549.7728595733643, - 1549.8727250099182, - 1549.9772119522095, - 1550.0720105171204, - 1550.1710896492004, - 1550.2725031375885, - 1550.3713836669922, - 1550.4781966209412, - 1550.5779829025269, - 1550.6775233745575, - 1550.774284362793, - 1550.87375998497, - 1550.979849100113, - 1551.0752232074738, - 1551.1747436523438, - 1551.2786514759064, - 1551.3792498111725, - 1551.478197336197, - 1551.579080581665, - 1551.67942070961, - 1551.77863407135, - 1551.880181312561, - 1551.9783499240875, - 1552.0735130310059, - 1552.1743123531342, - 1552.2738902568817, - 1552.3736426830292, - 1552.4735062122345, - 1552.5737590789795, - 1552.6750376224518, - 1552.774917125702, - 1552.874896287918, - 1552.9747967720032, - 1553.0752203464508, - 1553.1760432720184, - 1553.2762243747711, - 1553.3725430965424, - 1553.472339630127, - 1553.5719089508057, - 1553.671792268753, - 1553.7730875015259, - 1553.8719074726105, - 1553.9732356071472, - 1554.072648525238, - 1554.172200679779, - 1554.2724151611328, - 1554.3731021881104, - 1554.4731767177582, - 1554.5727956295013, - 1554.673753976822, - 1554.7773764133453, - 1554.8747208118439, - 1554.9741613864899, - 1555.0747776031494, - 1555.1755096912384, - 1555.279501914978, - 1555.3744592666626, - 1555.4760527610779, - 1555.5740582942963, - 1555.6754522323608, - 1555.7753405570984, - 1555.8802742958069, - 1555.9759588241577, - 1556.074725151062, - 1556.1759669780731, - 1556.2756700515747, - 1556.3753113746643, - 1556.4837319850922, - 1556.5750107765198, - 1556.6751630306244, - 1556.7765123844147, - 1556.8782150745392, - 1556.9785902500153, - 1557.0765113830566, - 1557.1777567863464, - 1557.2783045768738, - 1557.3775517940521, - 1557.4797596931458, - 1557.5780041217804, - 1557.6780152320862, - 1557.7778115272522, - 1557.876960515976, - 1557.9770517349243, - 1558.076621055603, - 1558.180831193924, - 1558.2854754924774, - 1558.3767499923706, - 1558.4804351329803, - 1558.579921722412, - 1558.677288532257, - 1558.7769978046417, - 1558.8778581619263, - 1558.9787356853485, - 1559.0771126747131, - 1559.1767921447754, - 1559.278477191925, - 1559.378291606903, - 1559.4775824546814, - 1559.5807921886444, - 1559.6776638031006, - 1559.778058052063, - 1559.8830723762512, - 1559.9832768440247, - 1560.0840981006622, - 1560.1845769882202, - 1560.2789707183838, - 1560.3786268234253, - 1560.47776389122, - 1560.5785915851593, - 1560.6796667575836, - 1560.7791197299957, - 1560.87948346138, - 1560.978010892868, - 1561.0784831047058, - 1561.1786596775055, - 1561.2765908241272, - 1561.3838136196136, - 1561.4774813652039, - 1561.5815932750702, - 1561.6770639419556, - 1561.7776787281036, - 1561.877956867218, - 1561.9779877662659, - 1562.0776226520538, - 1562.1785109043121, - 1562.2782335281372, - 1562.3815352916718, - 1562.4804756641388, - 1562.5775909423828, - 1562.6809916496277, - 1562.7826879024506, - 1562.8828573226929, - 1562.9838132858276, - 1563.0780189037323, - 1563.1789796352386, - 1563.2802908420563, - 1563.3813588619232, - 1563.480254650116, - 1563.5809354782104, - 1563.680933713913, - 1563.7801339626312, - 1563.880723953247, - 1563.9811205863953, - 1564.0802714824677, - 1564.1794838905334, - 1564.2845251560211, - 1564.3794884681702, - 1564.4791498184204, - 1564.5835678577423, - 1564.6808955669403, - 1564.7788915634155, - 1564.8795139789581, - 1564.9836478233337, - 1565.07950258255, - 1565.1825184822083, - 1565.2819392681122, - 1565.380526304245, - 1565.4812269210815, - 1565.5805473327637, - 1565.684333562851, - 1565.785714149475, - 1565.8849048614502, - 1565.9807634353638, - 1566.0813398361206, - 1566.1810414791107, - 1566.283430814743, - 1566.383866071701, - 1566.484350681305, - 1566.5904591083527, - 1566.6800830364227, - 1566.7800760269165, - 1566.8805696964264, - 1566.9809465408325, - 1567.0811483860016, - 1567.1813688278198, - 1567.2823538780212, - 1567.3819682598114, - 1567.4816749095917, - 1567.5819344520569, - 1567.6825020313263, - 1567.781952381134, - 1567.881548166275, - 1567.982048034668, - 1568.0820636749268, - 1568.1820254325867, - 1568.281239271164, - 1568.3812518119812, - 1568.4811825752258, - 1568.5819082260132, - 1568.6818380355835, - 1568.7822697162628, - 1568.8816404342651, - 1568.9819226264954, - 1569.0865490436554, - 1569.186048746109, - 1569.282539844513, - 1569.3828761577606, - 1569.4822869300842, - 1569.58291721344, - 1569.6838479042053, - 1569.7846109867096, - 1569.8823783397675, - 1569.9836070537567, - 1570.0831260681152, - 1570.1819534301758, - 1570.2878515720367, - 1570.3924379348755, - 1570.4909138679504, - 1570.5902736186981, - 1570.6988174915314, - 1570.7904138565063, - 1570.8904962539673, - 1570.9899044036865, - 1571.0898532867432, - 1571.1898276805878, - 1571.289258480072, - 1571.3903584480286, - 1571.4897434711456, - 1571.5904321670532, - 1571.6920642852783, - 1571.7911806106567, - 1571.8918182849884, - 1571.9967155456543, - 1572.1017162799835, - 1572.2009263038635, - 1572.2912111282349, - 1572.3967843055725, - 1572.4991810321808, - 1572.5943253040314, - 1572.6906354427338, - 1572.7905294895172, - 1572.891780614853, - 1572.9911139011383, - 1573.0927135944366, - 1573.1920285224915 + 364.45887899398804, + 364.5586404800415, + 364.6589159965515, + 364.7593548297882, + 364.8601448535919, + 364.96894550323486, + 365.0596868991852, + 365.1594166755676, + 365.25956082344055, + 365.3596260547638, + 365.4601356983185, + 365.55979108810425, + 365.6599338054657, + 365.760290145874, + 365.8600797653198, + 365.9602725505829, + 366.0603938102722, + 366.16379594802856, + 366.2636842727661, + 366.3638548851013, + 366.4605884552002, + 366.5609917640686, + 366.6607811450958, + 366.7835304737091, + 366.86488342285156, + 366.96648716926575, + 367.0610132217407, + 367.1611726284027, + 367.26143312454224, + 367.36129570007324, + 367.46194195747375, + 367.5621943473816, + 367.6617558002472, + 367.76181387901306, + 367.8632423877716, + 367.9623694419861, + 368.0634768009186, + 368.16354393959045, + 368.26345467567444, + 368.3634202480316, + 368.4639570713043, + 368.56341767311096, + 368.66284465789795, + 368.76342129707336, + 368.8643660545349, + 368.96563172340393, + 369.06455993652344, + 369.16477060317993, + 369.26576590538025, + 369.3649263381958, + 369.46443724632263, + 369.564484834671, + 369.6652081012726, + 369.7659890651703, + 369.86567997932434, + 369.9659514427185, + 370.0671544075012, + 370.1666123867035, + 370.266783952713, + 370.36477303504944, + 370.4668548107147, + 370.565545797348, + 370.6652846336365, + 370.7655713558197, + 370.8653576374054, + 370.96653938293457, + 371.0674316883087, + 371.1659688949585, + 371.26658487319946, + 371.3692162036896, + 371.46680188179016, + 371.56940364837646, + 371.66719913482666, + 371.7668056488037, + 371.86815881729126, + 371.9680743217468, + 372.0671577453613, + 372.1683523654938, + 372.2659475803375, + 372.3691494464874, + 372.46960973739624, + 372.5661597251892, + 372.66928935050964, + 372.7676477432251, + 372.8702368736267, + 372.9683094024658, + 373.06783747673035, + 373.1671121120453, + 373.26922821998596, + 373.36808013916016, + 373.46855306625366, + 373.5675835609436, + 373.66880536079407, + 373.76876640319824, + 373.8698561191559, + 373.97192335128784, + 374.0674250125885, + 374.16755986213684, + 374.2683062553406, + 374.3683798313141, + 374.46939849853516, + 374.56834268569946, + 374.66983461380005, + 374.7691607475281, + 374.8697361946106, + 374.9699294567108, + 375.06860613822937, + 375.16787028312683, + 375.26893734931946, + 375.3684616088867, + 375.46800565719604, + 375.572505235672, + 375.66814947128296, + 375.77130460739136, + 375.86928486824036, + 375.9735300540924, + 376.0717408657074, + 376.1719069480896, + 376.27218413352966, + 376.37700939178467, + 376.4729585647583, + 376.568984746933, + 376.6694688796997, + 376.7690782546997, + 376.8701825141907, + 376.96993613243103, + 377.06991147994995, + 377.17006039619446, + 377.2700288295746, + 377.369996547699, + 377.47222781181335, + 377.57026195526123, + 377.6698634624481, + 377.77056527137756, + 377.87061953544617, + 377.97315883636475, + 378.07047605514526, + 378.17071175575256, + 378.2701976299286, + 378.37180352211, + 378.4711010456085, + 378.57070755958557, + 378.67058849334717, + 378.77225136756897, + 378.8715682029724, + 378.97123861312866, + 379.0709683895111, + 379.17172718048096, + 379.2713677883148, + 379.37117290496826, + 379.4718773365021, + 379.5713415145874, + 379.6712350845337, + 379.7715103626251, + 379.8717985153198, + 379.97728991508484, + 380.0728027820587, + 380.1717813014984, + 380.27346563339233, + 380.3715305328369, + 380.47183561325073, + 380.5720341205597, + 380.6718740463257, + 380.7727301120758, + 380.87255120277405, + 380.9730746746063, + 381.0756416320801, + 381.17266750335693 ], "y": [ 90, @@ -1909,6 +1349,2318 @@ 90, 90, 90, + 90 + ] + } + ], + "layout": { + "autosize": false, + "font": { + "color": "black", + "family": "Courier New, monospace", + "size": 22 + }, + "height": 600, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Range of Motion hipLeft" + }, + "width": 750, + "xaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "time [s]" + } + }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "ROM [gradi]" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "line": { + "color": "blue", + "width": 3 + }, + "mode": "lines", + "name": "Andamento Reale", + "type": "scatter", + "x": [ + 364.45887899398804, + 364.5586404800415, + 364.6589159965515, + 364.7593548297882, + 364.8601448535919, + 364.96894550323486, + 365.0596868991852, + 365.1594166755676, + 365.25956082344055, + 365.3596260547638, + 365.4601356983185, + 365.55979108810425, + 365.6599338054657, + 365.760290145874, + 365.8600797653198, + 365.9602725505829, + 366.0603938102722, + 366.16379594802856, + 366.2636842727661, + 366.3638548851013, + 366.4605884552002, + 366.5609917640686, + 366.6607811450958, + 366.7835304737091, + 366.86488342285156, + 366.96648716926575, + 367.0610132217407, + 367.1611726284027, + 367.26143312454224, + 367.36129570007324, + 367.46194195747375, + 367.5621943473816, + 367.6617558002472, + 367.76181387901306, + 367.8632423877716, + 367.9623694419861, + 368.0634768009186, + 368.16354393959045, + 368.26345467567444, + 368.3634202480316, + 368.4639570713043, + 368.56341767311096, + 368.66284465789795, + 368.76342129707336, + 368.8643660545349, + 368.96563172340393, + 369.06455993652344, + 369.16477060317993, + 369.26576590538025, + 369.3649263381958, + 369.46443724632263, + 369.564484834671, + 369.6652081012726, + 369.7659890651703, + 369.86567997932434, + 369.9659514427185, + 370.0671544075012, + 370.1666123867035, + 370.266783952713, + 370.36477303504944, + 370.4668548107147, + 370.565545797348, + 370.6652846336365, + 370.7655713558197, + 370.8653576374054, + 370.96653938293457, + 371.0674316883087, + 371.1659688949585, + 371.26658487319946, + 371.3692162036896, + 371.46680188179016, + 371.56940364837646, + 371.66719913482666, + 371.7668056488037, + 371.86815881729126, + 371.9680743217468, + 372.0671577453613, + 372.1683523654938, + 372.2659475803375, + 372.3691494464874, + 372.46960973739624, + 372.5661597251892, + 372.66928935050964, + 372.7676477432251, + 372.8702368736267, + 372.9683094024658, + 373.06783747673035, + 373.1671121120453, + 373.26922821998596, + 373.36808013916016, + 373.46855306625366, + 373.5675835609436, + 373.66880536079407, + 373.76876640319824, + 373.8698561191559, + 373.97192335128784, + 374.0674250125885, + 374.16755986213684, + 374.2683062553406, + 374.3683798313141, + 374.46939849853516, + 374.56834268569946, + 374.66983461380005, + 374.7691607475281, + 374.8697361946106, + 374.9699294567108, + 375.06860613822937, + 375.16787028312683, + 375.26893734931946, + 375.3684616088867, + 375.46800565719604, + 375.572505235672, + 375.66814947128296, + 375.77130460739136, + 375.86928486824036, + 375.9735300540924, + 376.0717408657074, + 376.1719069480896, + 376.27218413352966, + 376.37700939178467, + 376.4729585647583, + 376.568984746933, + 376.6694688796997, + 376.7690782546997, + 376.8701825141907, + 376.96993613243103, + 377.06991147994995, + 377.17006039619446, + 377.2700288295746, + 377.369996547699, + 377.47222781181335, + 377.57026195526123, + 377.6698634624481, + 377.77056527137756, + 377.87061953544617, + 377.97315883636475, + 378.07047605514526, + 378.17071175575256, + 378.2701976299286, + 378.37180352211, + 378.4711010456085, + 378.57070755958557, + 378.67058849334717, + 378.77225136756897, + 378.8715682029724, + 378.97123861312866, + 379.0709683895111, + 379.17172718048096, + 379.2713677883148, + 379.37117290496826, + 379.4718773365021, + 379.5713415145874, + 379.6712350845337, + 379.7715103626251, + 379.8717985153198, + 379.97728991508484, + 380.0728027820587, + 380.1717813014984, + 380.27346563339233, + 380.3715305328369, + 380.47183561325073, + 380.5720341205597, + 380.6718740463257, + 380.7727301120758, + 380.87255120277405, + 380.9730746746063, + 381.0756416320801, + 381.17266750335693 + ], + "y": [ + 80.99848325697738, + 81.40963981400253, + 81.41632433956082, + 81.94494352405604, + 81.39471031437583, + 80.72518519085058, + 81.47451292089757, + 80.95936965132074, + 81.39398695094683, + 81.44179444685334, + 81.24707338683126, + 80.95980493847429, + 81.1267015371734, + 81.01301479500162, + 81.20992011578842, + 81.28982089820393, + 81.97855166822042, + 81.35124580051385, + 81.30016675818271, + 80.49740681518374, + 79.89809645304449, + 80.49874163707132, + 80.48032368950513, + 81.19231574586611, + 81.87056625791801, + 82.1319809508054, + 81.67732588289763, + 81.25454166316182, + 80.38010994793214, + 80.97969086808975, + 80.74751361598115, + 81.14702729642615, + 82.21595061496475, + 81.76524938733847, + 81.51164847912375, + 81.51747101927225, + 81.7429944151633, + 80.73073371847889, + 79.90628946830286, + 79.8339302546789, + 79.85222081569792, + 79.88906699539463, + 80.43279610051617, + 81.29190593462017, + 81.11514538020454, + 80.65803445392649, + 80.7556978525023, + 80.56135853404439, + 81.34233794028141, + 81.35002924349432, + 81.18787322611203, + 80.61048609395473, + 80.10792596419861, + 79.99880835575952, + 80.71786549732076, + 81.22127017428896, + 81.14296135115026, + 81.33059581893322, + 80.63669186651481, + 80.70477967238462, + 81.20493488213873, + 81.43090910318264, + 81.21065242571063, + 80.68518906133365, + 80.00136272027446, + 79.87967139857032, + 79.84731359105412, + 80.64514565805726, + 81.56561452427535, + 81.67159471677142, + 81.17979967337092, + 82.05512702830381, + 82.05512702830381, + 81.54459180486326, + 81.40442436132409, + 78.95576999610971, + 77.0130883979062, + 75.31684533499381, + 71.15162286819198, + 69.78721793339454, + 69.11072718756384, + 69.11072718756384, + 69.71497009452268, + 70.02692837092138, + 68.15484665649211, + 68.55939170990435, + 68.55939170990435, + 68.1569495864706, + 67.04249547137498, + 66.2858529409772, + 66.2858529409772, + 68.75543362635985, + 68.75543362635985, + 69.43794301718201, + 68.62004319520344, + 68.62004319520344, + 69.74447630750797, + 70.27870784800348, + 69.42862337829942, + 68.43197630481816, + 67.71596198589287, + 68.57660706709999, + 69.67608324418374, + 71.83855652746774, + 72.66615009184737, + 69.36149843912858, + 67.27630912258215, + 66.67069469999704, + 66.62383548630612, + 67.33771354631126, + 67.77024550317164, + 68.11887619927029, + 68.4946346512398, + 69.77433648341005, + 69.76505903410342, + 68.80357670508411, + 68.80357670508411, + 68.77386162721314, + 69.93229292112485, + 68.88999564156913, + 67.00391906624036, + 67.47765684608973, + 70.0595564195655, + 71.29763378384892, + 71.46419709446195, + 71.06959467590238, + 69.39241957886865, + 68.27722382805479, + 67.6766522588207, + 66.96724163955113, + 67.95069414606328, + 69.7736268222417, + 70.04409741171015, + 70.32160830680387, + 71.44952702997871, + 70.05081616203651, + 68.45329121742233, + 68.66980746282574, + 68.66980746282574, + 71.05920237991806, + 70.92338772312714, + 72.23596562668357, + 72.23596562668357, + 107.84706830663023, + 69.62181937456808, + 69.40282366429278, + 70.15120300391295, + 70.15120300391295, + 77.3631843503004, + 76.98698903169944, + 76.98698903169944, + null, + null, + null, + 73.20995924744234, + 77.3466409965586, + 77.3466409965586, + 77.42502704310871, + 78.36485720715763, + 78.1103571886068, + 77.62169249739135, + 78.33635889364433, + 78.88554191475271, + 80.10038037345937, + 81.60809557614111, + 81.05362142498295, + 81.71962475639275 + ] + } + ], + "layout": { + "autosize": false, + "font": { + "color": "black", + "family": "Courier New, monospace", + "size": 22 + }, + "height": 600, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Range of Motion kneeLeft" + }, + "width": 750, + "xaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "time [s]" + } + }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "ROM [gradi]" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "line": { + "color": "blue", + "width": 3 + }, + "mode": "lines", + "name": "Andamento Reale", + "type": "scatter", + "x": [ + 364.45887899398804, + 364.5586404800415, + 364.6589159965515, + 364.7593548297882, + 364.8601448535919, + 364.96894550323486, + 365.0596868991852, + 365.1594166755676, + 365.25956082344055, + 365.3596260547638, + 365.4601356983185, + 365.55979108810425, + 365.6599338054657, + 365.760290145874, + 365.8600797653198, + 365.9602725505829, + 366.0603938102722, + 366.16379594802856, + 366.2636842727661, + 366.3638548851013, + 366.4605884552002, + 366.5609917640686, + 366.6607811450958, + 366.7835304737091, + 366.86488342285156, + 366.96648716926575, + 367.0610132217407, + 367.1611726284027, + 367.26143312454224, + 367.36129570007324, + 367.46194195747375, + 367.5621943473816, + 367.6617558002472, + 367.76181387901306, + 367.8632423877716, + 367.9623694419861, + 368.0634768009186, + 368.16354393959045, + 368.26345467567444, + 368.3634202480316, + 368.4639570713043, + 368.56341767311096, + 368.66284465789795, + 368.76342129707336, + 368.8643660545349, + 368.96563172340393, + 369.06455993652344, + 369.16477060317993, + 369.26576590538025, + 369.3649263381958, + 369.46443724632263, + 369.564484834671, + 369.6652081012726, + 369.7659890651703, + 369.86567997932434, + 369.9659514427185, + 370.0671544075012, + 370.1666123867035, + 370.266783952713, + 370.36477303504944, + 370.4668548107147, + 370.565545797348, + 370.6652846336365, + 370.7655713558197, + 370.8653576374054, + 370.96653938293457, + 371.0674316883087, + 371.1659688949585, + 371.26658487319946, + 371.3692162036896, + 371.46680188179016, + 371.56940364837646, + 371.66719913482666, + 371.7668056488037, + 371.86815881729126, + 371.9680743217468, + 372.0671577453613, + 372.1683523654938, + 372.2659475803375, + 372.3691494464874, + 372.46960973739624, + 372.5661597251892, + 372.66928935050964, + 372.7676477432251, + 372.8702368736267, + 372.9683094024658, + 373.06783747673035, + 373.1671121120453, + 373.26922821998596, + 373.36808013916016, + 373.46855306625366, + 373.5675835609436, + 373.66880536079407, + 373.76876640319824, + 373.8698561191559, + 373.97192335128784, + 374.0674250125885, + 374.16755986213684, + 374.2683062553406, + 374.3683798313141, + 374.46939849853516, + 374.56834268569946, + 374.66983461380005, + 374.7691607475281, + 374.8697361946106, + 374.9699294567108, + 375.06860613822937, + 375.16787028312683, + 375.26893734931946, + 375.3684616088867, + 375.46800565719604, + 375.572505235672, + 375.66814947128296, + 375.77130460739136, + 375.86928486824036, + 375.9735300540924, + 376.0717408657074, + 376.1719069480896, + 376.27218413352966, + 376.37700939178467, + 376.4729585647583, + 376.568984746933, + 376.6694688796997, + 376.7690782546997, + 376.8701825141907, + 376.96993613243103, + 377.06991147994995, + 377.17006039619446, + 377.2700288295746, + 377.369996547699, + 377.47222781181335, + 377.57026195526123, + 377.6698634624481, + 377.77056527137756, + 377.87061953544617, + 377.97315883636475, + 378.07047605514526, + 378.17071175575256, + 378.2701976299286, + 378.37180352211, + 378.4711010456085, + 378.57070755958557, + 378.67058849334717, + 378.77225136756897, + 378.8715682029724, + 378.97123861312866, + 379.0709683895111, + 379.17172718048096, + 379.2713677883148, + 379.37117290496826, + 379.4718773365021, + 379.5713415145874, + 379.6712350845337, + 379.7715103626251, + 379.8717985153198, + 379.97728991508484, + 380.0728027820587, + 380.1717813014984, + 380.27346563339233, + 380.3715305328369, + 380.47183561325073, + 380.5720341205597, + 380.6718740463257, + 380.7727301120758, + 380.87255120277405, + 380.9730746746063, + 381.0756416320801, + 381.17266750335693 + ], + "y": [ 90, 90, 90, @@ -2075,6 +3827,1079 @@ 90, 90, 90, + 90 + ] + } + ], + "layout": { + "autosize": false, + "font": { + "color": "black", + "family": "Courier New, monospace", + "size": 22 + }, + "height": 600, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Range of Motion ankleLeft" + }, + "width": 750, + "xaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "time [s]" + } + }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "ROM [gradi]" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "line": { + "color": "blue", + "width": 3 + }, + "mode": "lines", + "name": "Andamento Reale", + "type": "scatter", + "x": [ + 364.45887899398804, + 364.5586404800415, + 364.6589159965515, + 364.7593548297882, + 364.8601448535919, + 364.96894550323486, + 365.0596868991852, + 365.1594166755676, + 365.25956082344055, + 365.3596260547638, + 365.4601356983185, + 365.55979108810425, + 365.6599338054657, + 365.760290145874, + 365.8600797653198, + 365.9602725505829, + 366.0603938102722, + 366.16379594802856, + 366.2636842727661, + 366.3638548851013, + 366.4605884552002, + 366.5609917640686, + 366.6607811450958, + 366.7835304737091, + 366.86488342285156, + 366.96648716926575, + 367.0610132217407, + 367.1611726284027, + 367.26143312454224, + 367.36129570007324, + 367.46194195747375, + 367.5621943473816, + 367.6617558002472, + 367.76181387901306, + 367.8632423877716, + 367.9623694419861, + 368.0634768009186, + 368.16354393959045, + 368.26345467567444, + 368.3634202480316, + 368.4639570713043, + 368.56341767311096, + 368.66284465789795, + 368.76342129707336, + 368.8643660545349, + 368.96563172340393, + 369.06455993652344, + 369.16477060317993, + 369.26576590538025, + 369.3649263381958, + 369.46443724632263, + 369.564484834671, + 369.6652081012726, + 369.7659890651703, + 369.86567997932434, + 369.9659514427185, + 370.0671544075012, + 370.1666123867035, + 370.266783952713, + 370.36477303504944, + 370.4668548107147, + 370.565545797348, + 370.6652846336365, + 370.7655713558197, + 370.8653576374054, + 370.96653938293457, + 371.0674316883087, + 371.1659688949585, + 371.26658487319946, + 371.3692162036896, + 371.46680188179016, + 371.56940364837646, + 371.66719913482666, + 371.7668056488037, + 371.86815881729126, + 371.9680743217468, + 372.0671577453613, + 372.1683523654938, + 372.2659475803375, + 372.3691494464874, + 372.46960973739624, + 372.5661597251892, + 372.66928935050964, + 372.7676477432251, + 372.8702368736267, + 372.9683094024658, + 373.06783747673035, + 373.1671121120453, + 373.26922821998596, + 373.36808013916016, + 373.46855306625366, + 373.5675835609436, + 373.66880536079407, + 373.76876640319824, + 373.8698561191559, + 373.97192335128784, + 374.0674250125885, + 374.16755986213684, + 374.2683062553406, + 374.3683798313141, + 374.46939849853516, + 374.56834268569946, + 374.66983461380005, + 374.7691607475281, + 374.8697361946106, + 374.9699294567108, + 375.06860613822937, + 375.16787028312683, + 375.26893734931946, + 375.3684616088867, + 375.46800565719604, + 375.572505235672, + 375.66814947128296, + 375.77130460739136, + 375.86928486824036, + 375.9735300540924, + 376.0717408657074, + 376.1719069480896, + 376.27218413352966, + 376.37700939178467, + 376.4729585647583, + 376.568984746933, + 376.6694688796997, + 376.7690782546997, + 376.8701825141907, + 376.96993613243103, + 377.06991147994995, + 377.17006039619446, + 377.2700288295746, + 377.369996547699, + 377.47222781181335, + 377.57026195526123, + 377.6698634624481, + 377.77056527137756, + 377.87061953544617, + 377.97315883636475, + 378.07047605514526, + 378.17071175575256, + 378.2701976299286, + 378.37180352211, + 378.4711010456085, + 378.57070755958557, + 378.67058849334717, + 378.77225136756897, + 378.8715682029724, + 378.97123861312866, + 379.0709683895111, + 379.17172718048096, + 379.2713677883148, + 379.37117290496826, + 379.4718773365021, + 379.5713415145874, + 379.6712350845337, + 379.7715103626251, + 379.8717985153198, + 379.97728991508484, + 380.0728027820587, + 380.1717813014984, + 380.27346563339233, + 380.3715305328369, + 380.47183561325073, + 380.5720341205597, + 380.6718740463257, + 380.7727301120758, + 380.87255120277405, + 380.9730746746063, + 381.0756416320801, + 381.17266750335693 + ], + "y": [ 90, 90, 90, @@ -2241,11995 +5066,2318 @@ 90, 90, 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90 - ] - } - ], - "layout": { - "autosize": false, - "font": { - "color": "black", - "family": "Courier New, monospace", - "size": 22 - }, - "height": 600, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Range of Motion hipLeft" - }, - "width": 750, - "xaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "time [s]" - } - }, - "yaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "ROM [gradi]" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "linkText": "Export to plot.ly", - "plotlyServerURL": "https://plot.ly", - "showLink": false - }, - "data": [ - { - "line": { - "color": "blue", - "width": 3 - }, - "mode": "lines", - "name": "Andamento Reale", - "type": "scatter", - "x": [ - 1499.2411363124847, - 1499.3432846069336, - 1499.4427211284637, - 1499.54013133049, - 1499.6420300006866, - 1499.744064092636, - 1499.8401839733124, - 1499.9462168216705, - 1500.0419936180115, - 1500.1414563655853, - 1500.2422320842743, - 1500.3411314487457, - 1500.441514492035, - 1500.541243314743, - 1500.6429286003113, - 1500.7421760559082, - 1500.8417778015137, - 1500.9413657188416, - 1501.0417659282684, - 1501.1428897380829, - 1501.240436553955, - 1501.3419153690338, - 1501.441132068634, - 1501.5403683185577, - 1501.6449313163757, - 1501.7413523197174, - 1501.8423101902008, - 1501.9408650398254, - 1502.04141497612, - 1502.1416535377502, - 1502.2421522140503, - 1502.3436872959137, - 1502.4428606033325, - 1502.5419516563416, - 1502.6438164710999, - 1502.739751815796, - 1502.839929819107, - 1502.9432377815247, - 1503.0396859645844, - 1503.1407148838043, - 1503.2416439056396, - 1503.3399159908295, - 1503.4405806064606, - 1503.542091369629, - 1503.6399137973785, - 1503.7397291660309, - 1503.8402659893036, - 1503.9417126178741, - 1504.0408883094788, - 1504.1431605815887, - 1504.2412109375, - 1504.3424327373505, - 1504.442084312439, - 1504.5419890880585, - 1504.6418566703796, - 1504.7421357631683, - 1504.8420453071594, - 1504.9417133331299, - 1505.0427649021149, - 1505.1421146392822, - 1505.2413144111633, - 1505.3408071994781, - 1505.4415457248688, - 1505.542934179306, - 1505.6415820121765, - 1505.741807460785, - 1505.8417615890503, - 1505.9422342777252, - 1506.0417664051056, - 1506.142252922058, - 1506.2424128055573, - 1506.3428943157196, - 1506.4433236122131, - 1506.5426783561707, - 1506.6421117782593, - 1506.74356341362, - 1506.8419032096863, - 1506.9436628818512, - 1507.042890548706, - 1507.143632888794, - 1507.2437996864319, - 1507.34317612648, - 1507.4439723491669, - 1507.5464203357697, - 1507.646990776062, - 1507.743609905243, - 1507.844081878662, - 1507.944857597351, - 1508.0438890457153, - 1508.143606185913, - 1508.2456514835358, - 1508.3450417518616, - 1508.444191455841, - 1508.5442969799042, - 1508.6431493759155, - 1508.7441477775574, - 1508.8442180156708, - 1508.9457623958588, - 1509.0446989536285, - 1509.1442427635193, - 1509.2483496665955, - 1509.348049879074, - 1509.447769165039, - 1509.5452642440796, - 1509.6454932689667, - 1509.7466208934784, - 1509.8461413383484, - 1509.9450035095215, - 1510.0446655750275, - 1510.1453218460083, - 1510.2444643974304, - 1510.3476753234863, - 1510.444744348526, - 1510.5449130535126, - 1510.6449630260468, - 1510.7453105449677, - 1510.8460247516632, - 1510.9460620880127, - 1511.0450239181519, - 1511.147045135498, - 1511.2464575767517, - 1511.3476495742798, - 1511.4461619853973, - 1511.5460538864136, - 1511.6458253860474, - 1511.7523272037506, - 1511.8473920822144, - 1511.9467968940735, - 1512.0458340644836, - 1512.14905834198, - 1512.2465064525604, - 1512.3464360237122, - 1512.4465262889862, - 1512.5464425086975, - 1512.6461458206177, - 1512.7456891536713, - 1512.846199274063, - 1512.9469623565674, - 1513.046472787857, - 1513.1472702026367, - 1513.2464673519135, - 1513.3472352027893, - 1513.4477665424347, - 1513.5469961166382, - 1513.6465792655945, - 1513.7474553585052, - 1513.8473408222198, - 1513.9478917121887, - 1514.048181295395, - 1514.1470139026642, - 1514.2469763755798, - 1514.347504377365, - 1514.4472517967224, - 1514.548014163971, - 1514.6466579437256, - 1514.747255563736, - 1514.8468098640442, - 1514.9472517967224, - 1515.0483257770538, - 1515.1476039886475, - 1515.2474853992462, - 1515.349123954773, - 1515.448129415512, - 1515.5479564666748, - 1515.6483643054962, - 1515.7478876113892, - 1515.848218679428, - 1515.9479448795319, - 1516.0482194423676, - 1516.149117231369, - 1516.24773478508, - 1516.3488357067108, - 1516.4485018253326, - 1516.548581123352, - 1516.6529862880707, - 1516.7489988803864, - 1516.8483703136444, - 1516.9493639469147, - 1517.0485661029816, - 1517.1542015075684, - 1517.2489612102509, - 1517.3534693717957, - 1517.4531128406525, - 1517.553725719452, - 1517.6531822681427, - 1517.7508800029755, - 1517.8505020141602, - 1517.9501507282257, - 1518.0533425807953, - 1518.154797554016, - 1518.252271413803, - 1518.3584887981415, - 1518.4496307373047, - 1518.5517852306366, - 1518.6547417640686, - 1518.751220703125, - 1518.8547055721283, - 1518.9500937461853, - 1519.0509328842163, - 1519.1500902175903, - 1519.2508342266083, - 1519.3509469032288, - 1519.4529166221619, - 1519.552564382553, - 1519.6508638858795, - 1519.7502257823944, - 1519.8513631820679, - 1519.9507722854614, - 1520.0511844158173, - 1520.1549203395844, - 1520.2553119659424, - 1520.355444908142, - 1520.4572768211365, - 1520.5562913417816, - 1520.6547539234161, - 1520.7517511844635, - 1520.852136850357, - 1520.956214427948, - 1521.0517673492432, - 1521.151982307434, - 1521.2533135414124, - 1521.3525230884552, - 1521.4546430110931, - 1521.5537049770355, - 1521.6560616493225, - 1521.756957769394, - 1521.861038684845, - 1521.9608080387115, - 1522.0553195476532, - 1522.1532826423645, - 1522.2527394294739, - 1522.3522148132324, - 1522.4540903568268, - 1522.5571751594543, - 1522.654535293579, - 1522.7544548511505, - 1522.8560378551483, - 1522.953887462616, - 1523.0526440143585, - 1523.1566863059998, - 1523.2580780982971, - 1523.3567478656769, - 1523.454469203949, - 1523.5542244911194, - 1523.658311843872, - 1523.7581009864807, - 1523.8582689762115, - 1523.953364610672, - 1524.054563999176, - 1524.1584029197693, - 1524.2576098442078, - 1524.3543453216553, - 1524.4550700187683, - 1524.5540347099304, - 1524.6535897254944, - 1524.753868341446, - 1524.853411436081, - 1524.95521068573, - 1525.054139137268, - 1525.1547272205353, - 1525.2555606365204, - 1525.3549020290375, - 1525.4566402435303, - 1525.5587475299835, - 1525.6535289287567, - 1525.7547373771667, - 1525.8536713123322, - 1525.9546175003052, - 1526.0546753406525, - 1526.1549615859985, - 1526.255040884018, - 1526.3548610210419, - 1526.454764842987, - 1526.5555267333984, - 1526.6554877758026, - 1526.7556302547455, - 1526.8551664352417, - 1526.9557905197144, - 1527.0557622909546, - 1527.1561093330383, - 1527.2571275234222, - 1527.356971502304, - 1527.457272529602, - 1527.5553719997406, - 1527.6574912071228, - 1527.757332086563, - 1527.8562273979187, - 1527.9594457149506, - 1528.0566897392273, - 1528.1583421230316, - 1528.2581007480621, - 1528.355853319168, - 1528.4608187675476, - 1528.5574316978455, - 1528.6561155319214, - 1528.7592558860779, - 1528.8586099147797, - 1528.9628987312317, - 1529.0560810565948, - 1529.1571590900421, - 1529.2560682296753, - 1529.3564767837524, - 1529.456878900528, - 1529.5586001873016, - 1529.657800912857, - 1529.7575800418854, - 1529.8577151298523, - 1529.9580373764038, - 1530.0567288398743, - 1530.157428264618, - 1530.2587399482727, - 1530.3589704036713, - 1530.457849740982, - 1530.5578382015228, - 1530.658446073532, - 1530.757824897766, - 1530.8616199493408, - 1530.960708618164, - 1531.059900522232, - 1531.162596464157, - 1531.2573883533478, - 1531.3600792884827, - 1531.458923816681, - 1531.5627195835114, - 1531.6612637043, - 1531.7576656341553, - 1531.8620171546936, - 1531.9599452018738, - 1532.0599632263184, - 1532.1607375144958, - 1532.259782075882, - 1532.3589525222778, - 1532.4589982032776, - 1532.5596570968628, - 1532.660763502121, - 1532.759989976883, - 1532.859920501709, - 1532.9633507728577, - 1533.0590443611145, - 1533.159485578537, - 1533.2591478824615, - 1533.358909368515, - 1533.4588725566864, - 1533.5592203140259, - 1533.6601333618164, - 1533.758960723877, - 1533.8600804805756, - 1533.9596378803253, - 1534.0594065189362, - 1534.1598281860352, - 1534.2596225738525, - 1534.360122680664, - 1534.4612867832184, - 1534.5604510307312, - 1534.6615297794342, - 1534.76198220253, - 1534.8614101409912, - 1534.9614522457123, - 1535.0600357055664, - 1535.1603939533234, - 1535.2622575759888, - 1535.3602058887482, - 1535.462120294571, - 1535.56028008461, - 1535.6601366996765, - 1535.7611837387085, - 1535.8639693260193, - 1535.9614548683167, - 1536.06116604805, - 1536.1607356071472, - 1536.2609808444977, - 1536.3626313209534, - 1536.4609956741333, - 1536.564481496811, - 1536.6640095710754, - 1536.763158082962, - 1536.8629369735718, - 1536.9626727104187, - 1537.0616796016693, - 1537.1621129512787, - 1537.2617573738098, - 1537.3618972301483, - 1537.462711572647, - 1537.562515258789, - 1537.6621596813202, - 1537.7639846801758, - 1537.8620209693909, - 1537.9622814655304, - 1538.0627496242523, - 1538.1621263027191, - 1538.2627971172333, - 1538.366781949997, - 1538.4637882709503, - 1538.563273191452, - 1538.66330909729, - 1538.7667174339294, - 1538.8636915683746, - 1538.9630060195923, - 1539.063859462738, - 1539.1625623703003, - 1539.2660901546478, - 1539.3630833625793, - 1539.464448928833, - 1539.5636985301971, - 1539.6643221378326, - 1539.7645237445831, - 1539.8643732070923, - 1539.9644606113434, - 1540.0639703273773, - 1540.1641156673431, - 1540.2658836841583, - 1540.3652892112732, - 1540.4671607017517, - 1540.5652508735657, - 1540.669272184372, - 1540.7651839256287, - 1540.8669271469116, - 1540.9673836231232, - 1541.0654036998749, - 1541.1660828590393, - 1541.2674746513367, - 1541.3676433563232, - 1541.4656250476837, - 1541.5665922164917, - 1541.6681351661682, - 1541.7672548294067, - 1541.867030620575, - 1541.9676649570465, - 1542.0670235157013, - 1542.1689057350159, - 1542.2671897411346, - 1542.3672127723694, - 1542.4686870574951, - 1542.5665442943573, - 1542.6705791950226, - 1542.7696046829224, - 1542.8668971061707, - 1542.966644525528, - 1543.0735685825348, - 1543.1732482910156, - 1543.267774105072, - 1543.3676788806915, - 1543.4672544002533, - 1543.5671184062958, - 1543.6677463054657, - 1543.7675108909607, - 1543.8679871559143, - 1543.9693717956543, - 1544.0663883686066, - 1544.1677677631378, - 1544.268888950348, - 1544.3663485050201, - 1544.4664885997772, - 1544.5660860538483, - 1544.6669471263885, - 1544.76717877388, - 1544.8672885894775, - 1544.9685242176056, - 1545.0670084953308, - 1545.1677951812744, - 1545.2673869132996, - 1545.3672273159027, - 1545.467891216278, - 1545.575178861618, - 1545.6677899360657, - 1545.7664551734924, - 1545.8665204048157, - 1545.9671485424042, - 1546.0674130916595, - 1546.1681797504425, - 1546.2676408290863, - 1546.367078781128, - 1546.4679577350616, - 1546.5685453414917, - 1546.6769742965698, - 1546.7727680206299, - 1546.8680868148804, - 1546.9686315059662, - 1547.069181919098, - 1547.167875289917, - 1547.2677521705627, - 1547.3686332702637, - 1547.4707067012787, - 1547.5683662891388, - 1547.6724834442139, - 1547.769639492035, - 1547.8712072372437, - 1547.9770529270172, - 1548.072209596634, - 1548.173274755478, - 1548.2715876102448, - 1548.371628522873, - 1548.4709198474884, - 1548.5714690685272, - 1548.671296596527, - 1548.7715110778809, - 1548.8716838359833, - 1548.97434091568, - 1549.070969581604, - 1549.174753665924, - 1549.2744188308716, - 1549.3733451366425, - 1549.4734070301056, - 1549.5742897987366, - 1549.6723790168762, - 1549.7728595733643, - 1549.8727250099182, - 1549.9772119522095, - 1550.0720105171204, - 1550.1710896492004, - 1550.2725031375885, - 1550.3713836669922, - 1550.4781966209412, - 1550.5779829025269, - 1550.6775233745575, - 1550.774284362793, - 1550.87375998497, - 1550.979849100113, - 1551.0752232074738, - 1551.1747436523438, - 1551.2786514759064, - 1551.3792498111725, - 1551.478197336197, - 1551.579080581665, - 1551.67942070961, - 1551.77863407135, - 1551.880181312561, - 1551.9783499240875, - 1552.0735130310059, - 1552.1743123531342, - 1552.2738902568817, - 1552.3736426830292, - 1552.4735062122345, - 1552.5737590789795, - 1552.6750376224518, - 1552.774917125702, - 1552.874896287918, - 1552.9747967720032, - 1553.0752203464508, - 1553.1760432720184, - 1553.2762243747711, - 1553.3725430965424, - 1553.472339630127, - 1553.5719089508057, - 1553.671792268753, - 1553.7730875015259, - 1553.8719074726105, - 1553.9732356071472, - 1554.072648525238, - 1554.172200679779, - 1554.2724151611328, - 1554.3731021881104, - 1554.4731767177582, - 1554.5727956295013, - 1554.673753976822, - 1554.7773764133453, - 1554.8747208118439, - 1554.9741613864899, - 1555.0747776031494, - 1555.1755096912384, - 1555.279501914978, - 1555.3744592666626, - 1555.4760527610779, - 1555.5740582942963, - 1555.6754522323608, - 1555.7753405570984, - 1555.8802742958069, - 1555.9759588241577, - 1556.074725151062, - 1556.1759669780731, - 1556.2756700515747, - 1556.3753113746643, - 1556.4837319850922, - 1556.5750107765198, - 1556.6751630306244, - 1556.7765123844147, - 1556.8782150745392, - 1556.9785902500153, - 1557.0765113830566, - 1557.1777567863464, - 1557.2783045768738, - 1557.3775517940521, - 1557.4797596931458, - 1557.5780041217804, - 1557.6780152320862, - 1557.7778115272522, - 1557.876960515976, - 1557.9770517349243, - 1558.076621055603, - 1558.180831193924, - 1558.2854754924774, - 1558.3767499923706, - 1558.4804351329803, - 1558.579921722412, - 1558.677288532257, - 1558.7769978046417, - 1558.8778581619263, - 1558.9787356853485, - 1559.0771126747131, - 1559.1767921447754, - 1559.278477191925, - 1559.378291606903, - 1559.4775824546814, - 1559.5807921886444, - 1559.6776638031006, - 1559.778058052063, - 1559.8830723762512, - 1559.9832768440247, - 1560.0840981006622, - 1560.1845769882202, - 1560.2789707183838, - 1560.3786268234253, - 1560.47776389122, - 1560.5785915851593, - 1560.6796667575836, - 1560.7791197299957, - 1560.87948346138, - 1560.978010892868, - 1561.0784831047058, - 1561.1786596775055, - 1561.2765908241272, - 1561.3838136196136, - 1561.4774813652039, - 1561.5815932750702, - 1561.6770639419556, - 1561.7776787281036, - 1561.877956867218, - 1561.9779877662659, - 1562.0776226520538, - 1562.1785109043121, - 1562.2782335281372, - 1562.3815352916718, - 1562.4804756641388, - 1562.5775909423828, - 1562.6809916496277, - 1562.7826879024506, - 1562.8828573226929, - 1562.9838132858276, - 1563.0780189037323, - 1563.1789796352386, - 1563.2802908420563, - 1563.3813588619232, - 1563.480254650116, - 1563.5809354782104, - 1563.680933713913, - 1563.7801339626312, - 1563.880723953247, - 1563.9811205863953, - 1564.0802714824677, - 1564.1794838905334, - 1564.2845251560211, - 1564.3794884681702, - 1564.4791498184204, - 1564.5835678577423, - 1564.6808955669403, - 1564.7788915634155, - 1564.8795139789581, - 1564.9836478233337, - 1565.07950258255, - 1565.1825184822083, - 1565.2819392681122, - 1565.380526304245, - 1565.4812269210815, - 1565.5805473327637, - 1565.684333562851, - 1565.785714149475, - 1565.8849048614502, - 1565.9807634353638, - 1566.0813398361206, - 1566.1810414791107, - 1566.283430814743, - 1566.383866071701, - 1566.484350681305, - 1566.5904591083527, - 1566.6800830364227, - 1566.7800760269165, - 1566.8805696964264, - 1566.9809465408325, - 1567.0811483860016, - 1567.1813688278198, - 1567.2823538780212, - 1567.3819682598114, - 1567.4816749095917, - 1567.5819344520569, - 1567.6825020313263, - 1567.781952381134, - 1567.881548166275, - 1567.982048034668, - 1568.0820636749268, - 1568.1820254325867, - 1568.281239271164, - 1568.3812518119812, - 1568.4811825752258, - 1568.5819082260132, - 1568.6818380355835, - 1568.7822697162628, - 1568.8816404342651, - 1568.9819226264954, - 1569.0865490436554, - 1569.186048746109, - 1569.282539844513, - 1569.3828761577606, - 1569.4822869300842, - 1569.58291721344, - 1569.6838479042053, - 1569.7846109867096, - 1569.8823783397675, - 1569.9836070537567, - 1570.0831260681152, - 1570.1819534301758, - 1570.2878515720367, - 1570.3924379348755, - 1570.4909138679504, - 1570.5902736186981, - 1570.6988174915314, - 1570.7904138565063, - 1570.8904962539673, - 1570.9899044036865, - 1571.0898532867432, - 1571.1898276805878, - 1571.289258480072, - 1571.3903584480286, - 1571.4897434711456, - 1571.5904321670532, - 1571.6920642852783, - 1571.7911806106567, - 1571.8918182849884, - 1571.9967155456543, - 1572.1017162799835, - 1572.2009263038635, - 1572.2912111282349, - 1572.3967843055725, - 1572.4991810321808, - 1572.5943253040314, - 1572.6906354427338, - 1572.7905294895172, - 1572.891780614853, - 1572.9911139011383, - 1573.0927135944366, - 1573.1920285224915 - ], - "y": [ - 81.21498391735147, - 80.34645581068564, - 81.24656206338153, - 81.24656206338153, - 80.75481102420002, - 81.32517779895005, - 81.96184773260903, - 82.07889940360639, - 82.07889940360639, - 82.16638905625543, - 82.80164760119048, - 84.16387517980826, - 85.06151466226203, - 85.06151466226203, - 85.12701366706156, - 85.89819093584, - 84.72823718196514, - 84.72823718196514, - 84.24347736673965, - 83.45056105237076, - 83.2069207479786, - 83.03336531605913, - 82.32223420835318, - 82.44584334042537, - 82.61509169386564, - 82.59224287528271, - 82.53066394998517, - 83.17615038517111, - 83.97264732739637, - 84.3519525815816, - 84.3519525815816, - 85.2434619532482, - 85.85423759082775, - 85.54029330446082, - 85.53601046826759, - 85.37860899621309, - 85.13990931920058, - 85.22477393020678, - 96.7829153693637, - 97.37566167039834, - 97.37566167039834, - 97.86296470961739, - 98.94318004101576, - 99.5403626273883, - 99.43505032196182, - 98.61129946013764, - 98.61129946013764, - 99.63659682012958, - 100.58159589809515, - 101.01036924767885, - 101.3440759601924, - 100.68487394956288, - 100.61094840637436, - 100.83582629721302, - 99.81483215573282, - 99.81483215573282, - 99.23086498199402, - 98.93451383045361, - 98.75958434137138, - 98.70388467875308, - 98.70388467875308, - 99.1278842681238, - 99.0965065140136, - 98.91693912440365, - 99.10519988571873, - 99.10519988571873, - 99.36365640199602, - 99.36365640199602, - 99.82975663305722, - 99.78699317963463, - 99.5151557121035, - 99.80764943742645, - 99.35141123679, - 99.09826359077695, - 99.26870855328055, - 99.3690635162674, - 99.01513217026657, - 98.48883750284982, - 98.48883750284982, - 98.66602725900194, - 98.9688182307142, - 99.14484279378391, - 98.90096749087368, - 98.91278058975122, - 98.95774962641784, - 99.19883264039842, - 99.24659178357435, - 99.20451305651584, - 99.65512006272627, - 99.77263870952136, - 99.68682003472945, - 99.57840405966094, - 99.7365769616765, - 99.63734429391828, - 99.81773383222487, - 99.99759930308772, - 99.93103281694266, - 100.01103803412285, - 100.1023752491903, - 100.26586319309351, - 100.60313245998434, - 100.62996787920954, - 100.53201711190066, - 100.37348725303399, - 100.1277637916627, - 99.93081574970874, - 99.93081574970874, - 99.91754537148647, - 99.92131801734925, - 99.62060747556255, - 99.71223651509766, - 99.61558343221573, - 99.75711555188116, - 99.75711555188116, - 99.91492661758637, - 99.65241758713469, - 99.73692124216302, - 99.77663311499063, - 99.98762073103613, - 100.06433022812904, - 100.03673786236932, - 100.03673786236932, - 99.7941340590417, - 99.89203840543286, - 99.81153727552203, - 99.81153727552203, - 99.78703926715289, - 100.18746346871508, - 100.18746346871508, - 100.05013867746541, - 99.94151540041362, - 99.75603242970107, - 100.03213026002328, - 100.11966282267616, - 100.11773859654583, - 100.00336138301095, - 100.01425604447475, - 100.05395544162326, - 99.79046625569097, - 99.78688952942687, - 99.78245521157994, - 99.76641491117023, - 99.75897106237582, - 99.77728762273873, - 99.69599557485189, - 99.7214345239372, - 99.82460193202334, - 99.8031717370752, - 100.08233335080433, - 99.9598271803978, - 100.13600462101435, - 100.35909371835079, - 100.11247395837677, - 100.11247395837677, - 99.92550176161002, - 99.91339360749326, - 99.8193096351585, - 100.01670618422823, - 100.08670804319375, - 100.08670804319375, - 99.8838185203502, - 99.70165688296183, - 99.97352676353906, - 99.97271665271738, - 99.90380503599687, - 100.08716243270786, - 100.16223396776391, - 100.40187838402073, - 100.25929772144096, - 100.08354061243219, - 99.88038930428245, - 99.81530094879703, - 100.26333752602913, - 100.81888818821206, - 101.14326105370475, - 101.14326105370475, - 101.23216536852239, - 101.23216536852239, - 100.86842316241713, - 100.03125526545226, - 99.92199951312259, - 100.48143161842118, - 100.86025225176486, - 100.86025225176486, - 100.92379226649247, - 101.10560717061377, - 100.9116397304714, - 100.81015062841527, - 100.75814783290731, - 100.53315274224524, - 100.40131004962883, - 100.01548438414919, - 100.03772674059348, - 100.20748717859685, - 100.08215376805776, - 100.04310427005986, - 100.41342905037953, - 100.67458774034897, - 100.67458774034897, - 100.18399808429965, - 100.18399808429965, - 100.71004801498565, - 100.27944962941947, - 100.36635045264632, - 100.611659689043, - 99.93130867163991, - 100.2049376728681, - 100.24044131011962, - 100.3435602915907, - 100.54171717213477, - 100.48957917889805, - 100.47628767704107, - 100.69836300001377, - 100.43372909721259, - 100.47940131157448, - 100.86418659453153, - 100.64542168032042, - 100.80092863608571, - 100.36212626252397, - 100.72560563108647, - 100.8893300898696, - 100.88963414078569, - 100.54298070918304, - 100.61289312905741, - 100.8249012093358, - 101.00105737468537, - 101.14633830890362, - 100.88623737660645, - 100.74266448570731, - 100.64770264787738, - 100.45566214067856, - 100.59138680359875, - 100.50830512001131, - 100.43454626582472, - 100.53519753634107, - 100.46716007737507, - 100.69544275623912, - 100.61743464772344, - 100.73951876181721, - 100.76623224581647, - 100.3821617530511, - 100.39278151636725, - 100.70702058257092, - 100.21334301673458, - 100.80839193862448, - 100.88474697348842, - 100.76822320449617, - 101.21595169500459, - 100.85110178409886, - 100.7537456671583, - 100.77856631651012, - 100.3146119016356, - 100.84784544256344, - 100.78634515023516, - 100.92199875298192, - 100.55391439067414, - 100.66191356462213, - 100.78652121053078, - 100.90120922201373, - 100.85585733211806, - 100.92954403129558, - 100.51715116720159, - 100.2231068221892, - 100.00828290539705, - 100.24935129002185, - 100.64416956007264, - 100.64416956007264, - 100.0153195145118, - 99.93567957394987, - 99.93567957394987, - 100.21576954418563, - 100.77875400096978, - 100.77875400096978, - 100.8640247480939, - 100.87607085817328, - 100.69209801953141, - 100.69209801953141, - 100.78674686451288, - 100.5389978183395, - 100.07207743125416, - 100.07207743125416, - 99.46905285541315, - 99.50394341608448, - 99.63680035784878, - 99.51231668574118, - 98.51624250018732, - 82.53275884590455, - 81.83566916162486, - 80.43444352205317, - 78.96738514311878, - 77.1268078759056, - 74.89177395185803, - 71.84305636015935, - 69.13236143074202, - 66.65244163421313, - 65.34014383621532, - 64.87526809570824, - 64.64186600407879, - 65.2679208075005, - 65.2679208075005, - 66.01539759987116, - 65.37227452486566, - 64.00197122336697, - 63.41197286066429, - 63.755991154948, - 64.01008546957132, - 64.69304580908354, - 64.85660787983196, - 64.57265951863971, - 65.09706478966983, - 65.40849340389578, - 65.53367663389538, - 65.24348267343399, - 64.72772482776071, - 64.35340036669646, - 64.14595635240055, - 63.98501714929145, - 64.01408712591098, - 64.07473211327417, - 64.31395275444478, - 64.57892122390706, - 64.8190542962733, - 64.80572236762615, - 64.78904809588803, - 64.61907720581416, - 64.29739673297277, - 64.11082227496992, - 63.72597488033072, - 63.38701742392117, - 64.01373786418122, - 64.63852414212644, - 63.932168732992494, - 63.69968323578431, - 63.98820168807273, - 63.69801166771231, - 63.35772334563438, - 63.476594508492454, - 63.26416786730936, - 63.32839023266759, - 63.24519104447745, - 63.10365241215093, - 63.07250649941737, - 63.45506175999108, - 63.89968671183942, - 63.89307252964016, - 63.86477431399146, - 63.842684231783, - 63.781753157301814, - 63.770462323094776, - 63.770462323094776, - 63.81095473906888, - 63.921858393819726, - 64.03556786528385, - 64.07267634886006, - 64.12129962322402, - 64.1689884582826, - 64.20883304478305, - 64.31713541375233, - 64.50602220602451, - 64.70403047328284, - 64.59766576292891, - 64.51675378702068, - 64.57181490103689, - 64.61529699296486, - 64.62416410118729, - 64.7143985503971, - 64.6452770170238, - 64.6452770170238, - 64.82939581041308, - 64.82939581041308, - 64.61723607559173, - 64.60551167885494, - 63.754080777372494, - 62.90780901401131, - 62.63037589725168, - 62.25849613791767, - 62.064347297378795, - 61.924153705375645, - 61.652247930909574, - 61.54626202980425, - 60.64698577819269, - 60.64698577819269, - 60.754948349888735, - 60.1781543092217, - 112.22504176311098, - 112.59513252634842, - 112.97400868265424, - 112.72633731438177, - 113.35017515016034, - 114.28675596068301, - 114.28675596068301, - 64.59356099193187, - 65.12738546687993, - 64.27905621966133, - 64.27905621966133, - 63.21424874496709, - 63.46116855186248, - 62.814099078104896, - 63.19018926782428, - 64.18003295871158, - 64.07201665160731, - 64.04427707480023, - 64.33365645528187, - 64.22254351085068, - 63.47271803889936, - 63.422986310690895, - 64.26087840499868, - 64.67725631674081, - 64.55714664902395, - 64.34452876811741, - 64.31638104715357, - 64.31638104715357, - 64.40808667983892, - 64.5790233929145, - 64.5790233929145, - 64.4483422691837, - 63.79451435283981, - 63.26414364305231, - 63.22163332917339, - 63.045767220446585, - 63.01828444091791, - 63.02634927838278, - 63.01307901881111, - 63.476849875221724, - 63.513530634474535, - 62.979821126118985, - 62.73217340107995, - 62.498476511306386, - 62.31676749851702, - 62.45016298352875, - 62.54439188048747, - 62.62646358842013, - 62.55582712188949, - 62.551786604774, - 62.63450227077741, - 63.044565107115986, - 63.72486186847285, - 64.03923398866931, - 63.9428150992722, - 63.75735629267321, - 63.66435870007478, - 63.7320630844426, - 63.76912842510011, - 63.78859864754272, - 63.785597686006405, - 64.00265834567625, - 64.02117532306048, - 63.80735715181362, - 63.94359624425534, - 63.884583820045414, - 63.744251383824434, - 63.890572090006266, - 64.09367398678869, - 64.48114723315399, - 65.12919585098894, - 64.85005780467075, - 64.3761803310066, - 64.36748540286133, - 64.95947946266381, - 65.61794512557076, - 66.16338640305143, - 66.0661381841709, - 65.98799349045782, - 65.77967894551684, - 65.42475673208402, - 65.79229740813584, - 65.26556435579812, - 64.03040963773469, - 63.07044342038352, - 62.38890669620408, - 62.62309482703659, - 64.14637555256841, - 64.56488498405666, - 64.02991601993644, - 63.77742666156694, - 62.254752032767236, - 61.83125165293375, - 61.94331830581348, - 62.01983795269648, - 62.13097030430819, - 62.42890766217916, - 63.04964867808144, - 63.120597468781405, - 63.32149521880635, - 63.32149521880635, - 63.65860267559151, - 63.61978034053927, - 63.61978034053927, - 63.75220453603808, - 63.802909270718345, - 63.70886958336748, - 63.726771952181586, - 63.71481485624698, - 63.90910884996814, - 64.05027335726251, - 64.09809520991192, - 64.10501858115936, - 64.21099204022312, - 64.2238780483359, - 64.47271775866167, - 64.86876374875405, - 65.13467238866261, - 65.20601116284422, - 65.0765218142075, - 65.16521453970958, - 65.73706006781975, - 66.2501735355114, - 66.15044384062993, - 65.38435307902569, - 64.58809108115116, - 63.80060321751772, - 63.80060321751772, - 63.890490814133244, - 65.06393330649232, - 67.51733515307306, - 68.13276882420168, - 67.7254003957062, - 68.1929758651155, - 67.78122572474433, - 67.21620341533044, - 66.81501069378113, - 66.60254612683298, - 66.88731592288505, - 66.83559040793044, - 67.23490771767236, - 66.95968972443688, - 66.12233000914189, - 65.68102193820427, - 64.59560765948851, - 64.43778893559369, - 64.2476873173768, - 64.01939046402008, - 63.2259910670532, - 62.827924538119134, - 62.70221912675887, - 62.70221912675887, - 62.71616517045538, - 62.717236005258094, - 62.6798920849154, - 62.930702081923805, - 63.04843251937451, - 63.110624683805824, - 63.6137570500427, - 64.19737540366405, - 64.61258664881088, - 64.45533959225396, - 64.53234395381638, - 64.64138658174214, - 64.78790555212319, - 64.82506181562728, - 64.74161753504596, - 64.8169691082662, - 64.8169691082662, - 64.72154512251656, - 64.69568143434401, - 64.98170322862433, - 64.89841325598147, - 64.67601801867029, - 64.70041902053808, - 65.04138185280303, - 65.78648195883156, - 66.061320271658, - 66.1614756566651, - 66.06439295522232, - 65.43018584102576, - 64.86789056361305, - 64.57337266982859, - 64.20898886512089, - 63.67745034445124, - 63.35532777348892, - 62.98159121405813, - 62.50395281914035, - 62.268485673363195, - 62.67308646584953, - 63.52526839065919, - 63.68700678148198, - 63.41644232876511, - 63.67806852319909, - 63.746605825445464, - 63.03365632224969, - 63.39018567725138, - 63.50404522437243, - 63.28039539527875, - 63.2996120214561, - 63.63592991987302, - 63.5454847610218, - 63.915684939807655, - 64.4903356452926, - 65.62338650173764, - 66.26603776233001, - 66.56796306619191, - 66.61172455931717, - 64.84308323785756, - 64.12190693406718, - 64.15597485196565, - 64.23003803168996, - 64.33606451242736, - 64.20748616326932, - 64.79790899335015, - 64.01513232593067, - 64.22650372758014, - 65.68013664576237, - 65.49690765440992, - 63.15700243964606, - 62.58516411766453, - 63.343549641714034, - 63.24118112825436, - 62.46171651507121, - 63.3633266778188, - 65.28394826565075, - 65.17868899125072, - 64.22998815836908, - 63.66373439780081, - 64.84354802776677, - 64.67990917869498, - 66.56130486882368, - 67.5438477755616, - 71.71425909536534, - 71.17231011828655, - 68.78616921378864, - 66.77306911913004, - 66.97515438794387, - 67.08058880679992, - 65.80393556258981, - 65.51805449779123, - 65.51805449779123, - 65.74244044207306, - 66.60740146091858, - 67.61047017342692, - 66.54780920028037, - 64.59714187309461, - 64.59714187309461, - 64.10768757200411, - 64.3356819138921, - 64.17700495713488, - 64.17700495713488, - 63.859928088258556, - 64.45119928986549, - 65.19552388811613, - 64.33535881281122, - 64.03790652424544, - 65.59716448168149, - 67.43961178443574, - 70.10218956795154, - 72.89177929974689, - 66.49982480304867, - 63.42073658618808, - 65.99583392656112, - 66.15110301716884, - 64.62990706934673, - 64.5864307527999, - 64.19730317171775, - 64.18684079774823, - 63.255331711119545, - 62.40843914214895, - 62.28959493675861, - 62.325770466214465, - 63.24815654938144, - 65.09026306322916, - 66.9515547442569, - 67.50381760660211, - 67.08867392261905, - 68.82425455442393, - 68.43431850638794, - 66.48079130281805, - 64.64351888033116, - 64.75621445258327, - 64.50491514049622, - 64.40263616252972, - 64.979427981619, - 68.02034280004148, - 68.52571985806539, - 67.21522450852487, - 65.1017229904701, - 63.75736104576698, - 62.81585946891144, - 62.77960833523801, - 62.90214326888699, - 62.72107942086961, - 62.69507390796679, - 63.57678611116389, - 63.834981704933725, - 63.14803312784687, - 62.955094809829404, - 63.12825351254186, - 63.03614360350712, - 63.0565018689723, - 63.05601215651572, - 63.43364816072089, - 63.25601508933486, - 63.30528209110971, - 63.41641823734202, - 63.74685871044554, - 65.2897599718015, - 65.06375837694038, - 65.06375837694038, - 65.0213303423499, - 65.78207736996347, - 67.22621835972583, - 103.9675317941, - 105.60901490869793, - 107.8052245614563, - 108.38300146656795, - 109.19252514038102, - 109.15697136314856, - 109.40627997827973, - 109.47578404352346, - 109.654138335659, - 109.86211587033655, - 111.460188885351, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293, - 110.99750365403293 - ] - } - ], - "layout": { - "autosize": false, - "font": { - "color": "black", - "family": "Courier New, monospace", - "size": 22 - }, - "height": 600, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Range of Motion kneeLeft" - }, - "width": 750, - "xaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "time [s]" - } - }, - "yaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "ROM [gradi]" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "linkText": "Export to plot.ly", - "plotlyServerURL": "https://plot.ly", - "showLink": false - }, - "data": [ - { - "line": { - "color": "blue", - "width": 3 - }, - "mode": "lines", - "name": "Andamento Reale", - "type": "scatter", - "x": [ - 1499.2411363124847, - 1499.3432846069336, - 1499.4427211284637, - 1499.54013133049, - 1499.6420300006866, - 1499.744064092636, - 1499.8401839733124, - 1499.9462168216705, - 1500.0419936180115, - 1500.1414563655853, - 1500.2422320842743, - 1500.3411314487457, - 1500.441514492035, - 1500.541243314743, - 1500.6429286003113, - 1500.7421760559082, - 1500.8417778015137, - 1500.9413657188416, - 1501.0417659282684, - 1501.1428897380829, - 1501.240436553955, - 1501.3419153690338, - 1501.441132068634, - 1501.5403683185577, - 1501.6449313163757, - 1501.7413523197174, - 1501.8423101902008, - 1501.9408650398254, - 1502.04141497612, - 1502.1416535377502, - 1502.2421522140503, - 1502.3436872959137, - 1502.4428606033325, - 1502.5419516563416, - 1502.6438164710999, - 1502.739751815796, - 1502.839929819107, - 1502.9432377815247, - 1503.0396859645844, - 1503.1407148838043, - 1503.2416439056396, - 1503.3399159908295, - 1503.4405806064606, - 1503.542091369629, - 1503.6399137973785, - 1503.7397291660309, - 1503.8402659893036, - 1503.9417126178741, - 1504.0408883094788, - 1504.1431605815887, - 1504.2412109375, - 1504.3424327373505, - 1504.442084312439, - 1504.5419890880585, - 1504.6418566703796, - 1504.7421357631683, - 1504.8420453071594, - 1504.9417133331299, - 1505.0427649021149, - 1505.1421146392822, - 1505.2413144111633, - 1505.3408071994781, - 1505.4415457248688, - 1505.542934179306, - 1505.6415820121765, - 1505.741807460785, - 1505.8417615890503, - 1505.9422342777252, - 1506.0417664051056, - 1506.142252922058, - 1506.2424128055573, - 1506.3428943157196, - 1506.4433236122131, - 1506.5426783561707, - 1506.6421117782593, - 1506.74356341362, - 1506.8419032096863, - 1506.9436628818512, - 1507.042890548706, - 1507.143632888794, - 1507.2437996864319, - 1507.34317612648, - 1507.4439723491669, - 1507.5464203357697, - 1507.646990776062, - 1507.743609905243, - 1507.844081878662, - 1507.944857597351, - 1508.0438890457153, - 1508.143606185913, - 1508.2456514835358, - 1508.3450417518616, - 1508.444191455841, - 1508.5442969799042, - 1508.6431493759155, - 1508.7441477775574, - 1508.8442180156708, - 1508.9457623958588, - 1509.0446989536285, - 1509.1442427635193, - 1509.2483496665955, - 1509.348049879074, - 1509.447769165039, - 1509.5452642440796, - 1509.6454932689667, - 1509.7466208934784, - 1509.8461413383484, - 1509.9450035095215, - 1510.0446655750275, - 1510.1453218460083, - 1510.2444643974304, - 1510.3476753234863, - 1510.444744348526, - 1510.5449130535126, - 1510.6449630260468, - 1510.7453105449677, - 1510.8460247516632, - 1510.9460620880127, - 1511.0450239181519, - 1511.147045135498, - 1511.2464575767517, - 1511.3476495742798, - 1511.4461619853973, - 1511.5460538864136, - 1511.6458253860474, - 1511.7523272037506, - 1511.8473920822144, - 1511.9467968940735, - 1512.0458340644836, - 1512.14905834198, - 1512.2465064525604, - 1512.3464360237122, - 1512.4465262889862, - 1512.5464425086975, - 1512.6461458206177, - 1512.7456891536713, - 1512.846199274063, - 1512.9469623565674, - 1513.046472787857, - 1513.1472702026367, - 1513.2464673519135, - 1513.3472352027893, - 1513.4477665424347, - 1513.5469961166382, - 1513.6465792655945, - 1513.7474553585052, - 1513.8473408222198, - 1513.9478917121887, - 1514.048181295395, - 1514.1470139026642, - 1514.2469763755798, - 1514.347504377365, - 1514.4472517967224, - 1514.548014163971, - 1514.6466579437256, - 1514.747255563736, - 1514.8468098640442, - 1514.9472517967224, - 1515.0483257770538, - 1515.1476039886475, - 1515.2474853992462, - 1515.349123954773, - 1515.448129415512, - 1515.5479564666748, - 1515.6483643054962, - 1515.7478876113892, - 1515.848218679428, - 1515.9479448795319, - 1516.0482194423676, - 1516.149117231369, - 1516.24773478508, - 1516.3488357067108, - 1516.4485018253326, - 1516.548581123352, - 1516.6529862880707, - 1516.7489988803864, - 1516.8483703136444, - 1516.9493639469147, - 1517.0485661029816, - 1517.1542015075684, - 1517.2489612102509, - 1517.3534693717957, - 1517.4531128406525, - 1517.553725719452, - 1517.6531822681427, - 1517.7508800029755, - 1517.8505020141602, - 1517.9501507282257, - 1518.0533425807953, - 1518.154797554016, - 1518.252271413803, - 1518.3584887981415, - 1518.4496307373047, - 1518.5517852306366, - 1518.6547417640686, - 1518.751220703125, - 1518.8547055721283, - 1518.9500937461853, - 1519.0509328842163, - 1519.1500902175903, - 1519.2508342266083, - 1519.3509469032288, - 1519.4529166221619, - 1519.552564382553, - 1519.6508638858795, - 1519.7502257823944, - 1519.8513631820679, - 1519.9507722854614, - 1520.0511844158173, - 1520.1549203395844, - 1520.2553119659424, - 1520.355444908142, - 1520.4572768211365, - 1520.5562913417816, - 1520.6547539234161, - 1520.7517511844635, - 1520.852136850357, - 1520.956214427948, - 1521.0517673492432, - 1521.151982307434, - 1521.2533135414124, - 1521.3525230884552, - 1521.4546430110931, - 1521.5537049770355, - 1521.6560616493225, - 1521.756957769394, - 1521.861038684845, - 1521.9608080387115, - 1522.0553195476532, - 1522.1532826423645, - 1522.2527394294739, - 1522.3522148132324, - 1522.4540903568268, - 1522.5571751594543, - 1522.654535293579, - 1522.7544548511505, - 1522.8560378551483, - 1522.953887462616, - 1523.0526440143585, - 1523.1566863059998, - 1523.2580780982971, - 1523.3567478656769, - 1523.454469203949, - 1523.5542244911194, - 1523.658311843872, - 1523.7581009864807, - 1523.8582689762115, - 1523.953364610672, - 1524.054563999176, - 1524.1584029197693, - 1524.2576098442078, - 1524.3543453216553, - 1524.4550700187683, - 1524.5540347099304, - 1524.6535897254944, - 1524.753868341446, - 1524.853411436081, - 1524.95521068573, - 1525.054139137268, - 1525.1547272205353, - 1525.2555606365204, - 1525.3549020290375, - 1525.4566402435303, - 1525.5587475299835, - 1525.6535289287567, - 1525.7547373771667, - 1525.8536713123322, - 1525.9546175003052, - 1526.0546753406525, - 1526.1549615859985, - 1526.255040884018, - 1526.3548610210419, - 1526.454764842987, - 1526.5555267333984, - 1526.6554877758026, - 1526.7556302547455, - 1526.8551664352417, - 1526.9557905197144, - 1527.0557622909546, - 1527.1561093330383, - 1527.2571275234222, - 1527.356971502304, - 1527.457272529602, - 1527.5553719997406, - 1527.6574912071228, - 1527.757332086563, - 1527.8562273979187, - 1527.9594457149506, - 1528.0566897392273, - 1528.1583421230316, - 1528.2581007480621, - 1528.355853319168, - 1528.4608187675476, - 1528.5574316978455, - 1528.6561155319214, - 1528.7592558860779, - 1528.8586099147797, - 1528.9628987312317, - 1529.0560810565948, - 1529.1571590900421, - 1529.2560682296753, - 1529.3564767837524, - 1529.456878900528, - 1529.5586001873016, - 1529.657800912857, - 1529.7575800418854, - 1529.8577151298523, - 1529.9580373764038, - 1530.0567288398743, - 1530.157428264618, - 1530.2587399482727, - 1530.3589704036713, - 1530.457849740982, - 1530.5578382015228, - 1530.658446073532, - 1530.757824897766, - 1530.8616199493408, - 1530.960708618164, - 1531.059900522232, - 1531.162596464157, - 1531.2573883533478, - 1531.3600792884827, - 1531.458923816681, - 1531.5627195835114, - 1531.6612637043, - 1531.7576656341553, - 1531.8620171546936, - 1531.9599452018738, - 1532.0599632263184, - 1532.1607375144958, - 1532.259782075882, - 1532.3589525222778, - 1532.4589982032776, - 1532.5596570968628, - 1532.660763502121, - 1532.759989976883, - 1532.859920501709, - 1532.9633507728577, - 1533.0590443611145, - 1533.159485578537, - 1533.2591478824615, - 1533.358909368515, - 1533.4588725566864, - 1533.5592203140259, - 1533.6601333618164, - 1533.758960723877, - 1533.8600804805756, - 1533.9596378803253, - 1534.0594065189362, - 1534.1598281860352, - 1534.2596225738525, - 1534.360122680664, - 1534.4612867832184, - 1534.5604510307312, - 1534.6615297794342, - 1534.76198220253, - 1534.8614101409912, - 1534.9614522457123, - 1535.0600357055664, - 1535.1603939533234, - 1535.2622575759888, - 1535.3602058887482, - 1535.462120294571, - 1535.56028008461, - 1535.6601366996765, - 1535.7611837387085, - 1535.8639693260193, - 1535.9614548683167, - 1536.06116604805, - 1536.1607356071472, - 1536.2609808444977, - 1536.3626313209534, - 1536.4609956741333, - 1536.564481496811, - 1536.6640095710754, - 1536.763158082962, - 1536.8629369735718, - 1536.9626727104187, - 1537.0616796016693, - 1537.1621129512787, - 1537.2617573738098, - 1537.3618972301483, - 1537.462711572647, - 1537.562515258789, - 1537.6621596813202, - 1537.7639846801758, - 1537.8620209693909, - 1537.9622814655304, - 1538.0627496242523, - 1538.1621263027191, - 1538.2627971172333, - 1538.366781949997, - 1538.4637882709503, - 1538.563273191452, - 1538.66330909729, - 1538.7667174339294, - 1538.8636915683746, - 1538.9630060195923, - 1539.063859462738, - 1539.1625623703003, - 1539.2660901546478, - 1539.3630833625793, - 1539.464448928833, - 1539.5636985301971, - 1539.6643221378326, - 1539.7645237445831, - 1539.8643732070923, - 1539.9644606113434, - 1540.0639703273773, - 1540.1641156673431, - 1540.2658836841583, - 1540.3652892112732, - 1540.4671607017517, - 1540.5652508735657, - 1540.669272184372, - 1540.7651839256287, - 1540.8669271469116, - 1540.9673836231232, - 1541.0654036998749, - 1541.1660828590393, - 1541.2674746513367, - 1541.3676433563232, - 1541.4656250476837, - 1541.5665922164917, - 1541.6681351661682, - 1541.7672548294067, - 1541.867030620575, - 1541.9676649570465, - 1542.0670235157013, - 1542.1689057350159, - 1542.2671897411346, - 1542.3672127723694, - 1542.4686870574951, - 1542.5665442943573, - 1542.6705791950226, - 1542.7696046829224, - 1542.8668971061707, - 1542.966644525528, - 1543.0735685825348, - 1543.1732482910156, - 1543.267774105072, - 1543.3676788806915, - 1543.4672544002533, - 1543.5671184062958, - 1543.6677463054657, - 1543.7675108909607, - 1543.8679871559143, - 1543.9693717956543, - 1544.0663883686066, - 1544.1677677631378, - 1544.268888950348, - 1544.3663485050201, - 1544.4664885997772, - 1544.5660860538483, - 1544.6669471263885, - 1544.76717877388, - 1544.8672885894775, - 1544.9685242176056, - 1545.0670084953308, - 1545.1677951812744, - 1545.2673869132996, - 1545.3672273159027, - 1545.467891216278, - 1545.575178861618, - 1545.6677899360657, - 1545.7664551734924, - 1545.8665204048157, - 1545.9671485424042, - 1546.0674130916595, - 1546.1681797504425, - 1546.2676408290863, - 1546.367078781128, - 1546.4679577350616, - 1546.5685453414917, - 1546.6769742965698, - 1546.7727680206299, - 1546.8680868148804, - 1546.9686315059662, - 1547.069181919098, - 1547.167875289917, - 1547.2677521705627, - 1547.3686332702637, - 1547.4707067012787, - 1547.5683662891388, - 1547.6724834442139, - 1547.769639492035, - 1547.8712072372437, - 1547.9770529270172, - 1548.072209596634, - 1548.173274755478, - 1548.2715876102448, - 1548.371628522873, - 1548.4709198474884, - 1548.5714690685272, - 1548.671296596527, - 1548.7715110778809, - 1548.8716838359833, - 1548.97434091568, - 1549.070969581604, - 1549.174753665924, - 1549.2744188308716, - 1549.3733451366425, - 1549.4734070301056, - 1549.5742897987366, - 1549.6723790168762, - 1549.7728595733643, - 1549.8727250099182, - 1549.9772119522095, - 1550.0720105171204, - 1550.1710896492004, - 1550.2725031375885, - 1550.3713836669922, - 1550.4781966209412, - 1550.5779829025269, - 1550.6775233745575, - 1550.774284362793, - 1550.87375998497, - 1550.979849100113, - 1551.0752232074738, - 1551.1747436523438, - 1551.2786514759064, - 1551.3792498111725, - 1551.478197336197, - 1551.579080581665, - 1551.67942070961, - 1551.77863407135, - 1551.880181312561, - 1551.9783499240875, - 1552.0735130310059, - 1552.1743123531342, - 1552.2738902568817, - 1552.3736426830292, - 1552.4735062122345, - 1552.5737590789795, - 1552.6750376224518, - 1552.774917125702, - 1552.874896287918, - 1552.9747967720032, - 1553.0752203464508, - 1553.1760432720184, - 1553.2762243747711, - 1553.3725430965424, - 1553.472339630127, - 1553.5719089508057, - 1553.671792268753, - 1553.7730875015259, - 1553.8719074726105, - 1553.9732356071472, - 1554.072648525238, - 1554.172200679779, - 1554.2724151611328, - 1554.3731021881104, - 1554.4731767177582, - 1554.5727956295013, - 1554.673753976822, - 1554.7773764133453, - 1554.8747208118439, - 1554.9741613864899, - 1555.0747776031494, - 1555.1755096912384, - 1555.279501914978, - 1555.3744592666626, - 1555.4760527610779, - 1555.5740582942963, - 1555.6754522323608, - 1555.7753405570984, - 1555.8802742958069, - 1555.9759588241577, - 1556.074725151062, - 1556.1759669780731, - 1556.2756700515747, - 1556.3753113746643, - 1556.4837319850922, - 1556.5750107765198, - 1556.6751630306244, - 1556.7765123844147, - 1556.8782150745392, - 1556.9785902500153, - 1557.0765113830566, - 1557.1777567863464, - 1557.2783045768738, - 1557.3775517940521, - 1557.4797596931458, - 1557.5780041217804, - 1557.6780152320862, - 1557.7778115272522, - 1557.876960515976, - 1557.9770517349243, - 1558.076621055603, - 1558.180831193924, - 1558.2854754924774, - 1558.3767499923706, - 1558.4804351329803, - 1558.579921722412, - 1558.677288532257, - 1558.7769978046417, - 1558.8778581619263, - 1558.9787356853485, - 1559.0771126747131, - 1559.1767921447754, - 1559.278477191925, - 1559.378291606903, - 1559.4775824546814, - 1559.5807921886444, - 1559.6776638031006, - 1559.778058052063, - 1559.8830723762512, - 1559.9832768440247, - 1560.0840981006622, - 1560.1845769882202, - 1560.2789707183838, - 1560.3786268234253, - 1560.47776389122, - 1560.5785915851593, - 1560.6796667575836, - 1560.7791197299957, - 1560.87948346138, - 1560.978010892868, - 1561.0784831047058, - 1561.1786596775055, - 1561.2765908241272, - 1561.3838136196136, - 1561.4774813652039, - 1561.5815932750702, - 1561.6770639419556, - 1561.7776787281036, - 1561.877956867218, - 1561.9779877662659, - 1562.0776226520538, - 1562.1785109043121, - 1562.2782335281372, - 1562.3815352916718, - 1562.4804756641388, - 1562.5775909423828, - 1562.6809916496277, - 1562.7826879024506, - 1562.8828573226929, - 1562.9838132858276, - 1563.0780189037323, - 1563.1789796352386, - 1563.2802908420563, - 1563.3813588619232, - 1563.480254650116, - 1563.5809354782104, - 1563.680933713913, - 1563.7801339626312, - 1563.880723953247, - 1563.9811205863953, - 1564.0802714824677, - 1564.1794838905334, - 1564.2845251560211, - 1564.3794884681702, - 1564.4791498184204, - 1564.5835678577423, - 1564.6808955669403, - 1564.7788915634155, - 1564.8795139789581, - 1564.9836478233337, - 1565.07950258255, - 1565.1825184822083, - 1565.2819392681122, - 1565.380526304245, - 1565.4812269210815, - 1565.5805473327637, - 1565.684333562851, - 1565.785714149475, - 1565.8849048614502, - 1565.9807634353638, - 1566.0813398361206, - 1566.1810414791107, - 1566.283430814743, - 1566.383866071701, - 1566.484350681305, - 1566.5904591083527, - 1566.6800830364227, - 1566.7800760269165, - 1566.8805696964264, - 1566.9809465408325, - 1567.0811483860016, - 1567.1813688278198, - 1567.2823538780212, - 1567.3819682598114, - 1567.4816749095917, - 1567.5819344520569, - 1567.6825020313263, - 1567.781952381134, - 1567.881548166275, - 1567.982048034668, - 1568.0820636749268, - 1568.1820254325867, - 1568.281239271164, - 1568.3812518119812, - 1568.4811825752258, - 1568.5819082260132, - 1568.6818380355835, - 1568.7822697162628, - 1568.8816404342651, - 1568.9819226264954, - 1569.0865490436554, - 1569.186048746109, - 1569.282539844513, - 1569.3828761577606, - 1569.4822869300842, - 1569.58291721344, - 1569.6838479042053, - 1569.7846109867096, - 1569.8823783397675, - 1569.9836070537567, - 1570.0831260681152, - 1570.1819534301758, - 1570.2878515720367, - 1570.3924379348755, - 1570.4909138679504, - 1570.5902736186981, - 1570.6988174915314, - 1570.7904138565063, - 1570.8904962539673, - 1570.9899044036865, - 1571.0898532867432, - 1571.1898276805878, - 1571.289258480072, - 1571.3903584480286, - 1571.4897434711456, - 1571.5904321670532, - 1571.6920642852783, - 1571.7911806106567, - 1571.8918182849884, - 1571.9967155456543, - 1572.1017162799835, - 1572.2009263038635, - 1572.2912111282349, - 1572.3967843055725, - 1572.4991810321808, - 1572.5943253040314, - 1572.6906354427338, - 1572.7905294895172, - 1572.891780614853, - 1572.9911139011383, - 1573.0927135944366, - 1573.1920285224915 - ], - "y": [ - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90 - ] - } - ], - "layout": { - "autosize": false, - "font": { - "color": "black", - "family": "Courier New, monospace", - "size": 22 - }, - "height": 600, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Range of Motion ankleLeft" - }, - "width": 750, - "xaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "time [s]" - } - }, - "yaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "ROM [gradi]" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "linkText": "Export to plot.ly", - "plotlyServerURL": "https://plot.ly", - "showLink": false - }, - "data": [ - { - "line": { - "color": "blue", - "width": 3 - }, - "mode": "lines", - "name": "Andamento Reale", - "type": "scatter", - "x": [ - 1499.2411363124847, - 1499.3432846069336, - 1499.4427211284637, - 1499.54013133049, - 1499.6420300006866, - 1499.744064092636, - 1499.8401839733124, - 1499.9462168216705, - 1500.0419936180115, - 1500.1414563655853, - 1500.2422320842743, - 1500.3411314487457, - 1500.441514492035, - 1500.541243314743, - 1500.6429286003113, - 1500.7421760559082, - 1500.8417778015137, - 1500.9413657188416, - 1501.0417659282684, - 1501.1428897380829, - 1501.240436553955, - 1501.3419153690338, - 1501.441132068634, - 1501.5403683185577, - 1501.6449313163757, - 1501.7413523197174, - 1501.8423101902008, - 1501.9408650398254, - 1502.04141497612, - 1502.1416535377502, - 1502.2421522140503, - 1502.3436872959137, - 1502.4428606033325, - 1502.5419516563416, - 1502.6438164710999, - 1502.739751815796, - 1502.839929819107, - 1502.9432377815247, - 1503.0396859645844, - 1503.1407148838043, - 1503.2416439056396, - 1503.3399159908295, - 1503.4405806064606, - 1503.542091369629, - 1503.6399137973785, - 1503.7397291660309, - 1503.8402659893036, - 1503.9417126178741, - 1504.0408883094788, - 1504.1431605815887, - 1504.2412109375, - 1504.3424327373505, - 1504.442084312439, - 1504.5419890880585, - 1504.6418566703796, - 1504.7421357631683, - 1504.8420453071594, - 1504.9417133331299, - 1505.0427649021149, - 1505.1421146392822, - 1505.2413144111633, - 1505.3408071994781, - 1505.4415457248688, - 1505.542934179306, - 1505.6415820121765, - 1505.741807460785, - 1505.8417615890503, - 1505.9422342777252, - 1506.0417664051056, - 1506.142252922058, - 1506.2424128055573, - 1506.3428943157196, - 1506.4433236122131, - 1506.5426783561707, - 1506.6421117782593, - 1506.74356341362, - 1506.8419032096863, - 1506.9436628818512, - 1507.042890548706, - 1507.143632888794, - 1507.2437996864319, - 1507.34317612648, - 1507.4439723491669, - 1507.5464203357697, - 1507.646990776062, - 1507.743609905243, - 1507.844081878662, - 1507.944857597351, - 1508.0438890457153, - 1508.143606185913, - 1508.2456514835358, - 1508.3450417518616, - 1508.444191455841, - 1508.5442969799042, - 1508.6431493759155, - 1508.7441477775574, - 1508.8442180156708, - 1508.9457623958588, - 1509.0446989536285, - 1509.1442427635193, - 1509.2483496665955, - 1509.348049879074, - 1509.447769165039, - 1509.5452642440796, - 1509.6454932689667, - 1509.7466208934784, - 1509.8461413383484, - 1509.9450035095215, - 1510.0446655750275, - 1510.1453218460083, - 1510.2444643974304, - 1510.3476753234863, - 1510.444744348526, - 1510.5449130535126, - 1510.6449630260468, - 1510.7453105449677, - 1510.8460247516632, - 1510.9460620880127, - 1511.0450239181519, - 1511.147045135498, - 1511.2464575767517, - 1511.3476495742798, - 1511.4461619853973, - 1511.5460538864136, - 1511.6458253860474, - 1511.7523272037506, - 1511.8473920822144, - 1511.9467968940735, - 1512.0458340644836, - 1512.14905834198, - 1512.2465064525604, - 1512.3464360237122, - 1512.4465262889862, - 1512.5464425086975, - 1512.6461458206177, - 1512.7456891536713, - 1512.846199274063, - 1512.9469623565674, - 1513.046472787857, - 1513.1472702026367, - 1513.2464673519135, - 1513.3472352027893, - 1513.4477665424347, - 1513.5469961166382, - 1513.6465792655945, - 1513.7474553585052, - 1513.8473408222198, - 1513.9478917121887, - 1514.048181295395, - 1514.1470139026642, - 1514.2469763755798, - 1514.347504377365, - 1514.4472517967224, - 1514.548014163971, - 1514.6466579437256, - 1514.747255563736, - 1514.8468098640442, - 1514.9472517967224, - 1515.0483257770538, - 1515.1476039886475, - 1515.2474853992462, - 1515.349123954773, - 1515.448129415512, - 1515.5479564666748, - 1515.6483643054962, - 1515.7478876113892, - 1515.848218679428, - 1515.9479448795319, - 1516.0482194423676, - 1516.149117231369, - 1516.24773478508, - 1516.3488357067108, - 1516.4485018253326, - 1516.548581123352, - 1516.6529862880707, - 1516.7489988803864, - 1516.8483703136444, - 1516.9493639469147, - 1517.0485661029816, - 1517.1542015075684, - 1517.2489612102509, - 1517.3534693717957, - 1517.4531128406525, - 1517.553725719452, - 1517.6531822681427, - 1517.7508800029755, - 1517.8505020141602, - 1517.9501507282257, - 1518.0533425807953, - 1518.154797554016, - 1518.252271413803, - 1518.3584887981415, - 1518.4496307373047, - 1518.5517852306366, - 1518.6547417640686, - 1518.751220703125, - 1518.8547055721283, - 1518.9500937461853, - 1519.0509328842163, - 1519.1500902175903, - 1519.2508342266083, - 1519.3509469032288, - 1519.4529166221619, - 1519.552564382553, - 1519.6508638858795, - 1519.7502257823944, - 1519.8513631820679, - 1519.9507722854614, - 1520.0511844158173, - 1520.1549203395844, - 1520.2553119659424, - 1520.355444908142, - 1520.4572768211365, - 1520.5562913417816, - 1520.6547539234161, - 1520.7517511844635, - 1520.852136850357, - 1520.956214427948, - 1521.0517673492432, - 1521.151982307434, - 1521.2533135414124, - 1521.3525230884552, - 1521.4546430110931, - 1521.5537049770355, - 1521.6560616493225, - 1521.756957769394, - 1521.861038684845, - 1521.9608080387115, - 1522.0553195476532, - 1522.1532826423645, - 1522.2527394294739, - 1522.3522148132324, - 1522.4540903568268, - 1522.5571751594543, - 1522.654535293579, - 1522.7544548511505, - 1522.8560378551483, - 1522.953887462616, - 1523.0526440143585, - 1523.1566863059998, - 1523.2580780982971, - 1523.3567478656769, - 1523.454469203949, - 1523.5542244911194, - 1523.658311843872, - 1523.7581009864807, - 1523.8582689762115, - 1523.953364610672, - 1524.054563999176, - 1524.1584029197693, - 1524.2576098442078, - 1524.3543453216553, - 1524.4550700187683, - 1524.5540347099304, - 1524.6535897254944, - 1524.753868341446, - 1524.853411436081, - 1524.95521068573, - 1525.054139137268, - 1525.1547272205353, - 1525.2555606365204, - 1525.3549020290375, - 1525.4566402435303, - 1525.5587475299835, - 1525.6535289287567, - 1525.7547373771667, - 1525.8536713123322, - 1525.9546175003052, - 1526.0546753406525, - 1526.1549615859985, - 1526.255040884018, - 1526.3548610210419, - 1526.454764842987, - 1526.5555267333984, - 1526.6554877758026, - 1526.7556302547455, - 1526.8551664352417, - 1526.9557905197144, - 1527.0557622909546, - 1527.1561093330383, - 1527.2571275234222, - 1527.356971502304, - 1527.457272529602, - 1527.5553719997406, - 1527.6574912071228, - 1527.757332086563, - 1527.8562273979187, - 1527.9594457149506, - 1528.0566897392273, - 1528.1583421230316, - 1528.2581007480621, - 1528.355853319168, - 1528.4608187675476, - 1528.5574316978455, - 1528.6561155319214, - 1528.7592558860779, - 1528.8586099147797, - 1528.9628987312317, - 1529.0560810565948, - 1529.1571590900421, - 1529.2560682296753, - 1529.3564767837524, - 1529.456878900528, - 1529.5586001873016, - 1529.657800912857, - 1529.7575800418854, - 1529.8577151298523, - 1529.9580373764038, - 1530.0567288398743, - 1530.157428264618, - 1530.2587399482727, - 1530.3589704036713, - 1530.457849740982, - 1530.5578382015228, - 1530.658446073532, - 1530.757824897766, - 1530.8616199493408, - 1530.960708618164, - 1531.059900522232, - 1531.162596464157, - 1531.2573883533478, - 1531.3600792884827, - 1531.458923816681, - 1531.5627195835114, - 1531.6612637043, - 1531.7576656341553, - 1531.8620171546936, - 1531.9599452018738, - 1532.0599632263184, - 1532.1607375144958, - 1532.259782075882, - 1532.3589525222778, - 1532.4589982032776, - 1532.5596570968628, - 1532.660763502121, - 1532.759989976883, - 1532.859920501709, - 1532.9633507728577, - 1533.0590443611145, - 1533.159485578537, - 1533.2591478824615, - 1533.358909368515, - 1533.4588725566864, - 1533.5592203140259, - 1533.6601333618164, - 1533.758960723877, - 1533.8600804805756, - 1533.9596378803253, - 1534.0594065189362, - 1534.1598281860352, - 1534.2596225738525, - 1534.360122680664, - 1534.4612867832184, - 1534.5604510307312, - 1534.6615297794342, - 1534.76198220253, - 1534.8614101409912, - 1534.9614522457123, - 1535.0600357055664, - 1535.1603939533234, - 1535.2622575759888, - 1535.3602058887482, - 1535.462120294571, - 1535.56028008461, - 1535.6601366996765, - 1535.7611837387085, - 1535.8639693260193, - 1535.9614548683167, - 1536.06116604805, - 1536.1607356071472, - 1536.2609808444977, - 1536.3626313209534, - 1536.4609956741333, - 1536.564481496811, - 1536.6640095710754, - 1536.763158082962, - 1536.8629369735718, - 1536.9626727104187, - 1537.0616796016693, - 1537.1621129512787, - 1537.2617573738098, - 1537.3618972301483, - 1537.462711572647, - 1537.562515258789, - 1537.6621596813202, - 1537.7639846801758, - 1537.8620209693909, - 1537.9622814655304, - 1538.0627496242523, - 1538.1621263027191, - 1538.2627971172333, - 1538.366781949997, - 1538.4637882709503, - 1538.563273191452, - 1538.66330909729, - 1538.7667174339294, - 1538.8636915683746, - 1538.9630060195923, - 1539.063859462738, - 1539.1625623703003, - 1539.2660901546478, - 1539.3630833625793, - 1539.464448928833, - 1539.5636985301971, - 1539.6643221378326, - 1539.7645237445831, - 1539.8643732070923, - 1539.9644606113434, - 1540.0639703273773, - 1540.1641156673431, - 1540.2658836841583, - 1540.3652892112732, - 1540.4671607017517, - 1540.5652508735657, - 1540.669272184372, - 1540.7651839256287, - 1540.8669271469116, - 1540.9673836231232, - 1541.0654036998749, - 1541.1660828590393, - 1541.2674746513367, - 1541.3676433563232, - 1541.4656250476837, - 1541.5665922164917, - 1541.6681351661682, - 1541.7672548294067, - 1541.867030620575, - 1541.9676649570465, - 1542.0670235157013, - 1542.1689057350159, - 1542.2671897411346, - 1542.3672127723694, - 1542.4686870574951, - 1542.5665442943573, - 1542.6705791950226, - 1542.7696046829224, - 1542.8668971061707, - 1542.966644525528, - 1543.0735685825348, - 1543.1732482910156, - 1543.267774105072, - 1543.3676788806915, - 1543.4672544002533, - 1543.5671184062958, - 1543.6677463054657, - 1543.7675108909607, - 1543.8679871559143, - 1543.9693717956543, - 1544.0663883686066, - 1544.1677677631378, - 1544.268888950348, - 1544.3663485050201, - 1544.4664885997772, - 1544.5660860538483, - 1544.6669471263885, - 1544.76717877388, - 1544.8672885894775, - 1544.9685242176056, - 1545.0670084953308, - 1545.1677951812744, - 1545.2673869132996, - 1545.3672273159027, - 1545.467891216278, - 1545.575178861618, - 1545.6677899360657, - 1545.7664551734924, - 1545.8665204048157, - 1545.9671485424042, - 1546.0674130916595, - 1546.1681797504425, - 1546.2676408290863, - 1546.367078781128, - 1546.4679577350616, - 1546.5685453414917, - 1546.6769742965698, - 1546.7727680206299, - 1546.8680868148804, - 1546.9686315059662, - 1547.069181919098, - 1547.167875289917, - 1547.2677521705627, - 1547.3686332702637, - 1547.4707067012787, - 1547.5683662891388, - 1547.6724834442139, - 1547.769639492035, - 1547.8712072372437, - 1547.9770529270172, - 1548.072209596634, - 1548.173274755478, - 1548.2715876102448, - 1548.371628522873, - 1548.4709198474884, - 1548.5714690685272, - 1548.671296596527, - 1548.7715110778809, - 1548.8716838359833, - 1548.97434091568, - 1549.070969581604, - 1549.174753665924, - 1549.2744188308716, - 1549.3733451366425, - 1549.4734070301056, - 1549.5742897987366, - 1549.6723790168762, - 1549.7728595733643, - 1549.8727250099182, - 1549.9772119522095, - 1550.0720105171204, - 1550.1710896492004, - 1550.2725031375885, - 1550.3713836669922, - 1550.4781966209412, - 1550.5779829025269, - 1550.6775233745575, - 1550.774284362793, - 1550.87375998497, - 1550.979849100113, - 1551.0752232074738, - 1551.1747436523438, - 1551.2786514759064, - 1551.3792498111725, - 1551.478197336197, - 1551.579080581665, - 1551.67942070961, - 1551.77863407135, - 1551.880181312561, - 1551.9783499240875, - 1552.0735130310059, - 1552.1743123531342, - 1552.2738902568817, - 1552.3736426830292, - 1552.4735062122345, - 1552.5737590789795, - 1552.6750376224518, - 1552.774917125702, - 1552.874896287918, - 1552.9747967720032, - 1553.0752203464508, - 1553.1760432720184, - 1553.2762243747711, - 1553.3725430965424, - 1553.472339630127, - 1553.5719089508057, - 1553.671792268753, - 1553.7730875015259, - 1553.8719074726105, - 1553.9732356071472, - 1554.072648525238, - 1554.172200679779, - 1554.2724151611328, - 1554.3731021881104, - 1554.4731767177582, - 1554.5727956295013, - 1554.673753976822, - 1554.7773764133453, - 1554.8747208118439, - 1554.9741613864899, - 1555.0747776031494, - 1555.1755096912384, - 1555.279501914978, - 1555.3744592666626, - 1555.4760527610779, - 1555.5740582942963, - 1555.6754522323608, - 1555.7753405570984, - 1555.8802742958069, - 1555.9759588241577, - 1556.074725151062, - 1556.1759669780731, - 1556.2756700515747, - 1556.3753113746643, - 1556.4837319850922, - 1556.5750107765198, - 1556.6751630306244, - 1556.7765123844147, - 1556.8782150745392, - 1556.9785902500153, - 1557.0765113830566, - 1557.1777567863464, - 1557.2783045768738, - 1557.3775517940521, - 1557.4797596931458, - 1557.5780041217804, - 1557.6780152320862, - 1557.7778115272522, - 1557.876960515976, - 1557.9770517349243, - 1558.076621055603, - 1558.180831193924, - 1558.2854754924774, - 1558.3767499923706, - 1558.4804351329803, - 1558.579921722412, - 1558.677288532257, - 1558.7769978046417, - 1558.8778581619263, - 1558.9787356853485, - 1559.0771126747131, - 1559.1767921447754, - 1559.278477191925, - 1559.378291606903, - 1559.4775824546814, - 1559.5807921886444, - 1559.6776638031006, - 1559.778058052063, - 1559.8830723762512, - 1559.9832768440247, - 1560.0840981006622, - 1560.1845769882202, - 1560.2789707183838, - 1560.3786268234253, - 1560.47776389122, - 1560.5785915851593, - 1560.6796667575836, - 1560.7791197299957, - 1560.87948346138, - 1560.978010892868, - 1561.0784831047058, - 1561.1786596775055, - 1561.2765908241272, - 1561.3838136196136, - 1561.4774813652039, - 1561.5815932750702, - 1561.6770639419556, - 1561.7776787281036, - 1561.877956867218, - 1561.9779877662659, - 1562.0776226520538, - 1562.1785109043121, - 1562.2782335281372, - 1562.3815352916718, - 1562.4804756641388, - 1562.5775909423828, - 1562.6809916496277, - 1562.7826879024506, - 1562.8828573226929, - 1562.9838132858276, - 1563.0780189037323, - 1563.1789796352386, - 1563.2802908420563, - 1563.3813588619232, - 1563.480254650116, - 1563.5809354782104, - 1563.680933713913, - 1563.7801339626312, - 1563.880723953247, - 1563.9811205863953, - 1564.0802714824677, - 1564.1794838905334, - 1564.2845251560211, - 1564.3794884681702, - 1564.4791498184204, - 1564.5835678577423, - 1564.6808955669403, - 1564.7788915634155, - 1564.8795139789581, - 1564.9836478233337, - 1565.07950258255, - 1565.1825184822083, - 1565.2819392681122, - 1565.380526304245, - 1565.4812269210815, - 1565.5805473327637, - 1565.684333562851, - 1565.785714149475, - 1565.8849048614502, - 1565.9807634353638, - 1566.0813398361206, - 1566.1810414791107, - 1566.283430814743, - 1566.383866071701, - 1566.484350681305, - 1566.5904591083527, - 1566.6800830364227, - 1566.7800760269165, - 1566.8805696964264, - 1566.9809465408325, - 1567.0811483860016, - 1567.1813688278198, - 1567.2823538780212, - 1567.3819682598114, - 1567.4816749095917, - 1567.5819344520569, - 1567.6825020313263, - 1567.781952381134, - 1567.881548166275, - 1567.982048034668, - 1568.0820636749268, - 1568.1820254325867, - 1568.281239271164, - 1568.3812518119812, - 1568.4811825752258, - 1568.5819082260132, - 1568.6818380355835, - 1568.7822697162628, - 1568.8816404342651, - 1568.9819226264954, - 1569.0865490436554, - 1569.186048746109, - 1569.282539844513, - 1569.3828761577606, - 1569.4822869300842, - 1569.58291721344, - 1569.6838479042053, - 1569.7846109867096, - 1569.8823783397675, - 1569.9836070537567, - 1570.0831260681152, - 1570.1819534301758, - 1570.2878515720367, - 1570.3924379348755, - 1570.4909138679504, - 1570.5902736186981, - 1570.6988174915314, - 1570.7904138565063, - 1570.8904962539673, - 1570.9899044036865, - 1571.0898532867432, - 1571.1898276805878, - 1571.289258480072, - 1571.3903584480286, - 1571.4897434711456, - 1571.5904321670532, - 1571.6920642852783, - 1571.7911806106567, - 1571.8918182849884, - 1571.9967155456543, - 1572.1017162799835, - 1572.2009263038635, - 1572.2912111282349, - 1572.3967843055725, - 1572.4991810321808, - 1572.5943253040314, - 1572.6906354427338, - 1572.7905294895172, - 1572.891780614853, - 1572.9911139011383, - 1573.0927135944366, - 1573.1920285224915 - ], - "y": [ - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90 - ] - } - ], - "layout": { - "autosize": false, - "font": { - "color": "black", - "family": "Courier New, monospace", - "size": 22 - }, - "height": 600, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Range of Motion hipRight" - }, - "width": 750, - "xaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "time [s]" - } - }, - "yaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "ROM [gradi]" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "linkText": "Export to plot.ly", - "plotlyServerURL": "https://plot.ly", - "showLink": false - }, - "data": [ - { - "line": { - "color": "blue", - "width": 3 - }, - "mode": "lines", - "name": "Andamento Reale", - "type": "scatter", - "x": [ - 1499.2411363124847, - 1499.3432846069336, - 1499.4427211284637, - 1499.54013133049, - 1499.6420300006866, - 1499.744064092636, - 1499.8401839733124, - 1499.9462168216705, - 1500.0419936180115, - 1500.1414563655853, - 1500.2422320842743, - 1500.3411314487457, - 1500.441514492035, - 1500.541243314743, - 1500.6429286003113, - 1500.7421760559082, - 1500.8417778015137, - 1500.9413657188416, - 1501.0417659282684, - 1501.1428897380829, - 1501.240436553955, - 1501.3419153690338, - 1501.441132068634, - 1501.5403683185577, - 1501.6449313163757, - 1501.7413523197174, - 1501.8423101902008, - 1501.9408650398254, - 1502.04141497612, - 1502.1416535377502, - 1502.2421522140503, - 1502.3436872959137, - 1502.4428606033325, - 1502.5419516563416, - 1502.6438164710999, - 1502.739751815796, - 1502.839929819107, - 1502.9432377815247, - 1503.0396859645844, - 1503.1407148838043, - 1503.2416439056396, - 1503.3399159908295, - 1503.4405806064606, - 1503.542091369629, - 1503.6399137973785, - 1503.7397291660309, - 1503.8402659893036, - 1503.9417126178741, - 1504.0408883094788, - 1504.1431605815887, - 1504.2412109375, - 1504.3424327373505, - 1504.442084312439, - 1504.5419890880585, - 1504.6418566703796, - 1504.7421357631683, - 1504.8420453071594, - 1504.9417133331299, - 1505.0427649021149, - 1505.1421146392822, - 1505.2413144111633, - 1505.3408071994781, - 1505.4415457248688, - 1505.542934179306, - 1505.6415820121765, - 1505.741807460785, - 1505.8417615890503, - 1505.9422342777252, - 1506.0417664051056, - 1506.142252922058, - 1506.2424128055573, - 1506.3428943157196, - 1506.4433236122131, - 1506.5426783561707, - 1506.6421117782593, - 1506.74356341362, - 1506.8419032096863, - 1506.9436628818512, - 1507.042890548706, - 1507.143632888794, - 1507.2437996864319, - 1507.34317612648, - 1507.4439723491669, - 1507.5464203357697, - 1507.646990776062, - 1507.743609905243, - 1507.844081878662, - 1507.944857597351, - 1508.0438890457153, - 1508.143606185913, - 1508.2456514835358, - 1508.3450417518616, - 1508.444191455841, - 1508.5442969799042, - 1508.6431493759155, - 1508.7441477775574, - 1508.8442180156708, - 1508.9457623958588, - 1509.0446989536285, - 1509.1442427635193, - 1509.2483496665955, - 1509.348049879074, - 1509.447769165039, - 1509.5452642440796, - 1509.6454932689667, - 1509.7466208934784, - 1509.8461413383484, - 1509.9450035095215, - 1510.0446655750275, - 1510.1453218460083, - 1510.2444643974304, - 1510.3476753234863, - 1510.444744348526, - 1510.5449130535126, - 1510.6449630260468, - 1510.7453105449677, - 1510.8460247516632, - 1510.9460620880127, - 1511.0450239181519, - 1511.147045135498, - 1511.2464575767517, - 1511.3476495742798, - 1511.4461619853973, - 1511.5460538864136, - 1511.6458253860474, - 1511.7523272037506, - 1511.8473920822144, - 1511.9467968940735, - 1512.0458340644836, - 1512.14905834198, - 1512.2465064525604, - 1512.3464360237122, - 1512.4465262889862, - 1512.5464425086975, - 1512.6461458206177, - 1512.7456891536713, - 1512.846199274063, - 1512.9469623565674, - 1513.046472787857, - 1513.1472702026367, - 1513.2464673519135, - 1513.3472352027893, - 1513.4477665424347, - 1513.5469961166382, - 1513.6465792655945, - 1513.7474553585052, - 1513.8473408222198, - 1513.9478917121887, - 1514.048181295395, - 1514.1470139026642, - 1514.2469763755798, - 1514.347504377365, - 1514.4472517967224, - 1514.548014163971, - 1514.6466579437256, - 1514.747255563736, - 1514.8468098640442, - 1514.9472517967224, - 1515.0483257770538, - 1515.1476039886475, - 1515.2474853992462, - 1515.349123954773, - 1515.448129415512, - 1515.5479564666748, - 1515.6483643054962, - 1515.7478876113892, - 1515.848218679428, - 1515.9479448795319, - 1516.0482194423676, - 1516.149117231369, - 1516.24773478508, - 1516.3488357067108, - 1516.4485018253326, - 1516.548581123352, - 1516.6529862880707, - 1516.7489988803864, - 1516.8483703136444, - 1516.9493639469147, - 1517.0485661029816, - 1517.1542015075684, - 1517.2489612102509, - 1517.3534693717957, - 1517.4531128406525, - 1517.553725719452, - 1517.6531822681427, - 1517.7508800029755, - 1517.8505020141602, - 1517.9501507282257, - 1518.0533425807953, - 1518.154797554016, - 1518.252271413803, - 1518.3584887981415, - 1518.4496307373047, - 1518.5517852306366, - 1518.6547417640686, - 1518.751220703125, - 1518.8547055721283, - 1518.9500937461853, - 1519.0509328842163, - 1519.1500902175903, - 1519.2508342266083, - 1519.3509469032288, - 1519.4529166221619, - 1519.552564382553, - 1519.6508638858795, - 1519.7502257823944, - 1519.8513631820679, - 1519.9507722854614, - 1520.0511844158173, - 1520.1549203395844, - 1520.2553119659424, - 1520.355444908142, - 1520.4572768211365, - 1520.5562913417816, - 1520.6547539234161, - 1520.7517511844635, - 1520.852136850357, - 1520.956214427948, - 1521.0517673492432, - 1521.151982307434, - 1521.2533135414124, - 1521.3525230884552, - 1521.4546430110931, - 1521.5537049770355, - 1521.6560616493225, - 1521.756957769394, - 1521.861038684845, - 1521.9608080387115, - 1522.0553195476532, - 1522.1532826423645, - 1522.2527394294739, - 1522.3522148132324, - 1522.4540903568268, - 1522.5571751594543, - 1522.654535293579, - 1522.7544548511505, - 1522.8560378551483, - 1522.953887462616, - 1523.0526440143585, - 1523.1566863059998, - 1523.2580780982971, - 1523.3567478656769, - 1523.454469203949, - 1523.5542244911194, - 1523.658311843872, - 1523.7581009864807, - 1523.8582689762115, - 1523.953364610672, - 1524.054563999176, - 1524.1584029197693, - 1524.2576098442078, - 1524.3543453216553, - 1524.4550700187683, - 1524.5540347099304, - 1524.6535897254944, - 1524.753868341446, - 1524.853411436081, - 1524.95521068573, - 1525.054139137268, - 1525.1547272205353, - 1525.2555606365204, - 1525.3549020290375, - 1525.4566402435303, - 1525.5587475299835, - 1525.6535289287567, - 1525.7547373771667, - 1525.8536713123322, - 1525.9546175003052, - 1526.0546753406525, - 1526.1549615859985, - 1526.255040884018, - 1526.3548610210419, - 1526.454764842987, - 1526.5555267333984, - 1526.6554877758026, - 1526.7556302547455, - 1526.8551664352417, - 1526.9557905197144, - 1527.0557622909546, - 1527.1561093330383, - 1527.2571275234222, - 1527.356971502304, - 1527.457272529602, - 1527.5553719997406, - 1527.6574912071228, - 1527.757332086563, - 1527.8562273979187, - 1527.9594457149506, - 1528.0566897392273, - 1528.1583421230316, - 1528.2581007480621, - 1528.355853319168, - 1528.4608187675476, - 1528.5574316978455, - 1528.6561155319214, - 1528.7592558860779, - 1528.8586099147797, - 1528.9628987312317, - 1529.0560810565948, - 1529.1571590900421, - 1529.2560682296753, - 1529.3564767837524, - 1529.456878900528, - 1529.5586001873016, - 1529.657800912857, - 1529.7575800418854, - 1529.8577151298523, - 1529.9580373764038, - 1530.0567288398743, - 1530.157428264618, - 1530.2587399482727, - 1530.3589704036713, - 1530.457849740982, - 1530.5578382015228, - 1530.658446073532, - 1530.757824897766, - 1530.8616199493408, - 1530.960708618164, - 1531.059900522232, - 1531.162596464157, - 1531.2573883533478, - 1531.3600792884827, - 1531.458923816681, - 1531.5627195835114, - 1531.6612637043, - 1531.7576656341553, - 1531.8620171546936, - 1531.9599452018738, - 1532.0599632263184, - 1532.1607375144958, - 1532.259782075882, - 1532.3589525222778, - 1532.4589982032776, - 1532.5596570968628, - 1532.660763502121, - 1532.759989976883, - 1532.859920501709, - 1532.9633507728577, - 1533.0590443611145, - 1533.159485578537, - 1533.2591478824615, - 1533.358909368515, - 1533.4588725566864, - 1533.5592203140259, - 1533.6601333618164, - 1533.758960723877, - 1533.8600804805756, - 1533.9596378803253, - 1534.0594065189362, - 1534.1598281860352, - 1534.2596225738525, - 1534.360122680664, - 1534.4612867832184, - 1534.5604510307312, - 1534.6615297794342, - 1534.76198220253, - 1534.8614101409912, - 1534.9614522457123, - 1535.0600357055664, - 1535.1603939533234, - 1535.2622575759888, - 1535.3602058887482, - 1535.462120294571, - 1535.56028008461, - 1535.6601366996765, - 1535.7611837387085, - 1535.8639693260193, - 1535.9614548683167, - 1536.06116604805, - 1536.1607356071472, - 1536.2609808444977, - 1536.3626313209534, - 1536.4609956741333, - 1536.564481496811, - 1536.6640095710754, - 1536.763158082962, - 1536.8629369735718, - 1536.9626727104187, - 1537.0616796016693, - 1537.1621129512787, - 1537.2617573738098, - 1537.3618972301483, - 1537.462711572647, - 1537.562515258789, - 1537.6621596813202, - 1537.7639846801758, - 1537.8620209693909, - 1537.9622814655304, - 1538.0627496242523, - 1538.1621263027191, - 1538.2627971172333, - 1538.366781949997, - 1538.4637882709503, - 1538.563273191452, - 1538.66330909729, - 1538.7667174339294, - 1538.8636915683746, - 1538.9630060195923, - 1539.063859462738, - 1539.1625623703003, - 1539.2660901546478, - 1539.3630833625793, - 1539.464448928833, - 1539.5636985301971, - 1539.6643221378326, - 1539.7645237445831, - 1539.8643732070923, - 1539.9644606113434, - 1540.0639703273773, - 1540.1641156673431, - 1540.2658836841583, - 1540.3652892112732, - 1540.4671607017517, - 1540.5652508735657, - 1540.669272184372, - 1540.7651839256287, - 1540.8669271469116, - 1540.9673836231232, - 1541.0654036998749, - 1541.1660828590393, - 1541.2674746513367, - 1541.3676433563232, - 1541.4656250476837, - 1541.5665922164917, - 1541.6681351661682, - 1541.7672548294067, - 1541.867030620575, - 1541.9676649570465, - 1542.0670235157013, - 1542.1689057350159, - 1542.2671897411346, - 1542.3672127723694, - 1542.4686870574951, - 1542.5665442943573, - 1542.6705791950226, - 1542.7696046829224, - 1542.8668971061707, - 1542.966644525528, - 1543.0735685825348, - 1543.1732482910156, - 1543.267774105072, - 1543.3676788806915, - 1543.4672544002533, - 1543.5671184062958, - 1543.6677463054657, - 1543.7675108909607, - 1543.8679871559143, - 1543.9693717956543, - 1544.0663883686066, - 1544.1677677631378, - 1544.268888950348, - 1544.3663485050201, - 1544.4664885997772, - 1544.5660860538483, - 1544.6669471263885, - 1544.76717877388, - 1544.8672885894775, - 1544.9685242176056, - 1545.0670084953308, - 1545.1677951812744, - 1545.2673869132996, - 1545.3672273159027, - 1545.467891216278, - 1545.575178861618, - 1545.6677899360657, - 1545.7664551734924, - 1545.8665204048157, - 1545.9671485424042, - 1546.0674130916595, - 1546.1681797504425, - 1546.2676408290863, - 1546.367078781128, - 1546.4679577350616, - 1546.5685453414917, - 1546.6769742965698, - 1546.7727680206299, - 1546.8680868148804, - 1546.9686315059662, - 1547.069181919098, - 1547.167875289917, - 1547.2677521705627, - 1547.3686332702637, - 1547.4707067012787, - 1547.5683662891388, - 1547.6724834442139, - 1547.769639492035, - 1547.8712072372437, - 1547.9770529270172, - 1548.072209596634, - 1548.173274755478, - 1548.2715876102448, - 1548.371628522873, - 1548.4709198474884, - 1548.5714690685272, - 1548.671296596527, - 1548.7715110778809, - 1548.8716838359833, - 1548.97434091568, - 1549.070969581604, - 1549.174753665924, - 1549.2744188308716, - 1549.3733451366425, - 1549.4734070301056, - 1549.5742897987366, - 1549.6723790168762, - 1549.7728595733643, - 1549.8727250099182, - 1549.9772119522095, - 1550.0720105171204, - 1550.1710896492004, - 1550.2725031375885, - 1550.3713836669922, - 1550.4781966209412, - 1550.5779829025269, - 1550.6775233745575, - 1550.774284362793, - 1550.87375998497, - 1550.979849100113, - 1551.0752232074738, - 1551.1747436523438, - 1551.2786514759064, - 1551.3792498111725, - 1551.478197336197, - 1551.579080581665, - 1551.67942070961, - 1551.77863407135, - 1551.880181312561, - 1551.9783499240875, - 1552.0735130310059, - 1552.1743123531342, - 1552.2738902568817, - 1552.3736426830292, - 1552.4735062122345, - 1552.5737590789795, - 1552.6750376224518, - 1552.774917125702, - 1552.874896287918, - 1552.9747967720032, - 1553.0752203464508, - 1553.1760432720184, - 1553.2762243747711, - 1553.3725430965424, - 1553.472339630127, - 1553.5719089508057, - 1553.671792268753, - 1553.7730875015259, - 1553.8719074726105, - 1553.9732356071472, - 1554.072648525238, - 1554.172200679779, - 1554.2724151611328, - 1554.3731021881104, - 1554.4731767177582, - 1554.5727956295013, - 1554.673753976822, - 1554.7773764133453, - 1554.8747208118439, - 1554.9741613864899, - 1555.0747776031494, - 1555.1755096912384, - 1555.279501914978, - 1555.3744592666626, - 1555.4760527610779, - 1555.5740582942963, - 1555.6754522323608, - 1555.7753405570984, - 1555.8802742958069, - 1555.9759588241577, - 1556.074725151062, - 1556.1759669780731, - 1556.2756700515747, - 1556.3753113746643, - 1556.4837319850922, - 1556.5750107765198, - 1556.6751630306244, - 1556.7765123844147, - 1556.8782150745392, - 1556.9785902500153, - 1557.0765113830566, - 1557.1777567863464, - 1557.2783045768738, - 1557.3775517940521, - 1557.4797596931458, - 1557.5780041217804, - 1557.6780152320862, - 1557.7778115272522, - 1557.876960515976, - 1557.9770517349243, - 1558.076621055603, - 1558.180831193924, - 1558.2854754924774, - 1558.3767499923706, - 1558.4804351329803, - 1558.579921722412, - 1558.677288532257, - 1558.7769978046417, - 1558.8778581619263, - 1558.9787356853485, - 1559.0771126747131, - 1559.1767921447754, - 1559.278477191925, - 1559.378291606903, - 1559.4775824546814, - 1559.5807921886444, - 1559.6776638031006, - 1559.778058052063, - 1559.8830723762512, - 1559.9832768440247, - 1560.0840981006622, - 1560.1845769882202, - 1560.2789707183838, - 1560.3786268234253, - 1560.47776389122, - 1560.5785915851593, - 1560.6796667575836, - 1560.7791197299957, - 1560.87948346138, - 1560.978010892868, - 1561.0784831047058, - 1561.1786596775055, - 1561.2765908241272, - 1561.3838136196136, - 1561.4774813652039, - 1561.5815932750702, - 1561.6770639419556, - 1561.7776787281036, - 1561.877956867218, - 1561.9779877662659, - 1562.0776226520538, - 1562.1785109043121, - 1562.2782335281372, - 1562.3815352916718, - 1562.4804756641388, - 1562.5775909423828, - 1562.6809916496277, - 1562.7826879024506, - 1562.8828573226929, - 1562.9838132858276, - 1563.0780189037323, - 1563.1789796352386, - 1563.2802908420563, - 1563.3813588619232, - 1563.480254650116, - 1563.5809354782104, - 1563.680933713913, - 1563.7801339626312, - 1563.880723953247, - 1563.9811205863953, - 1564.0802714824677, - 1564.1794838905334, - 1564.2845251560211, - 1564.3794884681702, - 1564.4791498184204, - 1564.5835678577423, - 1564.6808955669403, - 1564.7788915634155, - 1564.8795139789581, - 1564.9836478233337, - 1565.07950258255, - 1565.1825184822083, - 1565.2819392681122, - 1565.380526304245, - 1565.4812269210815, - 1565.5805473327637, - 1565.684333562851, - 1565.785714149475, - 1565.8849048614502, - 1565.9807634353638, - 1566.0813398361206, - 1566.1810414791107, - 1566.283430814743, - 1566.383866071701, - 1566.484350681305, - 1566.5904591083527, - 1566.6800830364227, - 1566.7800760269165, - 1566.8805696964264, - 1566.9809465408325, - 1567.0811483860016, - 1567.1813688278198, - 1567.2823538780212, - 1567.3819682598114, - 1567.4816749095917, - 1567.5819344520569, - 1567.6825020313263, - 1567.781952381134, - 1567.881548166275, - 1567.982048034668, - 1568.0820636749268, - 1568.1820254325867, - 1568.281239271164, - 1568.3812518119812, - 1568.4811825752258, - 1568.5819082260132, - 1568.6818380355835, - 1568.7822697162628, - 1568.8816404342651, - 1568.9819226264954, - 1569.0865490436554, - 1569.186048746109, - 1569.282539844513, - 1569.3828761577606, - 1569.4822869300842, - 1569.58291721344, - 1569.6838479042053, - 1569.7846109867096, - 1569.8823783397675, - 1569.9836070537567, - 1570.0831260681152, - 1570.1819534301758, - 1570.2878515720367, - 1570.3924379348755, - 1570.4909138679504, - 1570.5902736186981, - 1570.6988174915314, - 1570.7904138565063, - 1570.8904962539673, - 1570.9899044036865, - 1571.0898532867432, - 1571.1898276805878, - 1571.289258480072, - 1571.3903584480286, - 1571.4897434711456, - 1571.5904321670532, - 1571.6920642852783, - 1571.7911806106567, - 1571.8918182849884, - 1571.9967155456543, - 1572.1017162799835, - 1572.2009263038635, - 1572.2912111282349, - 1572.3967843055725, - 1572.4991810321808, - 1572.5943253040314, - 1572.6906354427338, - 1572.7905294895172, - 1572.891780614853, - 1572.9911139011383, - 1573.0927135944366, - 1573.1920285224915 - ], - "y": [ - 83.76114274812721, - 83.6996370304545, - 83.54878753080084, - 83.54878753080084, - 83.06480607142193, - 82.30301924069242, - 81.1122446901451, - 81.29976968859263, - 81.29976968859263, - 80.90653962924904, - 80.9223161466787, - 81.26592794293326, - 80.71546497423597, - 80.71546497423597, - 76.61444602019048, - 81.1904245947816, - 81.3102983268943, - 81.3102983268943, - 81.7642004822879, - 81.71067205145998, - 81.5241836887108, - 81.2241616694737, - 75.5743354439948, - 80.45836365810197, - 80.80265573232855, - 81.57077926862871, - 81.17948975490803, - 81.06281544849067, - 81.24353081597117, - 81.64962513244993, - 81.64962513244993, - 74.84591426118817, - 74.79329747909048, - 75.04620902110442, - 80.49027708261701, - 74.33162576177119, - 73.93398183460002, - 73.89818898764878, - 80.48441635470999, - 80.89289617741183, - 80.89289617741183, - 81.72749045579471, - 82.20268026200965, - 81.99689192274353, - 82.24100111258531, - 81.58896406456569, - 81.58896406456569, - 81.63819961618502, - 82.79111960924124, - 82.98489470744173, - 83.30472038276257, - 82.93433401321494, - 82.10217678640038, - 82.07566476923186, - 82.1668280889102, - 82.1668280889102, - 81.94952375301175, - 81.40199399616861, - 80.79417160070403, - 81.40090586530005, - 81.40090586530005, - 80.07876483155957, - 79.56046195866395, - 79.34337007309273, - 79.57708182716657, - 79.57708182716657, - 80.17395647746217, - 80.17395647746217, - 80.61779862020913, - 80.91181005026822, - 81.10737996587291, - 80.88089318274811, - 81.16089002261695, - 81.05050494325754, - 80.5329330485577, - 80.52270941829909, - 80.59075385580496, - 81.05711292627684, - 81.05711292627684, - 81.05761192959304, - 81.24133970537311, - 81.13312794553292, - 81.48975586928577, - 81.66067783347124, - 81.75615363011674, - 81.97786497689934, - 81.96872592298695, - 81.79811111717099, - 81.4164828066955, - 81.42742409574393, - 80.99408370220014, - 81.05306258934272, - 81.31866195644369, - 81.38796849825273, - 81.5199002124673, - 81.42546122310237, - 81.21781726480528, - 81.11680179504425, - 81.12375458860895, - 80.60452029497227, - 80.87287183685113, - 81.05621503613577, - 80.94187530032005, - 80.77111801424334, - 82.01622907169435, - 82.71119685071639, - 82.71119685071639, - 82.9382361069159, - 82.95892291293195, - 83.18474730626012, - 83.18727197437012, - 83.01875241098166, - 83.26942068952766, - 83.26942068952766, - 82.93851250063271, - 82.96893736506414, - 82.8777919023593, - 83.00633914740838, - 82.90416463027448, - 82.92207723519947, - 83.01305390094993, - 83.01305390094993, - 83.26823382948452, - 83.17203845146958, - 83.32866090954606, - 83.32866090954606, - 83.26320955370271, - 82.90403148671328, - 82.90403148671328, - 82.80044943653597, - 82.95104431212984, - 82.86981564862735, - 82.7562462033432, - 82.80913483180717, - 82.7562462033432, - 82.89776799593704, - 83.06802056003576, - 82.88382379285326, - 82.6643082390751, - 82.29083518126988, - 82.69824725164553, - 82.6612221782604, - 82.70796743393076, - 83.05459805572441, - 83.0327935622959, - 83.05384507228102, - 83.08567342654217, - 82.97777100625392, - 82.94847105314322, - 82.96362477904864, - 82.76389921805949, - 82.43798227181517, - 82.6452704632163, - 82.6452704632163, - 82.46386021230367, - 82.61596200095155, - 82.35581481345591, - 82.40524022636856, - 82.63387000291895, - 82.63387000291895, - 83.02591448590036, - 83.06152603170273, - 83.02590314051346, - 83.09973888206517, - 83.00893029196857, - 82.71909749776394, - 82.84942149214588, - 82.96519311325079, - 82.7460890260633, - 82.24794406690245, - 81.96584402954734, - 82.12481355572537, - 81.1475588241804, - 80.447101066105, - 80.39758261558036, - 80.39758261558036, - 80.06195426948796, - 80.06195426948796, - 79.99135775421796, - 80.04390275529761, - 80.29827510600211, - 79.81287354066625, - 79.32001738298403, - 79.32001738298403, - 79.24125478238616, - 78.93827235362274, - 78.95521544375639, - 78.9529859339072, - 78.95490991490787, - 78.97660627437467, - 78.99296688262905, - 78.99735319703856, - 79.24953234183047, - 79.29918233379173, - 79.007645721132, - 79.00323450548211, - 78.95040599363573, - 78.82748113293421, - 78.82748113293421, - 79.39977875019979, - 79.39977875019979, - 79.50356215913135, - 79.5074279073813, - 79.22331450879456, - 79.23996200698573, - 79.24137884944577, - 79.03898965787123, - 79.22444315468303, - 79.0585642471471, - 79.17339013455718, - 79.15576560629613, - 79.15576560629613, - 79.15996444246781, - 79.15996444246781, - 79.05664383229059, - 78.85036300463072, - 78.74695191278093, - 78.74695191278093, - 78.71111332757668, - 78.7401338596215, - 78.74013390427812, - 78.7405986666979, - 78.75980364262941, - 78.64486429227773, - 78.6594148795162, - 78.63823794913237, - 78.64907301674147, - 78.78542261152718, - 78.78393944169518, - 78.78917454463611, - 78.78870504591944, - 78.78589151201668, - 78.89961208379891, - 78.99937494315289, - 78.98237797089418, - 78.81302599166514, - 78.91187187959929, - 78.59213706559578, - 78.62505968928544, - 78.72562023268051, - 78.67216127308183, - 78.84544083274362, - 78.9378568248481, - 79.22708532778027, - 79.51769320721232, - 79.61060919811594, - 79.82033962057103, - 79.71278033912375, - 79.54874639020046, - 79.71278024962574, - 79.44789260134877, - 79.94788380244304, - 79.53921825004831, - 79.25564692253923, - 79.26039191900004, - 79.26039168228252, - 79.26039063869807, - 79.27202406479296, - 79.25136713689302, - 79.25615546447477, - 79.27259886781006, - 79.67071949640035, - 79.77469086304254, - 80.00064174002965, - 79.67555691520978, - 79.62658306827191, - 79.62658306827191, - 80.03355823926361, - 80.03243534283989, - 80.03243534283989, - 79.71703117866993, - 79.29079628902808, - 79.29079628902808, - 79.18268523234822, - 79.15406278759262, - 79.246214349795, - 79.246214349795, - 79.51193818258547, - 79.80191265242466, - 80.20896477915518, - 80.20896477915518, - 81.18252176628918, - 82.13957467229542, - 80.89935371212599, - 82.00661537702413, - 81.71735789055859, - 81.4227096299443, - 80.61005088451712, - 72.58475596338006, - 71.42491413959043, - 69.48370978233093, - 67.24663654729616, - 65.40792328273044, - 63.667895009458604, - 62.56506851394048, - 62.71491400896277, - 63.07721097953723, - 63.260390580153874, - 63.89203601954043, - 63.89203601954043, - 64.80011652125846, - 64.46770436998138, - 63.65089405719001, - 63.08412199168161, - 63.02498071238948, - 63.05153997653645, - 63.35383843025976, - 63.5419659101775, - 63.51614129605257, - 63.31617107406137, - 63.328442851131726, - 63.3778911263601, - 63.5974302108783, - 63.95574961921733, - 64.47737482161776, - 63.97601313206847, - 63.240462525180156, - 63.16090706053151, - 63.33998620586513, - 63.386043571053854, - 63.35802684644964, - 63.190467544324136, - 63.16619124852665, - 63.27609667905725, - 62.976946820807804, - 63.308883718330215, - 63.2328647622815, - 63.24757884966848, - 63.34858746302158, - 63.421837572310956, - 63.076719493424484, - 62.806709011414235, - 62.695465260615016, - 63.11708487133993, - 63.29540431616884, - 62.924994538691394, - 62.96157277233073, - 62.82664363120112, - 62.91249406266628, - 62.92599731146321, - 62.70822373627183, - 62.52285423663897, - 62.29738718388797, - 62.187331465654964, - 61.89565810632407, - 61.65041271291508, - 62.098362234208516, - 62.22797221273917, - 62.18544084105297, - 62.18544084105297, - 62.15494261884158, - 62.102051659984305, - 61.9910735396073, - 61.987349591660966, - 61.94951507485705, - 62.11326360321755, - 62.17171437031221, - 62.435995288470814, - 62.59276601258905, - 62.511917936820275, - 62.52091771584418, - 62.74558274589324, - 62.69667974592382, - 62.758570647895304, - 63.08378929728774, - 63.17945874489853, - 63.482970243909065, - 63.482970243909065, - 63.29517386946006, - 63.29517386946006, - 63.34216723263033, - 63.61729664231178, - 63.61500053293481, - 63.3392965378083, - 63.713034611668064, - 63.25943929876169, - 62.71431647251939, - 62.98203558664314, - 63.27547931759642, - 64.03045024573152, - 64.90865578155513, - 64.90865578155513, - 63.77359319313694, - 62.63596404531317, - 58.940431511416485, - 57.86458244653484, - 113.22579194497328, - 112.84477017897403, - 112.54140396553507, - 113.02415834177523, - 113.02415834177523, - 60.77866737504902, - 115.0472239010436, - 64.59693305842785, - 64.59693305842785, - 62.97449148578399, - 63.09586573649993, - 63.24079390316527, - 63.27626800494712, - 62.73942141996395, - 62.89579230813295, - 63.11151458248564, - 63.198776115963895, - 62.96792435572314, - 63.31682507349154, - 63.791918383212725, - 63.56088936111611, - 63.24325055392229, - 63.36914279328262, - 63.43913216946415, - 63.62777653147679, - 63.62777653147679, - 64.1234727056543, - 63.87720527265861, - 63.87720527265861, - 63.86363396957378, - 63.50636265214098, - 63.088393375375524, - 62.95897967942501, - 63.06335868255457, - 64.38433014908874, - 66.41662151031962, - 66.68635674798824, - 66.58004973798478, - 67.05397645355951, - 69.13770484456946, - 72.60826782293348, - 71.22289679894448, - 67.85415890145323, - 66.82026765102677, - 67.0279951508054, - 68.99470691253592, - 64.56178747604507, - 64.71572591735045, - 64.81550861217778, - 65.17210252264952, - 65.38609306059062, - 65.41161166582478, - 65.70803618861025, - 65.21754879858123, - 64.60027709400414, - 64.71536576751778, - 64.81864305642314, - 65.80789223106711, - 66.4815865802161, - 66.0989942919702, - 66.4785641003112, - 63.9386403059837, - 62.94261069014711, - 62.55655008678348, - 63.24230036965543, - 63.93480028890227, - 64.47850842775733, - 64.44903853588985, - 64.04291223430245, - 63.93706553458525, - 63.83305583307665, - 64.40856643822579, - 63.02487933830343, - 62.97877846010548, - 63.108072930066044, - 63.385788042492464, - 63.47927898392295, - 63.5481622816088, - 63.328751900176755, - 63.37278044146055, - 63.26054349771587, - 63.62989647611692, - 63.86546100005399, - 63.07498817283224, - 66.07536243140154, - 67.84196433485278, - 67.58248192764225, - 65.05172698866197, - 63.09337455390207, - 63.154896622946694, - 62.70726397039119, - 63.39698939439623, - 63.762308269278286, - 63.81818845868181, - 66.83219117904619, - 66.87576463564997, - 69.43647883318938, - 74.06472153237745, - 74.06472153237745, - 77.41271480026232, - 65.89130929157591, - 65.89130929157591, - 65.05056462326988, - 63.2003636186484, - 62.78420114687209, - 63.547765213262906, - 63.698275113603046, - 64.28556701257108, - 64.63520968561818, - 64.44713487041643, - 64.28112341676712, - 63.98177981921698, - 63.7704426946765, - 64.2499725268844, - 65.65622045333468, - 66.26948080608803, - 64.77265266724386, - 63.52061821930033, - 63.655025714606666, - 63.84273227467416, - 64.20494736238321, - 64.52416043840712, - 64.13490091174168, - 63.38131513817884, - 63.86576117293614, - 63.86576117293614, - 64.37229190080947, - 64.1444052819998, - 63.99805659404057, - 67.6546462092717, - 69.31455867497762, - 68.97864236345838, - 66.6157508695973, - 65.88838358585227, - 65.65516625472165, - 66.01476391414722, - 69.52239694500706, - 64.6785642784356, - 64.83640750447793, - 65.75608365675974, - 66.78182769871617, - 66.9260620641508, - 66.85388358432357, - 66.98677168393782, - 67.35143447524423, - 79.73009009800009, - 85.00330625739814, - 85.75607918535893, - 70.39821799330129, - 70.39821799330129, - 67.90121113741819, - 64.12512502754998, - 63.4732811505001, - 62.96034499551069, - 62.54520795314316, - 65.8398510800884, - 66.71602489425558, - 67.150309303443, - 67.04024735417231, - 66.3754253934758, - 66.37284573103217, - 65.27541013590657, - 64.9949366733646, - 64.73091452358318, - 64.62634999980443, - 64.44265562630761, - 64.44265562630761, - 64.25672877675271, - 64.18423036811288, - 64.37393429219314, - 64.14797743875157, - 62.774747472366855, - 62.66060679427305, - 62.51745100872031, - 62.65425254324648, - 63.14516388905816, - 63.4108069183416, - 64.56161136316743, - 64.9784755554036, - 65.10258782924038, - 65.60391984028705, - 66.34874631708215, - 66.37994235899973, - 65.5738301854758, - 65.14493322381558, - 64.61169725202701, - 64.59002982443009, - 64.45344785849285, - 63.504587988460486, - 63.66793771105459, - 63.80349078697593, - 63.65084010017718, - 63.706148394114926, - 64.45830541009181, - 64.56297153150541, - 64.76909266521095, - 65.3384170821311, - 64.81173852001687, - 64.21759640945974, - 64.14186665575868, - 64.15068059892393, - 63.4357275898847, - 63.11649891586443, - 63.0082938883074, - 63.03568716541642, - 63.10706108339128, - 62.31104259890723, - 61.86637317945259, - 61.90707290514262, - 61.9453838321509, - 62.20598118613347, - 63.041407967205316, - 64.55496937899395, - 65.77678851480131, - 63.89123590012053, - 65.5487962945978, - 66.26844816955915, - 66.62173389802598, - 66.52382834677613, - 66.56811630256627, - 66.86331424603458, - 66.8298293577279, - 66.6360510628727, - 66.06959970393967, - 64.73648779281521, - 63.92750965521859, - 64.44989970573492, - 64.12255633966217, - 64.37707697339695, - 65.58660374551408, - 64.98554476689881, - 66.23592209614077, - 68.3411319617164, - 71.64452901767255, - 70.18790534343617, - 69.63726717594307, - 69.36877915554157, - 67.42778251592664, - 67.17060034763043, - 67.17060034763043, - 66.59542773893459, - 67.05754879085566, - 67.83938985807362, - 66.97690692581908, - 68.62229635942921, - 68.62229635942921, - 67.3268484344104, - 64.52124371670904, - 73.85537140575738, - 73.85537140575738, - 74.58933183145002, - 75.7356149688712, - 66.98012832572924, - 66.0679423497492, - 63.649991550905696, - 63.8881853152276, - 65.81100602820875, - 67.9986574250136, - 67.7028563529933, - 67.91311441612649, - 63.28511287042659, - 80.48896366673723, - 88.21611033780027, - 66.82171719325113, - 78.67038993108923, - 76.77079647385692, - 76.07269176161505, - 70.46393038836014, - 64.46193192356492, - 65.53768062350063, - 68.33088186501404, - 71.49226949961704, - 99.04164532396217, - 91.43854082623541, - 69.73707918734094, - 69.05808962298002, - 69.29176079484989, - 64.80823423367524, - 63.63587012133844, - 63.1094373744005, - 63.14521402100748, - 62.988123379500145, - 62.953915131686415, - 64.37433110766544, - 64.92986972262807, - 66.038679924551, - 75.05544289599051, - 67.86116282850239, - 69.88028927482365, - 75.58400809668386, - 85.66871505146574, - 84.53204487819774, - 76.26625320208602, - 63.030256500981146, - 64.93169800478738, - 64.78514610032701, - 63.850116192963974, - 63.73121936383448, - 63.581428362909634, - 63.462715732899625, - 63.54463610039599, - 63.61486750942343, - 63.261278944505456, - 69.21346364780159, - 62.929006719435634, - 63.83137293181157, - 65.47850201623581, - 71.31185816574305, - 73.60134152466871, - 73.60134152466871, - 71.48574130213231, - 71.22575110812232, - 70.90159728542723, - 70.5096395870723, - 68.97568392017676, - 68.16147159654895, - 66.84930018856073, - 65.43821163703953, - 64.17295696990104, - 108.1719091774194, - 108.48205217423666, - 108.79986208952556, - 108.7411101427096, - 107.98864196482138, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006, - 107.30283323604006 - ] - } - ], - "layout": { - "autosize": false, - "font": { - "color": "black", - "family": "Courier New, monospace", - "size": 22 - }, - "height": 600, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Range of Motion kneeRight" - }, - "width": 750, - "xaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "time [s]" - } - }, - "yaxis": { - "title": { - "font": { - "color": "#7f7f7f", - "family": "Courier New, monospace", - "size": 18 - }, - "text": "ROM [gradi]" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "linkText": "Export to plot.ly", - "plotlyServerURL": "https://plot.ly", - "showLink": false - }, - "data": [ - { - "line": { - "color": "blue", - "width": 3 - }, - "mode": "lines", - "name": "Andamento Reale", - "type": "scatter", - "x": [ - 1499.2411363124847, - 1499.3432846069336, - 1499.4427211284637, - 1499.54013133049, - 1499.6420300006866, - 1499.744064092636, - 1499.8401839733124, - 1499.9462168216705, - 1500.0419936180115, - 1500.1414563655853, - 1500.2422320842743, - 1500.3411314487457, - 1500.441514492035, - 1500.541243314743, - 1500.6429286003113, - 1500.7421760559082, - 1500.8417778015137, - 1500.9413657188416, - 1501.0417659282684, - 1501.1428897380829, - 1501.240436553955, - 1501.3419153690338, - 1501.441132068634, - 1501.5403683185577, - 1501.6449313163757, - 1501.7413523197174, - 1501.8423101902008, - 1501.9408650398254, - 1502.04141497612, - 1502.1416535377502, - 1502.2421522140503, - 1502.3436872959137, - 1502.4428606033325, - 1502.5419516563416, - 1502.6438164710999, - 1502.739751815796, - 1502.839929819107, - 1502.9432377815247, - 1503.0396859645844, - 1503.1407148838043, - 1503.2416439056396, - 1503.3399159908295, - 1503.4405806064606, - 1503.542091369629, - 1503.6399137973785, - 1503.7397291660309, - 1503.8402659893036, - 1503.9417126178741, - 1504.0408883094788, - 1504.1431605815887, - 1504.2412109375, - 1504.3424327373505, - 1504.442084312439, - 1504.5419890880585, - 1504.6418566703796, - 1504.7421357631683, - 1504.8420453071594, - 1504.9417133331299, - 1505.0427649021149, - 1505.1421146392822, - 1505.2413144111633, - 1505.3408071994781, - 1505.4415457248688, - 1505.542934179306, - 1505.6415820121765, - 1505.741807460785, - 1505.8417615890503, - 1505.9422342777252, - 1506.0417664051056, - 1506.142252922058, - 1506.2424128055573, - 1506.3428943157196, - 1506.4433236122131, - 1506.5426783561707, - 1506.6421117782593, - 1506.74356341362, - 1506.8419032096863, - 1506.9436628818512, - 1507.042890548706, - 1507.143632888794, - 1507.2437996864319, - 1507.34317612648, - 1507.4439723491669, - 1507.5464203357697, - 1507.646990776062, - 1507.743609905243, - 1507.844081878662, - 1507.944857597351, - 1508.0438890457153, - 1508.143606185913, - 1508.2456514835358, - 1508.3450417518616, - 1508.444191455841, - 1508.5442969799042, - 1508.6431493759155, - 1508.7441477775574, - 1508.8442180156708, - 1508.9457623958588, - 1509.0446989536285, - 1509.1442427635193, - 1509.2483496665955, - 1509.348049879074, - 1509.447769165039, - 1509.5452642440796, - 1509.6454932689667, - 1509.7466208934784, - 1509.8461413383484, - 1509.9450035095215, - 1510.0446655750275, - 1510.1453218460083, - 1510.2444643974304, - 1510.3476753234863, - 1510.444744348526, - 1510.5449130535126, - 1510.6449630260468, - 1510.7453105449677, - 1510.8460247516632, - 1510.9460620880127, - 1511.0450239181519, - 1511.147045135498, - 1511.2464575767517, - 1511.3476495742798, - 1511.4461619853973, - 1511.5460538864136, - 1511.6458253860474, - 1511.7523272037506, - 1511.8473920822144, - 1511.9467968940735, - 1512.0458340644836, - 1512.14905834198, - 1512.2465064525604, - 1512.3464360237122, - 1512.4465262889862, - 1512.5464425086975, - 1512.6461458206177, - 1512.7456891536713, - 1512.846199274063, - 1512.9469623565674, - 1513.046472787857, - 1513.1472702026367, - 1513.2464673519135, - 1513.3472352027893, - 1513.4477665424347, - 1513.5469961166382, - 1513.6465792655945, - 1513.7474553585052, - 1513.8473408222198, - 1513.9478917121887, - 1514.048181295395, - 1514.1470139026642, - 1514.2469763755798, - 1514.347504377365, - 1514.4472517967224, - 1514.548014163971, - 1514.6466579437256, - 1514.747255563736, - 1514.8468098640442, - 1514.9472517967224, - 1515.0483257770538, - 1515.1476039886475, - 1515.2474853992462, - 1515.349123954773, - 1515.448129415512, - 1515.5479564666748, - 1515.6483643054962, - 1515.7478876113892, - 1515.848218679428, - 1515.9479448795319, - 1516.0482194423676, - 1516.149117231369, - 1516.24773478508, - 1516.3488357067108, - 1516.4485018253326, - 1516.548581123352, - 1516.6529862880707, - 1516.7489988803864, - 1516.8483703136444, - 1516.9493639469147, - 1517.0485661029816, - 1517.1542015075684, - 1517.2489612102509, - 1517.3534693717957, - 1517.4531128406525, - 1517.553725719452, - 1517.6531822681427, - 1517.7508800029755, - 1517.8505020141602, - 1517.9501507282257, - 1518.0533425807953, - 1518.154797554016, - 1518.252271413803, - 1518.3584887981415, - 1518.4496307373047, - 1518.5517852306366, - 1518.6547417640686, - 1518.751220703125, - 1518.8547055721283, - 1518.9500937461853, - 1519.0509328842163, - 1519.1500902175903, - 1519.2508342266083, - 1519.3509469032288, - 1519.4529166221619, - 1519.552564382553, - 1519.6508638858795, - 1519.7502257823944, - 1519.8513631820679, - 1519.9507722854614, - 1520.0511844158173, - 1520.1549203395844, - 1520.2553119659424, - 1520.355444908142, - 1520.4572768211365, - 1520.5562913417816, - 1520.6547539234161, - 1520.7517511844635, - 1520.852136850357, - 1520.956214427948, - 1521.0517673492432, - 1521.151982307434, - 1521.2533135414124, - 1521.3525230884552, - 1521.4546430110931, - 1521.5537049770355, - 1521.6560616493225, - 1521.756957769394, - 1521.861038684845, - 1521.9608080387115, - 1522.0553195476532, - 1522.1532826423645, - 1522.2527394294739, - 1522.3522148132324, - 1522.4540903568268, - 1522.5571751594543, - 1522.654535293579, - 1522.7544548511505, - 1522.8560378551483, - 1522.953887462616, - 1523.0526440143585, - 1523.1566863059998, - 1523.2580780982971, - 1523.3567478656769, - 1523.454469203949, - 1523.5542244911194, - 1523.658311843872, - 1523.7581009864807, - 1523.8582689762115, - 1523.953364610672, - 1524.054563999176, - 1524.1584029197693, - 1524.2576098442078, - 1524.3543453216553, - 1524.4550700187683, - 1524.5540347099304, - 1524.6535897254944, - 1524.753868341446, - 1524.853411436081, - 1524.95521068573, - 1525.054139137268, - 1525.1547272205353, - 1525.2555606365204, - 1525.3549020290375, - 1525.4566402435303, - 1525.5587475299835, - 1525.6535289287567, - 1525.7547373771667, - 1525.8536713123322, - 1525.9546175003052, - 1526.0546753406525, - 1526.1549615859985, - 1526.255040884018, - 1526.3548610210419, - 1526.454764842987, - 1526.5555267333984, - 1526.6554877758026, - 1526.7556302547455, - 1526.8551664352417, - 1526.9557905197144, - 1527.0557622909546, - 1527.1561093330383, - 1527.2571275234222, - 1527.356971502304, - 1527.457272529602, - 1527.5553719997406, - 1527.6574912071228, - 1527.757332086563, - 1527.8562273979187, - 1527.9594457149506, - 1528.0566897392273, - 1528.1583421230316, - 1528.2581007480621, - 1528.355853319168, - 1528.4608187675476, - 1528.5574316978455, - 1528.6561155319214, - 1528.7592558860779, - 1528.8586099147797, - 1528.9628987312317, - 1529.0560810565948, - 1529.1571590900421, - 1529.2560682296753, - 1529.3564767837524, - 1529.456878900528, - 1529.5586001873016, - 1529.657800912857, - 1529.7575800418854, - 1529.8577151298523, - 1529.9580373764038, - 1530.0567288398743, - 1530.157428264618, - 1530.2587399482727, - 1530.3589704036713, - 1530.457849740982, - 1530.5578382015228, - 1530.658446073532, - 1530.757824897766, - 1530.8616199493408, - 1530.960708618164, - 1531.059900522232, - 1531.162596464157, - 1531.2573883533478, - 1531.3600792884827, - 1531.458923816681, - 1531.5627195835114, - 1531.6612637043, - 1531.7576656341553, - 1531.8620171546936, - 1531.9599452018738, - 1532.0599632263184, - 1532.1607375144958, - 1532.259782075882, - 1532.3589525222778, - 1532.4589982032776, - 1532.5596570968628, - 1532.660763502121, - 1532.759989976883, - 1532.859920501709, - 1532.9633507728577, - 1533.0590443611145, - 1533.159485578537, - 1533.2591478824615, - 1533.358909368515, - 1533.4588725566864, - 1533.5592203140259, - 1533.6601333618164, - 1533.758960723877, - 1533.8600804805756, - 1533.9596378803253, - 1534.0594065189362, - 1534.1598281860352, - 1534.2596225738525, - 1534.360122680664, - 1534.4612867832184, - 1534.5604510307312, - 1534.6615297794342, - 1534.76198220253, - 1534.8614101409912, - 1534.9614522457123, - 1535.0600357055664, - 1535.1603939533234, - 1535.2622575759888, - 1535.3602058887482, - 1535.462120294571, - 1535.56028008461, - 1535.6601366996765, - 1535.7611837387085, - 1535.8639693260193, - 1535.9614548683167, - 1536.06116604805, - 1536.1607356071472, - 1536.2609808444977, - 1536.3626313209534, - 1536.4609956741333, - 1536.564481496811, - 1536.6640095710754, - 1536.763158082962, - 1536.8629369735718, - 1536.9626727104187, - 1537.0616796016693, - 1537.1621129512787, - 1537.2617573738098, - 1537.3618972301483, - 1537.462711572647, - 1537.562515258789, - 1537.6621596813202, - 1537.7639846801758, - 1537.8620209693909, - 1537.9622814655304, - 1538.0627496242523, - 1538.1621263027191, - 1538.2627971172333, - 1538.366781949997, - 1538.4637882709503, - 1538.563273191452, - 1538.66330909729, - 1538.7667174339294, - 1538.8636915683746, - 1538.9630060195923, - 1539.063859462738, - 1539.1625623703003, - 1539.2660901546478, - 1539.3630833625793, - 1539.464448928833, - 1539.5636985301971, - 1539.6643221378326, - 1539.7645237445831, - 1539.8643732070923, - 1539.9644606113434, - 1540.0639703273773, - 1540.1641156673431, - 1540.2658836841583, - 1540.3652892112732, - 1540.4671607017517, - 1540.5652508735657, - 1540.669272184372, - 1540.7651839256287, - 1540.8669271469116, - 1540.9673836231232, - 1541.0654036998749, - 1541.1660828590393, - 1541.2674746513367, - 1541.3676433563232, - 1541.4656250476837, - 1541.5665922164917, - 1541.6681351661682, - 1541.7672548294067, - 1541.867030620575, - 1541.9676649570465, - 1542.0670235157013, - 1542.1689057350159, - 1542.2671897411346, - 1542.3672127723694, - 1542.4686870574951, - 1542.5665442943573, - 1542.6705791950226, - 1542.7696046829224, - 1542.8668971061707, - 1542.966644525528, - 1543.0735685825348, - 1543.1732482910156, - 1543.267774105072, - 1543.3676788806915, - 1543.4672544002533, - 1543.5671184062958, - 1543.6677463054657, - 1543.7675108909607, - 1543.8679871559143, - 1543.9693717956543, - 1544.0663883686066, - 1544.1677677631378, - 1544.268888950348, - 1544.3663485050201, - 1544.4664885997772, - 1544.5660860538483, - 1544.6669471263885, - 1544.76717877388, - 1544.8672885894775, - 1544.9685242176056, - 1545.0670084953308, - 1545.1677951812744, - 1545.2673869132996, - 1545.3672273159027, - 1545.467891216278, - 1545.575178861618, - 1545.6677899360657, - 1545.7664551734924, - 1545.8665204048157, - 1545.9671485424042, - 1546.0674130916595, - 1546.1681797504425, - 1546.2676408290863, - 1546.367078781128, - 1546.4679577350616, - 1546.5685453414917, - 1546.6769742965698, - 1546.7727680206299, - 1546.8680868148804, - 1546.9686315059662, - 1547.069181919098, - 1547.167875289917, - 1547.2677521705627, - 1547.3686332702637, - 1547.4707067012787, - 1547.5683662891388, - 1547.6724834442139, - 1547.769639492035, - 1547.8712072372437, - 1547.9770529270172, - 1548.072209596634, - 1548.173274755478, - 1548.2715876102448, - 1548.371628522873, - 1548.4709198474884, - 1548.5714690685272, - 1548.671296596527, - 1548.7715110778809, - 1548.8716838359833, - 1548.97434091568, - 1549.070969581604, - 1549.174753665924, - 1549.2744188308716, - 1549.3733451366425, - 1549.4734070301056, - 1549.5742897987366, - 1549.6723790168762, - 1549.7728595733643, - 1549.8727250099182, - 1549.9772119522095, - 1550.0720105171204, - 1550.1710896492004, - 1550.2725031375885, - 1550.3713836669922, - 1550.4781966209412, - 1550.5779829025269, - 1550.6775233745575, - 1550.774284362793, - 1550.87375998497, - 1550.979849100113, - 1551.0752232074738, - 1551.1747436523438, - 1551.2786514759064, - 1551.3792498111725, - 1551.478197336197, - 1551.579080581665, - 1551.67942070961, - 1551.77863407135, - 1551.880181312561, - 1551.9783499240875, - 1552.0735130310059, - 1552.1743123531342, - 1552.2738902568817, - 1552.3736426830292, - 1552.4735062122345, - 1552.5737590789795, - 1552.6750376224518, - 1552.774917125702, - 1552.874896287918, - 1552.9747967720032, - 1553.0752203464508, - 1553.1760432720184, - 1553.2762243747711, - 1553.3725430965424, - 1553.472339630127, - 1553.5719089508057, - 1553.671792268753, - 1553.7730875015259, - 1553.8719074726105, - 1553.9732356071472, - 1554.072648525238, - 1554.172200679779, - 1554.2724151611328, - 1554.3731021881104, - 1554.4731767177582, - 1554.5727956295013, - 1554.673753976822, - 1554.7773764133453, - 1554.8747208118439, - 1554.9741613864899, - 1555.0747776031494, - 1555.1755096912384, - 1555.279501914978, - 1555.3744592666626, - 1555.4760527610779, - 1555.5740582942963, - 1555.6754522323608, - 1555.7753405570984, - 1555.8802742958069, - 1555.9759588241577, - 1556.074725151062, - 1556.1759669780731, - 1556.2756700515747, - 1556.3753113746643, - 1556.4837319850922, - 1556.5750107765198, - 1556.6751630306244, - 1556.7765123844147, - 1556.8782150745392, - 1556.9785902500153, - 1557.0765113830566, - 1557.1777567863464, - 1557.2783045768738, - 1557.3775517940521, - 1557.4797596931458, - 1557.5780041217804, - 1557.6780152320862, - 1557.7778115272522, - 1557.876960515976, - 1557.9770517349243, - 1558.076621055603, - 1558.180831193924, - 1558.2854754924774, - 1558.3767499923706, - 1558.4804351329803, - 1558.579921722412, - 1558.677288532257, - 1558.7769978046417, - 1558.8778581619263, - 1558.9787356853485, - 1559.0771126747131, - 1559.1767921447754, - 1559.278477191925, - 1559.378291606903, - 1559.4775824546814, - 1559.5807921886444, - 1559.6776638031006, - 1559.778058052063, - 1559.8830723762512, - 1559.9832768440247, - 1560.0840981006622, - 1560.1845769882202, - 1560.2789707183838, - 1560.3786268234253, - 1560.47776389122, - 1560.5785915851593, - 1560.6796667575836, - 1560.7791197299957, - 1560.87948346138, - 1560.978010892868, - 1561.0784831047058, - 1561.1786596775055, - 1561.2765908241272, - 1561.3838136196136, - 1561.4774813652039, - 1561.5815932750702, - 1561.6770639419556, - 1561.7776787281036, - 1561.877956867218, - 1561.9779877662659, - 1562.0776226520538, - 1562.1785109043121, - 1562.2782335281372, - 1562.3815352916718, - 1562.4804756641388, - 1562.5775909423828, - 1562.6809916496277, - 1562.7826879024506, - 1562.8828573226929, - 1562.9838132858276, - 1563.0780189037323, - 1563.1789796352386, - 1563.2802908420563, - 1563.3813588619232, - 1563.480254650116, - 1563.5809354782104, - 1563.680933713913, - 1563.7801339626312, - 1563.880723953247, - 1563.9811205863953, - 1564.0802714824677, - 1564.1794838905334, - 1564.2845251560211, - 1564.3794884681702, - 1564.4791498184204, - 1564.5835678577423, - 1564.6808955669403, - 1564.7788915634155, - 1564.8795139789581, - 1564.9836478233337, - 1565.07950258255, - 1565.1825184822083, - 1565.2819392681122, - 1565.380526304245, - 1565.4812269210815, - 1565.5805473327637, - 1565.684333562851, - 1565.785714149475, - 1565.8849048614502, - 1565.9807634353638, - 1566.0813398361206, - 1566.1810414791107, - 1566.283430814743, - 1566.383866071701, - 1566.484350681305, - 1566.5904591083527, - 1566.6800830364227, - 1566.7800760269165, - 1566.8805696964264, - 1566.9809465408325, - 1567.0811483860016, - 1567.1813688278198, - 1567.2823538780212, - 1567.3819682598114, - 1567.4816749095917, - 1567.5819344520569, - 1567.6825020313263, - 1567.781952381134, - 1567.881548166275, - 1567.982048034668, - 1568.0820636749268, - 1568.1820254325867, - 1568.281239271164, - 1568.3812518119812, - 1568.4811825752258, - 1568.5819082260132, - 1568.6818380355835, - 1568.7822697162628, - 1568.8816404342651, - 1568.9819226264954, - 1569.0865490436554, - 1569.186048746109, - 1569.282539844513, - 1569.3828761577606, - 1569.4822869300842, - 1569.58291721344, - 1569.6838479042053, - 1569.7846109867096, - 1569.8823783397675, - 1569.9836070537567, - 1570.0831260681152, - 1570.1819534301758, - 1570.2878515720367, - 1570.3924379348755, - 1570.4909138679504, - 1570.5902736186981, - 1570.6988174915314, - 1570.7904138565063, - 1570.8904962539673, - 1570.9899044036865, - 1571.0898532867432, - 1571.1898276805878, - 1571.289258480072, - 1571.3903584480286, - 1571.4897434711456, - 1571.5904321670532, - 1571.6920642852783, - 1571.7911806106567, - 1571.8918182849884, - 1571.9967155456543, - 1572.1017162799835, - 1572.2009263038635, - 1572.2912111282349, - 1572.3967843055725, - 1572.4991810321808, - 1572.5943253040314, - 1572.6906354427338, - 1572.7905294895172, - 1572.891780614853, - 1572.9911139011383, - 1573.0927135944366, - 1573.1920285224915 - ], - "y": [ - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, + 90 + ] + } + ], + "layout": { + "autosize": false, + "font": { + "color": "black", + "family": "Courier New, monospace", + "size": 22 + }, + "height": 600, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Range of Motion hipRight" + }, + "width": 750, + "xaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "time [s]" + } + }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "ROM [gradi]" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "line": { + "color": "blue", + "width": 3 + }, + "mode": "lines", + "name": "Andamento Reale", + "type": "scatter", + "x": [ + 364.45887899398804, + 364.5586404800415, + 364.6589159965515, + 364.7593548297882, + 364.8601448535919, + 364.96894550323486, + 365.0596868991852, + 365.1594166755676, + 365.25956082344055, + 365.3596260547638, + 365.4601356983185, + 365.55979108810425, + 365.6599338054657, + 365.760290145874, + 365.8600797653198, + 365.9602725505829, + 366.0603938102722, + 366.16379594802856, + 366.2636842727661, + 366.3638548851013, + 366.4605884552002, + 366.5609917640686, + 366.6607811450958, + 366.7835304737091, + 366.86488342285156, + 366.96648716926575, + 367.0610132217407, + 367.1611726284027, + 367.26143312454224, + 367.36129570007324, + 367.46194195747375, + 367.5621943473816, + 367.6617558002472, + 367.76181387901306, + 367.8632423877716, + 367.9623694419861, + 368.0634768009186, + 368.16354393959045, + 368.26345467567444, + 368.3634202480316, + 368.4639570713043, + 368.56341767311096, + 368.66284465789795, + 368.76342129707336, + 368.8643660545349, + 368.96563172340393, + 369.06455993652344, + 369.16477060317993, + 369.26576590538025, + 369.3649263381958, + 369.46443724632263, + 369.564484834671, + 369.6652081012726, + 369.7659890651703, + 369.86567997932434, + 369.9659514427185, + 370.0671544075012, + 370.1666123867035, + 370.266783952713, + 370.36477303504944, + 370.4668548107147, + 370.565545797348, + 370.6652846336365, + 370.7655713558197, + 370.8653576374054, + 370.96653938293457, + 371.0674316883087, + 371.1659688949585, + 371.26658487319946, + 371.3692162036896, + 371.46680188179016, + 371.56940364837646, + 371.66719913482666, + 371.7668056488037, + 371.86815881729126, + 371.9680743217468, + 372.0671577453613, + 372.1683523654938, + 372.2659475803375, + 372.3691494464874, + 372.46960973739624, + 372.5661597251892, + 372.66928935050964, + 372.7676477432251, + 372.8702368736267, + 372.9683094024658, + 373.06783747673035, + 373.1671121120453, + 373.26922821998596, + 373.36808013916016, + 373.46855306625366, + 373.5675835609436, + 373.66880536079407, + 373.76876640319824, + 373.8698561191559, + 373.97192335128784, + 374.0674250125885, + 374.16755986213684, + 374.2683062553406, + 374.3683798313141, + 374.46939849853516, + 374.56834268569946, + 374.66983461380005, + 374.7691607475281, + 374.8697361946106, + 374.9699294567108, + 375.06860613822937, + 375.16787028312683, + 375.26893734931946, + 375.3684616088867, + 375.46800565719604, + 375.572505235672, + 375.66814947128296, + 375.77130460739136, + 375.86928486824036, + 375.9735300540924, + 376.0717408657074, + 376.1719069480896, + 376.27218413352966, + 376.37700939178467, + 376.4729585647583, + 376.568984746933, + 376.6694688796997, + 376.7690782546997, + 376.8701825141907, + 376.96993613243103, + 377.06991147994995, + 377.17006039619446, + 377.2700288295746, + 377.369996547699, + 377.47222781181335, + 377.57026195526123, + 377.6698634624481, + 377.77056527137756, + 377.87061953544617, + 377.97315883636475, + 378.07047605514526, + 378.17071175575256, + 378.2701976299286, + 378.37180352211, + 378.4711010456085, + 378.57070755958557, + 378.67058849334717, + 378.77225136756897, + 378.8715682029724, + 378.97123861312866, + 379.0709683895111, + 379.17172718048096, + 379.2713677883148, + 379.37117290496826, + 379.4718773365021, + 379.5713415145874, + 379.6712350845337, + 379.7715103626251, + 379.8717985153198, + 379.97728991508484, + 380.0728027820587, + 380.1717813014984, + 380.27346563339233, + 380.3715305328369, + 380.47183561325073, + 380.5720341205597, + 380.6718740463257, + 380.7727301120758, + 380.87255120277405, + 380.9730746746063, + 381.0756416320801, + 381.17266750335693 + ], + "y": [ + 78.59057551943236, + 78.60520513697134, + 78.67857135755567, + 78.6255172449992, + 78.60964954110729, + 77.81501675964026, + 77.81501675964026, + 78.589804429657, + 78.54792793928301, + 78.7131319886003, + 78.61081323730627, + 78.6298561560929, + 78.62107686605954, + 78.61550256398839, + 78.63020008278741, + 78.64303213712454, + 78.69114577542383, + 77.84540556248541, + 77.80227495247412, + 77.82504839214664, + 76.98265154421196, + 76.92613431804715, + 76.96845387621319, + 76.8904991238367, + 76.9557411240515, + 76.99669248493295, + 76.94842679309671, + 76.97022165761375, + 76.92760969923165, + 76.9361376821527, + 76.9967909849449, + 77.06687428742377, + 77.04467124662962, + 77.88370216873501, + 77.80815462066582, + 77.78437569063443, + 77.83596042155244, + 76.98076358791525, + 76.98763822334749, + 76.93157643217313, + 77.02115349601299, + 77.90807414700737, + 77.81560810545349, + 77.89076727801329, + 77.05864014982421, + 77.04579940070866, + 77.87769520582209, + 77.80322464137649, + 77.82516839935691, + 77.81000538626787, + 76.97078209110907, + 77.80833949737791, + 77.83233623942718, + 77.01395172793828, + 76.99439395149848, + 77.01037979714903, + 77.81596382044489, + 78.66342308810269, + 78.684981481584, + 78.61589303041, + 78.60200930254881, + 77.80656740203477, + 77.78463157170454, + 78.6548492273598, + 77.81460864526402, + 78.65541227374868, + 77.79378836813248, + 77.80377579175806, + 78.70606309452461, + 77.82265745996898, + 78.7105849785726, + 79.97306648899206, + 79.97306648899206, + 79.612391891846, + 78.09951041642638, + 75.90858323246917, + 75.21085442057965, + 73.22268742536264, + 73.36547152986576, + 72.092931971463, + 71.086999347889, + 71.086999347889, + 70.18578289926482, + 67.96817106397485, + 66.91598880910571, + 66.77192594771275, + 66.77192594771275, + 65.82203360794989, + 66.80388079960379, + 69.71127670137247, + 69.71127670137247, + 70.241871685712, + 70.241871685712, + 68.97198449790542, + 67.25714071244451, + 67.25714071244451, + 66.73250132566311, + 68.18240462254892, + 68.38686679259068, + 69.10127079704775, + 70.10974344038492, + 69.54674306500758, + 69.06605076009086, + 69.33990869349209, + 69.09181396434792, + 68.37195326868463, + 67.62364341996086, + 70.19314070771314, + 75.86059219001686, + 75.37771832540218, + 69.87288976517848, + 68.94067392760162, + 68.92294243440084, + 68.92736521048218, + 68.27776229783649, + 68.65864483107246, + 68.65864483107246, + 69.02588765808385, + 69.63212515897703, + 69.56214834301534, + 69.49396680650352, + 69.51992684374463, + 69.45349841453323, + 68.95060200977308, + 67.5764630514907, + 65.81071501094304, + 66.07037782379571, + 67.56522598400154, + 68.72130821303313, + 68.72810235224364, + 68.70273023239574, + 68.74240319873269, + 68.5584664055126, + 69.22181707211993, + 71.46074495751265, + 108.98493349576461, + 109.77254044478202, + 110.00094078844785, + 110.00094078844785, + 73.9093603620126, + 71.86318237174177, + 71.1101131479553, + 71.1101131479553, + 70.70491608857868, + 70.70591122591432, + 71.63146365409509, + 72.97734190337783, + 72.97734190337783, + 74.04512561183302, + 73.50752463063358, + 73.50752463063358, + 72.37199961381765, + 72.9886314503548, + 72.9886314503548, + 74.19493614416808, + 75.50495140308001, + 75.50495140308001, + 75.54777312892571, + 76.65256258223165, + 76.49055019074376, + 76.40587815933726, + 75.64468831237266, + 74.40208192031639, + 75.2438244375482, + 75.35502357216927, + 75.3749966105233, + 75.29374743413064 + ] + } + ], + "layout": { + "autosize": false, + "font": { + "color": "black", + "family": "Courier New, monospace", + "size": 22 + }, + "height": 600, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Range of Motion kneeRight" + }, + "width": 750, + "xaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "time [s]" + } + }, + "yaxis": { + "title": { + "font": { + "color": "#7f7f7f", + "family": "Courier New, monospace", + "size": 18 + }, + "text": "ROM [gradi]" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "line": { + "color": "blue", + "width": 3 + }, + "mode": "lines", + "name": "Andamento Reale", + "type": "scatter", + "x": [ + 364.45887899398804, + 364.5586404800415, + 364.6589159965515, + 364.7593548297882, + 364.8601448535919, + 364.96894550323486, + 365.0596868991852, + 365.1594166755676, + 365.25956082344055, + 365.3596260547638, + 365.4601356983185, + 365.55979108810425, + 365.6599338054657, + 365.760290145874, + 365.8600797653198, + 365.9602725505829, + 366.0603938102722, + 366.16379594802856, + 366.2636842727661, + 366.3638548851013, + 366.4605884552002, + 366.5609917640686, + 366.6607811450958, + 366.7835304737091, + 366.86488342285156, + 366.96648716926575, + 367.0610132217407, + 367.1611726284027, + 367.26143312454224, + 367.36129570007324, + 367.46194195747375, + 367.5621943473816, + 367.6617558002472, + 367.76181387901306, + 367.8632423877716, + 367.9623694419861, + 368.0634768009186, + 368.16354393959045, + 368.26345467567444, + 368.3634202480316, + 368.4639570713043, + 368.56341767311096, + 368.66284465789795, + 368.76342129707336, + 368.8643660545349, + 368.96563172340393, + 369.06455993652344, + 369.16477060317993, + 369.26576590538025, + 369.3649263381958, + 369.46443724632263, + 369.564484834671, + 369.6652081012726, + 369.7659890651703, + 369.86567997932434, + 369.9659514427185, + 370.0671544075012, + 370.1666123867035, + 370.266783952713, + 370.36477303504944, + 370.4668548107147, + 370.565545797348, + 370.6652846336365, + 370.7655713558197, + 370.8653576374054, + 370.96653938293457, + 371.0674316883087, + 371.1659688949585, + 371.26658487319946, + 371.3692162036896, + 371.46680188179016, + 371.56940364837646, + 371.66719913482666, + 371.7668056488037, + 371.86815881729126, + 371.9680743217468, + 372.0671577453613, + 372.1683523654938, + 372.2659475803375, + 372.3691494464874, + 372.46960973739624, + 372.5661597251892, + 372.66928935050964, + 372.7676477432251, + 372.8702368736267, + 372.9683094024658, + 373.06783747673035, + 373.1671121120453, + 373.26922821998596, + 373.36808013916016, + 373.46855306625366, + 373.5675835609436, + 373.66880536079407, + 373.76876640319824, + 373.8698561191559, + 373.97192335128784, + 374.0674250125885, + 374.16755986213684, + 374.2683062553406, + 374.3683798313141, + 374.46939849853516, + 374.56834268569946, + 374.66983461380005, + 374.7691607475281, + 374.8697361946106, + 374.9699294567108, + 375.06860613822937, + 375.16787028312683, + 375.26893734931946, + 375.3684616088867, + 375.46800565719604, + 375.572505235672, + 375.66814947128296, + 375.77130460739136, + 375.86928486824036, + 375.9735300540924, + 376.0717408657074, + 376.1719069480896, + 376.27218413352966, + 376.37700939178467, + 376.4729585647583, + 376.568984746933, + 376.6694688796997, + 376.7690782546997, + 376.8701825141907, + 376.96993613243103, + 377.06991147994995, + 377.17006039619446, + 377.2700288295746, + 377.369996547699, + 377.47222781181335, + 377.57026195526123, + 377.6698634624481, + 377.77056527137756, + 377.87061953544617, + 377.97315883636475, + 378.07047605514526, + 378.17071175575256, + 378.2701976299286, + 378.37180352211, + 378.4711010456085, + 378.57070755958557, + 378.67058849334717, + 378.77225136756897, + 378.8715682029724, + 378.97123861312866, + 379.0709683895111, + 379.17172718048096, + 379.2713677883148, + 379.37117290496826, + 379.4718773365021, + 379.5713415145874, + 379.6712350845337, + 379.7715103626251, + 379.8717985153198, + 379.97728991508484, + 380.0728027820587, + 380.1717813014984, + 380.27346563339233, + 380.3715305328369, + 380.47183561325073, + 380.5720341205597, + 380.6718740463257, + 380.7727301120758, + 380.87255120277405, + 380.9730746746063, + 381.0756416320801, + 381.17266750335693 + ], + "y": [ 90, 90, 90, @@ -15251,9 +8399,9 @@ } }, "text/html": [ - "