├── .gitignore ├── LICENSE ├── README.md ├── package-lock.json ├── package.json ├── public ├── favicon.ico ├── index.html └── manifest.json └── src ├── Annotations.js ├── App.css ├── App.js ├── App.test.js ├── BarChart.js ├── ClimateDashboard.js ├── Hierarchy.js ├── Home.js ├── IconCharts.js ├── LineBrush.js ├── LineChart.js ├── NetworkDiagrams.js ├── Potpourri.js ├── RankPlot.js ├── ResponsiveDonut.js ├── SnakeyChart.js ├── data ├── baseball_salary.js ├── beers.js ├── climate.js ├── d3_api.js ├── flare.json ├── import_export.js ├── network.js ├── nyc_bike.js ├── oakland_flow.js ├── pokemon.js ├── population.js ├── premier_league.js ├── sankey.js ├── spotify.js ├── stack_network_links.csv ├── survey.csv ├── titles.json └── totals.json ├── index.css ├── index.js ├── logo.svg └── registerServiceWorker.js /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | 6 | # testing 7 | /coverage 8 | 9 | # production 10 | /build 11 | 12 | # misc 13 | .DS_Store 14 | .env.local 15 | .env.development.local 16 | .env.test.local 17 | .env.production.local 18 | 19 | npm-debug.log* 20 | yarn-debug.log* 21 | yarn-error.log* 22 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # semiotic-examples 2 | Simple examples of [Semiotic](https://emeeks.github.io/semiotic/) from demos and tutorials. 3 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "semiotic-examples", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "d3-dsv": "1.0.7", 7 | "json2csv": "^3.11.5", 8 | "material-design-icons-svg": "1.1.2", 9 | "react": "^15.6.1", 10 | "react-dom": "^15.6.1", 11 | "react-router-dom": "^4.2.2", 12 | "react-scripts": "1.0.13", 13 | "semiotic": "1.4.1", 14 | "semiotic-mark": "0.1.0" 15 | }, 16 | "scripts": { 17 | "start": "react-scripts start", 18 | "build": "react-scripts build", 19 | "test": "react-scripts test --env=jsdom", 20 | "eject": "react-scripts eject" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emeeks/semiotic-examples/0c8f2cdd9bb738a913d61bf36a6566d5412c4c36/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Semiotic Examples 11 | 12 | 13 | 14 | 17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "192x192", 8 | "type": "image/png" 9 | } 10 | ], 11 | "start_url": "./index.html", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /src/Annotations.js: -------------------------------------------------------------------------------- 1 | import React from "react" 2 | import { data } from "./data/pokemon.js" 3 | import { ORFrame, XYFrame } from "semiotic" 4 | import { csvParse } from "d3-dsv" 5 | import { Mark } from "semiotic-mark" 6 | import { 7 | AnnotationCalloutElbow, 8 | AnnotationCalloutCircle, 9 | AnnotationBadge 10 | } from "react-annotation" 11 | 12 | const colors = [ 13 | "#b8e27d", 14 | "#154e56", 15 | "#aedddd", 16 | "#389eaa", 17 | "#10eddc", 18 | "#056e12", 19 | "#37d356", 20 | "#7c8a4f", 21 | "#f7d153", 22 | "#653d28", 23 | "#ee9292", 24 | "#d93669", 25 | "#fe8f06", 26 | "#b94403", 27 | "#ed0e1c", 28 | "#3f4c08", 29 | "#aea2eb", 30 | "#6c36a3", 31 | "#d678ef", 32 | "#304f9b" 33 | ] 34 | 35 | const colorHash = {} 36 | 37 | let colorI = 0 38 | 39 | const pokemon = csvParse(data) 40 | pokemon.forEach((p, q) => { 41 | p.Attack = parseInt(p.Attack) 42 | p.Defense = parseInt(p.Defense) 43 | p.Generation = parseInt(p.Generation) 44 | p.HP = parseInt(p.HP) 45 | p.SpecialAttack = parseInt(p["Sp. Atk"]) 46 | p.SpecialDefense = parseInt(p["Sp. Def"]) 47 | p.Speed = parseInt(p["Speed"]) 48 | p.Total = parseInt(p["Total"]) 49 | colorHash[p["Type 1"]] = colors[q % colors.length] 50 | }) 51 | 52 | console.log("pokemon", pokemon) 53 | 54 | const pokeEdges = [] 55 | const pokeNodes = [] 56 | const pokeHash = {} 57 | 58 | const orAxis = { orient: "left" } 59 | console.log("colorHash", colorHash) 60 | 61 | export default class Annotations extends React.Component { 62 | render() { 63 | return ( 64 |
65 |

ZOMBIE POKEMON NINJA RANGER FORCE MONSTERS

66 |
73 | d.Attack + d.Defense} 77 | yAccessor={"SpecialAttack"} 78 | pointStyle={d => ({ 79 | fill: colorHash[d["Type 1"]], 80 | fillOpacity: 0.75, 81 | stroke: colorHash[d["Type 1"]] 82 | })} 83 | axes={[ 84 | { 85 | orient: "left", 86 | label: "Special Attack", 87 | tickValues: [25, 50, 75, 100, 125, 150, 175, 200] 88 | }, 89 | { 90 | orient: "bottom", 91 | label: "Attack + Defense", 92 | tickValues: [50, 100, 150, 200, 250, 300] 93 | } 94 | ]} 95 | hoverAnnotation={false} 96 | tooltipContent={d => ( 97 |
98 |

Attack: {d.Attack}

99 |

Defense: {d.Defense}

100 |
101 | )} 102 | margin={{ left: 60, bottom: 50 }} 103 | annotations={[ 104 | { 105 | type: AnnotationCalloutCircle, 106 | label: "Glass-Cannon Magic Themed Pokemon", 107 | dx: -30, 108 | dy: -150, 109 | coordinates: [ 110 | { 111 | SpecialAttack: 120, 112 | Attack: 0, 113 | Defense: 65 114 | }, 115 | { 116 | SpecialAttack: 105, 117 | Attack: 0, 118 | Defense: 35 119 | }, 120 | { 121 | SpecialAttack: 135, 122 | Attack: 0, 123 | Defense: 95 124 | }, 125 | { 126 | SpecialAttack: 175, 127 | Attack: 0, 128 | Defense: 115 129 | } 130 | ] 131 | } 132 | ]} 133 | /> 134 |
135 |
142 | d.length} 146 | type={{ type: "swarm", r: 2 }} 147 | oAccessor={"Type 1"} 148 | rAccessor={"Attack"} 149 | style={d => ({ 150 | fill: colorHash[d["Type 1"]], 151 | stroke: colorHash[d["Type 1"]] 152 | })} 153 | summaryStyle={d => ({ 154 | fill: colorHash[d["Type 1"]], 155 | fillOpacity: 0.5, 156 | stroke: colorHash[d["Type 1"]] 157 | })} 158 | summaryType={"violin"} 159 | sortO={() => {}} 160 | projection={"radial"} 161 | oPadding={1} 162 | axis={{ orient: "left", label: "Attack" }} 163 | pieceHoverAnnotation={true} 164 | annotations={[ 165 | { 166 | type: "category", 167 | bracketType: "straight", 168 | categories: ["Grass", "Flying", "Water", "Bug", "Normal"], 169 | label: "Dumb Powers", 170 | position: "left", 171 | offset: 70, 172 | depth: 10, 173 | padding: 0 174 | }, 175 | { 176 | type: "category", 177 | bracketType: "straight", 178 | categories: ["Poison", "Electric", "Ground"], 179 | label: "Lame Powers", 180 | position: "left", 181 | offset: 70, 182 | depth: 10, 183 | padding: 0 184 | }, 185 | { 186 | type: "category", 187 | bracketType: "curly", 188 | categories: [ 189 | "Grass", 190 | "Flying", 191 | "Water", 192 | "Bug", 193 | "Normal", 194 | "Poison", 195 | "Electric", 196 | "Ground" 197 | ], 198 | label: "Garbage Pokemon", 199 | position: "left", 200 | offset: 135, 201 | depth: 10, 202 | padding: 0 203 | }, 204 | { 205 | type: "category", 206 | bracketType: "curly", 207 | categories: ["Fairy", "Fire", "Psychic", "Rock", "Ghost"], 208 | label: "Creepy Powers", 209 | position: "left", 210 | offset: 70, 211 | depth: 10, 212 | padding: 0 213 | }, 214 | { 215 | type: "category", 216 | bracketType: "straight", 217 | categories: ["Ice", "Dragon", "Dark", "Steel", "Fighting"], 218 | label: "Cool Powers", 219 | position: "left", 220 | offset: 70, 221 | depth: 10, 222 | padding: 0 223 | }, 224 | { 225 | type: "category", 226 | bracketType: "curly", 227 | categories: [ 228 | "Fairy", 229 | "Fire", 230 | "Psychic", 231 | "Rock", 232 | "Ghost", 233 | "Ice", 234 | "Dragon", 235 | "Dark", 236 | "Steel", 237 | "Fighting" 238 | ], 239 | label: "Awesome Pokemon", 240 | position: "left", 241 | offset: 135, 242 | depth: 10, 243 | padding: 0 244 | }, 245 | { 246 | type: "category", 247 | bracketType: "straight", 248 | categories: "Grass", 249 | label: "Grass", 250 | position: "left", 251 | offset: 15, 252 | depth: 20, 253 | padding: 0 254 | }, 255 | { 256 | type: "category", 257 | bracketType: "curly", 258 | categories: "Flying", 259 | label: "Flying", 260 | position: "left", 261 | offset: 15, 262 | depth: 20, 263 | padding: 0 264 | }, 265 | { 266 | type: "category", 267 | bracketType: "straight", 268 | categories: "Water", 269 | label: "Water", 270 | position: "left", 271 | offset: 15, 272 | depth: 20, 273 | padding: 0 274 | }, 275 | { 276 | type: "category", 277 | bracketType: "straight", 278 | categories: "Bug", 279 | label: "Bug", 280 | position: "left", 281 | offset: 15, 282 | depth: 20, 283 | padding: 0 284 | }, 285 | { 286 | type: "category", 287 | bracketType: "straight", 288 | categories: "Normal", 289 | label: "Normal", 290 | position: "left", 291 | offset: 15, 292 | depth: 20, 293 | padding: 0 294 | }, 295 | { 296 | type: "category", 297 | bracketType: "straight", 298 | categories: "Poison", 299 | label: "Poison", 300 | position: "left", 301 | offset: 15, 302 | depth: 20, 303 | padding: 0 304 | }, 305 | { 306 | type: "category", 307 | bracketType: "straight", 308 | categories: "Electric", 309 | label: "Electric", 310 | position: "left", 311 | offset: 15, 312 | depth: 20, 313 | padding: 0 314 | }, 315 | { 316 | type: "category", 317 | bracketType: "straight", 318 | categories: "Ground", 319 | label: "Ground", 320 | position: "left", 321 | offset: 15, 322 | depth: 20, 323 | padding: 0 324 | }, 325 | { 326 | type: "category", 327 | bracketType: "straight", 328 | categories: "Fairy", 329 | label: "Fairy", 330 | position: "left", 331 | offset: 15, 332 | depth: 20, 333 | padding: 0 334 | }, 335 | { 336 | type: "category", 337 | bracketType: "straight", 338 | categories: "Fire", 339 | label: "Fire", 340 | position: "left", 341 | offset: 15, 342 | depth: 20, 343 | padding: 0 344 | }, 345 | { 346 | type: "category", 347 | bracketType: "straight", 348 | categories: "Psychic", 349 | label: "Psychic", 350 | position: "left", 351 | offset: 15, 352 | depth: 20, 353 | padding: 0 354 | }, 355 | { 356 | type: "category", 357 | bracketType: "straight", 358 | categories: "Rock", 359 | label: "Rock", 360 | position: "left", 361 | offset: 15, 362 | depth: 20, 363 | padding: 0 364 | }, 365 | { 366 | type: "category", 367 | bracketType: "straight", 368 | categories: "Ghost", 369 | label: "Ghost", 370 | position: "left", 371 | offset: 15, 372 | depth: 20, 373 | padding: 0 374 | }, 375 | { 376 | type: "category", 377 | bracketType: "straight", 378 | categories: "Ice", 379 | label: "Ice", 380 | position: "left", 381 | offset: 15, 382 | depth: 20, 383 | padding: 0 384 | }, 385 | { 386 | type: "category", 387 | bracketType: "straight", 388 | categories: "Dragon", 389 | label: "Dragon", 390 | position: "left", 391 | offset: 15, 392 | depth: 20, 393 | padding: 0 394 | }, 395 | { 396 | type: "category", 397 | bracketType: "curly", 398 | categories: "Dark", 399 | label: "Dark", 400 | position: "left", 401 | offset: 15, 402 | depth: 20, 403 | padding: 0 404 | }, 405 | { 406 | type: "category", 407 | bracketType: "curly", 408 | categories: "Steel", 409 | label: "Steel", 410 | position: "left", 411 | offset: 15, 412 | depth: 20, 413 | padding: 0 414 | }, 415 | { 416 | type: "category", 417 | bracketType: "straight", 418 | categories: "Fighting", 419 | label: "Fighting", 420 | position: "left", 421 | offset: 15, 422 | depth: 20, 423 | padding: 0 424 | } 425 | ]} 426 | tooltipContent={d => ( 427 |
428 |

{d.Name}

429 |

{d["Type 1"]}

430 |

Attack: {d.Attack}

431 |

Defense: {d.Defense}

432 |
433 | )} 434 | margin={{ top: 250, left: 250, bottom: 250, right: 250 }} 435 | /> 436 |
437 |
438 | ) 439 | } 440 | } 441 | -------------------------------------------------------------------------------- /src/App.css: -------------------------------------------------------------------------------- 1 | .app-container { 2 | padding: 20px; 3 | } 4 | .App { 5 | padding: 20px; 6 | } 7 | 8 | .App-header { 9 | background-color: #222; 10 | height: 150px; 11 | padding: 20px; 12 | color: white; 13 | } 14 | 15 | .App-intro { 16 | font-size: large; 17 | } 18 | -------------------------------------------------------------------------------- /src/App.js: -------------------------------------------------------------------------------- 1 | import React from "react" 2 | import { Route, BrowserRouter, Link } from "react-router-dom" 3 | import Home from "./Home" 4 | import LineChart from "./LineChart" 5 | import BarChart from "./BarChart" 6 | import RankPlot from "./RankPlot" 7 | import ClimateDashboard from "./ClimateDashboard" 8 | import LineBrush from "./LineBrush" 9 | import NetworkDiagrams from "./NetworkDiagrams" 10 | import IconCharts from "./IconCharts" 11 | import ResponsiveDonut from "./ResponsiveDonut" 12 | import Annotations from "./Annotations" 13 | import SnakeyChart from "./SnakeyChart" 14 | import Potpourri from "./Potpourri" 15 | import Hierarchy from "./Hierarchy" 16 | 17 | export default class App extends React.Component { 18 | render() { 19 | return ( 20 | 21 |
22 |
23 | Home 24 | {` `} 25 | LineChart 26 | {` `} 27 | BarChart 28 | {` `} 29 | Sketchy Rectangle Plot 30 | {` `} 31 | Climate Dashboard 32 | {` `} 33 | Icon Chart 34 | {` `} 35 | Annotation Examples 36 | {` `} 37 | Cyclical Sankey 38 | {` `} 39 | Hierarchical Charts 40 | {` `} 41 | Various 42 | {` `} 43 | Responsive Donut 44 | {` `} 45 | Line Brush 46 |
47 | 48 |
49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 |
62 |
63 |
64 | ) 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /src/App.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import App from './App'; 4 | 5 | it('renders without crashing', () => { 6 | const div = document.createElement('div'); 7 | ReactDOM.render(, div); 8 | }); 9 | -------------------------------------------------------------------------------- /src/BarChart.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import titleData from "./data/titles.json"; 3 | import totalData from "./data/totals.json"; 4 | import { ORFrame } from "semiotic"; 5 | 6 | const colors = [ 7 | "#21f0b6", 8 | "#1f9383", 9 | "#85d2e1", 10 | "#154975", 11 | "#7377ec", 12 | "#8d30ba", 13 | "#dab9ff", 14 | "#1f3ca6", 15 | "#6f85a6", 16 | "#f75ef0" 17 | ]; 18 | 19 | const colorHash = {}; 20 | 21 | let colorI = 0; 22 | 23 | titleData.forEach((t, i) => { 24 | if (!colorHash[t.studio]) { 25 | colorHash[t.studio] = colors[colorI]; 26 | colorI = (colorI + 1) % 10; 27 | } 28 | }); 29 | 30 | const orAxis = { orient: "left", tickFormat: d => d / 1000000 + "m" }; 31 | 32 | export default class BarChart extends React.Component { 33 | render() { 34 | return ( 35 |
36 | ({ 43 | fill: colorHash[d.studio], 44 | stroke: colorHash[d.studio] 45 | })} 46 | axis={orAxis} 47 | margin={{ top: 10, bottom: 50, right: 10, left: 100 }} 48 | oLabel={d => {d}} 49 | oPadding={10} 50 | hoverAnnotation={true} 51 | tooltipContent={({ pieces }) => { 52 | return ( 53 |
54 | {pieces.map(p => p.title).join(", ")} 55 |
56 | ); 57 | }} 58 | /> 59 |
60 | ); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /src/ClimateDashboard.js: -------------------------------------------------------------------------------- 1 | import React from "react" 2 | import { ketchikan, tucson } from "./data/climate.js" 3 | import { 4 | ORFrame, 5 | XYFrame, 6 | ResponsiveXYFrame, 7 | ResponsiveORFrame 8 | } from "semiotic" 9 | import { sum } from "d3-array" 10 | 11 | const colorHash = { 12 | jan: "#21f0b6", 13 | feb: "#1f9383", 14 | mar: "#85d2e1", 15 | apr: "#154975", 16 | may: "#7377ec", 17 | jun: "#8d30ba", 18 | jul: "#dab9ff", 19 | aug: "#1f3ca6", 20 | sep: "#6f85a6", 21 | oct: "#ef76b1", 22 | nov: "#325b0b", 23 | dec: "#896c11" 24 | } 25 | 26 | const makeHoursArray = climateData => { 27 | let hoursArray = [] 28 | climateData.forEach(month => { 29 | const decoratedHours = month.hourlyTemp.map((h, i) => ({ 30 | hour: i, 31 | temp: h, 32 | month: month.month 33 | })) 34 | hoursArray = [...hoursArray, ...decoratedHours] 35 | }) 36 | return hoursArray 37 | } 38 | 39 | const makeLinesData = climateData => { 40 | const lines = [] 41 | climateData.forEach(month => { 42 | const lineCoordinates = month.hourlyTemp.map((h, i) => ({ 43 | hour: i, 44 | temp: h, 45 | delta_temp: h - month.temp 46 | })) 47 | lines.push({ label: month.month, coordinates: lineCoordinates }) 48 | }) 49 | return lines 50 | } 51 | 52 | const ketchikanTemperatureHours = makeHoursArray(ketchikan) 53 | const tucsonTemperatureHours = makeHoursArray(tucson) 54 | const ketchikanLines = makeLinesData(ketchikan) 55 | 56 | export default class ClimateDashboard extends React.Component { 57 | render() { 58 | const directionalSolarCharts = ketchikan.map(month => { 59 | return ( 60 |
64 | 78 |
79 | ) 80 | }) 81 | 82 | const directionalSolarChartsTucson = tucson.map(month => { 83 | return ( 84 |
88 | true} 98 | connectorStyle={{ stroke: "lightblue", strokeWidth: 2 }} 99 | style={{ fill: "lightblue" }} 100 | oPadding={5} 101 | projection={"radial"} 102 | margin={{ top: 0, left: 50, right: 20, bottom: 0 }} 103 | /> 104 |
105 | ) 106 | }) 107 | 108 | return ( 109 |
110 | ({ 117 | fill: colorHash[d.month], 118 | stroke: "white", 119 | opacity: 0.95 120 | })} 121 | summaryType={{ 122 | type: "histogram", 123 | bins: 24, 124 | binValue: d => sum(d.map(p => p.temp)), 125 | amplitude: 40, 126 | relative: true 127 | }} 128 | oLabel={true} 129 | margin={{ top: 10, left: 50, bottom: 10, right: 50 }} 130 | projection="horizontal" 131 | summaryHoverAnnotation={true} 132 | /> 133 | ({ stroke: colorHash[d.label], strokeWidth: 2 })} 141 | axes={[{ orient: "left" }, { orient: "bottom" }]} 142 | margin={{ left: 50, bottom: 50, top: 50, right: 150 }} 143 | legend={true} 144 | /> 145 |
146 |

Ketchikan

147 | { 158 | return ( 159 | 160 | 166 | 172 | 173 | ) 174 | } 175 | }} 176 | axis={{ orient: "left" }} 177 | style={{ fill: "darkred" }} 178 | margin={{ top: 10, left: 50, right: 10, bottom: 40 }} 179 | /> 180 | {directionalSolarCharts} 181 |
182 |
183 |

Tucson

184 | {directionalSolarChartsTucson} 185 |
186 |
187 | ) 188 | } 189 | } 190 | -------------------------------------------------------------------------------- /src/Hierarchy.js: -------------------------------------------------------------------------------- 1 | import React from "react" 2 | import { NetworkFrame, ORFrame, XYFrame } from "semiotic" 3 | import flareData from "./data/flare.json" 4 | import baseballRaw from "./data/baseball_salary" 5 | import { csvParse } from "d3-dsv" 6 | 7 | const baseballData = csvParse(baseballRaw) 8 | 9 | baseballData.forEach(d => { 10 | d.salary = +d.salary 11 | d.value = +d.value 12 | d.average = +d.average 13 | }) 14 | 15 | console.log("flareData", flareData) 16 | 17 | const colors = [ 18 | "#aee39a", 19 | "#5c922f", 20 | "#7efd7e", 21 | "#15b71e", 22 | "#fff655", 23 | "#b47548", 24 | "#fd5917", 25 | "#f4b6c7", 26 | "#fa217f", 27 | "#d65b6c", 28 | "#feba53", 29 | "#5f80da", 30 | "brown" 31 | ] 32 | 33 | const quantitativeColors = [ 34 | "#f1cbd5", 35 | "#f989a4", 36 | "#fa217f", 37 | "#a64d6c", 38 | "#887177" 39 | ] 40 | 41 | export default class Hierarchy extends React.Component { 42 | constructor(props) { 43 | super(props) 44 | 45 | this.state = { 46 | type: "tree" 47 | } 48 | } 49 | 50 | render() { 51 | const selectOptions = [ 52 | "tree", 53 | "cluster", 54 | "force", 55 | "sankey", 56 | "treemap", 57 | "partition", 58 | "chord" 59 | ].map(d => ( 60 | 63 | )) 64 | return ( 65 |
66 | Hierarchy all the things. Like this. 67 |
68 | 75 | d.value 84 | }} 85 | edgeStyle={{ fill: "brown", fillOpacity: 0.5, stroke: "none" }} 86 | edgeType={"arrowhead"} 87 | nodeStyle={d => ({ 88 | fill: quantitativeColors[d.depth], 89 | stroke: "black" 90 | })} 91 | nodeSizeAccessor={3} 92 | nodeIDAccessor={"name"} 93 | edgeWeightAccessor={"value"} 94 | margin={{ top: 0, left: 0 }} 95 | hoverAnnotation={true} 96 | tooltipContent={d => ( 97 |
98 |

{d.name}

99 |
100 | )} 101 | baseMarkProps={{ transitionDuration: 3000 }} 102 | /> 103 |
104 |
105 | ) 106 | } 107 | } 108 | -------------------------------------------------------------------------------- /src/Home.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | export default class Home extends React.Component { 4 | render() { 5 | return
A home page
; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/IconCharts.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { ORFrame } from "semiotic"; 3 | import { data } from "./data/import_export.js"; 4 | import icon from "material-design-icons-svg/paths/verified"; 5 | 6 | const countryHash = { 7 | "United States": "#21f0b6", 8 | "EU (28)": "#1f9383", 9 | China: "#85d2e1", 10 | India: "#154975", 11 | Japan: "#7377ec", 12 | Brazil: "#8d30ba", 13 | Russia: "#dab9ff", 14 | "South Africa": "#1f3ca6" 15 | }; 16 | 17 | const regionHash = { 18 | "North America": "#21f0b6", 19 | Europe: "#1f9383", 20 | Asia: "#85d2e1", 21 | Other: "#8d30ba" 22 | }; 23 | 24 | const monthHash = { 25 | January: "#6f85a6", 26 | February: "#ef76b1", 27 | March: "#325b0b", 28 | April: "#896c11" 29 | }; 30 | 31 | const rosto = 32 | "M 9.1224266,3.3361224 C 8.2810363,3.2943324 7.4365263,3.4028924 6.6380563,3.6876824 4.1694463,3.6296224 1.9665163,5.3650424 0.91344627,7.5119024 -1.3227637,11.795842 2.5514463,17.764562 8.1907863,16.545112 11.620097,16.132302 15.547317,14.037072 16.173217,10.334172 16.380807,6.5289124 12.768497,3.5172224 9.1224266,3.3361224 Z M 9.3528966,19.855652 C 8.8890366,19.840732 8.4082066,19.917662 7.9173563,20.105652 5.1205063,21.551132 3.7183663,24.679342 2.7943063,27.543152 2.3207563,29.861872 0.86862627,32.037502 1.3646163,34.488462 1.6304963,37.604102 8.0443063,38.953312 8.0443063,38.953312 8.0443063,38.953312 14.670637,39.650602 16.495477,36.334172 17.161197,31.945522 16.344137,27.232262 14.009147,23.424012 13.065617,21.690222 11.362967,19.920312 9.3528966,19.855652 Z"; 33 | 34 | export default class NetworkDiagrams extends React.Component { 35 | constructor(props) { 36 | super(props); 37 | } 38 | 39 | render() { 40 | return ( 41 |
42 | d.month === "March")} 45 | oAccessor="region" 46 | rAccessor="value" 47 | projection="horizontal" 48 | type={{ 49 | type: "clusterbar", 50 | icon: icon, 51 | resize: "fixed", 52 | iconPadding: 1 53 | }} 54 | style={d => ({ 55 | fill: countryHash[d.country], 56 | stroke: "none" 57 | })} 58 | sortO={(a, b) => a > b} 59 | axis={{ orient: "right" }} 60 | oLabel={true} 61 | margin={{ top: 0, left: 110, right: 0, bottom: 50 }} 62 | oPadding={5} 63 | /> 64 |
65 | ); 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /src/LineBrush.js: -------------------------------------------------------------------------------- 1 | import React from "react" 2 | import { XYFrame } from "semiotic" 3 | import { scaleTime } from "d3-scale" 4 | 5 | const chartScale = scaleTime() 6 | const lineStyle = { 7 | fill: "#007190", 8 | stroke: "#007190", 9 | strokeWidth: 1 10 | } 11 | 12 | var data = [ 13 | { 14 | date: "12/30/1998", 15 | close: 14.07 16 | }, 17 | { 18 | date: "1/2/2003", 19 | close: 14.8 20 | } 21 | ] 22 | 23 | data.forEach(d => { 24 | d.date = new Date(d.date) 25 | }) 26 | 27 | export default class LineBrush extends React.Component { 28 | constructor(props) { 29 | super(props) 30 | this.brushEnd = this.brushEnd.bind(this) 31 | } 32 | 33 | brushEnd(e) { 34 | console.log(e) 35 | } 36 | 37 | render() { 38 | const movies = [ 39 | { 40 | title: "Ex Machina", 41 | studio: "A24", 42 | firstWeek: "2015-15", 43 | maxRank: 6, 44 | maxGross: 25442958, 45 | coordinates: [ 46 | { 47 | week: 1, 48 | grossWeekly: 10000, 49 | theaterCount: 4, 50 | theaterAvg: 81904, 51 | date: "2015-04-10", 52 | rank: 18 53 | }, 54 | { 55 | week: 2, 56 | grossWeekly: 10000, 57 | theaterCount: 39, 58 | theaterAvg: 29508, 59 | date: "2015-04-17", 60 | rank: 15 61 | }, 62 | { 63 | week: 3, 64 | grossWeekly: 10000, 65 | theaterCount: 1255, 66 | theaterAvg: 5702, 67 | date: "2015-04-24", 68 | rank: 6 69 | }, 70 | { 71 | week: 4, 72 | grossWeekly: 10000, 73 | theaterCount: 1279, 74 | theaterAvg: 2826, 75 | date: "2015-05-01", 76 | rank: 6 77 | } 78 | ], 79 | type: "iceberg" 80 | } 81 | ] 82 | return ( 83 |
84 | 106 | d.date} 110 | yAccessor="close" 111 | xScaleType={chartScale} 112 | lineStyle={lineStyle} 113 | axes={[ 114 | { 115 | orient: "bottom", 116 | ticks: 6, 117 | tickFormat: d => d.getFullYear() 118 | } 119 | ]} 120 | margin={{ left: 40, top: 0, bottom: 50, right: 20 }} 121 | interaction={{ 122 | end: this.brushEnd, 123 | brush: "xBrush", 124 | extent: [new Date("1/2/1999"), new Date("1/2/2002")] 125 | }} 126 | /> 127 |
128 | ) 129 | } 130 | } 131 | -------------------------------------------------------------------------------- /src/LineChart.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import titleData from "./data/titles.json"; 3 | import totalData from "./data/totals.json"; 4 | import { ResponsiveXYFrame } from "semiotic"; 5 | import { scaleTime } from "d3-scale"; 6 | import { AnnotationCalloutElbow } from "react-annotation"; 7 | 8 | const tooltipCreator = d => ( 9 |
10 |

{d.parentLine.title}

11 |

Gross: {d.grossWeekly}

12 |

Week {d.week}

13 |
14 | ); 15 | 16 | export default class LineChart extends React.Component { 17 | render() { 18 | const axes = [ 19 | { 20 | orient: "left", 21 | tickFormat: d => d / 1000000 + "m" 22 | }, 23 | { orient: "bottom", tickFormat: d => d.getMonth() } 24 | ]; 25 | const annotations = [ 26 | { 27 | type: "y", 28 | grossWeekly: 150000000, 29 | label: "Opening Day Blockbuster" 30 | }, 31 | { 32 | date: "2016-07-01", 33 | title: "Finding Dory", 34 | dx: 30, 35 | dy: -50, 36 | type: AnnotationCalloutElbow, 37 | label: "Very important day" 38 | } 39 | ]; 40 | return ( 41 |
42 | i < 50)} 46 | lineStyle={d => ({ 47 | stroke: d.title.length > 10 ? "blue" : "red", 48 | fill: d.title.length > 10 ? "blue" : "red", 49 | strokeOpacity: 1, 50 | fillOpacity: 0.25 51 | })} 52 | lineType={"line"} 53 | lineIDAccessor={d => d.title} 54 | xScaleType={scaleTime()} 55 | xAccessor={d => new Date(d.date)} 56 | yAccessor={"grossWeekly"} 57 | hoverAnnotation={true} 58 | tooltipContent={tooltipCreator} 59 | axes={axes} 60 | annotations={annotations} 61 | /> 62 |
63 | ); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /src/NetworkDiagrams.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { NetworkFrame } from "semiotic"; 3 | import { scaleTime } from "d3-scale"; 4 | 5 | export default class NetworkDiagrams extends React.Component { 6 | constructor(props) { 7 | super(props); 8 | } 9 | 10 | render() { 11 | return
Put some impossible to read networks here
; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Potpourri.js: -------------------------------------------------------------------------------- 1 | import React from "react" 2 | import { NetworkFrame, ORFrame, XYFrame } from "semiotic" 3 | import flareData from "./data/flare.json" 4 | import beerRaw from "./data/beers" 5 | import bikeRaw from "./data/nyc_bike" 6 | import baseballRaw from "./data/baseball_salary" 7 | import spotifyRaw from "./data/spotify" 8 | import { AnnotationCalloutElbow } from "react-annotation" 9 | import { csvParse } from "d3-dsv" 10 | import { scaleTime, scaleLog } from "d3-scale" 11 | 12 | const beerData = csvParse(beerRaw) 13 | const bikeData = csvParse(bikeRaw).filter((d, i) => i < 30) 14 | const spotifyData = csvParse(spotifyRaw) 15 | const baseballData = csvParse(baseballRaw) 16 | 17 | spotifyData.forEach(d => { 18 | d.acousticness = +d.acousticness 19 | d.danceability = +d.danceability 20 | }) 21 | 22 | beerData.forEach(d => { 23 | d.bitterness = +d.bitterness 24 | d.ounces = +d.ounces 25 | d.abv = +d.abv 26 | }) 27 | 28 | const positions = {} 29 | 30 | baseballData.forEach(d => { 31 | d.salary = +d.salary 32 | d.value = +d.value 33 | d.average = +d.average 34 | positions[d.position] = true 35 | }) 36 | 37 | console.log("positions", positions) 38 | 39 | console.log("baseballData", baseballData) 40 | 41 | const bikeBridges = [ 42 | "Brooklyn Bridge", 43 | "Manhattan Bridge", 44 | "Williamsburg Bridge", 45 | "Queensboro Bridge", 46 | "Total" 47 | ] 48 | 49 | bikeData.forEach(d => { 50 | d.Precipitation = +d.Precipitation 51 | d.Precipitation = isNaN(d.Precipitation) ? 0 : d.Precipitation 52 | d.temp_high = +d.temp_high 53 | d.temp_low = +d.temp_low 54 | d.Date = new Date(d.Date) 55 | bikeBridges.forEach(p => { 56 | d[p] = +d[p] 57 | }) 58 | }) 59 | 60 | const colors = [ 61 | "#aee39a", 62 | "#5c922f", 63 | "#7efd7e", 64 | "#15b71e", 65 | "#fff655", 66 | "#b47548", 67 | "#fd5917", 68 | "#f4b6c7", 69 | "#fa217f", 70 | "#d65b6c", 71 | "#feba53", 72 | "#5f80da", 73 | "brown" 74 | ] 75 | 76 | const colorHash = {} 77 | 78 | Object.keys(positions).forEach((p, i) => { 79 | colorHash[p] = colors[i % colors.length] 80 | }) 81 | 82 | const bridgeLines = bikeBridges.map((name, i) => { 83 | return { 84 | label: name, 85 | coordinates: bikeData.map(d => ({ Date: d.Date, value: d[name] })), 86 | color: colors[i] 87 | } 88 | }) 89 | 90 | console.log("colorHash", colorHash) 91 | 92 | const quantitativeColors = [ 93 | "#f1cbd5", 94 | "#f989a4", 95 | "#fa217f", 96 | "#a64d6c", 97 | "#887177" 98 | ] 99 | 100 | const songAnnotations = spotifyData 101 | .filter(d => d.acousticness > 0.6 && d.danceability < 0.5) 102 | .map(d => Object.assign({ type: AnnotationCalloutElbow, label: d.name }, d)) 103 | 104 | console.log("songAnnotations", songAnnotations) 105 | 106 | export default class Potpourri extends React.Component { 107 | render() { 108 | return ( 109 |
110 | ({ 117 | fill: colorHash[d.position], 118 | stroke: "rgba(0,0,0,0)" 119 | })} 120 | oPadding={10} 121 | // oLabel={true} 122 | // axis={{ orient: "left" }} 123 | margin={10} 124 | // rScaleType={scaleLog} 125 | pieceHoverAnnotation={true} 126 | tooltipContent={d => ( 127 |
128 |

{d.name}

129 |
130 | )} 131 | canvasPieces={true} 132 | canvasPostProcess={"chuckClose"} 133 | /> 134 | 190 | 196 | ({ stroke: d.color, strokeWidth: 2 })} 202 | axes={[{ orient: "left" }]} 203 | margin={70} 204 | hoverAnnotation={true} 205 | /> 206 | 207 | "" 220 | } 221 | ]} 222 | margin={{ top: 10, right: 10, bottom: 60, left: 60 }} 223 | /> 224 | 243 | 244 | 245 | {colors.map((d, i) => ( 246 | 247 | ))} 248 | 249 | {quantitativeColors.map((d, i) => ( 250 | 251 | ))} 252 | 253 |
254 | ) 255 | } 256 | } 257 | -------------------------------------------------------------------------------- /src/RankPlot.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import titleData from "./data/titles.json"; 3 | import totalData from "./data/totals.json"; 4 | import { ORFrame } from "semiotic"; 5 | 6 | const colors = [ 7 | "#21f0b6", 8 | "#1f9383", 9 | "#85d2e1", 10 | "#154975", 11 | "#7377ec", 12 | "#8d30ba", 13 | "#dab9ff", 14 | "#1f3ca6", 15 | "#6f85a6", 16 | "#f75ef0" 17 | ]; 18 | 19 | const colorHash = {}; 20 | 21 | let colorI = 0; 22 | 23 | titleData.forEach((t, i) => { 24 | if (!colorHash[t.studio]) { 25 | colorHash[t.studio] = colors[colorI]; 26 | colorI = (colorI + 1) % 10; 27 | } 28 | }); 29 | 30 | const orAxis = { orient: "left" }; 31 | 32 | export default class RankPlot extends React.Component { 33 | render() { 34 | return ( 35 |
36 | Sketchy Rectangle Plot 37 | ({ 45 | fill: colorHash[d.studio], 46 | stroke: colorHash[d.studio] 47 | })} 48 | axis={orAxis} 49 | margin={{ top: 10, bottom: 50, right: 10, left: 100 }} 50 | oLabel={d => {d}} 51 | oPadding={10} 52 | pieceHoverAnnotation={true} 53 | tooltipContent={d =>
{d.title}
} 54 | renderMode={"sketchy"} 55 | /> 56 |
57 | ); 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /src/ResponsiveDonut.js: -------------------------------------------------------------------------------- 1 | import React from "react" 2 | import PropTypes from "prop-types" 3 | import { ResponsiveORFrame } from "semiotic" 4 | 5 | export default class Donut extends React.Component { 6 | constructor(props) { 7 | super(props) 8 | this.state = { 9 | data: [] 10 | } 11 | } 12 | 13 | static propTypes = { 14 | innerRadius: PropTypes.string, 15 | colors: PropTypes.array, 16 | padding: PropTypes.number 17 | } 18 | 19 | static defaultProps = { 20 | innerRadius: "25%", 21 | colors: ["#b30000", "#e34a33", "#fc8d59", "#fdcc8a"], 22 | padding: 0 23 | } 24 | 25 | componentDidMount() { 26 | function getRandomInt(min, max) { 27 | min = Math.ceil(min) 28 | max = Math.floor(max) 29 | return Math.floor(Math.random() * (max - min)) + min 30 | } 31 | // load the data 32 | this.setState({ 33 | data: [ 34 | { key: 1, count: getRandomInt(0, 10) }, 35 | { key: 2, count: getRandomInt(5, 20) }, 36 | { key: 3, count: getRandomInt(10, 50) }, 37 | { key: 4, count: getRandomInt(20, 100) } 38 | ] 39 | }) 40 | } 41 | 42 | render() { 43 | return ( 44 |
48 | ({ 55 | fill: this.props.colors[i], 56 | strokeWidth: 1 57 | })} 58 | type={{ type: "bar", innerRadius: 10 }} 59 | dynamicColumnWidth={"count"} 60 | rAccessor={d => 1} 61 | oAccessor={"key"} 62 | margin={{ left: 20, top: 40, bottom: 40, right: 20 }} 63 | oPadding={this.props.padding} 64 | customClickBehavior={this.clickDonut} 65 | /> 66 |
67 | ) 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /src/SnakeyChart.js: -------------------------------------------------------------------------------- 1 | import React from "react" 2 | import { NetworkFrame } from "semiotic" 3 | import sankeyData from "./data/sankey.js" 4 | import { csvParse } from "d3-dsv" 5 | 6 | const parsedEdges = csvParse(sankeyData) 7 | 8 | parsedEdges.forEach(e => { 9 | e.value = +e.value 10 | }) 11 | 12 | const colors = [ 13 | "#21f0b6", 14 | "#1f9383", 15 | "#85d2e1", 16 | "#154975", 17 | "#7377ec", 18 | "#8d30ba", 19 | "#dab9ff", 20 | "#1f3ca6", 21 | "#6f85a6", 22 | "#f75ef0" 23 | ] 24 | 25 | export default class SnakeyChart extends React.Component { 26 | render() { 27 | return ( 28 |
29 | 40 |
41 | ) 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/data/baseball_salary.js: -------------------------------------------------------------------------------- 1 | export default `team,position,salary,value,average,name 2 | CHC,SP,20000000,155000000,25833333,Jon Lester 3 | BOS,LF,19750000,88000000,22000000,Hanley Ramirez 4 | DET,SP,19750000,19750000,19750000,David Price 5 | BOS,3B,17600000,95000000,19000000,Pablo Sandoval 6 | WSH,SP,17142857,210000000,30000000,Max Scherzer 7 | BOS,DH,16000000,16000000,16000000,David Ortiz 8 | TEX,SS,15333333,120000000,15000000,Elvis Andrus 9 | SEA,DH,14250000,57000000,14250000,Nelson Cruz 10 | DET,DH,14000000,68000000,17000000,Victor Martinez 11 | MIL,3B,14000000,14000000,14000000,Aramis Ramirez 12 | MIN,SP,13500000,55000000,13750000,Ervin Santana 13 | WSH,2B,13250000,13250000,13250000,Dan Uggla 14 | NYY,3B,13000000,52000000,13000000,Chase Headley 15 | CWS,LF,13000000,42000000,14000000,Melky Cabrera 16 | TEX,SP,13000000,13000000,13000000,Yovani Gallardo 17 | NYY,LF,12500000,52000000,13000000,Brett Gardner 18 | LAD,SP,12500000,48000000,12000000,Brandon McCarthy 19 | COL,SP,12500000,25000000,12500000,Jorge De La Rosa 20 | BOS,SP,12500000,12500000,12500000,Rick Porcello 21 | BAL,1B,12000000,12000000,12000000,Chris Davis 22 | PIT,SP,11666666,39000000,13000000,Francisco Liriano 23 | WSH,SP,11400000,11400000,11400000,Doug Fister 24 | BAL,SS,11209424,40000000,13333333,J.J. Hardy 25 | ATL,RF,11000000,44000000,11000000,Nick Markakis 26 | OAK,CF,11000000,22000000,11000000,Coco Crisp 27 | LAD,SS,11000000,11000000,11000000,Jimmy Rollins 28 | MIN,RF,10500000,10500000,10500000,Torii Hunter 29 | SD,SP,10000000,75000000,18750000,James Shields 30 | CWS,RP,10000000,46000000,11500000,David Robertson 31 | LAD,SP,10000000,10000000,10000000,Brett Anderson 32 | MIA,SP,10000000,10000000,10000000,Dan Haren 33 | CIN,SP,10000000,10000000,10000000,Johnny Cueto 34 | SD,SP,9850000,9850000,9850000,Ian Kennedy 35 | CWS,SP,9800000,9800000,9800000,Jeff Samardzija 36 | CIN,SP,9775000,9775000,9775000,Mike Leake 37 | KC,RF,9500000,9500000,9500000,Alex Rios 38 | CHC,CF,9500000,9500000,9500000,Dexter Fowler 39 | BOS,SP,9500000,9500000,9500000,Justin Masterson 40 | MIA,SP,9400000,9400000,9400000,Mat Latos 41 | MIN,SP,9200000,58000000,11600000,Phil Hughes 42 | NYY,RP,9000000,36000000,9000000,Andrew Miller 43 | SF,SP,9000000,24000000,12000000,Jake Peavy 44 | CHC,SP,9000000,20000000,10000000,Jason Hammel 45 | BOS,RP,9000000,18000000,9000000,Koji Uehara 46 | WSH,CF,9000000,9000000,9000000,Denard Span 47 | BAL,SP,8800000,8800000,8800000,Bud Norris 48 | NYM,LF,8500000,21000000,10500000,Michael Cuddyer 49 | PIT,SP,8500000,8500000,8500000,A.J. Burnett 50 | OAK,RP,8300000,8300000,8300000,Tyler Clippard 51 | BAL,C,8275000,8275000,8275000,Matt Wieters 52 | KC,RP,8250000,8250000,8250000,Greg Holland 53 | CIN,RP,8050000,8050000,8050000,Aroldis Chapman 54 | HOU,2B,8000000,23000000,7666666,Jed Lowrie 55 | HOU,LF,8000000,8000000,8000000,Colby Rasmus 56 | OAK,CF,7500000,22000000,11000000,Coco Crisp 57 | NYM,2B,8000000,8000000,8000000,Daniel Murphy 58 | PIT,2B,8000000,8000000,8000000,Neil Walker 59 | OAK,2B,7750000,7750000,7750000,Ben Zobrist 60 | SEA,CF,7700000,7700000,7700000,Austin Jackson 61 | KC,SP,7500000,20000000,10000000,Edinson Volquez 62 | MIA,1B,7500000,16000000,8000000,Michael Morse 63 | MIL,1B,7500000,7500000,7500000,Adam Lind 64 | TB,SS,7500000,7500000,7500000,Asdrubal Cabrera 65 | LAD,RP,7425000,7425000,7425000,Kenley Jansen 66 | WSH,SP,7400000,7400000,7400000,Stephen Strasburg 67 | TOR,C,7000000,82000000,16400000,Russell Martin 68 | STL,SP,7000000,22000000,7333333,Lance Lynn 69 | SEA,SP,7000000,7000000,7000000,Hisashi Iwakuma 70 | LAA,RP,7000000,7000000,7000000,Huston Street 71 | DET,RP,7000000,7000000,7000000,Joakim Soria 72 | KC,RP,7000000,7000000,7000000,Wade Davis 73 | ARI,RF,6900000,6900000,6900000,Mark Trumbo 74 | SEA,SP,6700000,6700000,6700000,J.A. Happ 75 | OAK,DH,6666666,30000000,10000000,Billy Butler 76 | MIA,RP,6650000,6650000,6650000,Steve Cishek 77 | MIA,RF,6500000,325000000,25000000,Giancarlo Stanton 78 | KC,DH,6500000,17000000,8500000,Kendrys Morales 79 | CLE,RF,6500000,6500000,6500000,Brandon Moss 80 | LAA,3B,6425000,6425000,6425000,David Freese 81 | MIL,LF,6237500,6237500,6237500,Gerardo Parra 82 | LAA,CF,6083333,144500000,24083333,Mike Trout 83 | ATL,3B,6000000,23500000,7833333,Chris Johnson 84 | HOU,RP,6000000,18500000,6166666,Luke Gregerson 85 | SF,RP,6000000,15000000,7500000,Sergio Romo 86 | SEA,RF,6000000,13000000,6500000,Seth Smith 87 | MIN,C,6000000,12000000,6000000,Kurt Suzuki 88 | COL,CF,5825000,5825000,5825000,Drew Stubbs 89 | PIT,1B,5750000,5750000,5750000,Pedro Alvarez 90 | WSH,RP,5700000,5700000,5700000,Drew Storen 91 | CHC,SP,5685000,5685000,5685000,Travis Wood 92 | KC,1B,5650000,13900000,6950000,Eric Hosmer 93 | ATL,SP,5600000,5600000,5600000,Mike Minor 94 | DET,SP,5550000,5550000,5550000,Alfredo Simon 95 | ARI,OF,5500000,68500000,11416666,Yasmany Tomas 96 | HOU,RP,5500000,12500000,6250000,Pat Neshek 97 | COL,SP,5500000,5500000,5500000,Kyle Kendrick 98 | DET,C,5400000,5400000,5400000,Alex Avila 99 | PIT,RP,5400000,5400000,5400000,Mark Melancon 100 | NYM,SP,5300000,5300000,5300000,Dillon Gee 101 | SD,SP,5250000,5250000,5250000,Tyson Ross 102 | WSH,3B,5000000,13000000,6500000,Yunel Escobar 103 | PHI,SP,5000000,5000000,5000000,Aaron Harang 104 | NYY,SP,5000000,5000000,5000000,Chris Capuano 105 | NYY,1B,5000000,5000000,5000000,Garrett Jones 106 | NYY,2B,5000000,5000000,5000000,Stephen Drew 107 | BAL,LF,5000000,500000,500000,Alejandro De Aza 108 | ARI,RP,4875000,4875000,4875000,Addison Reed 109 | SF,3B,4800000,4800000,4800000,Casey McGehee 110 | MIN,3B,4800000,4800000,4800000,Trevor Plouffe 111 | LAA,LF,4750000,4750000,4750000,Matt Joyce 112 | BAL,SP,4750000,4750000,4750000,Wei-Yin Chen 113 | BAL,RP,4650000,4650000,4650000,Tommy Hunter 114 | SEA,3B,4500000,100000000,14285714,Kyle Seager 115 | CWS,RP,4500000,15000000,5000000,Zach Duke 116 | CHC,RP,4500000,4500000,4500000,Jason Motte 117 | ATL,RP,4375000,8000000,4000000,Jason Grilli 118 | BAL,SP,4315000,4315000,4315000,Chris Tillman 119 | TOR,3B,4300000,4300000,4300000,Josh Donaldson 120 | ARI,SP,4275000,4275000,4275000,Jeremy Hellickson 121 | LAD,C,4250000,4250000,4250000,A.J. Ellis 122 | BAL,RP,4250000,4250000,4250000,Darren O'Day 123 | NYM,1B,4200000,4200000,4200000,Lucas Duda 124 | HOU,3B,4200000,4200000,4200000,Luis Valbuena 125 | HOU,1B,4175000,4175000,4175000,Chris Carter 126 | STL,LF,4125000,10975000,5487500,Jon Jay 127 | TEX,RP,4125000,4125000,4125000,Neftali Feliz 128 | PHI,LF,4100000,4100000,4100000,Ben Revere 129 | OAK,RF,4100000,4100000,4100000,Josh Reddick 130 | SD,SP,4050000,4050000,4050000,Andrew Cashner 131 | KC,RP,4000000,10000000,5000000,Luke Hochevar 132 | TB,SP,4000000,4000000,4000000,Alex Cobb 133 | TEX,SP,4000000,4000000,4000000,Colby Lewis 134 | CLE,SP,4000000,4000000,4000000,Gavin Floyd 135 | MIA,SP,4000000,4000000,4000000,Henderson Alvarez 136 | HOU,C,4000000,4000000,4000000,Jason Castro 137 | SF,LF,4000000,4000000,4000000,Norichika Aoki 138 | SF,SP,4000000,4000000,4000000,Ryan Vogelsong 139 | CHC,SP,4000000,4000000,4000000,Tsuyoshi Wada 140 | TOR,SP,3900000,3900000,3900000,Marco Estrada 141 | OAK,1B,3800000,3800000,3800000,Ike Davis 142 | CIN,3B,3750000,12000000,6000000,Todd Frazier 143 | NYM,RP,3700000,3700000,3700000,Bobby Parnell 144 | BAL,LF,3700000,3700000,3700000,Steve Pearce 145 | BOS,SP,3666666,19250000,6416666,Wade Miley 146 | CHC,SP,3630000,3630000,3630000,Jake Arrieta 147 | SF,RF,3600000,7500000,3750000,Gregor Blanco 148 | SF,1B,3600000,3600000,3600000,Brandon Belt 149 | TB,RP,3550000,3550000,3550000,Jake McGee 150 | WSH,C,3550000,3550000,3550000,Wilson Ramos 151 | MIL,RP,3500000,13000000,6500000,Francisco Rodriguez 152 | WSH,RP,3500000,7000000,3500000,Matt Thornton 153 | STL,RP,3500000,3500000,3500000,Matt Belisle 154 | CLE,SS,3500000,3500000,3500000,Mike Aviles 155 | TEX,SP,3450000,3450000,3450000,Ross Detwiler 156 | NYY,SP,3300000,3300000,3300000,Ivan Nova 157 | NYY,SP,3300000,3300000,3300000,Nathan Eovaldi 158 | ARI,SS,3275000,3275000,3275000,Cliff Pennington 159 | BAL,RP,3200000,3200000,3200000,Brian Matusz 160 | LAA,SP,3200000,3200000,3200000,Garrett Richards 161 | BAL,RP,3200000,3200000,3200000,Zach Britton 162 | SF,SS,3175000,3175000,3175000,Brandon Crawford 163 | TB,C,3175000,3175000,3175000,John Jaso 164 | COL,C,3100000,6250000,3125000,Nick Hundley 165 | PIT,RP,3100000,3100000,3100000,Antonio Bastardo 166 | TB,LF,3100000,3100000,3100000,Desmond Jennings 167 | TB,RP,3025000,3025000,3025000,Kevin Jepsen 168 | ATL,3B,3000000,3000000,3000000,Alberto Callaspo 169 | CWS,2B,3000000,3000000,3000000,Emilio Bonifacio 170 | DET,RF,3000000,3000000,3000000,J.D. Martinez 171 | MIL,RP,3000000,3000000,3000000,Neal Cotts 172 | TEX,1B,2950000,2950000,2950000,Mitch Moreland 173 | TOR,RF,2875000,2875000,2875000,Michael Saunders 174 | SD,RP,2835000,2835000,2835000,Shawn Kelley 175 | PIT,2B,2800000,27300000,6825000,Josh Harrison 176 | COL,1B,2800000,2800000,2800000,Wilin Rosario 177 | MIN,SP,2775000,2775000,2775000,Tommy Milone 178 | SEA,1B,2725000,2725000,2725000,Logan Morrison 179 | KC,CF,2725000,2725000,2725000,Lorenzo Cain 180 | MIN,RP,2700000,2700000,2700000,Brian Duensing 181 | STL,RP,2675000,6600000,3300000,Jordan Walden 182 | CWS,C,2675000,2675000,2675000,Tyler Flowers 183 | TB,SP,2650000,2650000,2650000,Drew Smyly 184 | KC,3B,2640000,2640000,2640000,Mike Moustakas 185 | CHC,RF,2600000,2600000,2600000,Chris Denorfia 186 | SEA,LF,2600000,2600000,2600000,Dustin Ackley 187 | COL,RP,2600000,2600000,2600000,John Axford 188 | NYM,RP,2595000,2595000,2595000,Jenrry Mejia 189 | CIN,C,2525000,28000000,7000000,Devin Mesoraco 190 | LAD,2B,2525000,2525000,2525000,Darwin Barney 191 | CHC,RP,2525000,2525000,2525000,Pedro Strop 192 | CHC,LF,2505000,2505000,2505000,Chris Coghlan 193 | SEA,RF,2505000,2505000,2505000,Justin Ruggiano 194 | PIT,3B,2500000,11000000,2750000,Jung-ho Kang 195 | WSH,RF,2500000,7500000,3750000,Bryce Harper 196 | CHC,C,2500000,5000000,2500000,David Ross 197 | WSH,2B,2500000,2500000,2500000,Anthony Rendon 198 | LAD,SP,2500000,2500000,2500000,Brandon Beachy 199 | SD,SP,2500000,2500000,2500000,Brandon Morrow 200 | NYY,RF,2500000,2500000,2500000,Chris Young 201 | PIT,RF,2500000,2500000,2500000,Corey Hart 202 | MIA,2B,2500000,2500000,2500000,Dee Gordon 203 | PHI,RF,2500000,2500000,2500000,Domonic Brown 204 | PHI,SP,2500000,2500000,2500000,Jerome Williams 205 | LAD,RP,2500000,2500000,2500000,Joel Peralta 206 | LAD,3B,2500000,2500000,2500000,Justin Turner 207 | TOR,RP,2475000,2475000,2475000,Brett Cecil 208 | COL,SP,2475000,2475000,2475000,Jordan Lyles 209 | PIT,SP,2450000,2450000,2450000,Vance Worley 210 | KC,SP,2425000,2425000,2425000,Danny Duffy 211 | BAL,SS,2400000,2400000,2400000,Everth Cabrera 212 | NYM,RP,2400000,2400000,2400000,Jerry Blevins 213 | CLE,RP,2400000,2400000,2400000,Marc Rzepczynski 214 | HOU,RP,2400000,2400000,2400000,Tony Sipp 215 | MIA,RP,2350000,5800000,2900000,Mike Dunn 216 | CIN,SS,2350000,2350000,2350000,Zack Cozart 217 | CLE,SP,2337500,22000000,5500000,Carlos Carrasco 218 | LAD,RP,2300000,2300000,2300000,Juan Nicasio 219 | LAA,SP,2290000,2290000,2290000,Hector Santiago 220 | WSH,RP,2250000,2250000,2250000,Craig Stammen 221 | BAL,RF,2250000,2250000,2250000,Delmon Young 222 | BOS,RP,2250000,2250000,2250000,Junichi Tazawa 223 | COL,RP,2250000,2250000,2250000,LaTroy Hawkins 224 | CLE,3B,2250000,2250000,2250000,Lonnie Chisenhall 225 | CHC,RP,2250000,2250000,2250000,Phil Coke 226 | MIN,RP,2200000,2200000,2200000,Tim Stauffer 227 | OAK,SP,2150000,2150000,2150000,Jesse Chavez 228 | NYY,SP,2100000,2100000,2100000,Michael Pineda 229 | BAL,RF,2100000,2100000,2100000,Travis Snider 230 | CHC,C,2100000,2100000,2100000,Welington Castillo 231 | SF,RP,2100000,2100000,2100000,Yusmeiro Petit 232 | ATL,OF,2000000,62500000,10416667,Hector Olivera 233 | MIN,2B,2000000,20000000,5000000,Brian Dozier 234 | KC,RP,2000000,8500000,4250000,Kris Medlen 235 | ATL,C,2000000,2000000,2000000,A.J. Pierzynski 236 | STL,RP,2000000,2000000,2000000,Carlos Villanueva 237 | BOS,RP,2000000,2000000,2000000,Craig Breslow 238 | ARI,RP,2000000,2000000,2000000,David Hernandez 239 | ATL,SP,2000000,2000000,2000000,Eric Stults 240 | CWS,3B,2000000,2000000,2000000,Gordon Beckham 241 | PHI,RF,2000000,2000000,2000000,Grady Sizemore 242 | MIA,RF,2000000,2000000,2000000,Ichiro Suzuki 243 | STL,1B,2000000,2000000,2000000,Mark Reynolds 244 | SEA,LF,2000000,2000000,2000000,Rickie Weeks 245 | MIA,RP,1975000,1975000,1975000,Aaron Crow 246 | CWS,P,1950000,1950000,1950000,Hector Noesi 247 | CLE,SP,1940000,1940000,1940000,Trevor Bauer 248 | MIA,SS,1925000,1925000,1925000,Adeiny Hechavarria 249 | OAK,3B,1925000,1925000,1925000,Brett Lawrie 250 | PIT,1B,1900000,1900000,1900000,Sean Rodriguez 251 | NYM,SS,1880000,1880000,1880000,Ruben Tejada 252 | BOS,RF,1850000,1850000,1850000,Daniel Nava 253 | KC,RP,1850000,1850000,1850000,Franklin Morales 254 | WSH,2B,1800000,1800000,1800000,Danny Espinosa 255 | OAK,CF,1750000,1750000,1750000,Sam Fuld 256 | PIT,RP,1750000,1750000,1750000,Tony Watson 257 | DET,RP,1725000,1725000,1725000,Al Alburquerque 258 | BAL,RP,1700000,1700000,1700000,Wesley Wright 259 | TOR,3B,1675000,1675000,1675000,Danny Valencia 260 | STL,CF,1650000,1650000,1650000,Peter Bourjos 261 | SD,1B,1650000,1650000,1650000,Yonder Alonso 262 | KC,RP,1600000,4150000,2075000,Kelvin Herrera 263 | OAK,CF,1600000,1600000,1600000,Craig Gentry 264 | ATL,RP,1600000,1600000,1600000,Jim Johnson 265 | CLE,RP,1550000,1550000,1550000,Bryan Shaw 266 | MIN,CF,1550000,1550000,1550000,Jordan Schafer 267 | COL,SS,1500000,3600000,1800000,Daniel Descalso 268 | BOS,RP,1500000,1500000,1500000,Alexi Ogando 269 | PHI,SP,1500000,1500000,1500000,Chad Billingsley 270 | CWS,C,1500000,1500000,1500000,Geovany Soto 271 | CIN,SP,1500000,1500000,1500000,Jason Marquis 272 | MIA,C,1500000,1500000,1500000,Jeff Mathis 273 | CLE,SP,1500000,1500000,1500000,Josh Tomlin 274 | ATL,3B,1500000,1500000,1500000,Kelly Johnson 275 | CIN,RP,1500000,1500000,1500000,Kevin Gregg 276 | CWS,RP,1500000,1500000,1500000,Matt Albers 277 | NYY,RP,1480000,1480000,1480000,Esmil Rogers 278 | KC,RP,1475000,1475000,1475000,Tim Collins 279 | NYM,LF,1450000,1450000,1450000,John Mayberry Jr. 280 | DET,SS,1443750,1443750,1443750,Jose Iglesias 281 | MIA,SP,1400000,1400000,1400000,David Phelps 282 | SEA,RP,1400000,1400000,1400000,Tom Wilhelmsen 283 | MIN,RP,1375000,1375000,1375000,Casey Fien 284 | SD,RP,1375000,1375000,1375000,Dale Thayer 285 | LAA,RP,1370000,1370000,1370000,Fernando Salas 286 | LAA,RP,1312500,1312500,1312500,Cesar Ramos 287 | COL,RP,1300000,1300000,1300000,Adam Ottavino 288 | SEA,RP,1300000,1300000,1300000,Charlie Furbush 289 | SD,SS,1300000,1300000,1300000,Clint Barmes 290 | NYY,RP,1275000,1275000,1275000,David Carpenter 291 | CIN,RF,1250000,1250000,1250000,Brennan Boesch 292 | MIA,3B,1250000,1250000,1250000,Don Kelly 293 | KC,RP,1250000,1250000,1250000,Jason Frasor 294 | HOU,SP,1250000,1250000,1250000,Roberto Hernandez 295 | PIT,C,1225000,1225000,1225000,Chris Stewart 296 | KC,CF,1225000,1225000,1225000,Jarrod Dyson 297 | WSH,C,1200000,1200000,1200000,Jose Lobaton 298 | SD,SS,1150000,2500000,1250000,Alexi Amarista 299 | LAA,RP,1150000,1150000,1150000,Vinnie Pestano 300 | TB,2B,1100000,1100000,1100000,Logan Forsythe 301 | SF,1B,1100000,1100000,1100000,Travis Ishikawa 302 | COL,C,1087600,1087600,1087600,Michael McKenry 303 | OAK,RP,1087500,1087500,1087500,Fernando Abad 304 | OAK,2B,1075000,1075000,1075000,Eric Sogard 305 | HOU,C,1075000,1075000,1075000,Hank Conger 306 | PIT,RP,1075000,1075000,1075000,Jared Hughes 307 | BAL,2B,1075000,1075000,1075000,Ryan Flaherty 308 | HOU,SS,1062500,1062500,1062500,Marwin Gonzalez 309 | MIN,SS,1025000,1025000,1025000,Eduardo Nunez 310 | CLE,SP,1000000,38500000,7700000,Corey Kluber 311 | COL,SP,1000000,2000000,1000000,Tyler Chatwood 312 | ATL,CF,1000000,1000000,1000000,Eric Young Jr. 313 | ARI,C,1000000,1000000,1000000,Gerald Laird 314 | CHC,SP,1000000,1000000,1000000,Jacob Turner 315 | DET,RP,1000000,1000000,1000000,Joba Chamberlain 316 | HOU,RP,1000000,1000000,1000000,Joe Thatcher 317 | SD,SP,1000000,1000000,1000000,Josh Johnson 318 | SF,RF,1000000,1000000,1000000,Justin Maxwell 319 | TOR,1B,1000000,1000000,1000000,Justin Smoak 320 | TEX,RP,1000000,1000000,1000000,Kyuji Fujikawa 321 | PIT,RP,1000000,1000000,1000000,Radhames Liz 322 | COL,RP,1000000,1000000,1000000,Rafael Betancourt 323 | WSH,LF,1000000,1000000,1000000,Reed Johnson 324 | DET,RP,1000000,1000000,1000000,Tom Gorzelanny 325 | LAA,LF,995000,995000,995000,Collin Cowgill 326 | LAA,C,987500,987500,987500,Drew Butera 327 | PIT,C,987500,987500,987500,Francisco Cervelli 328 | TEX,C,975000,975000,975000,Carlos Corporan 329 | CWS,P,937500,937500,937500,Javy Guerra 330 | PHI,RF,925000,925000,925000,Jeff Francoeur 331 | ATL,RP,925000,925000,925000,Josh Outman 332 | TEX,3B,900000,900000,900000,Adam Rosales 333 | CLE,RP,900000,900000,900000,Anthony Swarzak 334 | CHC,2B,900000,900000,900000,Jonathan Herrera 335 | ARI,C,900000,900000,900000,Jordan Pacheco 336 | PHI,SS,850000,850000,850000,Andres Blanco 337 | OAK,SP,850000,850000,850000,Jarrod Parker 338 | KC,RP,850000,850000,850000,Ryan Madson 339 | SD,C,850000,850000,850000,Wil Nieves 340 | MIL,C,825000,1950000,975000,Martin Maldonado 341 | ARI,RP,800000,800000,800000,Daniel Hudson 342 | TB,RP,800000,800000,800000,Ernesto Frieri 343 | SF,C,800000,800000,800000,Hector Sanchez 344 | PHI,RP,800000,800000,800000,Jeanmar Gomez 345 | STL,C,775000,775000,775000,Tony Cruz 346 | KC,SP,750000,23000000,4600000,Yordano Ventura 347 | MIN,RP,750000,750000,750000,Blaine Boyer 348 | TEX,RP,725000,725000,725000,Anthony Bass 349 | NYM,RP,725000,725000,725000,Buddy Carlyle 350 | TB,C,700000,700000,700000,Bobby Wilson 351 | LAD,C,693000,693000,693000,Yasmani Grandal 352 | KC,SP,675000,675000,675000,Chris Young 353 | CWS,RP,660000,660000,660000,Nate Jones 354 | MIA,LF,651000,49570000,7081428,Christian Yelich 355 | MIA,SP,651000,651000,651000,Jose Fernandez 356 | SF,P,650000,650000,650000,Erik Cordier 357 | NYM,SP,614125,614125,614125,Matt Harvey 358 | BOS,SP,603000,603000,603000,Joe Kelly 359 | TEX,CF,600000,600000,600000,Antoan Richardson 360 | PHI,RP,600000,600000,600000,Dustin McGowan 361 | NYM,RP,582125,582125,582125,Carlos Torres 362 | BOS,RP,576500,576500,576500,Anthony Varvaro 363 | PHI,RP,575000,575000,575000,Cesar Jimenez 364 | NYY,SP,572600,572600,572600,Adam Warren 365 | MIA,SP,570000,570000,570000,Tom Koehler 366 | BOS,RP,566500,566500,566500,Robbie Ross Jr. 367 | CWS,LF,560000,23500000,4700000,Adam Eaton 368 | BOS,RP,557000,557000,557000,Tommy Layne 369 | NYY,RP,556000,556000,556000,Justin Wilson 370 | CWS,3B,555000,555000,555000,Conor Gillaspie 371 | MIA,CF,555000,555000,555000,Marcell Ozuna 372 | NYY,SS,553900,553900,553900,Didi Gregorius 373 | MIN,CF,550000,550000,550000,Shane Robinson 374 | BAL,3B,548000,548000,548000,Manny Machado 375 | CLE,RP,547100,547100,547100,Cody Allen 376 | NYM,SP,546250,546250,546250,Zack Wheeler 377 | CIN,CF,545000,545000,545000,Billy Hamilton 378 | SD,C,545000,545000,545000,Derek Norris 379 | CHC,RP,544000,544000,544000,Hector Rondon 380 | BOS,SS,543000,543000,543000,Xander Bogaerts 381 | SD,3B,540500,540500,540500,Will Middlebrooks 382 | MIA,SP,540000,540000,540000,Jarred Cosart 383 | PIT,SS,538000,538000,538000,Jordy Mercer 384 | LAA,RF,537500,537500,537500,Kole Calhoun 385 | MIN,SP,537500,537500,537500,Kyle Gibson 386 | PHI,RP,535500,535500,535500,Jake Diekman 387 | CIN,RP,535000,535000,535000,J.J. Hoover 388 | ATL,SP,535000,535000,535000,Shelby Miller 389 | STL,RP,535000,535000,535000,Trevor Rosenthal 390 | MIL,SS,534000,534000,534000,Jean Segura 391 | STL,1B,534000,534000,534000,Matt Adams 392 | MIN,LF,532500,532500,532500,Eduardo Escobar 393 | KC,C,532500,532500,532500,Erik Kratz 394 | MIN,LF,532500,532500,532500,Oswaldo Arcia 395 | NYM,SP,531875,531875,531875,Jacob deGrom 396 | MIA,RP,531500,531500,531500,Bryan Morris 397 | MIA,SS,531500,531500,531500,Donovan Solano 398 | CHC,RP,531500,531500,531500,Justin Grimm 399 | PIT,SP,531000,531000,531000,Gerrit Cole 400 | PIT,SP,531000,531000,531000,Jeff Locke 401 | MIA,RP,530000,530000,530000,A.J. Ramos 402 | MIN,SS,530000,530000,530000,Danny Santana 403 | ATL,RP,530000,530000,530000,Luis Avilan 404 | STL,RP,530000,530000,530000,Seth Maness 405 | WSH,RP,529600,529600,529600,Tanner Roark 406 | NYM,CF,528696,23553696,4710739,Juan Lagares 407 | PHI,RP,528000,528000,528000,Justin De Fratus 408 | SEA,SS,527600,527600,527600,Brad Miller 409 | SF,RP,527500,527500,527500,Jean Machi 410 | SEA,RP,527300,527300,527300,Yoervis Medina 411 | TOR,RP,527000,527000,527000,Aaron Loup 412 | SEA,RP,527000,527000,527000,Danny Farquhar 413 | HOU,DH,526500,526500,526500,Evan Gattis 414 | ARI,RP,526000,526000,526000,Randall Delgado 415 | BAL,LF,525500,525500,525500,David Lough 416 | CIN,RP,525500,525500,525500,Tony Cingrani 417 | MIL,SP,525500,525500,525500,Wily Peralta 418 | NYM,C,525424,525424,525424,Travis d'Arnaud 419 | NYM,LF,525415,525415,525415,Kirk Nieuwenhuis 420 | SD,RP,525300,525300,525300,Nick Vincent 421 | HOU,RP,525100,525100,525100,Samuel Deduno 422 | WSH,LF,525000,525000,525000,Clint Robinson 423 | PIT,RF,525000,525000,525000,Gregory Polanco 424 | DET,3B,525000,525000,525000,Nick Castellanos 425 | CWS,RP,525000,525000,525000,Zach Putnam 426 | HOU,SP,524500,524500,524500,Dallas Keuchel 427 | ARI,SP,524000,524000,524000,Patrick Corbin 428 | NYM,RP,523925,523925,523925,Jeurys Familia 429 | SEA,C,523500,523500,523500,Mike Zunino 430 | CWS,RF,523000,523000,523000,Avisail Garcia 431 | BAL,RP,523000,523000,523000,Brad Brach 432 | CWS,RP,523000,523000,523000,Dan Jennings 433 | NYM,RP,522900,522900,522900,Alex Torres 434 | TB,SP,522800,522800,522800,Erasmo Ramirez 435 | LAD,RP,522500,522500,522500,Chris Hatcher 436 | LAD,P,522500,522500,522500,Chris Withrow 437 | CIN,CF,522500,522500,522500,Jason Bourgeois 438 | SF,2B,522500,522500,522500,Joe Panik 439 | LAD,RP,522500,522500,522500,Paco Rodriguez 440 | LAD,LF,522500,522500,522500,Scott Van Slyke 441 | TB,SP,522000,522000,522000,Jake Odorizzi 442 | BAL,RP,522000,522000,522000,Kevin Gausman 443 | STL,SS,522000,522000,522000,Pete Kozma 444 | TB,RP,521400,521400,521400,Brad Boxberger 445 | NYM,RP,520625,520625,520625,Josh Edgin 446 | PIT,SP,520500,520500,520500,Brandon Cumpton 447 | CLE,RP,520400,520400,520400,Zach McAllister 448 | MIN,RP,520000,520000,520000,Aaron Thompson 449 | ATL,SP,520000,520000,520000,Alex Wood 450 | DET,SS,520000,520000,520000,Andrew Romine 451 | MIA,RP,520000,520000,520000,Brad Hand 452 | STL,SP,520000,520000,520000,Carlos Martinez 453 | CWS,RP,520000,520000,520000,Jake Petricka 454 | STL,2B,520000,520000,520000,Kolten Wong 455 | STL,SP,520000,520000,520000,Michael Wacha 456 | CHC,3B,520000,520000,520000,Mike Olt 457 | TOR,RP,520000,520000,520000,Todd Redmond 458 | SD,CF,519800,519800,519800,Wil Myers 459 | TEX,RP,519700,519700,519700,Shawn Tolleson 460 | ARI,CF,519500,519500,519500,A.J. Pollock 461 | MIL,LF,519500,519000,519000,Khris Davis 462 | PHI,RP,519000,519000,519000,Ken Giles 463 | NYY,C,518700,518700,518700,John Ryan Murphy 464 | PIT,SS,518500,518500,518500,Justin Sellers 465 | TOR,RP,518400,518400,518400,Liam Hendriks 466 | TEX,C,518290,518290,518290,Robinson Chirinos 467 | CWS,P,518200,518200,518200,Kyle Drabek 468 | WSH,LF,518200,518200,518200,Tyler Moore 469 | STL,RP,518000,518000,518000,Kevin Siegrist 470 | PIT,C,518000,518000,518000,Tony Sanchez 471 | NYM,C,517880,517880,517880,Anthony Recker 472 | OAK,SP,517500,517500,517500,A.J. Griffin 473 | COL,CF,517500,517500,517500,Charlie Blackmon 474 | PHI,LF,517500,517500,517500,Cody Asche 475 | COL,2B,517500,517500,517500,DJ LeMahieu 476 | OAK,SP,517500,517500,517500,Drew Pomeranz 477 | SF,RP,517500,517500,517500,George Kontos 478 | LAA,SP,517500,517500,517500,Matt Shoemaker 479 | PIT,RP,517500,517500,517500,Rob Scahill 480 | SD,SP,517300,517300,517300,Odrisamer Despaigne 481 | TOR,2B,517300,517300,517300,Steve Tolleson 482 | CLE,RP,517100,517100,517100,Nick Hagadone 483 | MIN,1B,517000,517000,517000,Kennys Vargas 484 | HOU,RP,516700,516700,516700,Josh Fields 485 | MIL,2B,516500,516500,516500,Scooter Gennett 486 | WSH,RP,516500,516500,516500,Xavier Cedeno 487 | SD,1B,516400,516400,516400,Yangervis Solarte 488 | HOU,SP,516300,516300,516300,Collin McHugh 489 | LAA,2B,516250,516250,516250,Johnny Giavotella 490 | CWS,P,516000,516000,516000,Eric Surkamp 491 | CWS,RF,516000,516000,516000,J.B. Shuck 492 | ARI,SP,516000,516000,516000,Rubby De La Rosa 493 | HOU,SP,515800,515800,515800,Brad Peacock 494 | TB,LF,515800,515800,515800,Brandon Guyer 495 | HOU,SP,515800,515800,515800,Brett Oberholtzer 496 | PIT,RP,515500,515500,515500,Arquimedes Caminero 497 | NYM,RP,515500,515500,515500,Vic Black 498 | TEX,RP,515200,515200,515200,Tanner Scheppers 499 | PIT,RF,515000,515000,515000,Andrew Lambo 500 | DET,CF,515000,515000,515000,Anthony Gose 501 | BAL,C,515000,515000,515000,Caleb Joseph 502 | PHI,LF,515000,515000,515000,Darin Ruf 503 | DET,RP,515000,515000,515000,Ian Krol 504 | BAL,2B,515000,515000,515000,Jimmy Paredes 505 | BAL,2B,515000,515000,515000,Jonathan Schoop 506 | TEX,SP,515000,515000,515000,Nick Martinez 507 | HOU,LF,515000,515000,515000,Robbie Grossman 508 | DET,SP,515000,515000,515000,Shane Greene 509 | LAA,SP,515000,515000,515000,Tyler Skaggs 510 | TOR,SP,514700,514700,514700,Marcus Stroman 511 | BOS,CF,514500,514500,514500,Mookie Betts 512 | CHC,RP,514500,514500,514500,Neil Ramirez 513 | ARI,C,514500,514500,514500,Tuffy Gosewisch 514 | WSH,RP,514200,514200,514200,Aaron Barrett 515 | LAA,RP,514000,514000,514000,Mike Morin 516 | BAL,C,514000,514000,514000,Steve Clevenger 517 | HOU,RP,513900,513900,513900,Will Harris 518 | TEX,2B,513850,513850,513850,Rougned Odor 519 | TB,CF,513800,513800,513800,Kevin Kiermaier 520 | TB,RP,513600,513600,513600,Jeff Beliveau 521 | NYM,SS,513543,513543,513543,Wilmer Flores 522 | PHI,SS,513500,513500,513500,Freddy Galvis 523 | SEA,SP,513100,513100,513100,Taijuan Walker 524 | LAA,RP,513000,513000,513000,Cory Rasmus 525 | ARI,LF,513000,513000,513000,Ender Inciarte 526 | HOU,SS,513000,513000,513000,Jonathan Villar 527 | CHC,2B,513000,513000,513000,Tommy La Stella 528 | HOU,RF,512900,512900,512900,George Springer 529 | WSH,RP,512800,512800,512800,Blake Treinen 530 | TB,RP,512800,512800,512800,Kirby Yates 531 | WSH,LF,512792,512792,512792,Matt den Dekker 532 | LAA,DH,512500,512500,512500,C.J. Cron 533 | COL,3B,512500,512500,512500,Charlie Culberson 534 | ARI,SP,512500,512500,512500,Chase Anderson 535 | ARI,2B,512500,512500,512500,Chris Owings 536 | COL,RP,512500,512500,512500,Christian Friedrich 537 | BOS,C,512500,512500,512500,Christian Vazquez 538 | COL,LF,512500,512500,512500,Corey Dickerson 539 | OAK,RP,512500,512500,512500,Dan Otero 540 | PHI,SP,512500,512500,512500,David Buchanan 541 | COL,SP,512500,512500,512500,David Hale 542 | SEA,RP,512500,512500,512500,Edgar Olmos 543 | OAK,RP,512500,512500,512500,Evan Scribner 544 | CIN,SS,512500,512500,512500,Kristopher Negron 545 | PHI,RP,512500,512500,512500,Mario Hollands 546 | MIL,SP,512500,512500,512500,Mike Fiers 547 | OAK,1B,512500,512500,512500,Nate Freiman 548 | COL,3B,512500,512500,512500,Nolan Arenado 549 | LAD,RP,512500,512500,512500,Pedro Baez 550 | OAK,SP,512500,512500,512500,Sonny Gray 551 | OAK,C,512500,512500,512500,Stephen Vogt 552 | MIL,RP,512500,512500,512500,Will Smith 553 | SEA,SS,512400,512400,512400,Chris Taylor 554 | SD,C,512400,512400,512400,Tim Federowicz 555 | ARI,LF,512000,512000,512000,David Peralta 556 | ARI,RP,512000,512000,512000,Evan Marshall 557 | MIL,P,512000,512000,512000,Jim Henderson 558 | TOR,CF,512000,512000,512000,Kevin Pillar 559 | CLE,SP,511900,511900,511900,T.J. House 560 | MIL,SP,511500,511500,511500,Jimmy Nelson 561 | CLE,SS,511300,511300,511300,Jose Ramirez 562 | HOU,CF,511200,511200,511200,Jake Marisnick 563 | NYY,RP,511025,511025,511025,Chris Martin 564 | LAA,LF,511000,511000,511000,Efren Navarro 565 | NYM,RP,511000,511000,511000,Rafael Montero 566 | CLE,RP,510900,510900,510900,Kyle Crockett 567 | TB,2B,510900,510900,510900,Nick Franklin 568 | TOR,RP,510800,510800,510800,Aaron Sanchez 569 | TB,SP,510800,510800,510800,Alex Colome 570 | TOR,RP,510800,510800,510800,Colt Hynes 571 | MIL,RP,510500,510500,510500,Jeremy Jeffress 572 | MIL,CF,510500,510500,510500,Logan Schafer 573 | ARI,RP,510500,510500,510500,Matt Stites 574 | BOS,SP,510500,510500,510500,Steven Wright 575 | MIL,RP,510500,510500,510500,Tyler Thornburg 576 | BOS,C,510400,510400,510400,Sandy Leon 577 | NYY,RP,510275,510275,510275,Chasen Shreve 578 | CWS,2B,510000,510000,510000,Carlos Sanchez 579 | PHI,2B,510000,510000,510000,Cesar Hernandez 580 | CIN,3B,510000,510000,510000,Chris Dominguez 581 | MIN,C,510000,510000,510000,Chris Herrmann 582 | NYY,2B,510000,510000,510000,Gregorio Petit 583 | PIT,LF,510000,510000,510000,Jaff Decker 584 | LAD,CF,510000,510000,510000,Joc Pederson 585 | PHI,SP,510000,510000,510000,Jonathan Pettibone 586 | NYY,2B,510000,510000,510000,Jose Pirela 587 | OAK,C,510000,510000,510000,Josh Phegley 588 | CIN,RP,510000,510000,510000,Jumbo Diaz 589 | CHC,SP,510000,510000,510000,Kyle Hendricks 590 | OAK,SS,510000,510000,510000,Marcus Semien 591 | STL,RF,510000,510000,510000,Randal Grichuk 592 | LAD,RP,510000,510000,510000,Yimi Garcia 593 | CLE,SS,509600,509600,509600,Zach Walters 594 | KC,SS,509525,509525,509525,Christian Colon 595 | COL,RP,509500,509500,509500,Brooks Brown 596 | SEA,RP,509500,509500,509500,Carson Smith 597 | COL,RP,509500,509500,509500,Christian Bergman 598 | COL,SP,509500,509500,509500,Eddie Butler 599 | LAA,RP,509500,509500,509500,Jose Alvarez 600 | TEX,SP,509500,509500,509500,Phil Klein 601 | COL,LF,509500,509500,509500,Rafael Ynoa 602 | TEX,RP,509500,509500,509500,Roman Mendez 603 | COL,SP,509500,509500,509500,Tyler Matzek 604 | SEA,C,509300,509300,509300,Jesus Sucre 605 | PHI,RP,509000,509000,509000,Luis Garcia 606 | SF,3B,509000,509000,509000,Matt Duffy 607 | WSH,RP,508900,508900,508900,Erik Davis 608 | TB,RP,508900,508900,508900,Steve Geltz 609 | TB,SP,508800,508800,508800,Nathan Karns 610 | ATL,RP,508750,508750,508750,Shae Simmons 611 | TOR,SP,508700,508700,508700,Daniel Norris 612 | WSH,RF,508700,508700,508700,Michael Taylor 613 | TB,RF,508700,508700,508700,Steven Souza Jr. 614 | CLE,C,508600,508600,508600,Roberto Perez 615 | SD,2B,508500,508500,508500,Cory Spangenberg 616 | CHC,SP,508500,508500,508500,Dallas Beeler 617 | TOR,CF,508500,508500,508500,Dalton Pompey 618 | BOS,RP,508500,508500,508500,Edwin Escobar 619 | SD,RP,508500,508500,508500,Frank Garces 620 | DET,3B,508500,508500,508500,Hernan Perez 621 | ARI,3B,508500,508500,508500,Jake Lamb 622 | TEX,LF,508500,508500,508500,Jake Smolinski 623 | TEX,RP,508500,508500,508500,Lisalverto Bonilla 624 | MIL,3B,508500,508500,508500,Luis Jimenez 625 | CHC,LF,508500,508500,508500,Matt Szczur 626 | MIL,RP,508500,508500,508500,Michael Blazek 627 | ARI,SS,508500,508500,508500,Nick Ahmed 628 | TEX,LF,508500,508500,508500,Ryan Rua 629 | TB,2B,508100,508100,508100,Tim Beckham 630 | PHI,C,508000,508000,508000,Cameron Rupp 631 | ARI,RP,507500,507500,507500,Andrew Chafin 632 | ATL,RP,507500,507500,507500,Andrew McKirahan 633 | DET,RP,507500,507500,507500,Angel Nesbitt 634 | CIN,SP,507500,507500,507500,Anthony DeSclafani 635 | HOU,SP,507500,507500,507500,Asher Wojciechowski 636 | OAK,CF,507500,507500,507500,Billy Burns 637 | ATL,C,507500,507500,507500,Christian Bethancourt 638 | ATL,RP,507500,507500,507500,Cody Martin 639 | ATL,RP,507500,507500,507500,Daniel Winkler 640 | TEX,CF,507500,507500,507500,Delino DeShields Jr. 641 | NYY,RP,507500,507500,507500,Dellin Betances 642 | TOR,2B,507500,507500,507500,Devon Travis 643 | LAA,RP,507500,507500,507500,Drew Rucinski 644 | MIL,2B,507500,507500,507500,Hector Gomez 645 | MIN,RP,507500,507500,507500,J.R. Graham 646 | ATL,2B,507500,507500,507500,Jace Peterson 647 | DET,C,507500,507500,507500,James McCann 648 | BAL,RP,507500,507500,507500,Jason Garcia 649 | ATL,LF,507500,507500,507500,Joey Terdoslavich 650 | STL,SP,507500,507500,507500,John Lackey 651 | ATL,RP,507500,507500,507500,Juan Jaime 652 | OAK,SP,507500,507500,507500,Kendall Graveman 653 | TEX,RP,507500,507500,507500,Keone Kela 654 | TEX,RP,507500,507500,507500,Logan Verrett 655 | OAK,1B,507500,507500,507500,Mark Canha 656 | TB,SP,507500,507500,507500,Matt Andriese 657 | CWS,2B,507500,507500,507500,Micah Johnson 658 | TOR,RP,507500,507500,507500,Miguel Castro 659 | PHI,CF,507500,507500,507500,Odubel Herrera 660 | ARI,C,507500,507500,507500,Oscar Hernandez 661 | KC,RF,507500,507500,507500,Paulo Orlando 662 | ATL,2B,507500,507500,507500,Phil Gosselin 663 | OAK,RP,507500,507500,507500,R.J. Alvarez 664 | TOR,RP,507500,507500,507500,Roberto Osuna 665 | MIA,RP,507500,507500,507500,Sam Dyson 666 | OAK,SP,507500,507500,507500,Sean Nolin 667 | LAA,3B,507500,507500,507500,Taylor Featherston 668 | OAK,RP,507500,507500,507500,Taylor Thompson 669 | STL,CF,507500,507500,507500,Thomas Pham 670 | OAK,2B,507500,507500,507500,Tyler Ladendorf 671 | SEA,RP,507500,507500,507500,Tyler Olson` 672 | -------------------------------------------------------------------------------- /src/data/d3_api.js: -------------------------------------------------------------------------------- 1 | export const data = { 2 | name: "d3", 3 | children: [ 4 | { name: "version", leafColor: "#fdcc8a", blockCalls: 1 }, 5 | { name: "ascending", leafColor: "#e34a33", blockCalls: 120 }, 6 | { name: "descending", leafColor: "#e34a33", blockCalls: 119 }, 7 | { name: "min", leafColor: "#b30000", blockCalls: 1200 }, 8 | { name: "max", leafColor: "#b30000", blockCalls: 721 }, 9 | { name: "extent", leafColor: "#e34a33", blockCalls: 443 }, 10 | { name: "sum", leafColor: "#e34a33", blockCalls: 103 }, 11 | { name: "mean", leafColor: "#fc8d59", blockCalls: 49 }, 12 | { name: "quantile", leafColor: "#fc8d59", blockCalls: 37 }, 13 | { name: "median", leafColor: "#fc8d59", blockCalls: 28 }, 14 | { name: "variance", leafColor: "#fc8d59", blockCalls: 8 }, 15 | { name: "deviation", leafColor: "#fc8d59", blockCalls: 8 }, 16 | { name: "bisectLeft", leafColor: "#fc8d59", blockCalls: 24 }, 17 | { name: "bisectRight", leafColor: "#fc8d59", blockCalls: 24 }, 18 | { name: "bisect", leafColor: "#e34a33", blockCalls: 73 }, 19 | { name: "bisector", leafColor: "#fc8d59", blockCalls: 49 }, 20 | { name: "shuffle", leafColor: "#fc8d59", blockCalls: 44 }, 21 | { name: "permute", leafColor: "#fc8d59", blockCalls: 25 }, 22 | { name: "pairs", leafColor: "#fc8d59", blockCalls: 19 }, 23 | { name: "zip", leafColor: "#fc8d59", blockCalls: 38 }, 24 | { name: "transpose", leafColor: "#fc8d59", blockCalls: 27 }, 25 | { name: "keys", leafColor: "#e34a33", blockCalls: 255 }, 26 | { name: "values", leafColor: "#e34a33", blockCalls: 77 }, 27 | { name: "entries", leafColor: "#e34a33", blockCalls: 84 }, 28 | { name: "merge", leafColor: "#e34a33", blockCalls: 76 }, 29 | { name: "range", leafColor: "#b30000", blockCalls: 1204 }, 30 | { name: "map", leafColor: "#e34a33", blockCalls: 74 }, 31 | { name: "nest", leafColor: "#e34a33", blockCalls: 331 }, 32 | { name: "set", leafColor: "#fc8d59", blockCalls: 36 }, 33 | { 34 | name: "behavior", 35 | children: [ 36 | { name: "drag", leafColor: "#e34a33", blockCalls: 242 }, 37 | { name: "zoom", leafColor: "#e34a33", blockCalls: 189 } 38 | ], 39 | leafColor: "#e34a33", 40 | blockCalls: 394 41 | }, 42 | { name: "rebind", leafColor: "#e34a33", blockCalls: 128 }, 43 | { name: "dispatch", leafColor: "#e34a33", blockCalls: 177 }, 44 | { name: "event", leafColor: "#b30000", blockCalls: 619 }, 45 | { name: "requote", leafColor: "#fc8d59", blockCalls: 24 }, 46 | { 47 | name: "selection", 48 | children: [{ name: "enter", leafColor: "#fdcc8a", blockCalls: 1 }], 49 | leafColor: "#e34a33", 50 | blockCalls: 94 51 | }, 52 | { 53 | name: "ns", 54 | children: [ 55 | { 56 | name: "prefix", 57 | children: [ 58 | { name: "svg", leafColor: "#fdcc8a", blockCalls: 1 }, 59 | { name: "xhtml", leafColor: "#fdcc8a", blockCalls: 1 }, 60 | { name: "xlink", leafColor: "#fdcc8a", blockCalls: 1 }, 61 | { name: "xml", leafColor: "#fdcc8a", blockCalls: 1 }, 62 | { name: "xmlns", leafColor: "#fdcc8a", blockCalls: 1 } 63 | ], 64 | leafColor: "#fc8d59", 65 | blockCalls: 32 66 | }, 67 | { name: "qualify", leafColor: "#fc8d59", blockCalls: 29 } 68 | ], 69 | leafColor: "#fc8d59", 70 | blockCalls: 38 71 | }, 72 | { name: "select", leafColor: "#7f0000", blockCalls: 4195 }, 73 | { name: "selectAll", leafColor: "#b30000", blockCalls: 600 }, 74 | { name: "mouse", leafColor: "#e34a33", blockCalls: 339 }, 75 | { name: "touch", leafColor: "#fc8d59", blockCalls: 39 }, 76 | { name: "touches", leafColor: "#fc8d59", blockCalls: 39 }, 77 | { name: "interpolateZoom", leafColor: "#fc8d59", blockCalls: 17 }, 78 | { name: "color", leafColor: "#fdcc8a", blockCalls: 1 }, 79 | { name: "hsl", leafColor: "#e34a33", blockCalls: 80 }, 80 | { name: "hcl", leafColor: "#fc8d59", blockCalls: 38 }, 81 | { name: "lab", leafColor: "#fc8d59", blockCalls: 31 }, 82 | { name: "rgb", leafColor: "#e34a33", blockCalls: 188 }, 83 | { name: "functor", leafColor: "#e34a33", blockCalls: 104 }, 84 | { name: "xhr", leafColor: "#fc8d59", blockCalls: 29 }, 85 | { name: "dsv", leafColor: "#fc8d59", blockCalls: 18 }, 86 | { 87 | name: "csv", 88 | children: [ 89 | { name: "parse", leafColor: "#fc8d59", blockCalls: 17 }, 90 | { name: "parseRows", leafColor: "#fc8d59", blockCalls: 9 }, 91 | { name: "format", leafColor: "#fc8d59", blockCalls: 12 }, 92 | { name: "formatRows", leafColor: "#fdcc8a", blockCalls: 1 } 93 | ], 94 | leafColor: "#e34a33", 95 | blockCalls: 492 96 | }, 97 | { 98 | name: "tsv", 99 | children: [ 100 | { name: "parse", leafColor: "#fdcc8a", blockCalls: 1 }, 101 | { name: "parseRows", leafColor: "#fdcc8a", blockCalls: 1 }, 102 | { name: "format", leafColor: "#fc8d59", blockCalls: 13 }, 103 | { name: "formatRows", leafColor: "#fdcc8a", blockCalls: 1 } 104 | ], 105 | leafColor: "#e34a33", 106 | blockCalls: 148 107 | }, 108 | { 109 | name: "timer", 110 | children: [{ name: "flush", leafColor: "#e34a33", blockCalls: 54 }], 111 | leafColor: "#e34a33", 112 | blockCalls: 269 113 | }, 114 | { name: "round", leafColor: "#e34a33", blockCalls: 52 }, 115 | { name: "formatPrefix", leafColor: "#fc8d59", blockCalls: 28 }, 116 | { 117 | name: "time", 118 | children: [ 119 | { 120 | name: "year", 121 | children: [ 122 | { name: "round", leafColor: "#fdcc8a", blockCalls: 1 }, 123 | { name: "ceil", leafColor: "#fdcc8a", blockCalls: 1 }, 124 | { name: "offset", leafColor: "#fdcc8a", blockCalls: 1 }, 125 | { 126 | name: "range", 127 | children: [{ name: "utc", leafColor: "#fdcc8a", blockCalls: 1 }], 128 | leafColor: "#fdcc8a", 129 | blockCalls: 1 130 | }, 131 | { 132 | name: "utc", 133 | children: [ 134 | { name: "round", leafColor: "#fdcc8a", blockCalls: 1 }, 135 | { name: "ceil", leafColor: "#fdcc8a", blockCalls: 1 }, 136 | { name: "offset", leafColor: "#fdcc8a", blockCalls: 1 }, 137 | { name: "range", leafColor: "#fdcc8a", blockCalls: 1 } 138 | ], 139 | leafColor: "#fdcc8a", 140 | blockCalls: 1 141 | } 142 | ], 143 | leafColor: "#fc8d59", 144 | blockCalls: 42 145 | }, 146 | { 147 | name: "years", 148 | children: [{ name: "utc", leafColor: "#fdcc8a", blockCalls: 1 }], 149 | leafColor: "#fc8d59", 150 | blockCalls: 38 151 | }, 152 | { 153 | name: "day", 154 | children: [ 155 | { name: "round", leafColor: "#fdcc8a", blockCalls: 1 }, 156 | { name: "ceil", leafColor: "#fdcc8a", blockCalls: 1 }, 157 | { name: "offset", leafColor: "#fdcc8a", blockCalls: 1 }, 158 | { 159 | name: "range", 160 | children: [{ name: "utc", leafColor: "#fdcc8a", blockCalls: 1 }], 161 | leafColor: "#fdcc8a", 162 | blockCalls: 1 163 | }, 164 | { 165 | name: "utc", 166 | children: [ 167 | { name: "round", leafColor: "#fdcc8a", blockCalls: 1 }, 168 | { name: "ceil", leafColor: "#fdcc8a", blockCalls: 1 }, 169 | { name: "offset", leafColor: "#fdcc8a", blockCalls: 1 }, 170 | { name: "range", leafColor: "#fdcc8a", blockCalls: 1 } 171 | ], 172 | leafColor: "#fdcc8a", 173 | blockCalls: 1 174 | } 175 | ], 176 | leafColor: "#e34a33", 177 | blockCalls: 86 178 | }, 179 | { 180 | name: "months", 181 | children: [{ name: "utc", leafColor: "#fdcc8a", blockCalls: 1 }], 182 | leafColor: "#fc8d59", 183 | blockCalls: 43 184 | }, 185 | { 186 | name: "scale", 187 | children: [{ name: "utc", leafColor: "#fdcc8a", blockCalls: 1 }], 188 | leafColor: "#e34a33", 189 | blockCalls: 365 190 | } 191 | ], 192 | leafColor: "#b30000", 193 | blockCalls: 700 194 | }, 195 | { name: "locale", leafColor: "#fc8d59", blockCalls: 11 }, 196 | { name: "format", leafColor: "#e34a33", blockCalls: 343 }, 197 | { 198 | name: "geo", 199 | children: [ 200 | { name: "stream", leafColor: "#fc8d59", blockCalls: 25 }, 201 | { name: "area", leafColor: "#fc8d59", blockCalls: 19 }, 202 | { name: "bounds", leafColor: "#fc8d59", blockCalls: 38 }, 203 | { name: "centroid", leafColor: "#fc8d59", blockCalls: 46 }, 204 | { name: "clipExtent", leafColor: "#fc8d59", blockCalls: 19 }, 205 | { 206 | name: "conicEqualArea", 207 | children: [{ name: "raw", leafColor: "#fdcc8a", blockCalls: 1 }], 208 | leafColor: "#fc8d59", 209 | blockCalls: 25 210 | }, 211 | { name: "albers", leafColor: "#e34a33", blockCalls: 181 }, 212 | { name: "albersUsa", leafColor: "#e34a33", blockCalls: 112 }, 213 | { name: "path", leafColor: "#b30000", blockCalls: 760 }, 214 | { name: "transform", leafColor: "#fc8d59", blockCalls: 34 }, 215 | { name: "projection", leafColor: "#e34a33", blockCalls: 235 }, 216 | { name: "projectionMutator", leafColor: "#fc8d59", blockCalls: 23 }, 217 | { 218 | name: "equirectangular", 219 | children: [{ name: "raw", leafColor: "#fdcc8a", blockCalls: 1 }], 220 | leafColor: "#e34a33", 221 | blockCalls: 95 222 | }, 223 | { name: "rotation", leafColor: "#fc8d59", blockCalls: 21 }, 224 | { name: "circle", leafColor: "#fc8d59", blockCalls: 42 }, 225 | { name: "distance", leafColor: "#fc8d59", blockCalls: 16 }, 226 | { name: "graticule", leafColor: "#e34a33", blockCalls: 294 }, 227 | { name: "greatArc", leafColor: "#fc8d59", blockCalls: 29 }, 228 | { name: "interpolate", leafColor: "#fc8d59", blockCalls: 27 }, 229 | { name: "length", leafColor: "#fc8d59", blockCalls: 19 }, 230 | { 231 | name: "azimuthalEqualArea", 232 | children: [ 233 | { 234 | name: "raw", 235 | children: [ 236 | { name: "invert", leafColor: "#fdcc8a", blockCalls: 1 } 237 | ], 238 | leafColor: "#fc8d59", 239 | blockCalls: 5 240 | } 241 | ], 242 | leafColor: "#fc8d59", 243 | blockCalls: 39 244 | }, 245 | { 246 | name: "azimuthalEquidistant", 247 | children: [ 248 | { 249 | name: "raw", 250 | children: [ 251 | { name: "invert", leafColor: "#fdcc8a", blockCalls: 1 } 252 | ], 253 | leafColor: "#fc8d59", 254 | blockCalls: 5 255 | } 256 | ], 257 | leafColor: "#fc8d59", 258 | blockCalls: 35 259 | }, 260 | { 261 | name: "conicConformal", 262 | children: [{ name: "raw", leafColor: "#fdcc8a", blockCalls: 1 }], 263 | leafColor: "#fc8d59", 264 | blockCalls: 33 265 | }, 266 | { 267 | name: "conicEquidistant", 268 | children: [{ name: "raw", leafColor: "#fdcc8a", blockCalls: 1 }], 269 | leafColor: "#fc8d59", 270 | blockCalls: 27 271 | }, 272 | { 273 | name: "gnomonic", 274 | children: [ 275 | { 276 | name: "raw", 277 | children: [ 278 | { name: "invert", leafColor: "#fdcc8a", blockCalls: 1 } 279 | ], 280 | leafColor: "#fdcc8a", 281 | blockCalls: 4 282 | } 283 | ], 284 | leafColor: "#fc8d59", 285 | blockCalls: 36 286 | }, 287 | { 288 | name: "mercator", 289 | children: [ 290 | { 291 | name: "raw", 292 | children: [ 293 | { name: "invert", leafColor: "#fdcc8a", blockCalls: 1 } 294 | ], 295 | leafColor: "#fdcc8a", 296 | blockCalls: 1 297 | } 298 | ], 299 | leafColor: "#e34a33", 300 | blockCalls: 222 301 | }, 302 | { 303 | name: "orthographic", 304 | children: [ 305 | { 306 | name: "raw", 307 | children: [ 308 | { name: "invert", leafColor: "#fdcc8a", blockCalls: 1 } 309 | ], 310 | leafColor: "#fdcc8a", 311 | blockCalls: 1 312 | } 313 | ], 314 | leafColor: "#e34a33", 315 | blockCalls: 93 316 | }, 317 | { 318 | name: "stereographic", 319 | children: [ 320 | { 321 | name: "raw", 322 | children: [ 323 | { name: "invert", leafColor: "#fdcc8a", blockCalls: 1 } 324 | ], 325 | leafColor: "#fdcc8a", 326 | blockCalls: 1 327 | } 328 | ], 329 | leafColor: "#fc8d59", 330 | blockCalls: 25 331 | }, 332 | { 333 | name: "transverseMercator", 334 | children: [ 335 | { 336 | name: "raw", 337 | children: [ 338 | { name: "invert", leafColor: "#fdcc8a", blockCalls: 1 } 339 | ], 340 | leafColor: "#fdcc8a", 341 | blockCalls: 1 342 | } 343 | ], 344 | leafColor: "#fc8d59", 345 | blockCalls: 20 346 | } 347 | ], 348 | leafColor: "#b30000", 349 | blockCalls: 1015 350 | }, 351 | { 352 | name: "geom", 353 | children: [ 354 | { name: "hull", leafColor: "#fc8d59", blockCalls: 25 }, 355 | { name: "polygon", leafColor: "#e34a33", blockCalls: 62 }, 356 | { name: "voronoi", leafColor: "#e34a33", blockCalls: 129 }, 357 | { name: "delaunay", leafColor: "#fc8d59", blockCalls: 34 }, 358 | { name: "quadtree", leafColor: "#e34a33", blockCalls: 97 } 359 | ], 360 | leafColor: "#e34a33", 361 | blockCalls: 234 362 | }, 363 | { name: "interpolateRgb", leafColor: "#e34a33", blockCalls: 94 }, 364 | { name: "interpolateObject", leafColor: "#fc8d59", blockCalls: 24 }, 365 | { name: "interpolateNumber", leafColor: "#e34a33", blockCalls: 149 }, 366 | { name: "interpolateString", leafColor: "#fc8d59", blockCalls: 41 }, 367 | { name: "interpolate", leafColor: "#b30000", blockCalls: 616 }, 368 | { name: "interpolators", leafColor: "#fc8d59", blockCalls: 24 }, 369 | { name: "interpolateArray", leafColor: "#fc8d59", blockCalls: 26 }, 370 | { name: "ease", leafColor: "#e34a33", blockCalls: 87 }, 371 | { name: "interpolateHcl", leafColor: "#e34a33", blockCalls: 104 }, 372 | { name: "interpolateHsl", leafColor: "#e34a33", blockCalls: 207 }, 373 | { name: "interpolateLab", leafColor: "#e34a33", blockCalls: 80 }, 374 | { name: "interpolateRound", leafColor: "#fc8d59", blockCalls: 27 }, 375 | { name: "transform", leafColor: "#fc8d59", blockCalls: 41 }, 376 | { name: "interpolateTransform", leafColor: "#fc8d59", blockCalls: 27 }, 377 | { 378 | name: "layout", 379 | children: [ 380 | { name: "bundle", leafColor: "#fc8d59", blockCalls: 30 }, 381 | { name: "chord", leafColor: "#e34a33", blockCalls: 56 }, 382 | { name: "force", leafColor: "#e34a33", blockCalls: 258 }, 383 | { name: "hierarchy", leafColor: "#fc8d59", blockCalls: 29 }, 384 | { name: "partition", leafColor: "#e34a33", blockCalls: 56 }, 385 | { name: "pie", leafColor: "#e34a33", blockCalls: 145 }, 386 | { name: "stack", leafColor: "#e34a33", blockCalls: 78 }, 387 | { name: "histogram", leafColor: "#fc8d59", blockCalls: 46 }, 388 | { name: "pack", leafColor: "#e34a33", blockCalls: 61 }, 389 | { name: "tree", leafColor: "#e34a33", blockCalls: 122 }, 390 | { name: "cluster", leafColor: "#fc8d59", blockCalls: 41 }, 391 | { name: "treemap", leafColor: "#e34a33", blockCalls: 52 } 392 | ], 393 | leafColor: "#b30000", 394 | blockCalls: 672 395 | }, 396 | { 397 | name: "random", 398 | children: [ 399 | { name: "normal", leafColor: "#e34a33", blockCalls: 55 }, 400 | { name: "logNormal", leafColor: "#fdcc8a", blockCalls: 1 }, 401 | { name: "bates", leafColor: "#fdcc8a", blockCalls: 2 }, 402 | { name: "irwinHall", leafColor: "#fc8d59", blockCalls: 13 } 403 | ], 404 | leafColor: "#fdcc8a", 405 | blockCalls: 1 406 | }, 407 | { 408 | name: "scale", 409 | children: [ 410 | { name: "linear", leafColor: "#b30000", blockCalls: 1730 }, 411 | { name: "log", leafColor: "#e34a33", blockCalls: 75 }, 412 | { name: "pow", leafColor: "#fc8d59", blockCalls: 39 }, 413 | { name: "sqrt", leafColor: "#e34a33", blockCalls: 152 }, 414 | { name: "ordinal", leafColor: "#b30000", blockCalls: 613 }, 415 | { name: "category10", leafColor: "#fdcc8a", blockCalls: 1 }, 416 | { name: "category20", leafColor: "#fdcc8a", blockCalls: 1 }, 417 | { name: "category20b", leafColor: "#fdcc8a", blockCalls: 1 }, 418 | { name: "category20c", leafColor: "#fdcc8a", blockCalls: 1 }, 419 | { name: "quantile", leafColor: "#fc8d59", blockCalls: 36 }, 420 | { name: "quantize", leafColor: "#e34a33", blockCalls: 94 }, 421 | { name: "threshold", leafColor: "#fc8d59", blockCalls: 42 }, 422 | { name: "identity", leafColor: "#fc8d59", blockCalls: 47 } 423 | ], 424 | leafColor: "#7f0000", 425 | blockCalls: 2391 426 | }, 427 | { 428 | name: "svg", 429 | children: [ 430 | { name: "arc", leafColor: "#e34a33", blockCalls: 306 }, 431 | { 432 | name: "line", 433 | children: [{ name: "radial", leafColor: "#fc8d59", blockCalls: 37 }], 434 | leafColor: "#b30000", 435 | blockCalls: 550 436 | }, 437 | { 438 | name: "area", 439 | children: [{ name: "radial", leafColor: "#fc8d59", blockCalls: 27 }], 440 | leafColor: "#e34a33", 441 | blockCalls: 142 442 | }, 443 | { name: "chord", leafColor: "#e34a33", blockCalls: 57 }, 444 | { 445 | name: "diagonal", 446 | children: [{ name: "radial", leafColor: "#fc8d59", blockCalls: 36 }], 447 | leafColor: "#e34a33", 448 | blockCalls: 86 449 | }, 450 | { name: "symbol", leafColor: "#e34a33", blockCalls: 56 }, 451 | { name: "symbolTypes", leafColor: "#fc8d59", blockCalls: 29 }, 452 | { name: "axis", leafColor: "#b30000", blockCalls: 782 }, 453 | { name: "brush", leafColor: "#e34a33", blockCalls: 195 } 454 | ], 455 | leafColor: "#b30000", 456 | blockCalls: 1434 457 | }, 458 | { name: "transition", leafColor: "#e34a33", blockCalls: 81 }, 459 | { name: "text", leafColor: "#fc8d59", blockCalls: 37 }, 460 | { name: "json", leafColor: "#b30000", blockCalls: 1014 }, 461 | { name: "html", leafColor: "#fc8d59", blockCalls: 32 }, 462 | { name: "xml", leafColor: "#fc8d59", blockCalls: 42 }, 463 | { name: "hexbin", leafColor: "#fc8d59", blockCalls: 21 } 464 | ] 465 | }; 466 | -------------------------------------------------------------------------------- /src/data/flare.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "flare", 3 | "children": [ 4 | { 5 | "name": "analytics", 6 | "children": [ 7 | { 8 | "name": "cluster", 9 | "children": [ 10 | {"name": "AgglomerativeCluster", "value": 3938}, 11 | {"name": "CommunityStructure", "value": 3812}, 12 | {"name": "HierarchicalCluster", "value": 6714}, 13 | {"name": "MergeEdge", "value": 743} 14 | ] 15 | }, 16 | { 17 | "name": "graph", 18 | "children": [ 19 | {"name": "BetweennessCentrality", "value": 3534}, 20 | {"name": "LinkDistance", "value": 5731}, 21 | {"name": "MaxFlowMinCut", "value": 7840}, 22 | {"name": "ShortestPaths", "value": 5914}, 23 | {"name": "SpanningTree", "value": 3416} 24 | ] 25 | }, 26 | { 27 | "name": "optimization", 28 | "children": [ 29 | {"name": "AspectRatioBanker", "value": 7074} 30 | ] 31 | } 32 | ] 33 | }, 34 | { 35 | "name": "animate", 36 | "children": [ 37 | {"name": "Easing", "value": 17010}, 38 | {"name": "FunctionSequence", "value": 5842}, 39 | { 40 | "name": "interpolate", 41 | "children": [ 42 | {"name": "ArrayInterpolator", "value": 1983}, 43 | {"name": "ColorInterpolator", "value": 2047}, 44 | {"name": "DateInterpolator", "value": 1375}, 45 | {"name": "Interpolator", "value": 8746}, 46 | {"name": "MatrixInterpolator", "value": 2202}, 47 | {"name": "NumberInterpolator", "value": 1382}, 48 | {"name": "ObjectInterpolator", "value": 1629}, 49 | {"name": "PointInterpolator", "value": 1675}, 50 | {"name": "RectangleInterpolator", "value": 2042} 51 | ] 52 | }, 53 | {"name": "ISchedulable", "value": 1041}, 54 | {"name": "Parallel", "value": 5176}, 55 | {"name": "Pause", "value": 449}, 56 | {"name": "Scheduler", "value": 5593}, 57 | {"name": "Sequence", "value": 5534}, 58 | {"name": "Transition", "value": 9201}, 59 | {"name": "Transitioner", "value": 19975}, 60 | {"name": "TransitionEvent", "value": 1116}, 61 | {"name": "Tween", "value": 6006} 62 | ] 63 | }, 64 | { 65 | "name": "data", 66 | "children": [ 67 | { 68 | "name": "converters", 69 | "children": [ 70 | {"name": "Converters", "value": 721}, 71 | {"name": "DelimitedTextConverter", "value": 4294}, 72 | {"name": "GraphMLConverter", "value": 9800}, 73 | {"name": "IDataConverter", "value": 1314}, 74 | {"name": "JSONConverter", "value": 2220} 75 | ] 76 | }, 77 | {"name": "DataField", "value": 1759}, 78 | {"name": "DataSchema", "value": 2165}, 79 | {"name": "DataSet", "value": 586}, 80 | {"name": "DataSource", "value": 3331}, 81 | {"name": "DataTable", "value": 772}, 82 | {"name": "DataUtil", "value": 3322} 83 | ] 84 | }, 85 | { 86 | "name": "display", 87 | "children": [ 88 | {"name": "DirtySprite", "value": 8833}, 89 | {"name": "LineSprite", "value": 1732}, 90 | {"name": "RectSprite", "value": 3623}, 91 | {"name": "TextSprite", "value": 10066} 92 | ] 93 | }, 94 | { 95 | "name": "flex", 96 | "children": [ 97 | {"name": "FlareVis", "value": 4116} 98 | ] 99 | }, 100 | { 101 | "name": "physics", 102 | "children": [ 103 | {"name": "DragForce", "value": 1082}, 104 | {"name": "GravityForce", "value": 1336}, 105 | {"name": "IForce", "value": 319}, 106 | {"name": "NBodyForce", "value": 10498}, 107 | {"name": "Particle", "value": 2822}, 108 | {"name": "Simulation", "value": 9983}, 109 | {"name": "Spring", "value": 2213}, 110 | {"name": "SpringForce", "value": 1681} 111 | ] 112 | }, 113 | { 114 | "name": "query", 115 | "children": [ 116 | {"name": "AggregateExpression", "value": 1616}, 117 | {"name": "And", "value": 1027}, 118 | {"name": "Arithmetic", "value": 3891}, 119 | {"name": "Average", "value": 891}, 120 | {"name": "BinaryExpression", "value": 2893}, 121 | {"name": "Comparison", "value": 5103}, 122 | {"name": "CompositeExpression", "value": 3677}, 123 | {"name": "Count", "value": 781}, 124 | {"name": "DateUtil", "value": 4141}, 125 | {"name": "Distinct", "value": 933}, 126 | {"name": "Expression", "value": 5130}, 127 | {"name": "ExpressionIterator", "value": 3617}, 128 | {"name": "Fn", "value": 3240}, 129 | {"name": "If", "value": 2732}, 130 | {"name": "IsA", "value": 2039}, 131 | {"name": "Literal", "value": 1214}, 132 | {"name": "Match", "value": 3748}, 133 | {"name": "Maximum", "value": 843}, 134 | { 135 | "name": "methods", 136 | "children": [ 137 | {"name": "add", "value": 593}, 138 | {"name": "and", "value": 330}, 139 | {"name": "average", "value": 287}, 140 | {"name": "count", "value": 277}, 141 | {"name": "distinct", "value": 292}, 142 | {"name": "div", "value": 595}, 143 | {"name": "eq", "value": 594}, 144 | {"name": "fn", "value": 460}, 145 | {"name": "gt", "value": 603}, 146 | {"name": "gte", "value": 625}, 147 | {"name": "iff", "value": 748}, 148 | {"name": "isa", "value": 461}, 149 | {"name": "lt", "value": 597}, 150 | {"name": "lte", "value": 619}, 151 | {"name": "max", "value": 283}, 152 | {"name": "min", "value": 283}, 153 | {"name": "mod", "value": 591}, 154 | {"name": "mul", "value": 603}, 155 | {"name": "neq", "value": 599}, 156 | {"name": "not", "value": 386}, 157 | {"name": "or", "value": 323}, 158 | {"name": "orderby", "value": 307}, 159 | {"name": "range", "value": 772}, 160 | {"name": "select", "value": 296}, 161 | {"name": "stddev", "value": 363}, 162 | {"name": "sub", "value": 600}, 163 | {"name": "sum", "value": 280}, 164 | {"name": "update", "value": 307}, 165 | {"name": "variance", "value": 335}, 166 | {"name": "where", "value": 299}, 167 | {"name": "xor", "value": 354}, 168 | {"name": "_", "value": 264} 169 | ] 170 | }, 171 | {"name": "Minimum", "value": 843}, 172 | {"name": "Not", "value": 1554}, 173 | {"name": "Or", "value": 970}, 174 | {"name": "Query", "value": 13896}, 175 | {"name": "Range", "value": 1594}, 176 | {"name": "StringUtil", "value": 4130}, 177 | {"name": "Sum", "value": 791}, 178 | {"name": "Variable", "value": 1124}, 179 | {"name": "Variance", "value": 1876}, 180 | {"name": "Xor", "value": 1101} 181 | ] 182 | }, 183 | { 184 | "name": "scale", 185 | "children": [ 186 | {"name": "IScaleMap", "value": 2105}, 187 | {"name": "LinearScale", "value": 1316}, 188 | {"name": "LogScale", "value": 3151}, 189 | {"name": "OrdinalScale", "value": 3770}, 190 | {"name": "QuantileScale", "value": 2435}, 191 | {"name": "QuantitativeScale", "value": 4839}, 192 | {"name": "RootScale", "value": 1756}, 193 | {"name": "Scale", "value": 4268}, 194 | {"name": "ScaleType", "value": 1821}, 195 | {"name": "TimeScale", "value": 5833} 196 | ] 197 | }, 198 | { 199 | "name": "util", 200 | "children": [ 201 | {"name": "Arrays", "value": 8258}, 202 | {"name": "Colors", "value": 10001}, 203 | {"name": "Dates", "value": 8217}, 204 | {"name": "Displays", "value": 12555}, 205 | {"name": "Filter", "value": 2324}, 206 | {"name": "Geometry", "value": 10993}, 207 | { 208 | "name": "heap", 209 | "children": [ 210 | {"name": "FibonacciHeap", "value": 9354}, 211 | {"name": "HeapNode", "value": 1233} 212 | ] 213 | }, 214 | {"name": "IEvaluable", "value": 335}, 215 | {"name": "IPredicate", "value": 383}, 216 | {"name": "IValueProxy", "value": 874}, 217 | { 218 | "name": "math", 219 | "children": [ 220 | {"name": "DenseMatrix", "value": 3165}, 221 | {"name": "IMatrix", "value": 2815}, 222 | {"name": "SparseMatrix", "value": 3366} 223 | ] 224 | }, 225 | {"name": "Maths", "value": 17705}, 226 | {"name": "Orientation", "value": 1486}, 227 | { 228 | "name": "palette", 229 | "children": [ 230 | {"name": "ColorPalette", "value": 6367}, 231 | {"name": "Palette", "value": 1229}, 232 | {"name": "ShapePalette", "value": 2059}, 233 | {"name": "SizePalette", "value": 2291} 234 | ] 235 | }, 236 | {"name": "Property", "value": 5559}, 237 | {"name": "Shapes", "value": 19118}, 238 | {"name": "Sort", "value": 6887}, 239 | {"name": "Stats", "value": 6557}, 240 | {"name": "Strings", "value": 22026} 241 | ] 242 | }, 243 | { 244 | "name": "vis", 245 | "children": [ 246 | { 247 | "name": "axis", 248 | "children": [ 249 | {"name": "Axes", "value": 1302}, 250 | {"name": "Axis", "value": 24593}, 251 | {"name": "AxisGridLine", "value": 652}, 252 | {"name": "AxisLabel", "value": 636}, 253 | {"name": "CartesianAxes", "value": 6703} 254 | ] 255 | }, 256 | { 257 | "name": "controls", 258 | "children": [ 259 | {"name": "AnchorControl", "value": 2138}, 260 | {"name": "ClickControl", "value": 3824}, 261 | {"name": "Control", "value": 1353}, 262 | {"name": "ControlList", "value": 4665}, 263 | {"name": "DragControl", "value": 2649}, 264 | {"name": "ExpandControl", "value": 2832}, 265 | {"name": "HoverControl", "value": 4896}, 266 | {"name": "IControl", "value": 763}, 267 | {"name": "PanZoomControl", "value": 5222}, 268 | {"name": "SelectionControl", "value": 7862}, 269 | {"name": "TooltipControl", "value": 8435} 270 | ] 271 | }, 272 | { 273 | "name": "data", 274 | "children": [ 275 | {"name": "Data", "value": 20544}, 276 | {"name": "DataList", "value": 19788}, 277 | {"name": "DataSprite", "value": 10349}, 278 | {"name": "EdgeSprite", "value": 3301}, 279 | {"name": "NodeSprite", "value": 19382}, 280 | { 281 | "name": "render", 282 | "children": [ 283 | {"name": "ArrowType", "value": 698}, 284 | {"name": "EdgeRenderer", "value": 5569}, 285 | {"name": "IRenderer", "value": 353}, 286 | {"name": "ShapeRenderer", "value": 2247} 287 | ] 288 | }, 289 | {"name": "ScaleBinding", "value": 11275}, 290 | {"name": "Tree", "value": 7147}, 291 | {"name": "TreeBuilder", "value": 9930} 292 | ] 293 | }, 294 | { 295 | "name": "events", 296 | "children": [ 297 | {"name": "DataEvent", "value": 2313}, 298 | {"name": "SelectionEvent", "value": 1880}, 299 | {"name": "TooltipEvent", "value": 1701}, 300 | {"name": "VisualizationEvent", "value": 1117} 301 | ] 302 | }, 303 | { 304 | "name": "legend", 305 | "children": [ 306 | {"name": "Legend", "value": 20859}, 307 | {"name": "LegendItem", "value": 4614}, 308 | {"name": "LegendRange", "value": 10530} 309 | ] 310 | }, 311 | { 312 | "name": "operator", 313 | "children": [ 314 | { 315 | "name": "distortion", 316 | "children": [ 317 | {"name": "BifocalDistortion", "value": 4461}, 318 | {"name": "Distortion", "value": 6314}, 319 | {"name": "FisheyeDistortion", "value": 3444} 320 | ] 321 | }, 322 | { 323 | "name": "encoder", 324 | "children": [ 325 | {"name": "ColorEncoder", "value": 3179}, 326 | {"name": "Encoder", "value": 4060}, 327 | {"name": "PropertyEncoder", "value": 4138}, 328 | {"name": "ShapeEncoder", "value": 1690}, 329 | {"name": "SizeEncoder", "value": 1830} 330 | ] 331 | }, 332 | { 333 | "name": "filter", 334 | "children": [ 335 | {"name": "FisheyeTreeFilter", "value": 5219}, 336 | {"name": "GraphDistanceFilter", "value": 3165}, 337 | {"name": "VisibilityFilter", "value": 3509} 338 | ] 339 | }, 340 | {"name": "IOperator", "value": 1286}, 341 | { 342 | "name": "label", 343 | "children": [ 344 | {"name": "Labeler", "value": 9956}, 345 | {"name": "RadialLabeler", "value": 3899}, 346 | {"name": "StackedAreaLabeler", "value": 3202} 347 | ] 348 | }, 349 | { 350 | "name": "layout", 351 | "children": [ 352 | {"name": "AxisLayout", "value": 6725}, 353 | {"name": "BundledEdgeRouter", "value": 3727}, 354 | {"name": "CircleLayout", "value": 9317}, 355 | {"name": "CirclePackingLayout", "value": 12003}, 356 | {"name": "DendrogramLayout", "value": 4853}, 357 | {"name": "ForceDirectedLayout", "value": 8411}, 358 | {"name": "IcicleTreeLayout", "value": 4864}, 359 | {"name": "IndentedTreeLayout", "value": 3174}, 360 | {"name": "Layout", "value": 7881}, 361 | {"name": "NodeLinkTreeLayout", "value": 12870}, 362 | {"name": "PieLayout", "value": 2728}, 363 | {"name": "RadialTreeLayout", "value": 12348}, 364 | {"name": "RandomLayout", "value": 870}, 365 | {"name": "StackedAreaLayout", "value": 9121}, 366 | {"name": "TreeMapLayout", "value": 9191} 367 | ] 368 | }, 369 | {"name": "Operator", "value": 2490}, 370 | {"name": "OperatorList", "value": 5248}, 371 | {"name": "OperatorSequence", "value": 4190}, 372 | {"name": "OperatorSwitch", "value": 2581}, 373 | {"name": "SortOperator", "value": 2023} 374 | ] 375 | }, 376 | {"name": "Visualization", "value": 16540} 377 | ] 378 | } 379 | ] 380 | } 381 | -------------------------------------------------------------------------------- /src/data/import_export.js: -------------------------------------------------------------------------------- 1 | //from https://www.wto.org/english/res_e/statis_e/short_term_stats_e.htm 2 | 3 | export const data = [ 4 | { 5 | country: "United States", 6 | region: "North America", 7 | month: "January", 8 | value: 74 9 | }, 10 | { 11 | country: "United States", 12 | region: "North America", 13 | month: "February", 14 | value: 77 15 | }, 16 | { 17 | country: "United States", 18 | region: "North America", 19 | month: "March", 20 | value: 91 21 | }, 22 | { 23 | country: "United States", 24 | region: "North America", 25 | month: "April", 26 | value: 82 27 | }, 28 | { 29 | country: "United States", 30 | region: "North America", 31 | month: "January", 32 | value: -150 33 | }, 34 | { 35 | country: "United States", 36 | region: "North America", 37 | month: "February", 38 | value: -141 39 | }, 40 | { 41 | country: "United States", 42 | region: "North America", 43 | month: "March", 44 | value: -159 45 | }, 46 | { 47 | country: "United States", 48 | region: "North America", 49 | month: "April", 50 | value: -153 51 | }, 52 | 53 | { country: "EU (28)", region: "Europe", month: "January", value: 336 }, 54 | { country: "EU (28)", region: "Europe", month: "February", value: 343 }, 55 | { country: "EU (28)", region: "Europe", month: "March", value: 404 }, 56 | { country: "EU (28)", region: "Europe", month: "April", value: 354 }, 57 | { country: "EU (28)", region: "Europe", month: "January", value: -369 }, 58 | { country: "EU (28)", region: "Europe", month: "February", value: -364 }, 59 | { country: "EU (28)", region: "Europe", month: "March", value: -422 }, 60 | { country: "EU (28)", region: "Europe", month: "April", value: -377 }, 61 | 62 | { country: "China", region: "Asia", month: "January", value: 65 }, 63 | { country: "China", region: "Asia", month: "February", value: 54 }, 64 | { country: "China", region: "Asia", month: "March", value: 78 }, 65 | { country: "China", region: "Asia", month: "April", value: 77 }, 66 | { country: "China", region: "Asia", month: "January", value: -55 }, 67 | { country: "China", region: "Asia", month: "February", value: -52 }, 68 | { country: "China", region: "Asia", month: "March", value: -67 }, 69 | { country: "China", region: "Asia", month: "April", value: -66 }, 70 | 71 | { country: "India", region: "Asia", month: "January", value: 9 }, 72 | { country: "India", region: "Asia", month: "February", value: 9 }, 73 | { country: "India", region: "Asia", month: "March", value: 12 }, 74 | { country: "India", region: "Asia", month: "April", value: 9 }, 75 | { country: "India", region: "Asia", month: "January", value: -47 }, 76 | { country: "India", region: "Asia", month: "February", value: -42 }, 77 | { country: "India", region: "Asia", month: "March", value: -50 }, 78 | { country: "India", region: "Asia", month: "April", value: -47 }, 79 | 80 | { country: "Japan", region: "Asia", month: "January", value: 43 }, 81 | { country: "Japan", region: "Asia", month: "February", value: 50 }, 82 | { country: "Japan", region: "Asia", month: "March", value: 58 }, 83 | { country: "Japan", region: "Asia", month: "April", value: 52 }, 84 | { country: "Japan", region: "Asia", month: "January", value: -47 }, 85 | { country: "Japan", region: "Asia", month: "February", value: -42 }, 86 | { country: "Japan", region: "Asia", month: "March", value: -50 }, 87 | { country: "Japan", region: "Asia", month: "April", value: -47 }, 88 | 89 | { country: "Brazil", region: "Other", month: "January", value: 9 }, 90 | { country: "Brazil", region: "Other", month: "February", value: 9 }, 91 | { country: "Brazil", region: "Other", month: "March", value: 11 }, 92 | { country: "Brazil", region: "Other", month: "April", value: 10 }, 93 | { country: "Brazil", region: "Other", month: "January", value: -7 }, 94 | { country: "Brazil", region: "Other", month: "February", value: -6 }, 95 | { country: "Brazil", region: "Other", month: "March", value: -8 }, 96 | { country: "Brazil", region: "Other", month: "April", value: -7 }, 97 | 98 | { country: "Russia", region: "Other", month: "January", value: 21 }, 99 | { country: "Russia", region: "Other", month: "February", value: 22 }, 100 | { country: "Russia", region: "Other", month: "March", value: 24 }, 101 | { country: "Russia", region: "Other", month: "April", value: 24 }, 102 | { country: "Russia", region: "Other", month: "January", value: -8 }, 103 | { country: "Russia", region: "Other", month: "February", value: -10 }, 104 | { country: "Russia", region: "Other", month: "March", value: -12 }, 105 | { country: "Russia", region: "Other", month: "April", value: -11 }, 106 | 107 | { country: "South Africa", region: "Other", month: "January", value: 4 }, 108 | { country: "South Africa", region: "Other", month: "February", value: 4 }, 109 | { country: "South Africa", region: "Other", month: "March", value: 5 }, 110 | { country: "South Africa", region: "Other", month: "April", value: 4 }, 111 | { country: "South Africa", region: "Other", month: "January", value: -4 }, 112 | { country: "South Africa", region: "Other", month: "February", value: -4 }, 113 | { country: "South Africa", region: "Other", month: "March", value: -4 }, 114 | { country: "South Africa", region: "Other", month: "April", value: -4 } 115 | ]; 116 | -------------------------------------------------------------------------------- /src/data/network.js: -------------------------------------------------------------------------------- 1 | export const nodes = [ 2 | { name: "Myriel", group: 1 }, 3 | { name: "Napoleon", group: 1 }, 4 | { name: "Mlle.Baptistine", group: 1 }, 5 | { name: "Mme.Magloire", group: 1 }, 6 | { name: "CountessdeLo", group: 1 }, 7 | { name: "Geborand", group: 1 }, 8 | { name: "Champtercier", group: 1 }, 9 | { name: "Cravatte", group: 1 }, 10 | { name: "Count", group: 1 }, 11 | { name: "OldMan", group: 1 }, 12 | { name: "Labarre", group: 2 }, 13 | { name: "Valjean", group: 2 }, 14 | { name: "Marguerite", group: 3 }, 15 | { name: "Mme.deR", group: 2 }, 16 | { name: "Isabeau", group: 2 }, 17 | { name: "Gervais", group: 2 }, 18 | { name: "Tholomyes", group: 3 }, 19 | { name: "Listolier", group: 3 }, 20 | { name: "Fameuil", group: 3 }, 21 | { name: "Blacheville", group: 3 }, 22 | { name: "Favourite", group: 3 }, 23 | { name: "Dahlia", group: 3 }, 24 | { name: "Zephine", group: 3 }, 25 | { name: "Fantine", group: 3 }, 26 | { name: "Mme.Thenardier", group: 4 }, 27 | { name: "Thenardier", group: 4 }, 28 | { name: "Cosette", group: 5 }, 29 | { name: "Javert", group: 4 }, 30 | { name: "Fauchelevent", group: 0 }, 31 | { name: "Bamatabois", group: 2 }, 32 | { name: "Perpetue", group: 3 }, 33 | { name: "Simplice", group: 2 }, 34 | { name: "Scaufflaire", group: 2 }, 35 | { name: "Woman1", group: 2 }, 36 | { name: "Judge", group: 2 }, 37 | { name: "Champmathieu", group: 2 }, 38 | { name: "Brevet", group: 2 }, 39 | { name: "Chenildieu", group: 2 }, 40 | { name: "Cochepaille", group: 2 }, 41 | { name: "Pontmercy", group: 4 }, 42 | { name: "Boulatruelle", group: 6 }, 43 | { name: "Eponine", group: 4 }, 44 | { name: "Anzelma", group: 4 }, 45 | { name: "Woman2", group: 5 }, 46 | { name: "MotherInnocent", group: 0 }, 47 | { name: "Gribier", group: 0 }, 48 | { name: "Jondrette", group: 7 }, 49 | { name: "Mme.Burgon", group: 7 }, 50 | { name: "Gavroche", group: 8 }, 51 | { name: "Gillenormand", group: 5 }, 52 | { name: "Magnon", group: 5 }, 53 | { name: "Mlle.Gillenormand", group: 5 }, 54 | { name: "Mme.Pontmercy", group: 5 }, 55 | { name: "Mlle.Vaubois", group: 5 }, 56 | { name: "Lt.Gillenormand", group: 5 }, 57 | { name: "Marius", group: 8 }, 58 | { name: "BaronessT", group: 5 }, 59 | { name: "Mabeuf", group: 8 }, 60 | { name: "Enjolras", group: 8 }, 61 | { name: "Combeferre", group: 8 }, 62 | { name: "Prouvaire", group: 8 }, 63 | { name: "Feuilly", group: 8 }, 64 | { name: "Courfeyrac", group: 8 }, 65 | { name: "Bahorel", group: 8 }, 66 | { name: "Bossuet", group: 8 }, 67 | { name: "Joly", group: 8 }, 68 | { name: "Grantaire", group: 8 }, 69 | { name: "MotherPlutarch", group: 9 }, 70 | { name: "Gueulemer", group: 4 }, 71 | { name: "Babet", group: 4 }, 72 | { name: "Claquesous", group: 4 }, 73 | { name: "Montparnasse", group: 4 }, 74 | { name: "Toussaint", group: 5 }, 75 | { name: "Child1", group: 10 }, 76 | { name: "Child2", group: 10 }, 77 | { name: "Brujon", group: 4 }, 78 | { name: "Mme.Hucheloup", group: 8 } 79 | ]; 80 | 81 | export const links = [ 82 | { source: 1, target: 0, value: 1 }, 83 | { source: 2, target: 0, value: 8 }, 84 | { source: 3, target: 0, value: 10 }, 85 | { source: 3, target: 2, value: 6 }, 86 | { source: 4, target: 0, value: 1 }, 87 | { source: 5, target: 0, value: 1 }, 88 | { source: 6, target: 0, value: 1 }, 89 | { source: 7, target: 0, value: 1 }, 90 | { source: 8, target: 0, value: 2 }, 91 | { source: 9, target: 0, value: 1 }, 92 | { source: 11, target: 10, value: 1 }, 93 | { source: 11, target: 3, value: 3 }, 94 | { source: 11, target: 2, value: 3 }, 95 | { source: 11, target: 0, value: 5 }, 96 | { source: 12, target: 11, value: 1 }, 97 | { source: 13, target: 11, value: 1 }, 98 | { source: 14, target: 11, value: 1 }, 99 | { source: 15, target: 11, value: 1 }, 100 | { source: 17, target: 16, value: 4 }, 101 | { source: 18, target: 16, value: 4 }, 102 | { source: 18, target: 17, value: 4 }, 103 | { source: 19, target: 16, value: 4 }, 104 | { source: 19, target: 17, value: 4 }, 105 | { source: 19, target: 18, value: 4 }, 106 | { source: 20, target: 16, value: 3 }, 107 | { source: 20, target: 17, value: 3 }, 108 | { source: 20, target: 18, value: 3 }, 109 | { source: 20, target: 19, value: 4 }, 110 | { source: 21, target: 16, value: 3 }, 111 | { source: 21, target: 17, value: 3 }, 112 | { source: 21, target: 18, value: 3 }, 113 | { source: 21, target: 19, value: 3 }, 114 | { source: 21, target: 20, value: 5 }, 115 | { source: 22, target: 16, value: 3 }, 116 | { source: 22, target: 17, value: 3 }, 117 | { source: 22, target: 18, value: 3 }, 118 | { source: 22, target: 19, value: 3 }, 119 | { source: 22, target: 20, value: 4 }, 120 | { source: 22, target: 21, value: 4 }, 121 | { source: 23, target: 16, value: 3 }, 122 | { source: 23, target: 17, value: 3 }, 123 | { source: 23, target: 18, value: 3 }, 124 | { source: 23, target: 19, value: 3 }, 125 | { source: 23, target: 20, value: 4 }, 126 | { source: 23, target: 21, value: 4 }, 127 | { source: 23, target: 22, value: 4 }, 128 | { source: 23, target: 12, value: 2 }, 129 | { source: 23, target: 11, value: 9 }, 130 | { source: 24, target: 23, value: 2 }, 131 | { source: 24, target: 11, value: 7 }, 132 | { source: 25, target: 24, value: 13 }, 133 | { source: 25, target: 23, value: 1 }, 134 | { source: 25, target: 11, value: 12 }, 135 | { source: 26, target: 24, value: 4 }, 136 | { source: 26, target: 11, value: 31 }, 137 | { source: 26, target: 16, value: 1 }, 138 | { source: 26, target: 25, value: 1 }, 139 | { source: 27, target: 11, value: 17 }, 140 | { source: 27, target: 23, value: 5 }, 141 | { source: 27, target: 25, value: 5 }, 142 | { source: 27, target: 24, value: 1 }, 143 | { source: 27, target: 26, value: 1 }, 144 | { source: 28, target: 11, value: 8 }, 145 | { source: 28, target: 27, value: 1 }, 146 | { source: 29, target: 23, value: 1 }, 147 | { source: 29, target: 27, value: 1 }, 148 | { source: 29, target: 11, value: 2 }, 149 | { source: 30, target: 23, value: 1 }, 150 | { source: 31, target: 30, value: 2 }, 151 | { source: 31, target: 11, value: 3 }, 152 | { source: 31, target: 23, value: 2 }, 153 | { source: 31, target: 27, value: 1 }, 154 | { source: 32, target: 11, value: 1 }, 155 | { source: 33, target: 11, value: 2 }, 156 | { source: 33, target: 27, value: 1 }, 157 | { source: 34, target: 11, value: 3 }, 158 | { source: 34, target: 29, value: 2 }, 159 | { source: 35, target: 11, value: 3 }, 160 | { source: 35, target: 34, value: 3 }, 161 | { source: 35, target: 29, value: 2 }, 162 | { source: 36, target: 34, value: 2 }, 163 | { source: 36, target: 35, value: 2 }, 164 | { source: 36, target: 11, value: 2 }, 165 | { source: 36, target: 29, value: 1 }, 166 | { source: 37, target: 34, value: 2 }, 167 | { source: 37, target: 35, value: 2 }, 168 | { source: 37, target: 36, value: 2 }, 169 | { source: 37, target: 11, value: 2 }, 170 | { source: 37, target: 29, value: 1 }, 171 | { source: 38, target: 34, value: 2 }, 172 | { source: 38, target: 35, value: 2 }, 173 | { source: 38, target: 36, value: 2 }, 174 | { source: 38, target: 37, value: 2 }, 175 | { source: 38, target: 11, value: 2 }, 176 | { source: 38, target: 29, value: 1 }, 177 | { source: 39, target: 25, value: 1 }, 178 | { source: 40, target: 25, value: 1 }, 179 | { source: 41, target: 24, value: 2 }, 180 | { source: 41, target: 25, value: 3 }, 181 | { source: 42, target: 41, value: 2 }, 182 | { source: 42, target: 25, value: 2 }, 183 | { source: 42, target: 24, value: 1 }, 184 | { source: 43, target: 11, value: 3 }, 185 | { source: 43, target: 26, value: 1 }, 186 | { source: 43, target: 27, value: 1 }, 187 | { source: 44, target: 28, value: 3 }, 188 | { source: 44, target: 11, value: 1 }, 189 | { source: 45, target: 28, value: 2 }, 190 | { source: 47, target: 46, value: 1 }, 191 | { source: 48, target: 47, value: 2 }, 192 | { source: 48, target: 25, value: 1 }, 193 | { source: 48, target: 27, value: 1 }, 194 | { source: 48, target: 11, value: 1 }, 195 | { source: 49, target: 26, value: 3 }, 196 | { source: 49, target: 11, value: 2 }, 197 | { source: 50, target: 49, value: 1 }, 198 | { source: 50, target: 24, value: 1 }, 199 | { source: 51, target: 49, value: 9 }, 200 | { source: 51, target: 26, value: 2 }, 201 | { source: 51, target: 11, value: 2 }, 202 | { source: 52, target: 51, value: 1 }, 203 | { source: 52, target: 39, value: 1 }, 204 | { source: 53, target: 51, value: 1 }, 205 | { source: 54, target: 51, value: 2 }, 206 | { source: 54, target: 49, value: 1 }, 207 | { source: 54, target: 26, value: 1 }, 208 | { source: 55, target: 51, value: 6 }, 209 | { source: 55, target: 49, value: 12 }, 210 | { source: 55, target: 39, value: 1 }, 211 | { source: 55, target: 54, value: 1 }, 212 | { source: 55, target: 26, value: 21 }, 213 | { source: 55, target: 11, value: 19 }, 214 | { source: 55, target: 16, value: 1 }, 215 | { source: 55, target: 25, value: 2 }, 216 | { source: 55, target: 41, value: 5 }, 217 | { source: 55, target: 48, value: 4 }, 218 | { source: 56, target: 49, value: 1 }, 219 | { source: 56, target: 55, value: 1 }, 220 | { source: 57, target: 55, value: 1 }, 221 | { source: 57, target: 41, value: 1 }, 222 | { source: 57, target: 48, value: 1 }, 223 | { source: 58, target: 55, value: 7 }, 224 | { source: 58, target: 48, value: 7 }, 225 | { source: 58, target: 27, value: 6 }, 226 | { source: 58, target: 57, value: 1 }, 227 | { source: 58, target: 11, value: 4 }, 228 | { source: 59, target: 58, value: 15 }, 229 | { source: 59, target: 55, value: 5 }, 230 | { source: 59, target: 48, value: 6 }, 231 | { source: 59, target: 57, value: 2 }, 232 | { source: 60, target: 48, value: 1 }, 233 | { source: 60, target: 58, value: 4 }, 234 | { source: 60, target: 59, value: 2 }, 235 | { source: 61, target: 48, value: 2 }, 236 | { source: 61, target: 58, value: 6 }, 237 | { source: 61, target: 60, value: 2 }, 238 | { source: 61, target: 59, value: 5 }, 239 | { source: 61, target: 57, value: 1 }, 240 | { source: 61, target: 55, value: 1 }, 241 | { source: 62, target: 55, value: 9 }, 242 | { source: 62, target: 58, value: 17 }, 243 | { source: 62, target: 59, value: 13 }, 244 | { source: 62, target: 48, value: 7 }, 245 | { source: 62, target: 57, value: 2 }, 246 | { source: 62, target: 41, value: 1 }, 247 | { source: 62, target: 61, value: 6 }, 248 | { source: 62, target: 60, value: 3 }, 249 | { source: 63, target: 59, value: 5 }, 250 | { source: 63, target: 48, value: 5 }, 251 | { source: 63, target: 62, value: 6 }, 252 | { source: 63, target: 57, value: 2 }, 253 | { source: 63, target: 58, value: 4 }, 254 | { source: 63, target: 61, value: 3 }, 255 | { source: 63, target: 60, value: 2 }, 256 | { source: 63, target: 55, value: 1 }, 257 | { source: 64, target: 55, value: 5 }, 258 | { source: 64, target: 62, value: 12 }, 259 | { source: 64, target: 48, value: 5 }, 260 | { source: 64, target: 63, value: 4 }, 261 | { source: 64, target: 58, value: 10 }, 262 | { source: 64, target: 61, value: 6 }, 263 | { source: 64, target: 60, value: 2 }, 264 | { source: 64, target: 59, value: 9 }, 265 | { source: 64, target: 57, value: 1 }, 266 | { source: 64, target: 11, value: 1 }, 267 | { source: 65, target: 63, value: 5 }, 268 | { source: 65, target: 64, value: 7 }, 269 | { source: 65, target: 48, value: 3 }, 270 | { source: 65, target: 62, value: 5 }, 271 | { source: 65, target: 58, value: 5 }, 272 | { source: 65, target: 61, value: 5 }, 273 | { source: 65, target: 60, value: 2 }, 274 | { source: 65, target: 59, value: 5 }, 275 | { source: 65, target: 57, value: 1 }, 276 | { source: 65, target: 55, value: 2 }, 277 | { source: 66, target: 64, value: 3 }, 278 | { source: 66, target: 58, value: 3 }, 279 | { source: 66, target: 59, value: 1 }, 280 | { source: 66, target: 62, value: 2 }, 281 | { source: 66, target: 65, value: 2 }, 282 | { source: 66, target: 48, value: 1 }, 283 | { source: 66, target: 63, value: 1 }, 284 | { source: 66, target: 61, value: 1 }, 285 | { source: 66, target: 60, value: 1 }, 286 | { source: 67, target: 57, value: 3 }, 287 | { source: 68, target: 25, value: 5 }, 288 | { source: 68, target: 11, value: 1 }, 289 | { source: 68, target: 24, value: 1 }, 290 | { source: 68, target: 27, value: 1 }, 291 | { source: 68, target: 48, value: 1 }, 292 | { source: 68, target: 41, value: 1 }, 293 | { source: 69, target: 25, value: 6 }, 294 | { source: 69, target: 68, value: 6 }, 295 | { source: 69, target: 11, value: 1 }, 296 | { source: 69, target: 24, value: 1 }, 297 | { source: 69, target: 27, value: 2 }, 298 | { source: 69, target: 48, value: 1 }, 299 | { source: 69, target: 41, value: 1 }, 300 | { source: 70, target: 25, value: 4 }, 301 | { source: 70, target: 69, value: 4 }, 302 | { source: 70, target: 68, value: 4 }, 303 | { source: 70, target: 11, value: 1 }, 304 | { source: 70, target: 24, value: 1 }, 305 | { source: 70, target: 27, value: 1 }, 306 | { source: 70, target: 41, value: 1 }, 307 | { source: 70, target: 58, value: 1 }, 308 | { source: 71, target: 27, value: 1 }, 309 | { source: 71, target: 69, value: 2 }, 310 | { source: 71, target: 68, value: 2 }, 311 | { source: 71, target: 70, value: 2 }, 312 | { source: 71, target: 11, value: 1 }, 313 | { source: 71, target: 48, value: 1 }, 314 | { source: 71, target: 41, value: 1 }, 315 | { source: 71, target: 25, value: 1 }, 316 | { source: 72, target: 26, value: 2 }, 317 | { source: 72, target: 27, value: 1 }, 318 | { source: 72, target: 11, value: 1 }, 319 | { source: 73, target: 48, value: 2 }, 320 | { source: 74, target: 48, value: 2 }, 321 | { source: 74, target: 73, value: 3 }, 322 | { source: 75, target: 69, value: 3 }, 323 | { source: 75, target: 68, value: 3 }, 324 | { source: 75, target: 25, value: 3 }, 325 | { source: 75, target: 48, value: 1 }, 326 | { source: 75, target: 41, value: 1 }, 327 | { source: 75, target: 70, value: 1 }, 328 | { source: 75, target: 71, value: 1 }, 329 | { source: 76, target: 64, value: 1 }, 330 | { source: 76, target: 65, value: 1 }, 331 | { source: 76, target: 66, value: 1 }, 332 | { source: 76, target: 63, value: 1 }, 333 | { source: 76, target: 62, value: 1 }, 334 | { source: 76, target: 48, value: 1 }, 335 | { source: 76, target: 58, value: 1 } 336 | ]; 337 | -------------------------------------------------------------------------------- /src/data/nyc_bike.js: -------------------------------------------------------------------------------- 1 | export default `i,Date,Day,temp_high,temp_low,Precipitation,Brooklyn Bridge,Manhattan Bridge,Williamsburg Bridge,Queensboro Bridge,Total 2 | 0,2016-04-01 00:00:00,2016-04-01 00:00:00,78.1,66,0.01,1704.0,3126,4115.0,2552.0,11497 3 | 1,2016-04-02 00:00:00,2016-04-02 00:00:00,55.0,48.9,0.15,827.0,1646,2565.0,1884.0,6922 4 | 2,2016-04-03 00:00:00,2016-04-03 00:00:00,39.9,34,0.09,526.0,1232,1695.0,1306.0,4759 5 | 3,2016-04-04 00:00:00,2016-04-04 00:00:00,44.1,33.1,0.47 (S),521.0,1067,1440.0,1307.0,4335 6 | 4,2016-04-05 00:00:00,2016-04-05 00:00:00,42.1,26.1,0,1416.0,2617,3081.0,2357.0,9471 7 | 5,2016-04-06 00:00:00,2016-04-06 00:00:00,45.0,30,0,1885.0,3329,3856.0,2849.0,11919 8 | 6,2016-04-07 00:00:00,2016-04-07 00:00:00,57.0,53.1,0.09,1276.0,2581,3282.0,2457.0,9596 9 | 7,2016-04-08 00:00:00,2016-04-08 00:00:00,46.9,44.1,0.01,1982.0,3455,4113.0,3194.0,12744 10 | 8,2016-04-09 00:00:00,2016-04-09 00:00:00,43.0,37.9,0.09,504.0,997,1507.0,1502.0,4510 11 | 9,2016-04-10 00:00:00,2016-04-10 00:00:00,48.9,30.9,0,1447.0,2387,3132.0,2160.0,9126 12 | 10,2016-04-11 00:00:00,2016-04-11 00:00:00,62.1,46,0.01,2005.0,3791,4334.0,3182.0,13312 13 | 11,2016-04-12 00:00:00,2016-04-12 00:00:00,57.0,45,0.2,1045.0,2178,2762.0,2082.0,8067 14 | 12,2016-04-13 00:00:00,2016-04-13 00:00:00,57.0,39.9,0,2840.0,5395,5995.0,4192.0,18422 15 | 13,2016-04-14 00:00:00,2016-04-14 00:00:00,62.1,44.6,0,2861.0,5309,6030.0,4115.0,18315 16 | 14,2016-04-15 00:00:00,2016-04-15 00:00:00,64.0,44.1,0,2770.0,5072,5816.0,3912.0,17570 17 | 15,2016-04-16 00:00:00,2016-04-16 00:00:00,66.0,45,0,2384.0,4316,5624.0,4051.0,16375 18 | 16,2016-04-17 00:00:00,2016-04-17 00:00:00,73.9,46,0,3147.0,4969,5867.0,4197.0,18180 19 | 17,2016-04-18 00:00:00,2016-04-18 00:00:00,81.0,52,0,3871.0,6823,7432.0,4964.0,23090 20 | 18,2016-04-19 00:00:00,2016-04-19 00:00:00,71.1,63,0,3501.0,6951,7834.0,5032.0,23318 21 | 19,2016-04-20 00:00:00,2016-04-20 00:00:00,68.0,50,0,3450.0,6574,7639.0,4928.0,22591 22 | 20,2016-04-21 00:00:00,2016-04-21 00:00:00,71.1,50,0,3436.0,6452,7426.0,4813.0,22127 23 | 21,2016-04-22 00:00:00,2016-04-22 00:00:00,78.1,63,T,2975.0,4907,6093.0,3862.0,17837 24 | 22,2016-04-23 00:00:00,2016-04-23 00:00:00,70.0,61,0.16,2055.0,3276,4856.0,3239.0,13426 25 | 23,2016-04-24 00:00:00,2016-04-24 00:00:00,68.0,48,0,2798.0,4650,5335.0,3957.0,16740 26 | 24,2016-04-25 00:00:00,2016-04-25 00:00:00,66.9,54,0,3463.0,5978,6845.0,4564.0,20850 27 | 25,2016-04-26 00:00:00,2016-04-26 00:00:00,60.1,46.9,0.24,1997.0,3520,4559.0,2929.0,13005 28 | 26,2016-04-27 00:00:00,2016-04-27 00:00:00,62.1,46.9,0,3343.0,5606,6577.0,4388.0,19914 29 | 27,2016-04-28 00:00:00,2016-04-28 00:00:00,57.9,48,0,2486.0,4152,5336.0,3657.0,15631 30 | 28,2016-04-29 00:00:00,2016-04-29 00:00:00,57.0,46.9,0.05,2375.0,4178,5053.0,3348.0,14954 31 | 29,2016-04-30 00:00:00,2016-04-30 00:00:00,64.0,48,0,3199.0,4952,5675.0,3606.0,17432 32 | 30,2016-04-01 00:00:00,2016-04-01 00:00:00,78.1,66,0.01,1704.0,3126,4115.0,2552.0,11497 33 | 31,2016-04-02 00:00:00,2016-04-02 00:00:00,55.0,48.9,0.15,827.0,1646,2565.0,1884.0,6922 34 | 32,2016-04-03 00:00:00,2016-04-03 00:00:00,39.9,34,0.09,526.0,1232,1695.0,1306.0,4759 35 | 33,2016-04-04 00:00:00,2016-04-04 00:00:00,44.1,33.1,0.47 (S),521.0,1067,1440.0,1307.0,4335 36 | 34,2016-04-05 00:00:00,2016-04-05 00:00:00,42.1,26.1,0,1416.0,2617,3081.0,2357.0,9471 37 | 35,2016-04-06 00:00:00,2016-04-06 00:00:00,45.0,30,0,1885.0,3329,3856.0,2849.0,11919 38 | 36,2016-04-07 00:00:00,2016-04-07 00:00:00,57.0,53.1,0.09,1276.0,2581,3282.0,2457.0,9596 39 | 37,2016-04-08 00:00:00,2016-04-08 00:00:00,46.9,44.1,0.01,1982.0,3455,4113.0,3194.0,12744 40 | 38,2016-04-09 00:00:00,2016-04-09 00:00:00,43.0,37.9,0.09,504.0,997,1507.0,1502.0,4510 41 | 39,2016-04-10 00:00:00,2016-04-10 00:00:00,48.9,30.9,0,1447.0,2387,3132.0,2160.0,9126 42 | 40,2016-04-11 00:00:00,2016-04-11 00:00:00,62.1,46,0.01,2005.0,3791,4334.0,3182.0,13312 43 | 41,2016-04-12 00:00:00,2016-04-12 00:00:00,57.0,45,0.2,1045.0,2178,2762.0,2082.0,8067 44 | 42,2016-04-13 00:00:00,2016-04-13 00:00:00,57.0,39.9,0,2840.0,5395,5995.0,4192.0,18422 45 | 43,2016-04-14 00:00:00,2016-04-14 00:00:00,62.1,44.6,0,2861.0,5309,6030.0,4115.0,18315 46 | 44,2016-04-15 00:00:00,2016-04-15 00:00:00,64.0,44.1,0,2770.0,5072,5816.0,3912.0,17570 47 | 45,2016-04-16 00:00:00,2016-04-16 00:00:00,66.0,45,0,2384.0,4316,5624.0,4051.0,16375 48 | 46,2016-04-17 00:00:00,2016-04-17 00:00:00,73.9,46,0,3147.0,4969,5867.0,4197.0,18180 49 | 47,2016-04-18 00:00:00,2016-04-18 00:00:00,81.0,52,0,3871.0,6823,7432.0,4964.0,23090 50 | 48,2016-04-19 00:00:00,2016-04-19 00:00:00,71.1,63,0,3501.0,6951,7834.0,5032.0,23318 51 | 49,2016-04-20 00:00:00,2016-04-20 00:00:00,68.0,50,0,3450.0,6574,7639.0,4928.0,22591 52 | 50,2016-04-21 00:00:00,2016-04-21 00:00:00,71.1,50,0,3436.0,6452,7426.0,4813.0,22127 53 | 51,2016-04-22 00:00:00,2016-04-22 00:00:00,78.1,63,T,2975.0,4907,6093.0,3862.0,17837 54 | 52,2016-04-23 00:00:00,2016-04-23 00:00:00,70.0,61,0.16,2055.0,3276,4856.0,3239.0,13426 55 | 53,2016-04-24 00:00:00,2016-04-24 00:00:00,68.0,48,0,2798.0,4650,5335.0,3957.0,16740 56 | 54,2016-04-25 00:00:00,2016-04-25 00:00:00,66.9,54,0,3463.0,5978,6845.0,4564.0,20850 57 | 55,2016-04-26 00:00:00,2016-04-26 00:00:00,60.1,46.9,0.24,1997.0,3520,4559.0,2929.0,13005 58 | 56,2016-04-27 00:00:00,2016-04-27 00:00:00,62.1,46.9,0,3343.0,5606,6577.0,4388.0,19914 59 | 57,2016-04-28 00:00:00,2016-04-28 00:00:00,57.9,48,0,2486.0,4152,5336.0,3657.0,15631 60 | 58,2016-04-29 00:00:00,2016-04-29 00:00:00,57.0,46.9,0.05,2375.0,4178,5053.0,3348.0,14954 61 | 59,2016-04-30 00:00:00,2016-04-30 00:00:00,64.0,48,0,3199.0,4952,5675.0,3606.0,17432 62 | 60,2016-04-01 00:00:00,2016-04-01 00:00:00,78.1,66,0.01,1704.0,3126,4115.0,2552.0,11497 63 | 61,2016-04-02 00:00:00,2016-04-02 00:00:00,55.0,48.9,0.15,827.0,1646,2565.0,1884.0,6922 64 | 62,2016-04-03 00:00:00,2016-04-03 00:00:00,39.9,34,0.09,526.0,1232,1695.0,1306.0,4759 65 | 63,2016-04-04 00:00:00,2016-04-04 00:00:00,44.1,33.1,0.47 (S),521.0,1067,1440.0,1307.0,4335 66 | 64,2016-04-05 00:00:00,2016-04-05 00:00:00,42.1,26.1,0,1416.0,2617,3081.0,2357.0,9471 67 | 65,2016-04-06 00:00:00,2016-04-06 00:00:00,45.0,30,0,1885.0,3329,3856.0,2849.0,11919 68 | 66,2016-04-07 00:00:00,2016-04-07 00:00:00,57.0,53.1,0.09,1276.0,2581,3282.0,2457.0,9596 69 | 67,2016-04-08 00:00:00,2016-04-08 00:00:00,46.9,44.1,0.01,1982.0,3455,4113.0,3194.0,12744 70 | 68,2016-04-09 00:00:00,2016-04-09 00:00:00,43.0,37.9,0.09,504.0,997,1507.0,1502.0,4510 71 | 69,2016-04-10 00:00:00,2016-04-10 00:00:00,48.9,30.9,0,1447.0,2387,3132.0,2160.0,9126 72 | 70,2016-04-11 00:00:00,2016-04-11 00:00:00,62.1,46,0.01,2005.0,3791,4334.0,3182.0,13312 73 | 71,2016-04-12 00:00:00,2016-04-12 00:00:00,57.0,45,0.2,1045.0,2178,2762.0,2082.0,8067 74 | 72,2016-04-13 00:00:00,2016-04-13 00:00:00,57.0,39.9,0,2840.0,5395,5995.0,4192.0,18422 75 | 73,2016-04-14 00:00:00,2016-04-14 00:00:00,62.1,44.6,0,2861.0,5309,6030.0,4115.0,18315 76 | 74,2016-04-15 00:00:00,2016-04-15 00:00:00,64.0,44.1,0,2770.0,5072,5816.0,3912.0,17570 77 | 75,2016-04-16 00:00:00,2016-04-16 00:00:00,66.0,45,0,2384.0,4316,5624.0,4051.0,16375 78 | 76,2016-04-17 00:00:00,2016-04-17 00:00:00,73.9,46,0,3147.0,4969,5867.0,4197.0,18180 79 | 77,2016-04-18 00:00:00,2016-04-18 00:00:00,81.0,52,0,3871.0,6823,7432.0,4964.0,23090 80 | 78,2016-04-19 00:00:00,2016-04-19 00:00:00,71.1,63,0,3501.0,6951,7834.0,5032.0,23318 81 | 79,2016-04-20 00:00:00,2016-04-20 00:00:00,68.0,50,0,3450.0,6574,7639.0,4928.0,22591 82 | 80,2016-04-21 00:00:00,2016-04-21 00:00:00,71.1,50,0,3436.0,6452,7426.0,4813.0,22127 83 | 81,2016-04-22 00:00:00,2016-04-22 00:00:00,78.1,63,T,2975.0,4907,6093.0,3862.0,17837 84 | 82,2016-04-23 00:00:00,2016-04-23 00:00:00,70.0,61,0.16,2055.0,3276,4856.0,3239.0,13426 85 | 83,2016-04-24 00:00:00,2016-04-24 00:00:00,68.0,48,0,2798.0,4650,5335.0,3957.0,16740 86 | 84,2016-04-25 00:00:00,2016-04-25 00:00:00,66.9,54,0,3463.0,5978,6845.0,4564.0,20850 87 | 85,2016-04-26 00:00:00,2016-04-26 00:00:00,60.1,46.9,0.24,1997.0,3520,4559.0,2929.0,13005 88 | 86,2016-04-27 00:00:00,2016-04-27 00:00:00,62.1,46.9,0,3343.0,5606,6577.0,4388.0,19914 89 | 87,2016-04-28 00:00:00,2016-04-28 00:00:00,57.9,48,0,2486.0,4152,5336.0,3657.0,15631 90 | 88,2016-04-29 00:00:00,2016-04-29 00:00:00,57.0,46.9,0.05,2375.0,4178,5053.0,3348.0,14954 91 | 89,2016-04-30 00:00:00,2016-04-30 00:00:00,64.0,48,0,3199.0,4952,5675.0,3606.0,17432 92 | 90,2016-04-01 00:00:00,2016-04-01 00:00:00,78.1,66,0.01,1704.0,3126,4115.0,2552.0,11497 93 | 91,2016-04-02 00:00:00,2016-04-02 00:00:00,55.0,48.9,0.15,827.0,1646,2565.0,1884.0,6922 94 | 92,2016-04-03 00:00:00,2016-04-03 00:00:00,39.9,34,0.09,526.0,1232,1695.0,1306.0,4759 95 | 93,2016-04-04 00:00:00,2016-04-04 00:00:00,44.1,33.1,0.47 (S),521.0,1067,1440.0,1307.0,4335 96 | 94,2016-04-05 00:00:00,2016-04-05 00:00:00,42.1,26.1,0,1416.0,2617,3081.0,2357.0,9471 97 | 95,2016-04-06 00:00:00,2016-04-06 00:00:00,45.0,30,0,1885.0,3329,3856.0,2849.0,11919 98 | 96,2016-04-07 00:00:00,2016-04-07 00:00:00,57.0,53.1,0.09,1276.0,2581,3282.0,2457.0,9596 99 | 97,2016-04-08 00:00:00,2016-04-08 00:00:00,46.9,44.1,0.01,1982.0,3455,4113.0,3194.0,12744 100 | 98,2016-04-09 00:00:00,2016-04-09 00:00:00,43.0,37.9,0.09,504.0,997,1507.0,1502.0,4510 101 | 99,2016-04-10 00:00:00,2016-04-10 00:00:00,48.9,30.9,0,1447.0,2387,3132.0,2160.0,9126 102 | 100,2016-04-11 00:00:00,2016-04-11 00:00:00,62.1,46,0.01,2005.0,3791,4334.0,3182.0,13312 103 | 101,2016-04-12 00:00:00,2016-04-12 00:00:00,57.0,45,0.2,1045.0,2178,2762.0,2082.0,8067 104 | 102,2016-04-13 00:00:00,2016-04-13 00:00:00,57.0,39.9,0,2840.0,5395,5995.0,4192.0,18422 105 | 103,2016-04-14 00:00:00,2016-04-14 00:00:00,62.1,44.6,0,2861.0,5309,6030.0,4115.0,18315 106 | 104,2016-04-15 00:00:00,2016-04-15 00:00:00,64.0,44.1,0,2770.0,5072,5816.0,3912.0,17570 107 | 105,2016-04-16 00:00:00,2016-04-16 00:00:00,66.0,45,0,2384.0,4316,5624.0,4051.0,16375 108 | 106,2016-04-17 00:00:00,2016-04-17 00:00:00,73.9,46,0,3147.0,4969,5867.0,4197.0,18180 109 | 107,2016-04-18 00:00:00,2016-04-18 00:00:00,81.0,52,0,3871.0,6823,7432.0,4964.0,23090 110 | 108,2016-04-19 00:00:00,2016-04-19 00:00:00,71.1,63,0,3501.0,6951,7834.0,5032.0,23318 111 | 109,2016-04-20 00:00:00,2016-04-20 00:00:00,68.0,50,0,3450.0,6574,7639.0,4928.0,22591 112 | 110,2016-04-21 00:00:00,2016-04-21 00:00:00,71.1,50,0,3436.0,6452,7426.0,4813.0,22127 113 | 111,2016-04-22 00:00:00,2016-04-22 00:00:00,78.1,63,T,2975.0,4907,6093.0,3862.0,17837 114 | 112,2016-04-23 00:00:00,2016-04-23 00:00:00,70.0,61,0.16,2055.0,3276,4856.0,3239.0,13426 115 | 113,2016-04-24 00:00:00,2016-04-24 00:00:00,68.0,48,0,2798.0,4650,5335.0,3957.0,16740 116 | 114,2016-04-25 00:00:00,2016-04-25 00:00:00,66.9,54,0,3463.0,5978,6845.0,4564.0,20850 117 | 115,2016-04-26 00:00:00,2016-04-26 00:00:00,60.1,46.9,0.24,1997.0,3520,4559.0,2929.0,13005 118 | 116,2016-04-27 00:00:00,2016-04-27 00:00:00,62.1,46.9,0,3343.0,5606,6577.0,4388.0,19914 119 | 117,2016-04-28 00:00:00,2016-04-28 00:00:00,57.9,48,0,2486.0,4152,5336.0,3657.0,15631 120 | 118,2016-04-29 00:00:00,2016-04-29 00:00:00,57.0,46.9,0.05,2375.0,4178,5053.0,3348.0,14954 121 | 119,2016-04-30 00:00:00,2016-04-30 00:00:00,64.0,48,0,3199.0,4952,5675.0,3606.0,17432 122 | 120,2016-04-01 00:00:00,2016-04-01 00:00:00,78.1,66,0.01,1704.0,3126,4115.0,2552.0,11497 123 | 121,2016-04-02 00:00:00,2016-04-02 00:00:00,55.0,48.9,0.15,827.0,1646,2565.0,1884.0,6922 124 | 122,2016-04-03 00:00:00,2016-04-03 00:00:00,39.9,34,0.09,526.0,1232,1695.0,1306.0,4759 125 | 123,2016-04-04 00:00:00,2016-04-04 00:00:00,44.1,33.1,0.47 (S),521.0,1067,1440.0,1307.0,4335 126 | 124,2016-04-05 00:00:00,2016-04-05 00:00:00,42.1,26.1,0,1416.0,2617,3081.0,2357.0,9471 127 | 125,2016-04-06 00:00:00,2016-04-06 00:00:00,45.0,30,0,1885.0,3329,3856.0,2849.0,11919 128 | 126,2016-04-07 00:00:00,2016-04-07 00:00:00,57.0,53.1,0.09,1276.0,2581,3282.0,2457.0,9596 129 | 127,2016-04-08 00:00:00,2016-04-08 00:00:00,46.9,44.1,0.01,1982.0,3455,4113.0,3194.0,12744 130 | 128,2016-04-09 00:00:00,2016-04-09 00:00:00,43.0,37.9,0.09,504.0,997,1507.0,1502.0,4510 131 | 129,2016-04-10 00:00:00,2016-04-10 00:00:00,48.9,30.9,0,1447.0,2387,3132.0,2160.0,9126 132 | 130,2016-04-11 00:00:00,2016-04-11 00:00:00,62.1,46,0.01,2005.0,3791,4334.0,3182.0,13312 133 | 131,2016-04-12 00:00:00,2016-04-12 00:00:00,57.0,45,0.2,1045.0,2178,2762.0,2082.0,8067 134 | 132,2016-04-13 00:00:00,2016-04-13 00:00:00,57.0,39.9,0,2840.0,5395,5995.0,4192.0,18422 135 | 133,2016-04-14 00:00:00,2016-04-14 00:00:00,62.1,44.6,0,2861.0,5309,6030.0,4115.0,18315 136 | 134,2016-04-15 00:00:00,2016-04-15 00:00:00,64.0,44.1,0,2770.0,5072,5816.0,3912.0,17570 137 | 135,2016-04-16 00:00:00,2016-04-16 00:00:00,66.0,45,0,2384.0,4316,5624.0,4051.0,16375 138 | 136,2016-04-17 00:00:00,2016-04-17 00:00:00,73.9,46,0,3147.0,4969,5867.0,4197.0,18180 139 | 137,2016-04-18 00:00:00,2016-04-18 00:00:00,81.0,52,0,3871.0,6823,7432.0,4964.0,23090 140 | 138,2016-04-19 00:00:00,2016-04-19 00:00:00,71.1,63,0,3501.0,6951,7834.0,5032.0,23318 141 | 139,2016-04-20 00:00:00,2016-04-20 00:00:00,68.0,50,0,3450.0,6574,7639.0,4928.0,22591 142 | 140,2016-04-21 00:00:00,2016-04-21 00:00:00,71.1,50,0,3436.0,6452,7426.0,4813.0,22127 143 | 141,2016-04-22 00:00:00,2016-04-22 00:00:00,78.1,63,T,2975.0,4907,6093.0,3862.0,17837 144 | 142,2016-04-23 00:00:00,2016-04-23 00:00:00,70.0,61,0.16,2055.0,3276,4856.0,3239.0,13426 145 | 143,2016-04-24 00:00:00,2016-04-24 00:00:00,68.0,48,0,2798.0,4650,5335.0,3957.0,16740 146 | 144,2016-04-25 00:00:00,2016-04-25 00:00:00,66.9,54,0,3463.0,5978,6845.0,4564.0,20850 147 | 145,2016-04-26 00:00:00,2016-04-26 00:00:00,60.1,46.9,0.24,1997.0,3520,4559.0,2929.0,13005 148 | 146,2016-04-27 00:00:00,2016-04-27 00:00:00,62.1,46.9,0,3343.0,5606,6577.0,4388.0,19914 149 | 147,2016-04-28 00:00:00,2016-04-28 00:00:00,57.9,48,0,2486.0,4152,5336.0,3657.0,15631 150 | 148,2016-04-29 00:00:00,2016-04-29 00:00:00,57.0,46.9,0.05,2375.0,4178,5053.0,3348.0,14954 151 | 149,2016-04-30 00:00:00,2016-04-30 00:00:00,64.0,48,0,3199.0,4952,5675.0,3606.0,17432 152 | 150,2016-04-01 00:00:00,2016-04-01 00:00:00,78.1,66,0.01,1704.0,3126,4115.0,2552.0,11497 153 | 151,2016-04-02 00:00:00,2016-04-02 00:00:00,55.0,48.9,0.15,827.0,1646,2565.0,1884.0,6922 154 | 152,2016-04-03 00:00:00,2016-04-03 00:00:00,39.9,34,0.09,526.0,1232,1695.0,1306.0,4759 155 | 153,2016-04-04 00:00:00,2016-04-04 00:00:00,44.1,33.1,0.47 (S),521.0,1067,1440.0,1307.0,4335 156 | 154,2016-04-05 00:00:00,2016-04-05 00:00:00,42.1,26.1,0,1416.0,2617,3081.0,2357.0,9471 157 | 155,2016-04-06 00:00:00,2016-04-06 00:00:00,45.0,30,0,1885.0,3329,3856.0,2849.0,11919 158 | 156,2016-04-07 00:00:00,2016-04-07 00:00:00,57.0,53.1,0.09,1276.0,2581,3282.0,2457.0,9596 159 | 157,2016-04-08 00:00:00,2016-04-08 00:00:00,46.9,44.1,0.01,1982.0,3455,4113.0,3194.0,12744 160 | 158,2016-04-09 00:00:00,2016-04-09 00:00:00,43.0,37.9,0.09,504.0,997,1507.0,1502.0,4510 161 | 159,2016-04-10 00:00:00,2016-04-10 00:00:00,48.9,30.9,0,1447.0,2387,3132.0,2160.0,9126 162 | 160,2016-04-11 00:00:00,2016-04-11 00:00:00,62.1,46,0.01,2005.0,3791,4334.0,3182.0,13312 163 | 161,2016-04-12 00:00:00,2016-04-12 00:00:00,57.0,45,0.2,1045.0,2178,2762.0,2082.0,8067 164 | 162,2016-04-13 00:00:00,2016-04-13 00:00:00,57.0,39.9,0,2840.0,5395,5995.0,4192.0,18422 165 | 163,2016-04-14 00:00:00,2016-04-14 00:00:00,62.1,44.6,0,2861.0,5309,6030.0,4115.0,18315 166 | 164,2016-04-15 00:00:00,2016-04-15 00:00:00,64.0,44.1,0,2770.0,5072,5816.0,3912.0,17570 167 | 165,2016-04-16 00:00:00,2016-04-16 00:00:00,66.0,45,0,2384.0,4316,5624.0,4051.0,16375 168 | 166,2016-04-17 00:00:00,2016-04-17 00:00:00,73.9,46,0,3147.0,4969,5867.0,4197.0,18180 169 | 167,2016-04-18 00:00:00,2016-04-18 00:00:00,81.0,52,0,3871.0,6823,7432.0,4964.0,23090 170 | 168,2016-04-19 00:00:00,2016-04-19 00:00:00,71.1,63,0,3501.0,6951,7834.0,5032.0,23318 171 | 169,2016-04-20 00:00:00,2016-04-20 00:00:00,68.0,50,0,3450.0,6574,7639.0,4928.0,22591 172 | 170,2016-04-21 00:00:00,2016-04-21 00:00:00,71.1,50,0,3436.0,6452,7426.0,4813.0,22127 173 | 171,2016-04-22 00:00:00,2016-04-22 00:00:00,78.1,63,T,2975.0,4907,6093.0,3862.0,17837 174 | 172,2016-04-23 00:00:00,2016-04-23 00:00:00,70.0,61,0.16,2055.0,3276,4856.0,3239.0,13426 175 | 173,2016-04-24 00:00:00,2016-04-24 00:00:00,68.0,48,0,2798.0,4650,5335.0,3957.0,16740 176 | 174,2016-04-25 00:00:00,2016-04-25 00:00:00,66.9,54,0,3463.0,5978,6845.0,4564.0,20850 177 | 175,2016-04-26 00:00:00,2016-04-26 00:00:00,60.1,46.9,0.24,1997.0,3520,4559.0,2929.0,13005 178 | 176,2016-04-27 00:00:00,2016-04-27 00:00:00,62.1,46.9,0,3343.0,5606,6577.0,4388.0,19914 179 | 177,2016-04-28 00:00:00,2016-04-28 00:00:00,57.9,48,0,2486.0,4152,5336.0,3657.0,15631 180 | 178,2016-04-29 00:00:00,2016-04-29 00:00:00,57.0,46.9,0.05,2375.0,4178,5053.0,3348.0,14954 181 | 179,2016-04-30 00:00:00,2016-04-30 00:00:00,64.0,48,0,3199.0,4952,5675.0,3606.0,17432 182 | 180,2016-04-01 00:00:00,2016-04-01 00:00:00,78.1,66,0.01,1704.0,3126,4115.0,2552.0,11497 183 | 181,2016-04-02 00:00:00,2016-04-02 00:00:00,55.0,48.9,0.15,827.0,1646,2565.0,1884.0,6922 184 | 182,2016-04-03 00:00:00,2016-04-03 00:00:00,39.9,34,0.09,526.0,1232,1695.0,1306.0,4759 185 | 183,2016-04-04 00:00:00,2016-04-04 00:00:00,44.1,33.1,0.47 (S),521.0,1067,1440.0,1307.0,4335 186 | 184,2016-04-05 00:00:00,2016-04-05 00:00:00,42.1,26.1,0,1416.0,2617,3081.0,2357.0,9471 187 | 185,2016-04-06 00:00:00,2016-04-06 00:00:00,45.0,30,0,1885.0,3329,3856.0,2849.0,11919 188 | 186,2016-04-07 00:00:00,2016-04-07 00:00:00,57.0,53.1,0.09,1276.0,2581,3282.0,2457.0,9596 189 | 187,2016-04-08 00:00:00,2016-04-08 00:00:00,46.9,44.1,0.01,1982.0,3455,4113.0,3194.0,12744 190 | 188,2016-04-09 00:00:00,2016-04-09 00:00:00,43.0,37.9,0.09,504.0,997,1507.0,1502.0,4510 191 | 189,2016-04-10 00:00:00,2016-04-10 00:00:00,48.9,30.9,0,1447.0,2387,3132.0,2160.0,9126 192 | 190,2016-04-11 00:00:00,2016-04-11 00:00:00,62.1,46,0.01,2005.0,3791,4334.0,3182.0,13312 193 | 191,2016-04-12 00:00:00,2016-04-12 00:00:00,57.0,45,0.2,1045.0,2178,2762.0,2082.0,8067 194 | 192,2016-04-13 00:00:00,2016-04-13 00:00:00,57.0,39.9,0,2840.0,5395,5995.0,4192.0,18422 195 | 193,2016-04-14 00:00:00,2016-04-14 00:00:00,62.1,44.6,0,2861.0,5309,6030.0,4115.0,18315 196 | 194,2016-04-15 00:00:00,2016-04-15 00:00:00,64.0,44.1,0,2770.0,5072,5816.0,3912.0,17570 197 | 195,2016-04-16 00:00:00,2016-04-16 00:00:00,66.0,45,0,2384.0,4316,5624.0,4051.0,16375 198 | 196,2016-04-17 00:00:00,2016-04-17 00:00:00,73.9,46,0,3147.0,4969,5867.0,4197.0,18180 199 | 197,2016-04-18 00:00:00,2016-04-18 00:00:00,81.0,52,0,3871.0,6823,7432.0,4964.0,23090 200 | 198,2016-04-19 00:00:00,2016-04-19 00:00:00,71.1,63,0,3501.0,6951,7834.0,5032.0,23318 201 | 199,2016-04-20 00:00:00,2016-04-20 00:00:00,68.0,50,0,3450.0,6574,7639.0,4928.0,22591 202 | 200,2016-04-21 00:00:00,2016-04-21 00:00:00,71.1,50,0,3436.0,6452,7426.0,4813.0,22127 203 | 201,2016-04-22 00:00:00,2016-04-22 00:00:00,78.1,63,T,2975.0,4907,6093.0,3862.0,17837 204 | 202,2016-04-23 00:00:00,2016-04-23 00:00:00,70.0,61,0.16,2055.0,3276,4856.0,3239.0,13426 205 | 203,2016-04-24 00:00:00,2016-04-24 00:00:00,68.0,48,0,2798.0,4650,5335.0,3957.0,16740 206 | 204,2016-04-25 00:00:00,2016-04-25 00:00:00,66.9,54,0,3463.0,5978,6845.0,4564.0,20850 207 | 205,2016-04-26 00:00:00,2016-04-26 00:00:00,60.1,46.9,0.24,1997.0,3520,4559.0,2929.0,13005 208 | 206,2016-04-27 00:00:00,2016-04-27 00:00:00,62.1,46.9,0,3343.0,5606,6577.0,4388.0,19914 209 | 207,2016-04-28 00:00:00,2016-04-28 00:00:00,57.9,48,0,2486.0,4152,5336.0,3657.0,15631 210 | 208,2016-04-29 00:00:00,2016-04-29 00:00:00,57.0,46.9,0.05,2375.0,4178,5053.0,3348.0,14954 211 | 209,2016-04-30 00:00:00,2016-04-30 00:00:00,64.0,48,0,3199.0,4952,5675.0,3606.0,17432` 212 | -------------------------------------------------------------------------------- /src/data/oakland_flow.js: -------------------------------------------------------------------------------- 1 | export const data = { 2 | nodes: [ 3 | { 4 | name: "Capital Improvement Projects" 5 | }, 6 | { 7 | name: "City Administrator" 8 | }, 9 | { 10 | name: "City Attorney" 11 | }, 12 | { 13 | name: "City Auditor" 14 | }, 15 | { 16 | name: "City Clerk" 17 | }, 18 | { 19 | name: "City Council" 20 | }, 21 | { 22 | name: "Economic & Workforce Development" 23 | }, 24 | { 25 | name: "Finance" 26 | }, 27 | { 28 | name: "Fire" 29 | }, 30 | { 31 | name: "Human Resources Management" 32 | }, 33 | { 34 | name: "Human Services" 35 | }, 36 | { 37 | name: "Information Technology" 38 | }, 39 | { 40 | name: "Mayor" 41 | }, 42 | { 43 | name: "Non-Departmental" 44 | }, 45 | { 46 | name: "Oakland Parks & Recreation" 47 | }, 48 | { 49 | name: "Oakland Public Library" 50 | }, 51 | { 52 | name: "Oakland Public Works" 53 | }, 54 | { 55 | name: "Planning & Building" 56 | }, 57 | { 58 | name: "Police" 59 | }, 60 | { 61 | name: "Business License Tax" 62 | }, 63 | { 64 | name: "Fines & Penalties" 65 | }, 66 | { 67 | name: "Grants & Subsidies" 68 | }, 69 | { 70 | name: "Interest Income" 71 | }, 72 | { 73 | name: "Interfund Transfers" 74 | }, 75 | { 76 | name: "Licenses & Permits" 77 | }, 78 | { 79 | name: "Miscellaneous Revenue" 80 | }, 81 | { 82 | name: "Parking Tax" 83 | }, 84 | { 85 | name: "Property Tax" 86 | }, 87 | { 88 | name: "Real Estate Transfer Tax" 89 | }, 90 | { 91 | name: "Sales Tax" 92 | }, 93 | { 94 | name: "Service Charges" 95 | }, 96 | { 97 | name: "Transfers from Fund Balance" 98 | }, 99 | { 100 | name: "Transient Occupancy Tax" 101 | }, 102 | { 103 | name: "Utility Consumption Tax" 104 | }, 105 | { 106 | name: "Housing & Community Development" 107 | }, 108 | { 109 | name: "Gas Tax" 110 | }, 111 | { 112 | name: "Internal Service Funds" 113 | }, 114 | { 115 | name: "Local Tax" 116 | }, 117 | { 118 | name: "General Fund" 119 | }, 120 | { 121 | name: "Non-Discretionary" 122 | } 123 | ], 124 | links: [ 125 | { 126 | source: 38, 127 | target: 0, 128 | value: 1.252 129 | }, 130 | { 131 | source: 38, 132 | target: 1, 133 | value: 16.1024 134 | }, 135 | { 136 | source: 38, 137 | target: 2, 138 | value: 4.9034 139 | }, 140 | { 141 | source: 38, 142 | target: 3, 143 | value: 1.9137 144 | }, 145 | { 146 | source: 38, 147 | target: 4, 148 | value: 1.9156 149 | }, 150 | { 151 | source: 38, 152 | target: 5, 153 | value: 4.1698 154 | }, 155 | { 156 | source: 38, 157 | target: 6, 158 | value: 4.8559 159 | }, 160 | { 161 | source: 38, 162 | target: 7, 163 | value: 22.4377 164 | }, 165 | { 166 | source: 38, 167 | target: 8, 168 | value: 124.7475 169 | }, 170 | { 171 | source: 38, 172 | target: 9, 173 | value: 4.7713 174 | }, 175 | { 176 | source: 38, 177 | target: 10, 178 | value: 5.2234 179 | }, 180 | { 181 | source: 38, 182 | target: 11, 183 | value: 10.2803 184 | }, 185 | { 186 | source: 38, 187 | target: 12, 188 | value: 2.549 189 | }, 190 | { 191 | source: 38, 192 | target: 13, 193 | value: 77.2006 194 | }, 195 | { 196 | source: 38, 197 | target: 14, 198 | value: 15.662 199 | }, 200 | { 201 | source: 38, 202 | target: 15, 203 | value: 11.2828 204 | }, 205 | { 206 | source: 38, 207 | target: 16, 208 | value: 2.8819 209 | }, 210 | { 211 | source: 38, 212 | target: 17, 213 | value: 0.0454 214 | }, 215 | { 216 | source: 38, 217 | target: 18, 218 | value: 212.5089 219 | }, 220 | { 221 | source: 19, 222 | target: 38, 223 | value: 71.5054 224 | }, 225 | { 226 | source: 20, 227 | target: 38, 228 | value: 23.8335 229 | }, 230 | { 231 | source: 21, 232 | target: 38, 233 | value: 0.1194 234 | }, 235 | { 236 | source: 22, 237 | target: 38, 238 | value: 0.7405 239 | }, 240 | { 241 | source: 23, 242 | target: 38, 243 | value: 14.9229 244 | }, 245 | { 246 | source: 24, 247 | target: 38, 248 | value: 2.2107 249 | }, 250 | { 251 | source: 25, 252 | target: 38, 253 | value: 0.7493 254 | }, 255 | { 256 | source: 26, 257 | target: 38, 258 | value: 10.2113 259 | }, 260 | { 261 | source: 27, 262 | target: 38, 263 | value: 169.3074 264 | }, 265 | { 266 | source: 28, 267 | target: 38, 268 | value: 55.63 269 | }, 270 | { 271 | source: 29, 272 | target: 38, 273 | value: 55.4251 274 | }, 275 | { 276 | source: 30, 277 | target: 38, 278 | value: 46.8456 279 | }, 280 | { 281 | source: 31, 282 | target: 38, 283 | value: 6.8025 284 | }, 285 | { 286 | source: 32, 287 | target: 38, 288 | value: 16.4 289 | }, 290 | { 291 | source: 33, 292 | target: 38, 293 | value: 50 294 | }, 295 | { 296 | source: 39, 297 | target: 0, 298 | value: 38.4343 299 | }, 300 | { 301 | source: 39, 302 | target: 1, 303 | value: 4.0636 304 | }, 305 | { 306 | source: 39, 307 | target: 2, 308 | value: 9.6838 309 | }, 310 | { 311 | source: 39, 312 | target: 4, 313 | value: 0.0675 314 | }, 315 | { 316 | source: 39, 317 | target: 6, 318 | value: 12.5926 319 | }, 320 | { 321 | source: 39, 322 | target: 7, 323 | value: 13.5228 324 | }, 325 | { 326 | source: 39, 327 | target: 8, 328 | value: 10.8653 329 | }, 330 | { 331 | source: 39, 332 | target: 34, 333 | value: 18.5454 334 | }, 335 | { 336 | source: 39, 337 | target: 9, 338 | value: 1.9615 339 | }, 340 | { 341 | source: 39, 342 | target: 10, 343 | value: 62.6754 344 | }, 345 | { 346 | source: 39, 347 | target: 11, 348 | value: 16.9423 349 | }, 350 | { 351 | source: 39, 352 | target: 12, 353 | value: 0.2937 354 | }, 355 | { 356 | source: 39, 357 | target: 13, 358 | value: 263.7925 359 | }, 360 | { 361 | source: 39, 362 | target: 14, 363 | value: 10.5757 364 | }, 365 | { 366 | source: 39, 367 | target: 15, 368 | value: 17.5294 369 | }, 370 | { 371 | source: 39, 372 | target: 16, 373 | value: 156.8086 374 | }, 375 | { 376 | source: 39, 377 | target: 17, 378 | value: 27.1776 379 | }, 380 | { 381 | source: 39, 382 | target: 18, 383 | value: 23.6575 384 | }, 385 | { 386 | source: 20, 387 | target: 39, 388 | value: 4.7521 389 | }, 390 | { 391 | source: 35, 392 | target: 39, 393 | value: 7.0609 394 | }, 395 | { 396 | source: 21, 397 | target: 39, 398 | value: 58.1621 399 | }, 400 | { 401 | source: 22, 402 | target: 39, 403 | value: 0.1915 404 | }, 405 | { 406 | source: 23, 407 | target: 39, 408 | value: 135.5091 409 | }, 410 | { 411 | source: 36, 412 | target: 39, 413 | value: 74.2976 414 | }, 415 | { 416 | source: 24, 417 | target: 39, 418 | value: 15.4548 419 | }, 420 | { 421 | source: 37, 422 | target: 39, 423 | value: 148.1487 424 | }, 425 | { 426 | source: 25, 427 | target: 39, 428 | value: 36.7525 429 | }, 430 | { 431 | source: 26, 432 | target: 39, 433 | value: 8.6796 434 | }, 435 | { 436 | source: 27, 437 | target: 39, 438 | value: 4.2857 439 | }, 440 | { 441 | source: 29, 442 | target: 39, 443 | value: 24.6465 444 | }, 445 | { 446 | source: 30, 447 | target: 39, 448 | value: 121.437 449 | }, 450 | { 451 | source: 31, 452 | target: 39, 453 | value: 45.3387 454 | }, 455 | { 456 | source: 32, 457 | target: 39, 458 | value: 4.4727 459 | } 460 | ] 461 | }; 462 | -------------------------------------------------------------------------------- /src/data/sankey.js: -------------------------------------------------------------------------------- 1 | export default `source,target,value 2 | boiler,economiser,100 3 | boiler,steam pipe,400 4 | boiler,boiler radiation,20 5 | steam pipe,pipe radiation,10 6 | steam pipe,engine,390 7 | steam pipe,feed pump,20 8 | engine,work,100 9 | engine,boiler,10 10 | engine,effective work,40 11 | engine,engine radiation,10 12 | engine,condenser,250 13 | feed pump,economiser,20 14 | economiser,flue loss,40 15 | economiser,boiler,40 16 | economiser,radiation from economiser,10` 17 | -------------------------------------------------------------------------------- /src/data/spotify.js: -------------------------------------------------------------------------------- 1 | export default `id,name,artists,danceability,energy,key,loudness,mode,speechiness,acousticness,instrumentalness,liveness,valence,tempo,duration_ms,time_signature 2 | 7qiZfU4dY1lWllzX7mPBI,Shape of You,Ed Sheeran,0.825,0.652,1.0,-3.183,0.0,0.0802,0.581,0.0,0.0931,0.931,95.977,233713.0,4.0 3 | 5CtI0qwDJkDQGwXD1H1cL,Despacito - Remix,Luis Fonsi,0.694,0.815,2.0,-4.328,1.0,0.12,0.229,0.0,0.0924,0.813,88.931,228827.0,4.0 4 | 4aWmUDTfIPGksMNLV2rQP,Despacito (Featuring Daddy Yankee),Luis Fonsi,0.66,0.786,2.0,-4.757,1.0,0.17,0.209,0.0,0.112,0.846,177.833,228200.0,4.0 5 | 6RUKPb4LETWmmr3iAEQkt,Something Just Like This,The Chainsmokers,0.617,0.635,11.0,-6.769,0.0,0.0317,0.0498,1.44e-05,0.164,0.446,103.019,247160.0,4.0 6 | 3DXncPQOG4VBw3QHh3S81,I'm the One,DJ Khaled,0.609,0.668,7.0,-4.284,1.0,0.0367,0.0552,0.0,0.167,0.811,80.924,288600.0,4.0 7 | 7KXjTSCq5nL1LoYtL7XAw,HUMBLE.,Kendrick Lamar,0.904,0.611,1.0,-6.842,0.0,0.0888,0.000259,2.03e-05,0.0976,0.4,150.02,177000.0,4.0 8 | 3eR23VReFzcdmS7TYCrhC,It Ain't Me (with Selena Gomez),Kygo,0.64,0.533,0.0,-6.596,1.0,0.0706,0.119,0.0,0.0864,0.515,99.968,220781.0,4.0 9 | 3B54sVLJ402zGa6Xm4YGN,Unforgettable,French Montana,0.726,0.769,6.0,-5.043,1.0,0.123,0.0293,0.0101,0.104,0.733,97.985,233902.0,4.0 10 | 0KKkJNfGyhkQ5aFogxQAP,That's What I Like,Bruno Mars,0.853,0.56,1.0,-4.961,1.0,0.0406,0.013,0.0,0.0944,0.86,134.066,206693.0,4.0 11 | 3NdDpSvN911VPGivFlV5d,"I Don’t Wanna Live Forever (Fifty Shades Darker) - From ""Fifty Shades Darker (Original Motion Picture Soundtrack)""",ZAYN,0.735,0.451,0.0,-8.374,1.0,0.0585,0.0631,1.3e-05,0.325,0.0862,117.973,245200.0,4.0 12 | 7GX5flRQZVHRAGd6B4TmD,XO TOUR Llif3,Lil Uzi Vert,0.732,0.75,11.0,-6.366,0.0,0.231,0.00264,0.0,0.109,0.401,155.096,182707.0,4.0 13 | 72jbDTw1piOOj770jWNea,Paris,The Chainsmokers,0.653,0.658,2.0,-6.428,1.0,0.0304,0.0215,1.66e-06,0.0939,0.219,99.99,221507.0,4.0 14 | 0dA2Mk56wEzDgegdC6R17,Stay (with Alessia Cara),Zedd,0.679,0.634,5.0,-5.024,0.0,0.0654,0.232,0.0,0.115,0.498,102.013,210091.0,4.0 15 | 4iLqG9SeJSnt0cSPICSjx,Attention,Charlie Puth,0.774,0.626,3.0,-4.432,0.0,0.0432,0.0969,3.12e-05,0.0848,0.777,100.041,211475.0,4.0 16 | 0VgkVdmE4gld66l8iyGjg,Mask Off,Future,0.833,0.434,2.0,-8.795,1.0,0.431,0.0102,0.0219,0.165,0.281,150.062,204600.0,4.0 17 | 3a1lNhkSLSkpJE4MSHpDu,Congratulations,Post Malone,0.627,0.812,6.0,-4.215,1.0,0.0358,0.198,0.0,0.212,0.504,123.071,220293.0,4.0 18 | 6kex4EBAj0WHXDKZMEJaa,Swalla (feat. Nicki Minaj & Ty Dolla $ign),Jason Derulo,0.696,0.817,1.0,-3.862,1.0,0.109,0.075,0.0,0.187,0.782,98.064,216409.0,4.0 19 | 6PCUP3dWmTjcTtXY02oFd,Castle on the Hill,Ed Sheeran,0.461,0.834,2.0,-4.868,1.0,0.0989,0.0232,1.14e-05,0.14,0.471,135.007,261154.0,4.0 20 | 5knuzwU65gJK7IF5yJsua,Rockabye (feat. Sean Paul & Anne-Marie),Clean Bandit,0.72,0.763,9.0,-4.068,0.0,0.0523,0.406,0.0,0.18,0.742,101.965,251088.0,4.0 21 | 0CcQNd8CINkwQfe1RDtGV,Believer,Imagine Dragons,0.779,0.787,10.0,-4.305,0.0,0.108,0.0524,0.0,0.14,0.708,124.982,204347.0,4.0 22 | 2rb5MvYT7ZIxbKW5hfcHx,Mi Gente,J Balvin,0.543,0.677,11.0,-4.915,0.0,0.0993,0.0148,6.21e-06,0.13,0.294,103.809,189440.0,4.0 23 | 0tKcYR2II1VCQWT79i5Nr,Thunder,Imagine Dragons,0.6,0.81,0.0,-4.749,1.0,0.0479,0.00683,0.21,0.155,0.298,167.88,187147.0,4.0 24 | 5uCax9HTNlzGybIStD3vD,Say You Won't Let Go,James Arthur,0.358,0.557,10.0,-7.398,1.0,0.059,0.695,0.0,0.0902,0.494,85.043,211467.0,4.0 25 | 79cuOz3SPQTuFrp8WgftA,There's Nothing Holdin' Me Back,Shawn Mendes,0.857,0.8,2.0,-4.035,1.0,0.0583,0.381,0.0,0.0913,0.966,121.996,199440.0,4.0 26 | 6De0lHrwBfPfrhorm9q1X,Me Rehúso,Danny Ocean,0.744,0.804,1.0,-6.327,1.0,0.0677,0.0231,0.0,0.0494,0.426,104.823,205715.0,4.0 27 | 6D0b04NJIKfEMg040WioJ,Issues,Julia Michaels,0.706,0.427,8.0,-6.864,1.0,0.0879,0.413,0.0,0.0609,0.42,113.804,176320.0,4.0 28 | 0afhq8XCExXpqazXczTSv,Galway Girl,Ed Sheeran,0.624,0.876,9.0,-3.374,1.0,0.1,0.0735,0.0,0.327,0.781,99.943,170827.0,4.0 29 | 3ebXMykcMXOcLeJ9xZ17X,Scared to Be Lonely,Martin Garrix,0.584,0.54,1.0,-7.786,0.0,0.0576,0.0895,0.0,0.261,0.195,137.972,220883.0,4.0 30 | 7BKLCZ1jbUBVqRi2FVlTV,Closer,The Chainsmokers,0.748,0.524,8.0,-5.599,1.0,0.0338,0.414,0.0,0.111,0.661,95.01,244960.0,4.0 31 | 1x5sYLZiu9r5E43kMlt9f,Symphony (feat. Zara Larsson),Clean Bandit,0.707,0.629,0.0,-4.581,0.0,0.0563,0.259,1.6e-05,0.138,0.457,122.863,212459.0,4.0 32 | 5GXAXm5YOmYT0kL5jHvYB,I Feel It Coming,The Weeknd,0.768,0.813,0.0,-5.94,0.0,0.128,0.427,0.0,0.102,0.579,92.994,269187.0,4.0 33 | 5aAx2yezTd8zXrkmtKl66,Starboy,The Weeknd,0.681,0.594,7.0,-7.028,1.0,0.282,0.165,3.49e-06,0.134,0.535,186.054,230453.0,4.0 34 | 1OAh8uOEOvTDqkKFsKksC,Wild Thoughts,DJ Khaled,0.671,0.672,0.0,-3.094,0.0,0.0688,0.0329,0.0,0.118,0.632,97.98,204173.0,4.0 35 | 7tr2za8SQg2CI8EDgrdtN,Slide,Calvin Harris,0.736,0.795,1.0,-3.299,0.0,0.0545,0.498,1.21e-06,0.254,0.511,104.066,230813.0,4.0 36 | 2ekn2ttSfGqwhhate0LSR,New Rules,Dua Lipa,0.771,0.696,9.0,-6.258,0.0,0.0755,0.00256,9.71e-06,0.179,0.656,116.054,208827.0,4.0 37 | 5tz69p7tJuGPeMGwNTxYu,1-800-273-8255,Logic,0.629,0.572,5.0,-7.733,0.0,0.0387,0.57,0.0,0.192,0.386,100.015,250173.0,4.0 38 | 7hDc8b7IXETo14hHIHdnh,Passionfruit,Drake,0.809,0.463,11.0,-11.377,1.0,0.0396,0.256,0.085,0.109,0.364,111.98,298941.0,4.0 39 | 7wGoVu4Dady5GV0Sv4UIs,rockstar,Post Malone,0.577,0.522,5.0,-6.594,0.0,0.0984,0.13,9.03e-05,0.142,0.119,159.772,218320.0,4.0 40 | 6EpRaXYhGOB3fj4V2uDkM,Strip That Down,Liam Payne,0.869,0.485,6.0,-5.595,1.0,0.0545,0.246,0.0,0.0765,0.527,106.028,204502.0,4.0 41 | 3A7qX2QjDlPnazUsRk5y0,2U (feat. Justin Bieber),David Guetta,0.548,0.65,8.0,-5.827,0.0,0.0591,0.219,0.0,0.225,0.557,144.937,194897.0,4.0 42 | 0tgVpDi06FyKpA1z0VMD4,Perfect,Ed Sheeran,0.599,0.448,8.0,-6.312,1.0,0.0232,0.163,0.0,0.106,0.168,95.05,263400.0,3.0 43 | 78rIJddV4X0HkNAInEcYd,Call On Me - Ryan Riback Extended Remix,Starley,0.676,0.843,0.0,-4.068,1.0,0.0367,0.0623,0.000752,0.181,0.718,105.003,222041.0,4.0 44 | 5bcTCxgc7xVfSaMV3RuVk,Feels,Calvin Harris,0.893,0.745,11.0,-3.105,0.0,0.0571,0.0642,0.0,0.0943,0.872,101.018,223413.0,4.0 45 | 0NiXXAI876aGImAd6rTj8,Mama,Jonas Blue,0.746,0.793,11.0,-4.209,0.0,0.0412,0.11,0.0,0.0528,0.557,104.027,181615.0,4.0 46 | 0qYTZCo5Bwh1nsUFGZP3z,Felices los 4,Maluma,0.755,0.789,5.0,-4.502,1.0,0.146,0.231,0.0,0.351,0.737,93.973,229849.0,4.0 47 | 2EEeOnHehOozLq4aS0n6S,iSpy (feat. Lil Yachty),KYLE,0.746,0.653,7.0,-6.745,1.0,0.289,0.378,0.0,0.229,0.672,75.016,253107.0,4.0 48 | 152lZdxL1OR0ZMW6KquMi,Location,Khalid,0.736,0.449,1.0,-11.462,0.0,0.425,0.33,0.000162,0.0898,0.326,80.126,219080.0,4.0 49 | 6mICuAdrwEjh6Y6lroV2K,Chantaje,Shakira,0.852,0.773,8.0,-2.921,0.0,0.0776,0.187,3.05e-05,0.159,0.907,102.034,195840.0,4.0 50 | 4Km5HrUvYTaSUfiSGPJeQ,Bad and Boujee (feat. Lil Uzi Vert),Migos,0.927,0.665,11.0,-5.313,1.0,0.244,0.061,0.0,0.123,0.175,127.076,343150.0,4.0 51 | 0ofbQMrRDsUaVKq2mGLEA,Havana,Camila Cabello,0.768,0.517,7.0,-4.323,0.0,0.0312,0.186,3.8e-05,0.104,0.418,104.992,216897.0,4.0 52 | 6HUnnBwYZqcED1eQztxMB,Solo Dance,Martin Jensen,0.744,0.836,6.0,-2.396,0.0,0.0507,0.0435,0.0,0.194,0.36,114.965,174933.0,4.0 53 | 343YBumqHu19cGoGARUTs,Fake Love,Drake,0.927,0.488,9.0,-9.433,0.0,0.42,0.108,0.0,0.196,0.605,133.987,210937.0,4.0 54 | 4pdPtRcBmOSQDlJ3Fk945,Let Me Love You,DJ Snake,0.476,0.718,8.0,-5.309,1.0,0.0576,0.0784,1.02e-05,0.122,0.142,199.864,205947.0,4.0 55 | 3PEgB3fkiojxms35ntsTg,More Than You Know,Axwell /\ Ingrosso,0.644,0.743,5.0,-5.002,0.0,0.0355,0.034,0.0,0.257,0.544,123.074,203000.0,4.0 56 | 1xznGGDReH1oQq0xzbwXa,One Dance,Drake,0.791,0.619,1.0,-5.886,1.0,0.0532,0.00784,0.00423,0.351,0.371,103.989,173987.0,4.0 57 | 7nKBxz47S9SD79N086fuh,SUBEME LA RADIO,Enrique Iglesias,0.684,0.823,9.0,-3.297,0.0,0.0773,0.0744,0.0,0.111,0.647,91.048,208163.0,4.0 58 | 1NDxZ7cFAo481dtYWdrUn,Pretty Girl - Cheat Codes X CADE Remix,Maggie Lindemann,0.703,0.868,7.0,-4.661,0.0,0.0291,0.15,0.132,0.104,0.733,121.03,193613.0,4.0 59 | 3m660poUr1chesgkkjQM7,Sorry Not Sorry,Demi Lovato,0.704,0.633,11.0,-6.923,0.0,0.241,0.0214,0.0,0.29,0.863,144.021,203760.0,4.0 60 | 3kxfsdsCpFgN412fpnW85,Redbone,Childish Gambino,0.743,0.359,1.0,-10.401,1.0,0.0794,0.199,0.00611,0.137,0.587,160.083,326933.0,4.0 61 | 6b8Be6ljOzmkOmFslEb23,24K Magic,Bruno Mars,0.818,0.803,1.0,-4.282,1.0,0.0797,0.034,0.0,0.153,0.632,106.97,225983.0,4.0 62 | 6HZILIRieu8S0iqY8kIKh,DNA.,Kendrick Lamar,0.637,0.514,1.0,-6.763,1.0,0.365,0.0047,0.0,0.094,0.402,139.931,185947.0,4.0 63 | 3umS4y3uQDkqekNjVpiRU,El Amante,Nicky Jam,0.683,0.691,8.0,-5.535,1.0,0.0432,0.243,0.0,0.14,0.732,179.91,219507.0,4.0 64 | 00lNx0OcTJrS3MKHcB80H,You Don't Know Me - Radio Edit,Jax Jones,0.876,0.669,11.0,-6.054,0.0,0.138,0.163,0.0,0.185,0.682,124.007,213947.0,4.0 65 | 6520aj0B4FSKGVuKNsOCO,Chained To The Rhythm,Katy Perry,0.448,0.801,0.0,-5.363,1.0,0.165,0.0733,0.0,0.146,0.462,189.798,237734.0,4.0 66 | 1louJpMmzEicAn7lzDalP,No Promises (feat. Demi Lovato),Cheat Codes,0.741,0.667,10.0,-5.445,1.0,0.134,0.0575,0.0,0.106,0.595,112.956,223504.0,4.0 67 | 2QbFClFyhMMtiurUjuQlA,Don't Wanna Know (feat. Kendrick Lamar),Maroon 5,0.775,0.617,7.0,-6.166,1.0,0.0701,0.341,0.0,0.0985,0.485,100.048,214265.0,4.0 68 | 5hYTyyh2odQKphUbMqc5g,"How Far I'll Go - From ""Moana""",Alessia Cara,0.314,0.555,9.0,-9.601,1.0,0.37,0.157,0.000108,0.067,0.159,179.666,175517.0,4.0 69 | 38yBBH2jacvDxrznF7h08,Slow Hands,Niall Horan,0.734,0.418,0.0,-6.678,1.0,0.0425,0.0129,0.0,0.0579,0.868,85.909,188174.0,4.0 70 | 2cnKEkpVUSV4wnjQiTWfH,Escápate Conmigo,Wisin,0.747,0.864,8.0,-3.181,0.0,0.0599,0.0245,4.46e-05,0.0853,0.754,92.028,232787.0,4.0 71 | 0SGkqnVQo9KPytSri1H6c,Bounce Back,Big Sean,0.77,0.567,2.0,-5.698,1.0,0.175,0.105,0.0,0.125,0.26,81.477,222360.0,4.0 72 | 5Ohxk2dO5COHF1krpoPig,Sign of the Times,Harry Styles,0.516,0.595,5.0,-4.63,1.0,0.0313,0.0275,0.0,0.109,0.222,119.972,340707.0,4.0 73 | 6gBFPUFcJLzWGx4lenP6h,goosebumps,Travis Scott,0.841,0.728,7.0,-3.37,1.0,0.0484,0.0847,0.0,0.149,0.43,130.049,243837.0,4.0 74 | 5Z3GHaZ6ec9bsiI5Benrb,Young Dumb & Broke,Khalid,0.798,0.539,1.0,-6.351,1.0,0.0421,0.199,1.66e-05,0.165,0.394,136.949,202547.0,4.0 75 | 6jA8HL9i4QGzsj6fjoxp8,There for You,Martin Garrix,0.611,0.644,6.0,-7.607,0.0,0.0553,0.124,0.0,0.124,0.13,105.969,221904.0,4.0 76 | 21TdkDRXuAB3k90ujRU1e,Cold (feat. Future),Maroon 5,0.697,0.716,9.0,-6.288,0.0,0.113,0.118,0.0,0.0424,0.506,99.905,234308.0,4.0 77 | 7vGuf3Y35N4wmASOKLUVV,Silence,Marshmello,0.52,0.761,4.0,-3.093,1.0,0.0853,0.256,4.96e-06,0.17,0.286,141.971,180823.0,4.0 78 | 1mXVgsBdtIVeCLJnSnmtd,Too Good At Goodbyes,Sam Smith,0.698,0.375,5.0,-8.279,1.0,0.0491,0.652,0.0,0.173,0.534,91.92,201000.0,4.0 79 | 3EmmCZoqpWOTY1g2GBwJo,Just Hold On,Steve Aoki,0.647,0.932,11.0,-3.515,1.0,0.0824,0.00383,1.5e-06,0.0574,0.374,114.991,198774.0,4.0 80 | 6uFsE1JgZ20EXyU0JQZbU,Look What You Made Me Do,Taylor Swift,0.773,0.68,9.0,-6.378,0.0,0.141,0.213,1.57e-05,0.122,0.497,128.062,211859.0,4.0 81 | 0CokSRCu5hZgPxcZBaEzV,Glorious (feat. Skylar Grey),Macklemore,0.731,0.794,0.0,-5.126,0.0,0.0522,0.0323,2.59e-05,0.112,0.356,139.994,220454.0,4.0 82 | 6875MeXyCW0wLyT72Eetm,Starving,Hailee Steinfeld,0.721,0.626,4.0,-4.2,1.0,0.123,0.402,0.0,0.102,0.558,99.914,181933.0,4.0 83 | 3AEZUABDXNtecAOSC1qTf,Reggaetón Lento (Bailemos),CNCO,0.761,0.838,4.0,-3.073,0.0,0.0502,0.4,0.0,0.176,0.71,93.974,222560.0,4.0 84 | 3E2Zh20GDCR9B1EYjfXWy,Weak,AJR,0.673,0.637,5.0,-4.518,1.0,0.0429,0.137,0.0,0.184,0.678,123.98,201160.0,4.0 85 | 4pLwZjInHj3SimIyN9SnO,Side To Side,Ariana Grande,0.648,0.738,6.0,-5.883,0.0,0.247,0.0408,0.0,0.292,0.603,159.145,226160.0,4.0 86 | 3QwBODjSEzelZyVjxPOHd,Otra Vez (feat. J Balvin),Zion & Lennox,0.832,0.772,10.0,-5.429,1.0,0.1,0.0559,0.000486,0.44,0.704,96.016,209453.0,4.0 87 | 1wjzFQodRWrPcQ0AnYnvQ,I Like Me Better,Lauv,0.752,0.505,9.0,-7.621,1.0,0.253,0.535,2.55e-06,0.104,0.419,91.97,197437.0,4.0 88 | 04DwTuZ2VBdJCCC5TROn7,In the Name of Love,Martin Garrix,0.49,0.485,4.0,-6.237,0.0,0.0406,0.0592,0.0,0.337,0.196,133.889,195840.0,4.0 89 | 6DNtNfH8hXkqOX1sjqmI7,Cold Water (feat. Justin Bieber & MØ),Major Lazer,0.608,0.798,6.0,-5.092,0.0,0.0432,0.0736,0.0,0.156,0.501,92.943,185352.0,4.0 90 | 1UZOjK1BwmwWU14Erba9C,Malibu,Miley Cyrus,0.573,0.781,8.0,-6.406,1.0,0.0555,0.0767,2.64e-05,0.0813,0.343,139.934,231907.0,4.0 91 | 4b4KcovePX8Ke2cLIQTLM,All Night,The Vamps,0.544,0.809,8.0,-5.098,1.0,0.0363,0.0038,0.0,0.323,0.448,145.017,197640.0,4.0 92 | 1a5Yu5L18qNxVhXx38njO,Hear Me Now,Alok,0.789,0.442,11.0,-7.844,1.0,0.0421,0.586,0.00366,0.0927,0.45,121.971,192846.0,4.0 93 | 4c2W3VKsOFoIg2SFaO6DY,Your Song,Rita Ora,0.855,0.624,1.0,-4.093,1.0,0.0488,0.158,0.0,0.0513,0.962,117.959,180757.0,4.0 94 | 22eADXu8DfOAUEDw4vU8q,Ahora Dice,Chris Jeday,0.708,0.693,6.0,-5.516,1.0,0.138,0.246,0.0,0.129,0.427,143.965,271080.0,4.0 95 | 7nZmah2llfvLDiUjm0kiy,Friends (with BloodPop®),Justin Bieber,0.744,0.739,8.0,-5.35,1.0,0.0387,0.00459,0.0,0.306,0.649,104.99,189467.0,4.0 96 | 2fQrGHiQOvpL9UgPvtYy6,Bank Account,21 Savage,0.884,0.346,8.0,-8.228,0.0,0.351,0.0151,7.04e-06,0.0871,0.376,75.016,220307.0,4.0 97 | 1PSBzsahR2AKwLJgx8ehB,Bad Things (with Camila Cabello),Machine Gun Kelly,0.675,0.69,2.0,-4.761,1.0,0.132,0.21,0.0,0.287,0.272,137.817,239293.0,4.0 98 | 0QsvXIfqM0zZoerQfsI9l,Don't Let Me Down,The Chainsmokers,0.542,0.859,11.0,-5.651,1.0,0.197,0.16,0.00466,0.137,0.403,159.797,208053.0,4.0 99 | 7mldq42yDuxiUNn08nvzH,Body Like A Back Road,Sam Hunt,0.731,0.469,5.0,-7.226,1.0,0.0326,0.463,1.04e-06,0.103,0.631,98.963,165387.0,4.0 100 | 7i2DJ88J7jQ8K7zqFX2fW,Now Or Never,Halsey,0.658,0.588,6.0,-4.902,0.0,0.0367,0.105,1.28e-06,0.125,0.434,110.075,214802.0,4.0 101 | 1j4kHkkpqZRBwE0A4CN4Y,Dusk Till Dawn - Radio Edit,ZAYN,0.258,0.437,11.0,-6.593,0.0,0.039,0.101,1.27e-06,0.106,0.0967,180.043,239000.0,4.0` 102 | -------------------------------------------------------------------------------- /src/data/stack_network_links.csv: -------------------------------------------------------------------------------- 1 | source,target,value 2 | azure,.net,20.933192346640457 3 | sql-server,.net,32.322524219339904 4 | asp.net,.net,48.40702996199019 5 | entity-framework,.net,24.37090250532431 6 | wpf,.net,32.35092522005943 7 | linq,.net,20.501743858149066 8 | wcf,.net,28.074400427611113 9 | c#,.net,62.167895042923824 10 | tdd,agile,37.146589924204555 11 | codeigniter,ajax,23.19190040565183 12 | jquery,ajax,50.56672861589973 13 | mysql,ajax,24.80008942291756 14 | css,ajax,26.613713724688935 15 | php,ajax,28.01067925660409 16 | javascript,ajax,24.39914442262329 17 | json,ajax,32.94744601093195 18 | cloud,amazon-web-services,21.31860679884144 19 | azure,amazon-web-services,21.30994959394633 20 | devops,amazon-web-services,24.98353120101788 21 | docker,amazon-web-services,32.198071014100535 22 | ios,android,39.77803622570551 23 | android-studio,android,33.661083176336234 24 | java,android,50.984730766476574 25 | android,android-studio,33.661083176336234 26 | typescript,angular,31.03648178393663 27 | typescript,angular2,38.87998222920348 28 | angularjs,angular2,26.032697164489267 29 | ionic-framework,angularjs,29.840445766924983 30 | reactjs,angularjs,31.62020230471286 31 | mongodb,angularjs,31.510711170360768 32 | css,angularjs,22.210413043130057 33 | sass,angularjs,20.425878416671157 34 | twitter-bootstrap,angularjs,24.153685861107462 35 | javascript,angularjs,39.37662666227728 36 | express,angularjs,24.43382880528071 37 | node.js,angularjs,47.56352702530362 38 | jquery,angularjs,30.34794743352026 39 | asp.net-web-api,angularjs,20.11309966430225 40 | angular2,angularjs,26.032697164489267 41 | html5,angularjs,23.082664020750425 42 | nginx,apache,48.583173464083416 43 | mysql,apache,29.097834547698525 44 | linux,apache,28.168213013158717 45 | scala,apache-spark,50.79184563415286 46 | hadoop,apache-spark,59.82678558413366 47 | rest,api,22.175589109335288 48 | .net,asp.net,48.40702996199019 49 | sql,asp.net,21.6722646057341 50 | sql-server,asp.net,59.67328948689907 51 | c#,asp.net,80.4485421720991 52 | asp.net-web-api,asp.net,47.38627215537402 53 | jquery,asp.net,28.723178220098205 54 | entity-framework,asp.net,48.1136690894626 55 | mvc,asp.net,22.828412163028812 56 | azure,asp.net,23.764072995058054 57 | wpf,asp.net,28.15902333873328 58 | linq,asp.net,31.581277746170855 59 | wcf,asp.net,40.951421726059984 60 | vb.net,asp.net,23.711346281144564 61 | asp.net,asp.net-web-api,47.38627215537402 62 | azure,asp.net-web-api,21.585694763313093 63 | c#,asp.net-web-api,26.748821548289044 64 | angularjs,asp.net-web-api,20.11309966430225 65 | sql-server,asp.net-web-api,25.67647418219353 66 | wcf,asp.net-web-api,28.356535431019818 67 | entity-framework,asp.net-web-api,31.18349509959109 68 | .net,azure,20.933192346640457 69 | c#,azure,22.14448701181891 70 | asp.net-web-api,azure,21.585694763313093 71 | asp.net,azure,23.764072995058054 72 | amazon-web-services,azure,21.30994959394633 73 | linux,bash,38.88811575032741 74 | shell,bash,24.71706557378606 75 | git,bash,27.096957129984922 76 | jquery,bootstrap,22.406154649004446 77 | css,bootstrap,24.71031260188158 78 | c++,c,80.89104614147385 79 | python,c,22.320432253935472 80 | embedded,c,28.403647769064776 81 | java,c,26.04945930410044 82 | linq,c#,25.222931643142886 83 | sql,c#,25.613903617043626 84 | asp.net,c#,80.4485421720991 85 | asp.net-web-api,c#,26.748821548289044 86 | entity-framework,c#,30.728425581793207 87 | vb.net,c#,25.185135956324604 88 | .net,c#,62.167895042923824 89 | sql-server,c#,45.91465123552504 90 | xamarin,c#,24.673147548722167 91 | azure,c#,22.14448701181891 92 | wpf,c#,38.95749217569616 93 | unity3d,c#,25.000233473145794 94 | wcf,c#,29.299880033528954 95 | visual-studio,c#,27.71554342863794 96 | qt,c++,30.144660032562147 97 | c,c++,80.89104614147385 98 | java,c++,23.201095658265963 99 | python,c++,24.301045666206715 100 | amazon-web-services,cloud,21.31860679884144 101 | mysql,codeigniter,22.596885929311604 102 | jquery,codeigniter,26.729771309673538 103 | laravel,codeigniter,31.658709317460826 104 | php,codeigniter,37.40149646160739 105 | ajax,codeigniter,23.19190040565183 106 | wordpress,codeigniter,25.13313076574851 107 | ajax,css,26.613713724688935 108 | mysql,css,27.010622489444646 109 | photoshop,css,20.855721424968042 110 | jquery,css,66.67420569975171 111 | html,css,126.57112712972764 112 | javascript,css,75.53660009612221 113 | html5,css,87.13826986156899 114 | bootstrap,css,24.71031260188158 115 | twitter-bootstrap,css,31.56405510257182 116 | less,css,25.340535324481124 117 | wordpress,css,31.264824668848835 118 | angularjs,css,22.210413043130057 119 | sass,css,40.96336126549837 120 | php,css,51.447604909108925 121 | amazon-web-services,devops,24.98353120101788 122 | docker,devops,24.554202817668248 123 | jenkins,devops,23.602587607535273 124 | python,django,49.905942953683244 125 | flask,django,42.33664313992495 126 | postgresql,django,22.48925264318247 127 | amazon-web-services,docker,32.198071014100535 128 | go,docker,28.375405907346195 129 | devops,docker,24.554202817668248 130 | jenkins,docker,26.528607599809522 131 | wordpress,drupal,24.919296182152596 132 | maven,eclipse,25.314659453818305 133 | redis,elasticsearch,29.349098676116647 134 | mongodb,elasticsearch,20.22800685545149 135 | c,embedded,28.403647769064776 136 | .net,entity-framework,24.37090250532431 137 | wpf,entity-framework,24.228201856682706 138 | asp.net,entity-framework,48.1136690894626 139 | sql-server,entity-framework,32.62377908692168 140 | linq,entity-framework,54.00592956009751 141 | wcf,entity-framework,32.81595165036012 142 | asp.net-web-api,entity-framework,31.18349509959109 143 | c#,entity-framework,30.728425581793207 144 | vba,excel,45.26074988295236 145 | excel-vba,excel,54.50523562629742 146 | vba,excel-vba,49.61621727834464 147 | excel,excel-vba,54.50523562629742 148 | reactjs,express,31.924272588963444 149 | redux,express,21.543458417676824 150 | angularjs,express,24.43382880528071 151 | node.js,express,58.829076622959285 152 | mongodb,express,48.76806081178149 153 | python,flask,25.251371861419308 154 | django,flask,42.33664313992495 155 | jenkins,git,23.075440145975143 156 | github,git,56.20246391729147 157 | bash,git,27.096957129984922 158 | linux,git,27.70879277472438 159 | git,github,56.20246391729147 160 | docker,go,28.375405907346195 161 | scala,hadoop,21.62593446217338 162 | apache-spark,hadoop,59.82678558413366 163 | scala,haskell,22.757440009799737 164 | jsp,hibernate,39.406945985510596 165 | java,hibernate,32.52356510452292 166 | spring-boot,hibernate,30.232903706376273 167 | maven,hibernate,34.100052024791246 168 | rest,hibernate,21.646667877763228 169 | web-services,hibernate,21.210956925188103 170 | spring-mvc,hibernate,64.109898213092265 171 | java-ee,hibernate,39.90817378554484 172 | spring,hibernate,103.26828446355263 173 | mysql,html,21.35568889023083 174 | javascript,html,59.75548884052987 175 | php,html,45.66104087971069 176 | css,html,126.57112712972764 177 | sass,html,23.639529235488705 178 | jquery,html,44.23362023021944 179 | php,html5,32.350506919162136 180 | wordpress,html5,22.216440754019796 181 | javascript,html5,47.00636375705097 182 | angularjs,html5,23.082664020750425 183 | less,html5,20.92318766828214 184 | twitter-bootstrap-3,html5,22.161036413455076 185 | jquery,html5,47.49277338891457 186 | css,html5,87.13826986156899 187 | twitter-bootstrap,html5,26.230983374393585 188 | sass,html5,32.070376656092115 189 | angularjs,ionic-framework,29.840445766924983 190 | android,ios,39.77803622570551 191 | swift,ios,87.21964246099864 192 | osx,ios,30.341581071883272 193 | objective-c,ios,78.75928046651394 194 | iphone,ios,57.15857405623158 195 | xcode,ios,46.36509077387072 196 | swift,iphone,36.02337467321895 197 | xcode,iphone,34.71286507120063 198 | ios,iphone,57.15857405623158 199 | objective-c,iphone,47.97788760375011 200 | spring,java,43.954259225314345 201 | c++,java,23.201095658265963 202 | jsp,java,21.619803035260286 203 | java-ee,java,25.116182820462374 204 | android,java,50.984730766476574 205 | hibernate,java,32.52356510452292 206 | c,java,26.04945930410044 207 | spring-mvc,java,25.041214810765112 208 | spring,java-ee,39.812105148516856 209 | hibernate,java-ee,39.90817378554484 210 | spring-mvc,java-ee,27.964591852574834 211 | java,java-ee,25.116182820462374 212 | jquery,javascript,57.84183152642191 213 | twitter-bootstrap,javascript,20.238823043724278 214 | node.js,javascript,42.73172932305638 215 | mysql,javascript,22.91619071652686 216 | angularjs,javascript,39.37662666227728 217 | php,javascript,47.3281575555596 218 | ajax,javascript,24.39914442262329 219 | reactjs,javascript,33.56735910485145 220 | css,javascript,75.53660009612221 221 | html,javascript,59.75548884052987 222 | sass,javascript,23.782469883653217 223 | html5,javascript,47.00636375705097 224 | git,jenkins,23.075440145975143 225 | devops,jenkins,23.602587607535273 226 | maven,jenkins,33.47708077913068 227 | docker,jenkins,26.528607599809522 228 | json,jquery,20.62957734085586 229 | html,jquery,44.23362023021944 230 | wordpress,jquery,28.87017059988903 231 | sass,jquery,24.68172813218768 232 | asp.net,jquery,28.723178220098205 233 | php,jquery,46.619090898232265 234 | css,jquery,66.67420569975171 235 | html5,jquery,47.49277338891457 236 | ajax,jquery,50.56672861589973 237 | twitter-bootstrap,jquery,36.79192549817867 238 | mysql,jquery,35.71297781108102 239 | angularjs,jquery,30.34794743352026 240 | twitter-bootstrap-3,jquery,21.153243249312748 241 | javascript,jquery,57.84183152642191 242 | codeigniter,jquery,26.729771309673538 243 | bootstrap,jquery,22.406154649004446 244 | rest,json,25.049498396111403 245 | jquery,json,20.62957734085586 246 | xml,json,42.721668458812765 247 | ajax,json,32.94744601093195 248 | hibernate,jsp,39.406945985510596 249 | java,jsp,21.619803035260286 250 | spring-mvc,jsp,24.06449025192885 251 | spring,jsp,30.61333985121873 252 | vue.js,laravel,28.79989665496036 253 | php,laravel,45.88473321024233 254 | mysql,laravel,20.23026605428928 255 | codeigniter,laravel,31.658709317460826 256 | sass,less,60.545941127987604 257 | css,less,25.340535324481124 258 | html5,less,20.92318766828214 259 | wcf,linq,34.58709265871981 260 | sql-server,linq,20.444792111689296 261 | c#,linq,25.222931643142886 262 | asp.net,linq,31.581277746170855 263 | entity-framework,linq,54.00592956009751 264 | .net,linq,20.501743858149066 265 | wpf,linq,26.468391555977576 266 | bash,linux,38.88811575032741 267 | git,linux,27.70879277472438 268 | unix,linux,25.357412874239948 269 | osx,linux,23.41281493970028 270 | ubuntu,linux,29.894342585346926 271 | shell,linux,21.131792917374074 272 | nginx,linux,21.080478447912995 273 | windows,linux,29.945400773839896 274 | python,linux,21.17036044400364 275 | apache,linux,28.168213013158717 276 | python,machine-learning,30.27077436735024 277 | r,machine-learning,23.21869703965049 278 | r,matlab,20.021932698311588 279 | spring-mvc,maven,24.933802259856545 280 | jenkins,maven,33.47708077913068 281 | eclipse,maven,25.314659453818305 282 | spring,maven,39.53022984092444 283 | hibernate,maven,34.100052024791246 284 | express,mongodb,48.76806081178149 285 | node.js,mongodb,58.65780661217398 286 | reactjs,mongodb,22.3209731892725 287 | postgresql,mongodb,22.855557000277642 288 | mysql,mongodb,26.36926476163211 289 | redis,mongodb,33.554731128787694 290 | elasticsearch,mongodb,20.22800685545149 291 | angularjs,mongodb,31.510711170360768 292 | asp.net,mvc,22.828412163028812 293 | css,mysql,27.010622489444646 294 | jquery,mysql,35.71297781108102 295 | mongodb,mysql,26.36926476163211 296 | laravel,mysql,20.23026605428928 297 | php,mysql,65.07025912410015 298 | postgresql,mysql,25.909942488756776 299 | javascript,mysql,22.91619071652686 300 | html,mysql,21.35568889023083 301 | ajax,mysql,24.80008942291756 302 | apache,mysql,29.097834547698525 303 | codeigniter,mysql,22.596885929311604 304 | linux,nginx,21.080478447912995 305 | redis,nginx,27.473141406934243 306 | apache,nginx,48.583173464083416 307 | javascript,node.js,42.73172932305638 308 | reactjs,node.js,55.192747551978705 309 | express,node.js,58.829076622959285 310 | angularjs,node.js,47.56352702530362 311 | mongodb,node.js,58.65780661217398 312 | react-native,node.js,22.16325031188543 313 | redux,node.js,23.40192325369395 314 | xcode,objective-c,43.41882511710604 315 | iphone,objective-c,47.97788760375011 316 | swift,objective-c,79.08853577916759 317 | ios,objective-c,78.75928046651394 318 | osx,objective-c,24.763189829170084 319 | sql,oracle,21.82760476470736 320 | plsql,oracle,45.06151433906438 321 | windows,osx,20.860246776482484 322 | objective-c,osx,24.763189829170084 323 | ios,osx,30.341581071883272 324 | linux,osx,23.41281493970028 325 | regex,perl,21.364077886249937 326 | css,photoshop,20.855721424968042 327 | css,php,51.447604909108925 328 | laravel,php,45.88473321024233 329 | wordpress,php,41.03704549651282 330 | jquery,php,46.619090898232265 331 | javascript,php,47.3281575555596 332 | ajax,php,28.01067925660409 333 | html,php,45.66104087971069 334 | mysql,php,65.07025912410015 335 | html5,php,32.350506919162136 336 | codeigniter,php,37.40149646160739 337 | oracle,plsql,45.06151433906438 338 | sql,plsql,22.717442387504864 339 | mysql,postgresql,25.909942488756776 340 | redis,postgresql,26.28018174137368 341 | ruby-on-rails,postgresql,25.69011032907274 342 | mongodb,postgresql,22.855557000277642 343 | django,postgresql,22.48925264318247 344 | ruby,postgresql,21.79517505760149 345 | windows,powershell,20.24069060325144 346 | flask,python,25.251371861419308 347 | c++,python,24.301045666206715 348 | machine-learning,python,30.27077436735024 349 | django,python,49.905942953683244 350 | c,python,22.320432253935472 351 | r,python,28.53574785327096 352 | linux,python,21.17036044400364 353 | c++,qt,30.144660032562147 354 | python,r,28.53574785327096 355 | matlab,r,20.021932698311588 356 | machine-learning,r,23.21869703965049 357 | reactjs,react-native,61.53102297253567 358 | redux,react-native,25.480581476491025 359 | node.js,react-native,22.16325031188543 360 | node.js,reactjs,55.192747551978705 361 | sass,reactjs,24.9979588147436 362 | react-native,reactjs,61.53102297253567 363 | redux,reactjs,65.12985505970208 364 | angularjs,reactjs,31.62020230471286 365 | mongodb,reactjs,22.3209731892725 366 | express,reactjs,31.924272588963444 367 | javascript,reactjs,33.56735910485145 368 | mongodb,redis,33.554731128787694 369 | nginx,redis,27.473141406934243 370 | elasticsearch,redis,29.349098676116647 371 | postgresql,redis,26.28018174137368 372 | reactjs,redux,65.12985505970208 373 | node.js,redux,23.40192325369395 374 | react-native,redux,25.480581476491025 375 | express,redux,21.543458417676824 376 | perl,regex,21.364077886249937 377 | spring,rest,26.11759862631264 378 | web-services,rest,33.69066907565828 379 | api,rest,22.175589109335288 380 | hibernate,rest,21.646667877763228 381 | json,rest,25.049498396111403 382 | postgresql,ruby,21.79517505760149 383 | ruby-on-rails,ruby,95.36131071220332 384 | postgresql,ruby-on-rails,25.69011032907274 385 | ruby,ruby-on-rails,95.36131071220332 386 | jquery,sass,24.68172813218768 387 | javascript,sass,23.782469883653217 388 | reactjs,sass,24.9979588147436 389 | html,sass,23.639529235488705 390 | html5,sass,32.070376656092115 391 | less,sass,60.545941127987604 392 | angularjs,sass,20.425878416671157 393 | css,sass,40.96336126549837 394 | twitter-bootstrap,sass,20.18548801090922 395 | hadoop,scala,21.62593446217338 396 | haskell,scala,22.757440009799737 397 | apache-spark,scala,50.79184563415286 398 | testing,selenium,33.685943095200074 399 | bash,shell,24.71706557378606 400 | linux,shell,21.131792917374074 401 | web-services,spring,20.16560629687762 402 | spring-mvc,spring,63.330217313152836 403 | rest,spring,26.11759862631264 404 | spring-boot,spring,57.04039265671136 405 | maven,spring,39.53022984092444 406 | java-ee,spring,39.812105148516856 407 | hibernate,spring,103.26828446355263 408 | jsp,spring,30.61333985121873 409 | java,spring,43.954259225314345 410 | spring,spring-boot,57.04039265671136 411 | hibernate,spring-boot,30.232903706376273 412 | spring-mvc,spring-boot,60.61682620955685 413 | maven,spring-mvc,24.933802259856545 414 | java-ee,spring-mvc,27.964591852574834 415 | spring,spring-mvc,63.330217313152836 416 | jsp,spring-mvc,24.06449025192885 417 | spring-boot,spring-mvc,60.61682620955685 418 | hibernate,spring-mvc,64.109898213092265 419 | java,spring-mvc,25.041214810765112 420 | plsql,sql,22.717442387504864 421 | sql-server,sql,24.354772917848095 422 | c#,sql,25.613903617043626 423 | oracle,sql,21.82760476470736 424 | asp.net,sql,21.6722646057341 425 | asp.net-web-api,sql-server,25.67647418219353 426 | wcf,sql-server,26.29146633095843 427 | vb.net,sql-server,21.788893442838376 428 | .net,sql-server,32.322524219339904 429 | entity-framework,sql-server,32.62377908692168 430 | asp.net,sql-server,59.67328948689907 431 | linq,sql-server,20.444792111689296 432 | sql,sql-server,24.354772917848095 433 | c#,sql-server,45.91465123552504 434 | xcode,swift,48.62033486702057 435 | iphone,swift,36.02337467321895 436 | objective-c,swift,79.08853577916759 437 | ios,swift,87.21964246099864 438 | agile,tdd,37.146589924204555 439 | selenium,testing,33.685943095200074 440 | angularjs,twitter-bootstrap,24.153685861107462 441 | html5,twitter-bootstrap,26.230983374393585 442 | sass,twitter-bootstrap,20.18548801090922 443 | jquery,twitter-bootstrap,36.79192549817867 444 | javascript,twitter-bootstrap,20.238823043724278 445 | css,twitter-bootstrap,31.56405510257182 446 | jquery,twitter-bootstrap-3,21.153243249312748 447 | html5,twitter-bootstrap-3,22.161036413455076 448 | angular2,typescript,38.87998222920348 449 | angular,typescript,31.03648178393663 450 | linux,ubuntu,29.894342585346926 451 | c#,unity3d,25.000233473145794 452 | linux,unix,25.357412874239948 453 | asp.net,vb.net,23.711346281144564 454 | sql-server,vb.net,21.788893442838376 455 | c#,vb.net,25.185135956324604 456 | excel-vba,vba,49.61621727834464 457 | excel,vba,45.26074988295236 458 | c#,visual-studio,27.71554342863794 459 | laravel,vue.js,28.79989665496036 460 | .net,wcf,28.074400427611113 461 | entity-framework,wcf,32.81595165036012 462 | c#,wcf,29.299880033528954 463 | sql-server,wcf,26.29146633095843 464 | wpf,wcf,53.17990345536856 465 | linq,wcf,34.58709265871981 466 | asp.net,wcf,40.951421726059984 467 | asp.net-web-api,wcf,28.356535431019818 468 | rest,web-services,33.69066907565828 469 | hibernate,web-services,21.210956925188103 470 | spring,web-services,20.16560629687762 471 | powershell,windows,20.24069060325144 472 | linux,windows,29.945400773839896 473 | osx,windows,20.860246776482484 474 | php,wordpress,41.03704549651282 475 | html5,wordpress,22.216440754019796 476 | css,wordpress,31.264824668848835 477 | codeigniter,wordpress,25.13313076574851 478 | drupal,wordpress,24.919296182152596 479 | jquery,wordpress,28.87017059988903 480 | linq,wpf,26.468391555977576 481 | wcf,wpf,53.17990345536856 482 | entity-framework,wpf,24.228201856682706 483 | c#,wpf,38.95749217569616 484 | asp.net,wpf,28.15902333873328 485 | .net,wpf,32.35092522005943 486 | c#,xamarin,24.673147548722167 487 | objective-c,xcode,43.41882511710604 488 | swift,xcode,48.62033486702057 489 | iphone,xcode,34.71286507120063 490 | ios,xcode,46.36509077387072 491 | json,xml,42.721668458812765 492 | -------------------------------------------------------------------------------- /src/data/totals.json: -------------------------------------------------------------------------------- 1 | [{"original":"2015-1","date":"2015-01-02","grossWeekly":197541639},{"original":"2015-2","date":"2015-01-09","grossWeekly":165538957},{"original":"2015-3","date":"2015-01-16","grossWeekly":297391551},{"original":"2015-4","date":"2015-01-23","grossWeekly":202796715},{"original":"2015-5","date":"2015-01-30","grossWeekly":136450167},{"original":"2015-6","date":"2015-02-06","grossWeekly":187710436},{"original":"2015-7","date":"2015-02-13","grossWeekly":291154737},{"original":"2015-8","date":"2015-02-20","grossWeekly":155693153},{"original":"2015-9","date":"2015-02-27","grossWeekly":137546308},{"original":"2015-10","date":"2015-03-06","grossWeekly":121650553},{"original":"2015-11","date":"2015-03-13","grossWeekly":176406525},{"original":"2015-12","date":"2015-03-20","grossWeekly":170339086},{"original":"2015-13","date":"2015-03-27","grossWeekly":203154073},{"original":"2015-14","date":"2015-04-03","grossWeekly":310119589},{"original":"2015-15","date":"2015-04-10","grossWeekly":165590306},{"original":"2015-16","date":"2015-04-17","grossWeekly":153662870},{"original":"2015-17","date":"2015-04-24","grossWeekly":122975800},{"original":"2015-18","date":"2015-05-01","grossWeekly":292923282},{"original":"2015-19","date":"2015-05-08","grossWeekly":168306581},{"original":"2015-20","date":"2015-05-15","grossWeekly":242873277},{"original":"2015-21","date":"2015-05-22","grossWeekly":231396990},{"original":"2015-22","date":"2015-05-29","grossWeekly":197581369},{"original":"2015-23","date":"2015-06-05","grossWeekly":188236012},{"original":"2015-24","date":"2015-06-12","grossWeekly":393502183},{"original":"2015-25","date":"2015-06-19","grossWeekly":359002020},{"original":"2015-26","date":"2015-06-26","grossWeekly":308902303},{"original":"2015-27","date":"2015-07-03","grossWeekly":219283685},{"original":"2015-28","date":"2015-07-10","grossWeekly":317088535},{"original":"2015-29","date":"2015-07-17","grossWeekly":287679660},{"original":"2015-30","date":"2015-07-24","grossWeekly":234284409},{"original":"2015-31","date":"2015-07-31","grossWeekly":227996997},{"original":"2015-32","date":"2015-08-07","grossWeekly":197989415},{"original":"2015-33","date":"2015-08-14","grossWeekly":217037759},{"original":"2015-34","date":"2015-08-21","grossWeekly":150949418},{"original":"2015-35","date":"2015-08-28","grossWeekly":123514184},{"original":"2015-36","date":"2015-09-04","grossWeekly":137589423},{"original":"2015-37","date":"2015-09-11","grossWeekly":132111783},{"original":"2015-38","date":"2015-09-18","grossWeekly":149325679},{"original":"2015-39","date":"2015-09-25","grossWeekly":178748681},{"original":"2015-40","date":"2015-10-02","grossWeekly":194069712},{"original":"2015-41","date":"2015-10-09","grossWeekly":163486562},{"original":"2015-42","date":"2015-10-16","grossWeekly":157689684},{"original":"2015-43","date":"2015-10-23","grossWeekly":138261552},{"original":"2015-44","date":"2015-10-30","grossWeekly":102245901},{"original":"2015-45","date":"2015-11-06","grossWeekly":222356190},{"original":"2015-46","date":"2015-11-13","grossWeekly":137611030},{"original":"2015-47","date":"2015-11-20","grossWeekly":287194465},{"original":"2015-48","date":"2015-11-27","grossWeekly":220947147},{"original":"2015-49","date":"2015-12-04","grossWeekly":128585720},{"original":"2015-50","date":"2015-12-11","grossWeekly":105470134},{"original":"2015-51","date":"2015-12-18","grossWeekly":512582114},{"original":"2015-52","date":"2015-12-25","grossWeekly":528565948},{"original":"2016-1","date":"2016-01-01","grossWeekly":288653430},{"original":"2016-2","date":"2016-01-08","grossWeekly":213602441},{"original":"2016-3","date":"2016-01-15","grossWeekly":238871426},{"original":"2016-4","date":"2016-01-22","grossWeekly":156606884},{"original":"2016-5","date":"2016-01-29","grossWeekly":174857854},{"original":"2016-6","date":"2016-02-05","grossWeekly":126655737},{"original":"2016-7","date":"2016-02-12","grossWeekly":329793400},{"original":"2016-8","date":"2016-02-19","grossWeekly":185742605},{"original":"2016-9","date":"2016-02-26","grossWeekly":147644114},{"original":"2016-10","date":"2016-03-04","grossWeekly":208317815},{"original":"2016-11","date":"2016-03-11","grossWeekly":190642435},{"original":"2016-12","date":"2016-03-18","grossWeekly":183364848},{"original":"2016-13","date":"2016-03-25","grossWeekly":339294401},{"original":"2016-14","date":"2016-04-01","grossWeekly":171163378},{"original":"2016-15","date":"2016-04-08","grossWeekly":135033390},{"original":"2016-16","date":"2016-04-15","grossWeekly":227353314},{"original":"2016-17","date":"2016-04-22","grossWeekly":169456993},{"original":"2016-18","date":"2016-04-29","grossWeekly":137074918},{"original":"2016-19","date":"2016-05-06","grossWeekly":301891797},{"original":"2016-20","date":"2016-05-13","grossWeekly":169436865},{"original":"2016-21","date":"2016-05-20","grossWeekly":181469803},{"original":"2016-22","date":"2016-05-27","grossWeekly":247629656},{"original":"2016-23","date":"2016-06-03","grossWeekly":190373719},{"original":"2016-24","date":"2016-06-10","grossWeekly":218750239},{"original":"2016-25","date":"2016-06-17","grossWeekly":361776797},{"original":"2016-26","date":"2016-06-24","grossWeekly":291413387},{"original":"2016-27","date":"2016-07-01","grossWeekly":310794511},{"original":"2016-28","date":"2016-07-08","grossWeekly":323894969},{"original":"2016-29","date":"2016-07-15","grossWeekly":248828598},{"original":"2016-30","date":"2016-07-22","grossWeekly":295511972},{"original":"2016-31","date":"2016-07-29","grossWeekly":283985335},{"original":"2016-32","date":"2016-08-05","grossWeekly":329751902},{"original":"2016-33","date":"2016-08-12","grossWeekly":254080388},{"original":"2016-34","date":"2016-08-19","grossWeekly":187164992},{"original":"2016-35","date":"2016-08-26","grossWeekly":164705279},{"original":"2016-36","date":"2016-09-02","grossWeekly":149630996},{"original":"2016-37","date":"2016-09-09","grossWeekly":134442104},{"original":"2016-38","date":"2016-09-16","grossWeekly":121858313},{"original":"2016-39","date":"2016-09-23","grossWeekly":136363384},{"original":"2016-40","date":"2016-09-30","grossWeekly":150273827},{"original":"2016-41","date":"2016-10-07","grossWeekly":147945983},{"original":"2016-42","date":"2016-10-14","grossWeekly":132522033},{"original":"2016-43","date":"2016-10-21","grossWeekly":163324517},{"original":"2016-44","date":"2016-10-28","grossWeekly":119943009},{"original":"2016-45","date":"2016-11-04","grossWeekly":251689176},{"original":"2016-46","date":"2016-11-11","grossWeekly":198090307},{"original":"2016-47","date":"2016-11-18","grossWeekly":272743652},{"original":"2016-48","date":"2016-11-25","grossWeekly":224629485},{"original":"2016-49","date":"2016-12-02","grossWeekly":124970201},{"original":"2016-50","date":"2016-12-09","grossWeekly":113543199},{"original":"2016-51","date":"2016-12-16","grossWeekly":351816389},{"original":"2016-52","date":"2016-12-23","grossWeekly":468076652},{"original":"2016-53","date":"2016-12-30","grossWeekly":310955273},{"original":"2017-1","date":"2017-01-06","grossWeekly":191218617},{"original":"2017-2","date":"2017-01-13","grossWeekly":219557700},{"original":"2017-3","date":"2017-01-20","grossWeekly":193991048},{"original":"2017-4","date":"2017-01-27","grossWeekly":183747121},{"original":"2017-5","date":"2017-02-03","grossWeekly":131133002},{"original":"2017-6","date":"2017-02-10","grossWeekly":260605285},{"original":"2017-7","date":"2017-02-17","grossWeekly":221331736},{"original":"2017-8","date":"2017-02-24","grossWeekly":169121821},{"original":"2017-9","date":"2017-03-03","grossWeekly":252960428},{"original":"2017-10","date":"2017-03-10","grossWeekly":227594404},{"original":"2017-11","date":"2017-03-17","grossWeekly":348993026},{"original":"2017-12","date":"2017-03-24","grossWeekly":266163275},{"original":"2017-13","date":"2017-03-31","grossWeekly":222175519},{"original":"2017-14","date":"2017-04-07","grossWeekly":171808637},{"original":"2017-15","date":"2017-04-14","grossWeekly":228078362},{"original":"2017-16","date":"2017-04-21","grossWeekly":139923000},{"original":"2017-17","date":"2017-04-28","grossWeekly":128872964},{"original":"2017-18","date":"2017-05-05","grossWeekly":247760257},{"original":"2017-19","date":"2017-05-12","grossWeekly":176217364},{"original":"2017-20","date":"2017-05-19","grossWeekly":173475115},{"original":"2017-21","date":"2017-05-26","grossWeekly":218494936},{"original":"2017-22","date":"2017-06-02","grossWeekly":267837494},{"original":"2017-23","date":"2017-06-09","grossWeekly":210993612},{"original":"2017-24","date":"2017-06-16","grossWeekly":292402875},{"original":"2017-25","date":"2017-06-23","grossWeekly":213822222},{"original":"2017-26","date":"2017-06-30","grossWeekly":281153226},{"original":"2017-27","date":"2017-07-07","grossWeekly":303710823},{"original":"2017-28","date":"2017-07-14","grossWeekly":242910988},{"original":"2017-29","date":"2017-07-21","grossWeekly":273848680},{"original":"2017-30","date":"2017-07-28","grossWeekly":220904110},{"original":"2017-31","date":"2017-08-04","grossWeekly":184432805},{"original":"2017-32","date":"2017-08-11","grossWeekly":171926311},{"original":"2017-33","date":"2017-08-18","grossWeekly":137698773}] 2 | -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | padding: 20px; 4 | font-family: sans-serif; 5 | width: 100%; 6 | height: 100%; 7 | } 8 | 9 | html { 10 | margin: 0; 11 | padding: 0; 12 | height: 100%; 13 | } 14 | 15 | #root { 16 | height: 100%; 17 | } 18 | 19 | .tooltip-content { 20 | bottom: 19px; 21 | position: relative; 22 | left: -75px; 23 | background: white; 24 | border: 1px solid black; 25 | color: black; 26 | padding: 10px; 27 | z-index: 999999; 28 | min-width: 120px; 29 | position: relative; 30 | } 31 | 32 | .tooltip-content:before { 33 | background: white; 34 | content: ""; 35 | padding: 0px; 36 | transform: rotate(45deg); 37 | width: 15px; 38 | height: 15px; 39 | position: absolute; 40 | z-index: 99; 41 | bottom: -10px; 42 | left: 65px; 43 | border-right: 1px solid black; 44 | border-bottom: 1px solid black; 45 | } 46 | 47 | .annotation text { 48 | fill: #b10000; 49 | } 50 | 51 | .annotation path { 52 | stroke: #b10000; 53 | stroke-width: 1px; 54 | } 55 | 56 | .annotation path.connector-end { 57 | fill: #b10000; 58 | stroke-width: 1px; 59 | stroke-dasharray: 0; 60 | } 61 | 62 | .tick > path { 63 | stroke: lightgray; 64 | } 65 | 66 | line.axis-baseline { 67 | stroke: none; 68 | } 69 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.css'; 4 | import App from './App'; 5 | import registerServiceWorker from './registerServiceWorker'; 6 | 7 | ReactDOM.render(, document.getElementById('root')); 8 | registerServiceWorker(); 9 | -------------------------------------------------------------------------------- /src/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/registerServiceWorker.js: -------------------------------------------------------------------------------- 1 | // In production, we register a service worker to serve assets from local cache. 2 | 3 | // This lets the app load faster on subsequent visits in production, and gives 4 | // it offline capabilities. However, it also means that developers (and users) 5 | // will only see deployed updates on the "N+1" visit to a page, since previously 6 | // cached resources are updated in the background. 7 | 8 | // To learn more about the benefits of this model, read https://goo.gl/KwvDNy. 9 | // This link also includes instructions on opting out of this behavior. 10 | 11 | const isLocalhost = Boolean( 12 | window.location.hostname === 'localhost' || 13 | // [::1] is the IPv6 localhost address. 14 | window.location.hostname === '[::1]' || 15 | // 127.0.0.1/8 is considered localhost for IPv4. 16 | window.location.hostname.match( 17 | /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ 18 | ) 19 | ); 20 | 21 | export default function register() { 22 | if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { 23 | // The URL constructor is available in all browsers that support SW. 24 | const publicUrl = new URL(process.env.PUBLIC_URL, window.location); 25 | if (publicUrl.origin !== window.location.origin) { 26 | // Our service worker won't work if PUBLIC_URL is on a different origin 27 | // from what our page is served on. This might happen if a CDN is used to 28 | // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374 29 | return; 30 | } 31 | 32 | window.addEventListener('load', () => { 33 | const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`; 34 | 35 | if (!isLocalhost) { 36 | // Is not local host. Just register service worker 37 | registerValidSW(swUrl); 38 | } else { 39 | // This is running on localhost. Lets check if a service worker still exists or not. 40 | checkValidServiceWorker(swUrl); 41 | } 42 | }); 43 | } 44 | } 45 | 46 | function registerValidSW(swUrl) { 47 | navigator.serviceWorker 48 | .register(swUrl) 49 | .then(registration => { 50 | registration.onupdatefound = () => { 51 | const installingWorker = registration.installing; 52 | installingWorker.onstatechange = () => { 53 | if (installingWorker.state === 'installed') { 54 | if (navigator.serviceWorker.controller) { 55 | // At this point, the old content will have been purged and 56 | // the fresh content will have been added to the cache. 57 | // It's the perfect time to display a "New content is 58 | // available; please refresh." message in your web app. 59 | console.log('New content is available; please refresh.'); 60 | } else { 61 | // At this point, everything has been precached. 62 | // It's the perfect time to display a 63 | // "Content is cached for offline use." message. 64 | console.log('Content is cached for offline use.'); 65 | } 66 | } 67 | }; 68 | }; 69 | }) 70 | .catch(error => { 71 | console.error('Error during service worker registration:', error); 72 | }); 73 | } 74 | 75 | function checkValidServiceWorker(swUrl) { 76 | // Check if the service worker can be found. If it can't reload the page. 77 | fetch(swUrl) 78 | .then(response => { 79 | // Ensure service worker exists, and that we really are getting a JS file. 80 | if ( 81 | response.status === 404 || 82 | response.headers.get('content-type').indexOf('javascript') === -1 83 | ) { 84 | // No service worker found. Probably a different app. Reload the page. 85 | navigator.serviceWorker.ready.then(registration => { 86 | registration.unregister().then(() => { 87 | window.location.reload(); 88 | }); 89 | }); 90 | } else { 91 | // Service worker found. Proceed as normal. 92 | registerValidSW(swUrl); 93 | } 94 | }) 95 | .catch(() => { 96 | console.log( 97 | 'No internet connection found. App is running in offline mode.' 98 | ); 99 | }); 100 | } 101 | 102 | export function unregister() { 103 | if ('serviceWorker' in navigator) { 104 | navigator.serviceWorker.ready.then(registration => { 105 | registration.unregister(); 106 | }); 107 | } 108 | } 109 | --------------------------------------------------------------------------------