Skip to content

Instantly share code, notes, and snippets.

@jasonkolb
Last active August 29, 2015 14:06
Show Gist options
  • Save jasonkolb/de58d38f527f97da543d to your computer and use it in GitHub Desktop.
Save jasonkolb/de58d38f527f97da543d to your computer and use it in GitHub Desktop.
time story 2
{"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"}
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 {
}
// 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