[ Launch: time story ] de58d38f527f97da543d by jasonkolb
[ Launch: time story ] 56bddc104d346ddfab9a by jasonkolb
-
-
Save jasonkolb/de58d38f527f97da543d to your computer and use it in GitHub Desktop.
time story 2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| {"description":"time story 2","endpoint":"","display":"svg","public":true,"require":[],"fileconfigs":{"inlet.js":{"default":true,"vim":false,"emacs":false,"fontSize":12},"inlet.css":{"default":true,"vim":false,"emacs":false,"fontSize":12},"_.md":{"default":true,"vim":false,"emacs":false,"fontSize":12},"config.json":{"default":true,"vim":false,"emacs":false,"fontSize":12}},"fullscreen":false,"play":false,"loop":false,"restart":false,"autoinit":true,"pause":true,"loop_type":"pingpong","bv":false,"nclones":15,"clone_opacity":0.4,"duration":3000,"ease":"linear","dt":0.01,"ajax-caching":true,"thumbnail":"http://i.imgur.com/rHIWKdD.png"} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| path { | |
| fill-rule: evenodd; | |
| fill: #aaa; | |
| fill-opacity: 0; | |
| /* stroke: #27c83a; */ | |
| stroke-width: 3px; | |
| } | |
| rect { | |
| fill-rule: evenodd; | |
| fill: #000; | |
| stroke: #fff; | |
| stroke-width: 3px; | |
| } | |
| svg { | |
| background: #333; | |
| fill: black; | |
| } | |
| circle { | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // what about cohort size? | |
| var margin = {top: 20, right: 55, bottom: 30, left: 40}, | |
| width = 800 - margin.left - margin.right, | |
| height = 500 - margin.top - margin.bottom; | |
| var svg = d3.select("svg") | |
| .attr('w', width) | |
| .attr('h', height); | |
| var color = d3.scale.category10(); | |
| var historicalData = | |
| [ | |
| {"train":1, "historicalData" :[ | |
| {"day":1,"Train":1,"HealthScore": 90, "CapacityScore": 100, "Event": "Fix"}, | |
| {"day":2,"Train":1,"HealthScore": 90, "CapacityScore": 100, "Event": ""}, | |
| {"day":3,"Train":1,"HealthScore": 91, "CapacityScore": 100, "Event": ""}, | |
| {"day":4,"Train":1,"HealthScore": 91, "CapacityScore": 100, "Event": ""}, | |
| {"day":5,"Train":1,"HealthScore": 91, "CapacityScore": 99, "Event": ""}, | |
| {"day":6,"Train":1,"HealthScore": 92, "CapacityScore": 99, "Event": ""}, | |
| {"day":7,"Train":1,"HealthScore": 92, "CapacityScore": 99, "Event": ""}, | |
| {"day":8,"Train":1,"HealthScore": 92, "CapacityScore": 99, "Event": ""}, | |
| {"day":9,"Train":1,"HealthScore": 93, "CapacityScore": 99, "Event": ""}, | |
| {"day":10,"Train":1,"HealthScore": 93, "CapacityScore": 99, "Event": ""}, | |
| {"day":11,"Train":1,"HealthScore": 93, "CapacityScore": 98, "Event": ""}, | |
| {"day":12,"Train":1,"HealthScore": 94, "CapacityScore": 98, "Event": ""}, | |
| {"day":13,"Train":1,"HealthScore": 94, "CapacityScore": 98, "Event": ""}, | |
| {"day":14,"Train":1,"HealthScore": 94, "CapacityScore": 98, "Event": ""}, | |
| {"day":15,"Train":1,"HealthScore": 95, "CapacityScore": 98, "Event": ""}, | |
| {"day":16,"Train":1,"HealthScore": 95, "CapacityScore": 98, "Event": ""}, | |
| {"day":17,"Train":1,"HealthScore": 95, "CapacityScore": 97, "Event": ""}, | |
| {"day":18,"Train":1,"HealthScore": 96, "CapacityScore": 97, "Event": ""}, | |
| {"day":19,"Train":1,"HealthScore": 96, "CapacityScore": 97, "Event": ""}, | |
| {"day":20,"Train":1,"HealthScore": 96, "CapacityScore": 97, "Event": ""}, | |
| {"day":21,"Train":1,"HealthScore": 97, "CapacityScore": 97, "Event": ""}, | |
| {"day":22,"Train":1,"HealthScore": 97, "CapacityScore": 97, "Event": ""}, | |
| {"day":23,"Train":1,"HealthScore": 97, "CapacityScore": 96, "Event": ""}, | |
| {"day":24,"Train":1,"HealthScore": 98, "CapacityScore": 96, "Event": ""}, | |
| {"day":25,"Train":1,"HealthScore": 98, "CapacityScore": 96, "Event": "Fault"}, | |
| {"day":26,"Train":1,"HealthScore": 98, "CapacityScore": 96, "Event": ""}, | |
| {"day":27,"Train":1,"HealthScore": 97, "CapacityScore": 96, "Event": ""}, | |
| {"day":28,"Train":1,"HealthScore": 97, "CapacityScore": 96, "Event": ""}, | |
| {"day":29,"Train":1,"HealthScore": 96, "CapacityScore": 96, "Event": ""}, | |
| {"day":30,"Train":1,"HealthScore": 96, "CapacityScore": 95, "Event": "Fix"}, | |
| {"day":31,"Train":1,"HealthScore": 96, "CapacityScore": 95, "Event": ""}, | |
| {"day":32,"Train":1,"HealthScore": 95, "CapacityScore": 95, "Event": ""}, | |
| {"day":33,"Train":1,"HealthScore": 95, "CapacityScore": 95, "Event": ""}, | |
| {"day":34,"Train":1,"HealthScore": 95, "CapacityScore": 95, "Event": ""}, | |
| {"day":35,"Train":1,"HealthScore": 94, "CapacityScore": 95, "Event": ""}, | |
| {"day":36,"Train":1,"HealthScore": 94, "CapacityScore": 95, "Event": ""}, | |
| {"day":37,"Train":1,"HealthScore": 94, "CapacityScore": 94, "Event": ""}, | |
| {"day":38,"Train":1,"HealthScore": 93, "CapacityScore": 94, "Event": ""}, | |
| {"day":39,"Train":1,"HealthScore": 93, "CapacityScore": 94, "Event": ""}, | |
| {"day":40,"Train":1,"HealthScore": 93, "CapacityScore": 94, "Event": ""}, | |
| {"day":41,"Train":1,"HealthScore": 92, "CapacityScore": 94, "Event": ""}, | |
| {"day":42,"Train":1,"HealthScore": 92, "CapacityScore": 94, "Event": ""}, | |
| {"day":43,"Train":1,"HealthScore": 92, "CapacityScore": 94, "Event": ""}, | |
| {"day":44,"Train":1,"HealthScore": 91, "CapacityScore": 94, "Event": ""}, | |
| {"day":45,"Train":1,"HealthScore": 91, "CapacityScore": 93, "Event": ""}, | |
| {"day":46,"Train":1,"HealthScore": 90, "CapacityScore": 93, "Event": ""}, | |
| {"day":47,"Train":1,"HealthScore": 90, "CapacityScore": 93, "Event": ""}, | |
| {"day":48,"Train":1,"HealthScore": 90, "CapacityScore": 93, "Event": ""}, | |
| {"day":49,"Train":1,"HealthScore": 89, "CapacityScore": 93, "Event": ""}, | |
| {"day":50,"Train":1,"HealthScore": 89, "CapacityScore": 93, "Event": ""}, | |
| {"day":51,"Train":1,"HealthScore": 89, "CapacityScore": 93, "Event": ""}, | |
| {"day":52,"Train":1,"HealthScore": 88, "CapacityScore": 93, "Event": ""}, | |
| {"day":53,"Train":1,"HealthScore": 88, "CapacityScore": 92, "Event": ""}, | |
| {"day":54,"Train":1,"HealthScore": 88, "CapacityScore": 92, "Event": ""}, | |
| {"day":55,"Train":1,"HealthScore": 87, "CapacityScore": 92, "Event": ""}, | |
| {"day":56,"Train":1,"HealthScore": 87, "CapacityScore": 92, "Event": ""}, | |
| {"day":57,"Train":1,"HealthScore": 87, "CapacityScore": 92, "Event": ""}, | |
| {"day":58,"Train":1,"HealthScore": 86, "CapacityScore": 92, "Event": ""}, | |
| {"day":59,"Train":1,"HealthScore": 86, "CapacityScore": 92, "Event": ""}, | |
| {"day":60,"Train":1,"HealthScore": 86, "CapacityScore": 92, "Event": ""}, | |
| {"day":61,"Train":1,"HealthScore": 85, "CapacityScore": 92, "Event": ""}, | |
| {"day":62,"Train":1,"HealthScore": 85, "CapacityScore": 91, "Event": ""}, | |
| {"day":63,"Train":1,"HealthScore": 84, "CapacityScore": 91, "Event": ""}, | |
| {"day":64,"Train":1,"HealthScore": 84, "CapacityScore": 91, "Event": ""}, | |
| {"day":65,"Train":1,"HealthScore": 84, "CapacityScore": 91, "Event": ""}, | |
| {"day":66,"Train":1,"HealthScore": 83, "CapacityScore": 91, "Event": ""}, | |
| {"day":67,"Train":1,"HealthScore": 83, "CapacityScore": 91, "Event": ""}, | |
| {"day":68,"Train":1,"HealthScore": 83, "CapacityScore": 91, "Event": ""}, | |
| {"day":69,"Train":1,"HealthScore": 82, "CapacityScore": 91, "Event": ""}, | |
| {"day":70,"Train":1,"HealthScore": 82, "CapacityScore": 91, "Event": ""}, | |
| {"day":71,"Train":1,"HealthScore": 81, "CapacityScore": 90, "Event": ""}, | |
| {"day":72,"Train":1,"HealthScore": 81, "CapacityScore": 90, "Event": ""}, | |
| {"day":73,"Train":1,"HealthScore": 81, "CapacityScore": 90, "Event": ""}, | |
| {"day":74,"Train":1,"HealthScore": 80, "CapacityScore": 90, "Event": ""}, | |
| {"day":75,"Train":1,"HealthScore": 80, "CapacityScore": 90, "Event": "Fault"}, | |
| {"day":76,"Train":1,"HealthScore": 80, "CapacityScore": 88, "Event": ""}, | |
| {"day":77,"Train":1,"HealthScore": 79, "CapacityScore": 86, "Event": ""}, | |
| {"day":78,"Train":1,"HealthScore": 79, "CapacityScore": 84, "Event": ""}, | |
| {"day":79,"Train":1,"HealthScore": 78, "CapacityScore": 82, "Event": ""}, | |
| {"day":80,"Train":1,"HealthScore": 78, "CapacityScore": 80, "Event": ""}, | |
| {"day":81,"Train":1,"HealthScore": 77, "CapacityScore": 78, "Event": ""}, | |
| {"day":82,"Train":1,"HealthScore": 77, "CapacityScore": 76, "Event": ""}, | |
| {"day":83,"Train":1,"HealthScore": 76, "CapacityScore": 74, "Event": ""}, | |
| {"day":84,"Train":1,"HealthScore": 76, "CapacityScore": 72, "Event": ""}, | |
| {"day":85,"Train":1,"HealthScore": 75, "CapacityScore": 70, "Event": "Fix"}, | |
| {"day":86,"Train":1,"HealthScore": 76, "CapacityScore": 75, "Event": ""}, | |
| {"day":87,"Train":1,"HealthScore": 77, "CapacityScore": 80, "Event": ""}, | |
| {"day":88,"Train":1,"HealthScore": 78, "CapacityScore": 85, "Event": ""}, | |
| {"day":89,"Train":1,"HealthScore": 79, "CapacityScore": 90, "Event": ""}, | |
| {"day":90,"Train":1,"HealthScore": 80, "CapacityScore": 95, "Event": ""}]}, | |
| {"train":2, "historicalData" :[ | |
| {"day":1,"Train":2,"HealthScore": 95, "CapacityScore": 100, "Event": "Fix"}, | |
| {"day":2,"Train":2,"HealthScore": 95, "CapacityScore": 100, "Event": ""}, | |
| {"day":3,"Train":2,"HealthScore": 95, "CapacityScore": 100, "Event": ""}, | |
| {"day":4,"Train":2,"HealthScore": 95, "CapacityScore": 99, "Event": ""}, | |
| {"day":5,"Train":2,"HealthScore": 95, "CapacityScore": 99, "Event": ""}, | |
| {"day":6,"Train":2,"HealthScore": 95, "CapacityScore": 99, "Event": ""}, | |
| {"day":7,"Train":2,"HealthScore": 95, "CapacityScore": 99, "Event": ""}, | |
| {"day":8,"Train":2,"HealthScore": 95, "CapacityScore": 99, "Event": ""}, | |
| {"day":9,"Train":2,"HealthScore": 95, "CapacityScore": 99, "Event": ""}, | |
| {"day":10,"Train":2,"HealthScore": 95, "CapacityScore": 98, "Event": ""}, | |
| {"day":11,"Train":2,"HealthScore": 95, "CapacityScore": 98, "Event": ""}, | |
| {"day":12,"Train":2,"HealthScore": 95, "CapacityScore": 98, "Event": ""}, | |
| {"day":13,"Train":2,"HealthScore": 95, "CapacityScore": 98, "Event": ""}, | |
| {"day":14,"Train":2,"HealthScore": 95, "CapacityScore": 98, "Event": ""}, | |
| {"day":15,"Train":2,"HealthScore": 95, "CapacityScore": 97, "Event": ""}, | |
| {"day":16,"Train":2,"HealthScore": 95, "CapacityScore": 97, "Event": ""}, | |
| {"day":17,"Train":2,"HealthScore": 95, "CapacityScore": 97, "Event": ""}, | |
| {"day":18,"Train":2,"HealthScore": 95, "CapacityScore": 97, "Event": ""}, | |
| {"day":19,"Train":2,"HealthScore": 95, "CapacityScore": 97, "Event": ""}, | |
| {"day":20,"Train":2,"HealthScore": 95, "CapacityScore": 96, "Event": ""}, | |
| {"day":21,"Train":2,"HealthScore": 95, "CapacityScore": 96, "Event": ""}, | |
| {"day":22,"Train":2,"HealthScore": 95, "CapacityScore": 96, "Event": ""}, | |
| {"day":23,"Train":2,"HealthScore": 95, "CapacityScore": 96, "Event": ""}, | |
| {"day":24,"Train":2,"HealthScore": 95, "CapacityScore": 96, "Event": ""}, | |
| {"day":25,"Train":2,"HealthScore": 95, "CapacityScore": 96, "Event": "Fault"}, | |
| {"day":26,"Train":2,"HealthScore": 95, "CapacityScore": 95, "Event": ""}, | |
| {"day":27,"Train":2,"HealthScore": 95, "CapacityScore": 95, "Event": ""}, | |
| {"day":28,"Train":2,"HealthScore": 94, "CapacityScore": 95, "Event": ""}, | |
| {"day":29,"Train":2,"HealthScore": 94, "CapacityScore": 95, "Event": ""}, | |
| {"day":30,"Train":2,"HealthScore": 94, "CapacityScore": 95, "Event": ""}, | |
| {"day":31,"Train":2,"HealthScore": 94, "CapacityScore": 94, "Event": ""}, | |
| {"day":32,"Train":2,"HealthScore": 94, "CapacityScore": 94, "Event": ""}, | |
| {"day":33,"Train":2,"HealthScore": 93, "CapacityScore": 94, "Event": ""}, | |
| {"day":34,"Train":2,"HealthScore": 93, "CapacityScore": 94, "Event": ""}, | |
| {"day":35,"Train":2,"HealthScore": 93, "CapacityScore": 94, "Event": "NDF"}, | |
| {"day":36,"Train":2,"HealthScore": 92, "CapacityScore": 93, "Event": ""}, | |
| {"day":37,"Train":2,"HealthScore": 92, "CapacityScore": 93, "Event": ""}, | |
| {"day":38,"Train":2,"HealthScore": 91, "CapacityScore": 93, "Event": ""}, | |
| {"day":39,"Train":2,"HealthScore": 91, "CapacityScore": 93, "Event": ""}, | |
| {"day":40,"Train":2,"HealthScore": 90, "CapacityScore": 93, "Event": ""}, | |
| {"day":41,"Train":2,"HealthScore": 90, "CapacityScore": 93, "Event": ""}, | |
| {"day":42,"Train":2,"HealthScore": 89, "CapacityScore": 92, "Event": ""}, | |
| {"day":43,"Train":2,"HealthScore": 89, "CapacityScore": 92, "Event": ""}, | |
| {"day":44,"Train":2,"HealthScore": 88, "CapacityScore": 92, "Event": "Fault"}, | |
| {"day":45,"Train":2,"HealthScore": 88, "CapacityScore": 92, "Event": ""}, | |
| {"day":46,"Train":2,"HealthScore": 87, "CapacityScore": 92, "Event": ""}, | |
| {"day":47,"Train":2,"HealthScore": 87, "CapacityScore": 92, "Event": ""}, | |
| {"day":48,"Train":2,"HealthScore": 86, "CapacityScore": 92, "Event": ""}, | |
| {"day":49,"Train":2,"HealthScore": 86, "CapacityScore": 92, "Event": ""}, | |
| {"day":50,"Train":2,"HealthScore": 85, "CapacityScore": 93, "Event": ""}, | |
| {"day":51,"Train":2,"HealthScore": 85, "CapacityScore": 93, "Event": ""}, | |
| {"day":52,"Train":2,"HealthScore": 84, "CapacityScore": 93, "Event": ""}, | |
| {"day":53,"Train":2,"HealthScore": 84, "CapacityScore": 93, "Event": ""}, | |
| {"day":54,"Train":2,"HealthScore": 83, "CapacityScore": 93, "Event": "Fix"}, | |
| {"day":55,"Train":2,"HealthScore": 83, "CapacityScore": 93, "Event": ""}, | |
| {"day":56,"Train":2,"HealthScore": 82, "CapacityScore": 93, "Event": ""}, | |
| {"day":57,"Train":2,"HealthScore": 82, "CapacityScore": 93, "Event": ""}, | |
| {"day":58,"Train":2,"HealthScore": 82, "CapacityScore": 93, "Event": ""}, | |
| {"day":59,"Train":2,"HealthScore": 82, "CapacityScore": 93, "Event": ""}, | |
| {"day":60,"Train":2,"HealthScore": 81, "CapacityScore": 94, "Event": ""}, | |
| {"day":61,"Train":2,"HealthScore": 81, "CapacityScore": 94, "Event": ""}, | |
| {"day":62,"Train":2,"HealthScore": 81, "CapacityScore": 94, "Event": ""}, | |
| {"day":63,"Train":2,"HealthScore": 81, "CapacityScore": 94, "Event": ""}, | |
| {"day":64,"Train":2,"HealthScore": 80, "CapacityScore": 94, "Event": ""}, | |
| {"day":65,"Train":2,"HealthScore": 80, "CapacityScore": 94, "Event": ""}, | |
| {"day":66,"Train":2,"HealthScore": 78, "CapacityScore": 94, "Event": ""}, | |
| {"day":67,"Train":2,"HealthScore": 76, "CapacityScore": 94, "Event": ""}, | |
| {"day":68,"Train":2,"HealthScore": 74, "CapacityScore": 94, "Event": ""}, | |
| {"day":69,"Train":2,"HealthScore": 72, "CapacityScore": 94, "Event": ""}, | |
| {"day":70,"Train":2,"HealthScore": 70, "CapacityScore": 95, "Event": ""}, | |
| {"day":71,"Train":2,"HealthScore": 68, "CapacityScore": 95, "Event": ""}, | |
| {"day":72,"Train":2,"HealthScore": 66, "CapacityScore": 95, "Event": ""}, | |
| {"day":73,"Train":2,"HealthScore": 64, "CapacityScore": 95, "Event": ""}, | |
| {"day":74,"Train":2,"HealthScore": 62, "CapacityScore": 95, "Event": ""}, | |
| {"day":75,"Train":2,"HealthScore": 60, "CapacityScore": 95, "Event": ""}, | |
| {"day":76,"Train":2,"HealthScore": 58, "CapacityScore": 94, "Event": ""}, | |
| {"day":77,"Train":2,"HealthScore": 56, "CapacityScore": 93, "Event": ""}, | |
| {"day":78,"Train":2,"HealthScore": 54, "CapacityScore": 92, "Event": ""}, | |
| {"day":79,"Train":2,"HealthScore": 52, "CapacityScore": 91, "Event": ""}, | |
| {"day":80,"Train":2,"HealthScore": 50, "CapacityScore": 90, "Event": "Fault"}, | |
| {"day":81,"Train":2,"HealthScore": 45, "CapacityScore": 88, "Event": ""}, | |
| {"day":82,"Train":2,"HealthScore": 40, "CapacityScore": 86, "Event": ""}, | |
| {"day":83,"Train":2,"HealthScore": 35, "CapacityScore": 84, "Event": ""}, | |
| {"day":84,"Train":2,"HealthScore": 30, "CapacityScore": 82, "Event": ""}, | |
| {"day":85,"Train":2,"HealthScore": 25, "CapacityScore": 80, "Event": "NDF"}, | |
| {"day":86,"Train":2,"HealthScore": 28, "CapacityScore": 80, "Event": ""}, | |
| {"day":87,"Train":2,"HealthScore": 31, "CapacityScore": 80, "Event": ""}, | |
| {"day":88,"Train":2,"HealthScore": 34, "CapacityScore": 80, "Event": ""}, | |
| {"day":89,"Train":2,"HealthScore": 37, "CapacityScore": 80, "Event": ""}, | |
| {"day":90,"Train":2,"HealthScore": 40, "CapacityScore": 80, "Event": ""}]}, | |
| {"train":3, "historicalData" :[ | |
| {"day":1,"Train":3,"HealthScore": 75, "CapacityScore": 85, "Event": "Fix"}, | |
| {"day":2,"Train":3,"HealthScore": 75, "CapacityScore": 85, "Event": ""}, | |
| {"day":3,"Train":3,"HealthScore": 75, "CapacityScore": 85, "Event": ""}, | |
| {"day":4,"Train":3,"HealthScore": 74, "CapacityScore": 85, "Event": ""}, | |
| {"day":5,"Train":3,"HealthScore": 74, "CapacityScore": 85, "Event": ""}, | |
| {"day":6,"Train":3,"HealthScore": 74, "CapacityScore": 84, "Event": ""}, | |
| {"day":7,"Train":3,"HealthScore": 74, "CapacityScore": 84, "Event": ""}, | |
| {"day":8,"Train":3,"HealthScore": 73, "CapacityScore": 84, "Event": ""}, | |
| {"day":9,"Train":3,"HealthScore": 73, "CapacityScore": 84, "Event": ""}, | |
| {"day":10,"Train":3,"HealthScore": 73, "CapacityScore": 84, "Event": "Fault"}, | |
| {"day":11,"Train":3,"HealthScore": 71, "CapacityScore": 84, "Event": ""}, | |
| {"day":12,"Train":3,"HealthScore": 70, "CapacityScore": 84, "Event": ""}, | |
| {"day":13,"Train":3,"HealthScore": 68, "CapacityScore": 84, "Event": ""}, | |
| {"day":14,"Train":3,"HealthScore": 67, "CapacityScore": 84, "Event": ""}, | |
| {"day":15,"Train":3,"HealthScore": 65, "CapacityScore": 84, "Event": ""}, | |
| {"day":16,"Train":3,"HealthScore": 63, "CapacityScore": 83, "Event": ""}, | |
| {"day":17,"Train":3,"HealthScore": 62, "CapacityScore": 83, "Event": ""}, | |
| {"day":18,"Train":3,"HealthScore": 60, "CapacityScore": 83, "Event": "NDF"}, | |
| {"day":19,"Train":3,"HealthScore": 59, "CapacityScore": 83, "Event": ""}, | |
| {"day":20,"Train":3,"HealthScore": 58, "CapacityScore": 83, "Event": ""}, | |
| {"day":21,"Train":3,"HealthScore": 57, "CapacityScore": 83, "Event": ""}, | |
| {"day":22,"Train":3,"HealthScore": 56, "CapacityScore": 83, "Event": ""}, | |
| {"day":23,"Train":3,"HealthScore": 55, "CapacityScore": 83, "Event": ""}, | |
| {"day":24,"Train":3,"HealthScore": 55, "CapacityScore": 83, "Event": ""}, | |
| {"day":25,"Train":3,"HealthScore": 54, "CapacityScore": 83, "Event": ""}, | |
| {"day":26,"Train":3,"HealthScore": 53, "CapacityScore": 82, "Event": ""}, | |
| {"day":27,"Train":3,"HealthScore": 52, "CapacityScore": 82, "Event": ""}, | |
| {"day":28,"Train":3,"HealthScore": 51, "CapacityScore": 82, "Event": ""}, | |
| {"day":29,"Train":3,"HealthScore": 50, "CapacityScore": 82, "Event": ""}, | |
| {"day":30,"Train":3,"HealthScore": 49, "CapacityScore": 82, "Event": ""}, | |
| {"day":31,"Train":3,"HealthScore": 48, "CapacityScore": 80, "Event": ""}, | |
| {"day":32,"Train":3,"HealthScore": 47, "CapacityScore": 79, "Event": ""}, | |
| {"day":33,"Train":3,"HealthScore": 46, "CapacityScore": 77, "Event": ""}, | |
| {"day":34,"Train":3,"HealthScore": 45, "CapacityScore": 76, "Event": ""}, | |
| {"day":35,"Train":3,"HealthScore": 45, "CapacityScore": 74, "Event": ""}, | |
| {"day":36,"Train":3,"HealthScore": 44, "CapacityScore": 73, "Event": ""}, | |
| {"day":37,"Train":3,"HealthScore": 43, "CapacityScore": 71, "Event": ""}, | |
| {"day":38,"Train":3,"HealthScore": 42, "CapacityScore": 70, "Event": ""}, | |
| {"day":39,"Train":3,"HealthScore": 41, "CapacityScore": 68, "Event": ""}, | |
| {"day":40,"Train":3,"HealthScore": 40, "CapacityScore": 67, "Event": "Fault"}, | |
| {"day":41,"Train":3,"HealthScore": 40, "CapacityScore": 65, "Event": ""}, | |
| {"day":42,"Train":3,"HealthScore": 39, "CapacityScore": 64, "Event": ""}, | |
| {"day":43,"Train":3,"HealthScore": 39, "CapacityScore": 62, "Event": ""}, | |
| {"day":44,"Train":3,"HealthScore": 38, "CapacityScore": 61, "Event": ""}, | |
| {"day":45,"Train":3,"HealthScore": 38, "CapacityScore": 59, "Event": ""}, | |
| {"day":46,"Train":3,"HealthScore": 37, "CapacityScore": 58, "Event": ""}, | |
| {"day":47,"Train":3,"HealthScore": 37, "CapacityScore": 56, "Event": ""}, | |
| {"day":48,"Train":3,"HealthScore": 36, "CapacityScore": 55, "Event": ""}, | |
| {"day":49,"Train":3,"HealthScore": 36, "CapacityScore": 53, "Event": ""}, | |
| {"day":50,"Train":3,"HealthScore": 35, "CapacityScore": 52, "Event": "Fault"}, | |
| {"day":51,"Train":3,"HealthScore": 35, "CapacityScore": 50, "Event": ""}, | |
| {"day":52,"Train":3,"HealthScore": 34, "CapacityScore": 53, "Event": ""}, | |
| {"day":53,"Train":3,"HealthScore": 34, "CapacityScore": 57, "Event": ""}, | |
| {"day":54,"Train":3,"HealthScore": 33, "CapacityScore": 60, "Event": ""}, | |
| {"day":55,"Train":3,"HealthScore": 33, "CapacityScore": 63, "Event": ""}, | |
| {"day":56,"Train":3,"HealthScore": 32, "CapacityScore": 67, "Event": ""}, | |
| {"day":57,"Train":3,"HealthScore": 32, "CapacityScore": 70, "Event": ""}, | |
| {"day":58,"Train":3,"HealthScore": 31, "CapacityScore": 73, "Event": ""}, | |
| {"day":59,"Train":3,"HealthScore": 31, "CapacityScore": 77, "Event": ""}, | |
| {"day":60,"Train":3,"HealthScore": 30, "CapacityScore": 80, "Event": "Fix"}, | |
| {"day":61,"Train":3,"HealthScore": 32, "CapacityScore": 80, "Event": ""}, | |
| {"day":62,"Train":3,"HealthScore": 34, "CapacityScore": 80, "Event": ""}, | |
| {"day":63,"Train":3,"HealthScore": 36, "CapacityScore": 80, "Event": ""}, | |
| {"day":64,"Train":3,"HealthScore": 38, "CapacityScore": 80, "Event": ""}, | |
| {"day":65,"Train":3,"HealthScore": 40, "CapacityScore": 80, "Event": ""}, | |
| {"day":66,"Train":3,"HealthScore": 42, "CapacityScore": 80, "Event": ""}, | |
| {"day":67,"Train":3,"HealthScore": 44, "CapacityScore": 80, "Event": ""}, | |
| {"day":68,"Train":3,"HealthScore": 46, "CapacityScore": 80, "Event": ""}, | |
| {"day":69,"Train":3,"HealthScore": 48, "CapacityScore": 80, "Event": ""}, | |
| {"day":70,"Train":3,"HealthScore": 50, "CapacityScore": 80, "Event": ""}, | |
| {"day":71,"Train":3,"HealthScore": 52, "CapacityScore": 80, "Event": ""}, | |
| {"day":72,"Train":3,"HealthScore": 54, "CapacityScore": 80, "Event": ""}, | |
| {"day":73,"Train":3,"HealthScore": 56, "CapacityScore": 80, "Event": ""}, | |
| {"day":74,"Train":3,"HealthScore": 58, "CapacityScore": 80, "Event": ""}, | |
| {"day":75,"Train":3,"HealthScore": 60, "CapacityScore": 80, "Event": ""}, | |
| {"day":76,"Train":3,"HealthScore": 62, "CapacityScore": 80, "Event": ""}, | |
| {"day":77,"Train":3,"HealthScore": 64, "CapacityScore": 80, "Event": ""}, | |
| {"day":78,"Train":3,"HealthScore": 66, "CapacityScore": 80, "Event": ""}, | |
| {"day":79,"Train":3,"HealthScore": 68, "CapacityScore": 80, "Event": ""}, | |
| {"day":80,"Train":3,"HealthScore": 70, "CapacityScore": 80, "Event": ""}, | |
| {"day":81,"Train":3,"HealthScore": 70, "CapacityScore": 80, "Event": ""}, | |
| {"day":82,"Train":3,"HealthScore": 70, "CapacityScore": 80, "Event": ""}, | |
| {"day":83,"Train":3,"HealthScore": 70, "CapacityScore": 80, "Event": ""}, | |
| {"day":84,"Train":3,"HealthScore": 70, "CapacityScore": 80, "Event": ""}, | |
| {"day":85,"Train":3,"HealthScore": 70, "CapacityScore": 80, "Event": ""}, | |
| {"day":86,"Train":3,"HealthScore": 70, "CapacityScore": 80, "Event": ""}, | |
| {"day":87,"Train":3,"HealthScore": 70, "CapacityScore": 80, "Event": ""}, | |
| {"day":88,"Train":3,"HealthScore": 70, "CapacityScore": 80, "Event": ""}, | |
| {"day":89,"Train":3,"HealthScore": 70, "CapacityScore": 80, "Event": ""}, | |
| {"day":90,"Train":3,"HealthScore": 70, "CapacityScore": 80, "Event": ""}]} | |
| ]; | |
| svg.append("rect") | |
| .attr("x", margin.left + 7) | |
| .attr("y", margin.top) | |
| .attr("width", width - 7) | |
| .attr("height", height); | |
| var trainKeys = d3.keys(historicalData); | |
| var data = historicalData.map(function(d,i) { | |
| return d; | |
| }); | |
| var minHealth = d3.min( data, function( d ) { return d3.min( d.historicalData, function(m) { return m.HealthScore; } ) } ) | |
| var maxHealth = d3.max( data, function( d ) { return d3.max( d.historicalData, function(m) { return m.HealthScore; } ) } ) | |
| var minCapacity = d3.min( data, function( d ) { return d3.min( d.historicalData, function(m) { return m.CapacityScore; } ) } ) | |
| var maxCapacity = d3.max( data, function( d ) { return d3.max( d.historicalData, function(m) { return m.CapacityScore; } ) } ) | |
| var x = d3.scale.linear() | |
| .range([0 + margin.left, width + margin.left]); | |
| var y = d3.scale.linear() | |
| .range([height - margin.top, 0 + margin.bottom]); | |
| //x.domain(data.map(function (d) { return d.Train; })); | |
| x.domain([0,90]); | |
| y.domain([minHealth,maxHealth]); | |
| var series = svg.selectAll(".series") | |
| .data(data) | |
| .enter().append("g") | |
| .attr("class", "series"); | |
| var line = d3.svg.line() | |
| .interpolate("basis") | |
| .x(function(d) { return x(d.day); }) | |
| .y(function(d) { return y(d.HealthScore); }); | |
| var duration = 7976; | |
| // add element and transition in | |
| var path = series.append('path') | |
| .attr('class', 'line') | |
| // does the color of the line really add any value here - is knowing the name important? | |
| .style("stroke", function(d) { return "#f55"; }) | |
| .attr('d', function(d){ return line(d.historicalData) }) | |
| .transition() | |
| .duration(duration) | |
| .attrTween("stroke-dasharray", tweenDash) | |
| function tweenDash() { | |
| var l = this.getTotalLength(), | |
| i = d3.interpolateString("0," + l, l + "," + l); | |
| return function(t) { return i(t); }; | |
| } | |
| var filter = svg.append("defs") | |
| .append("filter") | |
| .attr("id", "blur") | |
| .append("feGaussianBlur") | |
| .attr("stdDeviation", 5); | |
| var circles = svg.selectAll("circle") | |
| .data(data) | |
| .enter() | |
| .append("circle"); | |
| circles.attr("filter", "url(#blur)"); | |
| var circleAttributes = circles | |
| .attr("cx", function (d) { return x(d.historicalData[0].day); }) | |
| .attr("cy", function (d) { return y(d.historicalData[0].HealthScore); }) | |
| .attr("r", function (d) { return 5; }) | |
| .attr("class", function(d) { return "ridealong" + d.train; } ) | |
| .style("fill", function(d) { return color(d.train); }) | |
| var easeparam = "linear"; | |
| // Time to complete one transition / iteration of the circular or elliptical path | |
| var timeparam = 2000; | |
| circleAttributes.transition() | |
| .duration(duration) | |
| .ease(easeparam) | |
| .attrTween("transform", ridealongFn()); | |
| function ridealongFn(){ | |
| // We only use 'd', but list d,i,a as params just to show can have them as params. | |
| // Code only really uses d and t. | |
| return function(d, i, a) { | |
| var xOffset = x(d.historicalData[0].day); | |
| var yOffset = y(d.historicalData[0].HealthScore); | |
| return function(t) { | |
| // 't': what's t? T is the fraction of time (between 0 and 1) since the | |
| // transition began. Handy. | |
| // var t_offset = d.get('offset'); | |
| var t_x, t_y; | |
| console.log(d.historicalData.length * t); | |
| var dataPointIndex = Math.floor(d.historicalData.length * t); | |
| if( dataPointIndex > d.historicalData.length ) | |
| dataPointIndex = d.historicalData.length; | |
| // console.log( dataPointIndex ); | |
| var dataPoint = d.historicalData[dataPointIndex]; | |
| // console.log( dataPoint ); | |
| t_x = x(dataPoint.day) - xOffset; | |
| t_y = y(dataPoint.HealthScore) - yOffset; | |
| /* | |
| // If the data says the element should follow a circular path, do that. | |
| if (d.get('rtype') == 'circle') { | |
| var rotation_radius = d.get('rotr'); | |
| var t_angle = (2 * Math.PI) * t; | |
| var t_x = rotation_radius * Math.cos(t_angle); | |
| var t_y = rotation_radius * Math.sin(t_angle); | |
| } | |
| // Likewise for an ellipse: | |
| if (d.get('rtype') == 'ellipse') { | |
| var rotation_radius_x = d.get('rotrx'); | |
| var rotation_radius_y = d.get('rotry'); | |
| var t_angle = (2 * Math.PI) * t; | |
| var t_x = rotation_radius_x * Math.cos(t_angle); | |
| var t_y = rotation_radius_y * Math.sin(t_angle); | |
| } | |
| return "translate(" + ((width/2) + t_offset + t_x) + "," + (height/2 + t_offset + t_y) + ")"; | |
| */ | |
| return "translate(" + t_x + ", " + t_y + ")"; | |
| }; | |
| }; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment