Last active
November 29, 2021 23:51
-
-
Save tmcw/8153742 to your computer and use it in GitHub Desktop.
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
totalseconds | totalmeters | starttime | sport | |
---|---|---|---|---|
2678 | 6164.9 | 2009-08-30T13:41:31.000Z | Running | |
10656 | 5781.8 | 2009-09-01T23:30:02.000Z | Running | |
1191 | 2601.8 | 2009-09-03T23:07:43.000Z | Running | |
1949 | 6424.6 | 2009-09-05T16:05:28.000Z | Running | |
1136 | 3526.4 | 2009-09-08T23:49:29.000Z | Running | |
2011 | 5447.2 | 2009-09-12T20:44:12.000Z | Running | |
1408 | 4445.9 | 2009-09-16T23:14:56.000Z | Running | |
1051 | 2530.5 | 2009-09-19T20:17:36.000Z | Running | |
1583 | 3666.2 | 2009-09-19T20:37:32.000Z | Running | |
17162 | 6574.3 | 2009-10-04T16:02:12.000Z | Running | |
1106 | 3308.2 | 2009-10-13T22:59:21.000Z | Running | |
1352 | 4367.8 | 2009-11-01T21:14:31.000Z | Running | |
53383 | 14070 | 2009-11-07T21:14:27.000Z | Running | |
1672 | 4999.2 | 2010-03-13T18:49:09.000Z | Running | |
1951 | 5554.7 | 2010-03-16T23:06:20.000Z | Running | |
2228 | 5870.9 | 2010-03-20T19:40:34.000Z | Running | |
1819 | 5156.1 | 2010-03-21T18:25:48.000Z | Running | |
1823 | 5322 | 2010-04-04T17:20:00.000Z | Running | |
2214 | 4819 | 2010-04-10T21:23:15.000Z | Running | |
831 | 3091.2 | 2010-04-19T11:49:12.000Z | Running | |
2339 | 7124.6 | 2010-04-25T16:08:15.000Z | Running | |
59 | 201.1 | 2010-06-21T22:00:33.000Z | Running | |
1264 | 3877.8 | 2010-06-22T23:35:25.000Z | Running | |
1597 | 5158 | 2010-06-29T11:12:19.000Z | Running | |
1165 | 3713.9 | 2010-07-02T11:13:35.000Z | Running | |
3975 | 10422.4 | 2010-07-03T13:16:17.000Z | Running | |
1541 | 4489.8 | 2010-07-15T00:14:22.000Z | Running | |
1164 | 0 | 2010-07-20T23:56:42.000Z | Running | |
173 | 587.6 | 2010-07-27T23:09:38.000Z | Running | |
1427 | 4511.1 | 2010-08-10T23:54:47.000Z | Running | |
1826 | 5712.8 | 2010-09-13T22:48:15.000Z | Running | |
2963 | 7708.4 | 2010-10-17T17:26:30.000Z | Running | |
1327 | 4017 | 2011-02-09T00:20:20.000Z | Running | |
2354 | 7116.3 | 2011-02-13T16:49:55.000Z | Running | |
1605 | 5682.1 | 2011-02-18T02:39:06.000Z | Running | |
2902 | 8530.9 | 2011-02-19T22:03:42.000Z | Running | |
1548 | 5029.2 | 2011-02-27T21:12:43.000Z | Running | |
1550 | 5200.7 | 2011-03-27T18:35:27.000Z | Running | |
2131 | 5680.6 | 2011-04-15T22:47:46.000Z | Running | |
1385 | 4755.7 | 2011-04-17T16:47:39.000Z | Running | |
2144 | 6562.8 | 2011-04-20T17:34:37.000Z | Running | |
4122 | 9995.4 | 2011-04-30T18:16:06.000Z | Running | |
981 | 2995.4 | 2011-05-15T20:53:28.000Z | Running | |
1197 | 3735.9 | 2011-06-26T23:43:57.000Z | Running | |
2316 | 6503.5 | 2011-06-30T22:15:26.000Z | Running | |
1366 | 4008.3 | 2011-07-02T21:15:20.000Z | Running | |
2010 | 5128.1 | 2011-07-14T23:59:21.000Z | Running | |
1202 | 3690 | 2011-07-15T23:28:01.000Z | Running | |
268064 | 795.4 | 2011-07-17T22:00:18.000Z | Running | |
1392 | 4806.7 | 2011-07-21T00:28:12.000Z | Running | |
3385 | 4797.3 | 2011-07-24T23:05:21.000Z | Running | |
1545 | 4293.6 | 2011-07-26T23:45:40.000Z | Running | |
1047 | 3204.7 | 2011-07-29T00:18:07.000Z | Running | |
833 | 2387.432205515763 | 2011-08-03T22:20:32.000Z | Running | |
837 | 2395.8 | 2011-08-03T22:23:33.000Z | Running | |
1417 | 3826 | 2011-09-04T22:10:17.000Z | Running | |
1544 | 4256 | 2011-12-03T19:21:01.000Z | Running | |
1645 | 4908.2 | 2011-12-06T01:28:10.000Z | Running | |
1786 | 4220.2 | 2011-12-31T22:02:01.000Z | Running | |
380113 | 3875.5 | 2012-02-01T13:02:49.000Z | Running | |
373093 | 3539.2 | 2012-02-07T12:21:58.000Z | Running | |
3597 | 9793.4 | 2012-03-11T20:58:50.000Z | Running | |
1344 | 3255.3 | 2012-03-13T22:26:24.000Z | Running | |
1597 | 4464.1 | 2012-03-15T23:24:31.000Z | Running | |
1383 | 3825 | 2012-03-21T22:56:19.000Z | Running | |
2862 | 8576.9 | 2012-04-02T14:25:19.000Z | Running | |
2238 | 4302.7 | 2012-04-04T16:07:08.000Z | Running | |
6809 | 14503.3 | 2012-04-14T17:25:19.000Z | Running | |
1289 | 4076.3 | 2012-04-15T19:02:10.000Z | Running | |
2804 | 8735 | 2012-04-17T23:38:32.000Z | Running | |
4330 | 10534 | 2012-04-21T20:54:03.000Z | Running | |
441 | 1453.8 | 2012-04-23T23:12:40.000Z | Running | |
4112 | 8676.8 | 2012-04-24T22:53:13.000Z | Running | |
3711 | 8344.9 | 2012-04-26T23:16:31.000Z | Running | |
2565 | 6992.2 | 2012-04-28T19:19:07.000Z | Running | |
2247 | 6099.7 | 2012-04-30T22:29:02.000Z | Running | |
4623 | 5883.9 | 2012-05-03T22:48:41.000Z | Running | |
1160 | 3023.7 | 2012-05-04T23:48:38.000Z | Running | |
6457 | 21219.4 | 2012-05-06T11:02:11.000Z | Running | |
2079 | 4300.6 | 2012-05-08T23:03:55.000Z | Running | |
1472 | 3185.3 | 2012-05-12T19:43:18.000Z | Running | |
1542 | 4529.8 | 2012-05-16T23:30:26.000Z | Running | |
1377 | 3301.8 | 2012-05-20T16:01:06.000Z | Running | |
2378 | 6567.7 | 2012-05-22T23:42:08.000Z | Running | |
2397 | 5209.2 | 2012-05-24T23:48:02.000Z | Running | |
1419 | 2697.1 | 2012-05-26T23:09:10.000Z | Running | |
5174 | 4543.4 | 2012-05-28T18:43:56.000Z | Running | |
3103 | 7351.7 | 2012-05-31T23:25:07.000Z | Running | |
2734 | 6890.6 | 2012-06-02T23:26:48.000Z | Running | |
3395 | 7032.6 | 2012-06-07T23:26:09.000Z | Running | |
1584 | 1057.1 | 2012-06-08T23:29:40.000Z | Running | |
3217 | 8773.5 | 2012-06-09T22:36:09.000Z | Running | |
6704 | 7537.5 | 2012-06-23T21:11:04.000Z | Running | |
1563 | 3618.6 | 2012-06-29T00:12:10.000Z | Running | |
1113 | 3658.3 | 2012-07-06T11:23:31.000Z | Biking | |
2311 | 5721.97 | 2012-07-11T22:39:55.000Z | Biking | |
2729 | 6612.13 | 2012-07-30T23:00:35.000Z | Biking | |
2717 | 5474.81 | 2012-08-05T13:54:54.000Z | Biking | |
1968 | 5862.75 | 2012-08-10T22:14:59.000Z | Biking | |
1695 | 5845.61 | 2012-08-12T23:48:18.000Z | Biking | |
1301 | 3992.57 | 2012-08-13T22:23:31.000Z | Biking | |
2653 | 5622.31 | 2012-08-15T22:54:29.000Z | Biking | |
1002 | 3476.27 | 2012-08-16T23:34:01.000Z | Biking | |
4504 | 10803.3 | 2012-08-18T22:10:23.000Z | Running | |
4203 | 10803.1 | 2012-08-18T22:15:23.000Z | Running | |
2808 | 5260.54 | 2012-08-23T22:59:47.000Z | Biking | |
3699 | 8819.66 | 2012-08-25T14:56:49.000Z | Biking | |
8072 | 7978.81 | 2012-08-28T22:54:57.000Z | Biking | |
2357 | 3731.49 | 2012-08-31T22:24:44.000Z | Biking | |
2554 | 8049 | 2012-09-06T22:52:48.000Z | Biking | |
3221 | 7330.77 | 2012-09-10T22:24:08.000Z | Biking | |
1291 | 3995.5 | 2012-09-13T23:13:34.000Z | Biking | |
1542 | 3477.3475753102316 | 2012-09-24T20:19:46.000Z | Running | |
2180 | 3566.6549999999997 | 2012-09-24T20:27:51.000Z | Biking | |
5548 | 12742.6 | 2012-09-27T20:38:48.000Z | Biking | |
1993 | 4986.92 | 2012-09-28T19:16:15.000Z | Biking | |
2451 | 5407.76 | 2012-09-30T21:28:12.000Z | Biking | |
262866 | 7769.73 | 2012-10-02T22:12:31.000Z | Biking | |
1810 | 4830.02 | 2012-10-05T23:13:47.000Z | Biking | |
2543 | 10061.4 | 2012-10-07T12:03:04.000Z | Running | |
1560 | 3490.23 | 2012-10-23T22:34:40.000Z | Biking | |
1358 | 2879.47 | 2012-10-24T23:22:51.000Z | Biking | |
342 | 1611.5 | 2013-03-26T13:49:37.000Z | Biking | |
1186 | 3785.9 | 2013-03-28T11:55:24.000Z | Running | |
1252 | 4026.9 | 2013-03-30T14:41:01.000Z | Running | |
2093 | 5646.6 | 2013-03-31T14:48:49.000Z | Running | |
1860 | 5815 | 2013-04-02T23:23:54.000Z | Running | |
990 | 3625.4 | 2013-04-06T22:00:41.000Z | Running | |
753 | 1915.8 | 2013-04-06T22:27:45.000Z | Running | |
1616 | 4088.4 | 2013-04-07T13:45:54.000Z | Running | |
1169 | 3466.1 | 2013-04-13T14:42:08.000Z | Running | |
1898 | 5641.7 | 2013-04-20T13:28:00.000Z | Running | |
1372 | 4000 | 2013-05-05T22:10:31.000Z | Running | |
996 | 3222.3 | 2013-05-05T22:33:36.000Z | Running | |
1762 | 5797.1 | 2013-05-07T23:00:40.000Z | Running | |
1510 | 4988 | 2013-05-09T23:14:02.000Z | Running | |
2055 | 6444 | 2013-05-10T23:26:37.000Z | Running | |
2172 | 6847.2 | 2013-05-12T22:46:10.000Z | Running | |
5962 | 14959.1 | 2013-05-12T15:18:21.000Z | Biking | |
2418 | 6847.9 | 2013-05-25T19:10:58.000Z | Running | |
1017 | 2985.5 | 2013-05-26T21:32:25.000Z | Running | |
6024 | 32896.5 | 2013-05-27T14:21:22.000Z | Biking | |
6065 | 32427.7 | 2013-05-27T17:04:17.000Z | Biking | |
1977 | 6077.1 | 2013-05-29T11:37:34.000Z | Running | |
2070 | 6451.8 | 2013-05-31T11:15:40.000Z | Running | |
1268 | 4017.8 | 2013-06-02T14:34:35.000Z | Running | |
1377 | 4327.8 | 2013-06-03T23:19:28.000Z | Running | |
3152 | 9984.3 | 2013-06-04T23:07:03.000Z | Running | |
2282 | 5979.9 | 2013-06-07T23:23:25.000Z | Running | |
1211 | 4094.8 | 2013-06-15T00:29:05.000Z | Running | |
2313 | 7240.9 | 2013-06-16T15:05:49.000Z | Running | |
2027 | 6521.2 | 2013-06-19T12:00:10.000Z | Running | |
2010 | 5965.5 | 2013-06-20T23:14:35.000Z | Running | |
1288 | 4257.9 | 2013-06-22T18:07:59.000Z | Running | |
1774 | 5470.6 | 2013-06-26T12:04:14.000Z | Running | |
2147 | 6445.2 | 2013-06-29T20:00:24.000Z | Running | |
909 | 3262.9 | 2013-07-01T11:31:35.000Z | Running | |
1868 | 5635.5 | 2013-07-04T18:41:14.000Z | Running | |
1716 | 5211 | 2013-07-15T12:01:54.000Z | Running | |
1350 | 4435.8 | 2013-07-21T14:43:01.000Z | Running | |
1900 | 6450.3 | 2013-07-24T23:37:48.000Z | Running | |
1707 | 5618.5 | 2013-07-25T22:53:17.000Z | Running | |
2096 | 6689.8 | 2013-07-29T22:59:55.000Z | Running | |
3218 | 9672.4 | 2013-07-30T23:02:01.000Z | Running | |
1107 | 4108.4 | 2013-07-31T23:10:23.000Z | Running | |
2334 | 4798.5 | 2013-08-03T17:37:44.000Z | Running | |
2662 | 7551 | 2013-08-04T13:58:07.000Z | Running | |
1898 | 5557.5 | 2013-08-04T14:44:49.000Z | Running | |
2105 | 6839.5 | 2013-08-07T01:00:59.000Z | Running | |
2586 | 8097.2 | 2013-08-07T23:04:05.000Z | Running | |
2878 | 9257.7 | 2013-08-10T23:31:27.000Z | Running | |
1238 | 4060.4 | 2013-08-11T20:26:43.000Z | Running | |
3183 | 9662.9 | 2013-08-14T23:27:19.000Z | Running | |
3271 | 6978 | 2013-08-17T17:32:12.000Z | Running | |
540 | 1616.8 | 2013-08-17T18:33:03.000Z | Running | |
835 | 3137.9 | 2013-08-18T19:42:51.000Z | Running | |
1142 | 3695.3 | 2013-08-18T19:59:27.000Z | Running | |
1926 | 6448.4 | 2013-08-20T00:13:55.000Z | Running | |
2723 | 8449.2 | 2013-08-23T23:35:25.000Z | Running | |
3827 | 11275.2 | 2013-08-25T19:09:32.000Z | Running | |
2600 | 6930.9 | 2013-08-26T23:28:28.000Z | Running | |
2578 | 6447.5 | 2013-09-01T18:56:04.000Z | Running | |
2180 | 6228.7 | 2013-09-05T23:41:16.000Z | Running | |
329 | 1002.8 | 2013-09-09T23:18:50.000Z | Running | |
2365 | 6465.8 | 2013-09-09T23:25:11.000Z | Running | |
2044 | 6735.1 | 2013-09-13T23:40:50.000Z | Running | |
3052 | 7350.1 | 2013-09-18T01:22:15.000Z | Running | |
1485 | 4741.2 | 2013-09-21T15:24:12.000Z | Running | |
3442 | 8530.4 | 2013-09-23T22:52:23.000Z | Running | |
1375 | 4350.6 | 2013-09-24T11:55:42.000Z | Running | |
1891 | 5807.1 | 2013-09-26T12:42:28.000Z | Running | |
917 | 3831.5 | 2013-09-29T12:58:20.000Z | Running | |
264 | 1148.6 | 2013-09-29T13:14:20.000Z | Running | |
1793 | 5314.1 | 2013-10-04T12:02:15.000Z | Running | |
2055 | 6495.8 | 2013-10-05T23:08:01.000Z | Running | |
5689 | 9771.9 | 2013-10-08T01:04:04.000Z | Running | |
1548 | 4282.1 | 2013-10-12T19:13:35.000Z | Running | |
2283 | 7543.2 | 2013-10-14T23:11:59.000Z | Running | |
2619 | 6930.6 | 2013-10-15T22:39:58.000Z | Running | |
4388 | 15283.2 | 2013-10-16T21:31:19.000Z | Biking | |
3707 | 11274.4 | 2013-10-19T14:33:09.000Z | Running | |
1197 | 4038.6 | 2013-10-21T22:49:33.000Z | Running | |
1145 | 2879.1 | 2013-10-28T23:58:55.000Z | Running | |
1553 | 4091.7 | 2013-10-28T23:19:44.000Z | Running | |
386 | 1222.5 | 2013-10-29T00:38:48.000Z | Running | |
1236 | 4162.4 | 2013-11-02T19:25:29.000Z | Running | |
2495 | 10040.4 | 2013-11-03T13:01:47.000Z | Running | |
3125 | 10028.7 | 2013-11-09T18:26:04.000Z | Running | |
3078 | 4823.2 | 2013-11-10T19:50:16.000Z | Running | |
3485 | 11342.2 | 2013-11-15T16:29:18.000Z | Running | |
1768 | 4834.2 | 2013-11-16T20:13:06.000Z | Running | |
1694 | 5767.4 | 2013-11-20T00:31:32.000Z | Running | |
2626 | 8048.1 | 2013-11-28T17:51:34.000Z | Running | |
1911 | 6510.3 | 2013-12-02T15:55:01.000Z | Running | |
3823 | 6605.4 | 2013-12-06T00:12:22.000Z | Running | |
1979 | 8047.7 | 2013-12-08T14:00:17.000Z | Running | |
1883 | 6467.237198504713 | 2013-12-14T00:20:52.000Z | Running | |
2067 | 6177.69211594368 | 2013-12-21T20:36:31.000Z | Running | |
1649 | 5675.1766187680205 | 2013-12-22T21:19:09.000Z | Running | |
1213 | 4051.1 | 2013-12-26T21:08:46.000Z | Running |
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
<html> | |
<head> | |
<meta charset="utf-8"> | |
<title>runs over time</title> | |
<style> | |
body { margin: 0; padding: 0; background:#f8f8f8; } | |
svg { | |
font: 10px sans-serif; | |
} | |
path { | |
stroke: steelblue; | |
stroke-width: 2; | |
fill: none; | |
} | |
.line { | |
fill: none; | |
stroke: #000; | |
stroke-width: 1.5px; | |
} | |
.area { | |
stroke-width:0; | |
fill-opacity:0.1; | |
} | |
.year { | |
text-anchor:end; | |
} | |
.axis path, .axis line { | |
fill: none; | |
stroke: #eee; | |
shape-rendering: crispEdges; | |
} | |
</style> | |
</head> | |
<body> | |
<script src="https://d3js.org/d3.v3.js"></script> | |
<script src="vis.js"></script> | |
</body> |
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
d3.csv('distance.csv', function(out) { | |
out = out.filter(function(o) { | |
return o.sport === 'Running'; | |
}).map(function(o) { | |
o.distance = +o.totalmeters; | |
o.totalseconds = +o.totalseconds; | |
o.date = new Date(o.starttime); | |
return o; | |
}); | |
var margin = {top: 20, right: 10, bottom: 20, left: 10}, | |
width = 640 - margin.left - margin.right, | |
height = 400 - margin.top - margin.bottom; | |
var formatNumber = d3.format("d"); | |
var y = d3.scale.linear() | |
.domain([0, 400]) | |
.range([height, 0]); | |
var x = d3.time.scale() | |
.domain([new Date(2010, 0, 1), new Date(2011, 0, 1)]) | |
.range([0, width]); | |
var xAxis = d3.svg.axis() | |
.scale(x) | |
.ticks(d3.time.months) | |
.tickFormat(d3.time.format("%b")) | |
.orient("bottom"); | |
var yAxis = d3.svg.axis() | |
.scale(y) | |
.tickSize(width) | |
.ticks(4) | |
.tickFormat(formatMiles) | |
.orient("right"); | |
var years = d3.nest() | |
.key(function(d) { | |
return d.date.getFullYear(); | |
}) | |
.entries(out); | |
for (var yr in years) { | |
var total = 0; | |
years[yr].values = years[yr].values.sort(function(a, b) { | |
return a.date - b.date; | |
}).map(function(k) { | |
total += (k.distance * 0.000621371); | |
k.total = total; | |
return k; | |
}); | |
} | |
var color = d3.scale.category10(); | |
var svg = d3.select("body").append("svg") | |
.attr("width", width + margin.left + margin.right) | |
.attr("height", height + margin.top + margin.bottom) | |
.append("g") | |
.attr("transform", "translate(" + margin.left + "," + margin.top + ")"); | |
svg.append("g") | |
.attr("class", "x axis") | |
.attr("transform", "translate(0," + height + ")") | |
.call(xAxis); | |
var gy = svg.append("g") | |
.attr("class", "y axis") | |
.call(yAxis); | |
gy.selectAll("g").filter(function(d) { return d; }) | |
.classed("minor", true); | |
gy.selectAll("text") | |
.attr("x", 4) | |
.attr("dy", -4); | |
var line = d3.svg.line() | |
.x(function(d) { | |
var year_normal = d.date.setYear(2010); | |
return x(year_normal); | |
}) | |
.y(function(d) { | |
return y(d.total); | |
}); | |
var area = d3.svg.area() | |
.x(function(d) { | |
var year_normal = d.date.setYear(2010); | |
return x(year_normal); | |
}) | |
.y0(height) | |
.y1(function(d) { | |
return y(d.total); | |
}); | |
svg.selectAll('path.line') | |
.data(years) | |
.enter() | |
.append("path") | |
.style("stroke", function(d) { return color(d.key); }) | |
.attr("class", "line") | |
.attr("d", function(d) { | |
return line(d.values); | |
}); | |
svg.selectAll('path.area') | |
.data(years) | |
.enter() | |
.append("path") | |
.style("fill", function(d) { return color(d.key); }) | |
.attr("class", "area") | |
.attr("d", function(d) { | |
return area(d.values); | |
}); | |
svg.selectAll('text.year') | |
.data(years) | |
.enter() | |
.append("text") | |
.style("fill", function(d) { return color(d.key); }) | |
.attr("class", "year") | |
.attr('dx', -5) | |
.attr('dy', -5) | |
.attr("transform", function(d) { | |
var last = d.values[d.values.length - 1]; | |
var year_normal = last.date.setYear(2010); | |
return 'translate(' + x(year_normal) + ',' + | |
y(last.total) + ')'; | |
}) | |
.text(function(d) { | |
return d.key; | |
}); | |
function formatMiles(d) { | |
return formatNumber(d) + 'mi'; | |
} | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment