[ 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 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 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 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