Skip to content

Instantly share code, notes, and snippets.

@curran
Last active September 2, 2016 05:17
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save curran/aff67b589d0f775a6a7b75f94a05fb14 to your computer and use it in GitHub Desktop.
Save curran/aff67b589d0f775a6a7b75f94a05fb14 to your computer and use it in GitHub Desktop.
Dynamic Baseball Scatter Plot
license: mit
id name1 name2 atbat86 hits86 homer86 runs86 rbi86 walks86 years atbat hits homeruns runs rbi walks league86 div86 team86 posit86 outs86 assist86 error86 sal87 league87 team87
1 Al Newman 185 37 1 23 8 21 2 214 42 1 30 9 24 N E Mon 2B 76 127 7 70 A Min
2 Alan Ashby 315 81 7 24 38 39 14 3449 835 69 321 414 375 N W Hou C 632 43 10 475 N Hou
3 Alan Trammell 574 159 21 107 75 59 10 4631 1300 90 702 504 488 A E Det SS 238 445 22 517.143 A Det
4 Alan Wiggins 239 60 0 30 11 22 6 1941 510 4 309 103 207 A E Bal 2B 121 151 6 700 A Bal
5 Alex Trevino 202 53 4 31 26 27 9 1876 467 15 192 186 161 N W LA C 304 45 11 512.5 N LA
6 Alfredo Griffin 594 169 4 74 51 35 11 4408 1133 19 501 336 194 A W Oak SS 282 421 25 750 A Oak
7 Alvin Davis 479 130 18 66 72 76 3 1624 457 63 224 266 263 A W Sea 1B 880 82 14 480 A Sea
8 Andre Dawson 496 141 20 65 78 37 11 5628 1575 225 828 838 354 N E Mon RF 200 11 3 500 N Chi
9 Andre Thornton 401 92 17 49 66 65 13 5206 1332 253 784 890 866 A E Cle DH 0 0 0 1100 A Cle
10 Andres Galarraga 321 87 10 39 42 30 2 396 101 12 48 46 33 N E Mon 1B 805 40 4 91.5 N Mon
11 Andres Thomas 323 81 6 26 32 8 2 341 86 6 32 34 8 N W Atl SS 143 290 19 75 N Atl
12 Andy Allanson 293 66 1 30 29 14 1 293 66 1 30 29 14 A E Cle C 446 33 20 NA A Cle
13 Andy Van Slyke 418 113 13 48 61 47 4 1512 392 41 205 204 203 N E StL RF 211 11 7 550 N Pit
14 Argenis Salazar 298 73 0 24 24 7 3 509 108 0 41 37 12 A W KC SS 121 283 9 100 A KC
15 Barry Bonds 413 92 16 72 48 65 1 413 92 16 72 48 65 N E Pit CF 280 9 5 100 N Pit
16 Ben Oglivie 346 98 5 31 53 30 16 5913 1615 235 784 901 560 A E Mil DH 0 0 0 NA A Mil
17 Bill Almon 196 43 7 29 27 30 13 3231 825 36 376 290 238 N E Pit UT 80 45 8 240 N Pit
18 Bill Buckner 629 168 18 73 102 40 18 8424 2464 164 1008 1072 402 A E Bos 1B 1067 157 14 776.667 A Bos
19 Bill Doran 550 152 6 92 37 81 5 2308 633 32 349 182 308 N W Hou 2B 262 329 16 625 N Hou
20 Bill Madlock 379 106 10 38 60 30 14 6207 1906 146 859 803 571 N W LA 3B 72 170 24 850 N LA
21 Bill Russell 216 54 0 21 18 15 18 7318 1926 46 796 627 483 N W LA UT 103 84 5 NA N LA
22 Bill Schroeder 217 46 7 32 19 9 4 694 160 32 86 76 32 A E Mil UT 307 25 1 180 A Mil
23 Billy Beane 183 39 3 20 15 11 3 201 42 3 20 16 11 A W Min OF 118 0 0 NA A Min
24 Billy Hatcher 419 108 6 55 36 22 3 591 149 8 80 46 31 N W Hou CF 226 7 4 110 N Hou
25 Billy Jo Robidoux 181 41 1 15 21 33 2 232 50 4 20 29 45 A E Mil 1B 326 29 5 67.5 A Mil
26 Billy Sample 200 57 6 23 14 14 9 2516 684 46 371 230 195 N W Atl OF 69 1 1 NA N Atl
27 Bip Roberts 241 61 1 34 12 14 1 241 61 1 34 12 14 N W SD 2B 166 172 10 NA N SD
28 Bo Diaz 474 129 10 50 56 40 10 2331 604 61 246 327 166 N W Cin C 732 83 13 750 N Cin
29 Bob Boone 22 10 1 4 2 1 6 84 26 2 9 9 3 A W Cal C 812 84 11 NA A Cal
30 Bob Brenly 472 116 16 60 62 74 6 1924 489 67 242 251 240 N W SF C 518 55 3 600 N SF
31 Bob Dernier 324 73 4 32 18 22 7 1931 491 13 291 108 180 N E Chi CF 222 3 3 708.333 N Chi
32 Bob Horner 517 141 27 70 87 52 9 3571 994 215 545 652 337 N W Atl 1B 1378 102 8 NA N Atl
33 Bob Kearney 204 49 6 23 25 12 7 1309 308 27 126 132 66 A W Sea C 419 46 5 300 A Sea
34 Bob Melvin 268 60 5 24 25 15 2 350 78 5 34 29 18 N W SF C 442 59 6 90 N SF
35 Bobby Bonilla 426 109 3 55 43 62 1 426 109 3 55 43 62 A W Chi O1 361 22 2 115 N Pit
36 Bobby Grich 313 84 9 42 30 39 17 6890 1833 224 1033 864 1087 A W Cal 2B 127 221 7 NA A Cal
37 Bobby Meacham 161 36 0 19 10 17 4 1053 244 3 156 86 107 A E NY SS 70 149 12 NA A NY
38 Brett Butler 587 163 4 92 51 70 6 2695 747 17 442 198 317 A E Cle CF 434 9 3 765 A Cle
39 Brian Downing 513 137 20 90 95 90 14 5201 1382 166 763 734 784 A W Cal LF 267 5 3 900 A Cal
40 Brook Jacoby 583 168 17 83 80 56 5 1646 452 44 219 208 136 A E Cle 3B 109 292 25 612.5 A Cle
41 Bruce Bochte 407 104 6 57 43 65 12 5233 1478 100 643 658 653 A W Oak 1B 912 88 9 NA A Oak
42 Bruce Bochy 127 32 8 16 22 14 8 727 180 24 67 82 56 N W SD C 202 22 2 135 N SD
43 Buddy Bell 568 158 20 89 75 73 15 8068 2273 177 1045 993 732 N W Cin 3B 105 290 10 775 N Cin
44 Buddy Biancalana 190 46 2 24 8 15 5 479 102 5 65 23 39 A W KC SS 102 177 16 175 A KC
45 Butch Wynegar 194 40 7 19 29 30 11 4183 1069 64 486 493 608 A E NY C 325 22 2 NA A Cal
46 Cal Ripken 627 177 25 98 81 70 6 3210 927 133 529 472 313 A E Bal SS 240 482 13 1350 A Bal
47 Candy Maldonado 405 102 18 49 85 20 6 950 231 29 99 138 64 N W SF OF 161 10 3 415 N SF
48 Carlton Fisk 457 101 14 42 63 22 17 6521 1767 281 1003 977 619 A W Chi C 389 39 4 875 A Chi
49 Carmelo Martinez 244 58 9 28 25 35 4 1335 333 49 164 179 194 N W SD O1 142 14 2 340 N SD
50 Carmen Castillo 205 57 8 34 32 9 5 756 192 32 117 107 51 A E Cle OD 58 4 4 247.5 A Cle
51 Carney Lansford 591 168 19 80 72 39 9 4478 1307 113 634 563 319 A W Oak 3B 67 147 4 1200 A Oak
52 Cecil Cooper 542 140 12 46 75 41 16 7099 2130 235 987 1089 431 A E Mil 1B 697 61 9 NA A Mil
53 Charlie Moore 235 61 3 24 39 21 14 3926 1029 35 441 401 333 A E Mil C 425 43 4 NA A Mil
54 Chet Lemon 403 101 12 45 53 39 12 5150 1429 166 747 666 526 A E Det CF 316 6 5 675 A Det
55 Chili Davis 526 146 13 71 70 84 6 2648 715 77 352 342 289 N W SF RF 303 9 9 815 N SF
56 Chris Bando 254 68 2 28 26 22 6 999 236 21 108 117 118 A E Cle C 359 30 4 305 A Cle
57 Chris Brown 416 132 7 57 49 33 3 932 273 24 113 121 80 N W SF 3B 73 177 18 215 N SF
58 Chris Speier 155 44 6 21 23 15 16 6631 1634 98 698 661 777 N E Chi 3S 53 88 3 275 N SF
59 Cliff Johnson 19 7 0 1 2 1 4 41 13 1 3 4 4 A E Tor DH 0 0 0 NA A Tor
60 Cory Snyder 416 113 24 58 69 16 1 416 113 24 58 69 16 A E Cle OS 203 70 10 90 A Cle
61 Craig Reynolds 313 78 6 32 41 12 12 3742 968 35 409 321 170 N W Hou SS 106 206 7 416.667 N Hou
62 Curt Ford 214 53 2 30 29 23 2 226 59 2 32 32 27 N E StL OF 109 7 3 70 N StL
63 Curt Wilkerson 236 56 0 27 15 11 4 1115 270 1 116 64 57 A W Tex 2S 125 199 13 230 A Tex
64 Dale Murphy 614 163 29 89 83 75 11 5017 1388 266 813 822 617 N W Atl CF 303 6 6 1900 N Atl
65 Dale Sveum 317 78 7 35 35 32 1 317 78 7 35 35 32 A E Mil 3B 45 122 26 70 A Mil
66 Damaso Garcia 424 119 6 57 46 13 9 3651 1046 32 461 301 112 A E Tor 2B 224 286 8 850 N Cin
67 Dan Gladden 351 97 4 55 29 39 4 1258 353 16 196 110 117 N W SF CF 226 7 3 210 A Min
68 Dan Pasqua 280 82 16 44 45 47 2 428 113 25 61 70 63 A E NY LF 148 4 2 110 A NY
69 Dann Bilardello 191 37 4 12 17 14 4 773 163 16 61 74 52 N E Mon C 391 38 8 NA N Mon
70 Danny Heep 195 55 5 24 33 30 8 1313 338 25 144 149 153 N E NY OF 83 2 1 NA N NY
71 Danny Tartabull 511 138 25 76 96 61 3 592 164 28 87 110 71 A W Sea RF 157 7 8 145 A KC
72 Darnell Coles 521 142 20 67 86 45 4 815 205 22 99 103 78 A E Det 3B 107 242 23 105 A Det
73 Darrell Evans 507 122 29 78 85 91 18 7761 1947 347 1175 1152 1380 A E Det 1B 808 108 2 535 A Det
74 Darrell Porter 155 41 12 21 29 22 16 5409 1338 181 746 805 875 A W Tex CD 165 9 1 260 A Tex
75 Darren Daulton 138 31 8 18 21 38 3 244 53 12 33 32 55 N E Phi C 244 21 4 NA N Phi
76 Darryl Motley 227 46 7 23 20 12 5 1325 324 44 156 158 67 A W KC RF 92 2 2 NA A KC
77 Darryl Strawberry 475 123 27 76 93 72 4 1810 471 108 292 343 267 N E NY RF 226 10 6 1220 N NY
78 Daryl Boston 199 53 5 29 22 21 3 514 120 8 57 40 39 A W Chi CF 152 3 5 75 A Chi
79 Dave Anderson 216 53 1 31 15 22 4 926 210 9 118 69 114 N W LA 3S 73 152 11 225 N LA
80 Dave Collins 419 113 1 44 27 44 12 4484 1231 32 612 344 422 A E Det LF 211 2 1 NA A Det
81 Dave Concepcion 311 81 3 42 30 26 17 8247 2198 100 950 909 690 N W Cin UT 153 223 10 320 N Pit
82 Dave Henderson 388 103 15 59 47 39 6 2174 555 80 285 274 186 A W Sea OF 182 9 4 325 A Bos
83 Dave Kingman 561 118 35 70 94 33 16 6677 1575 442 901 1210 608 A W Oak DH 463 32 8 NA A Oak
84 Dave Parker 637 174 31 89 116 56 14 6727 2024 247 978 1093 495 N W Cin RF 278 9 9 1041.667 N Cin
85 Dave Winfield 565 148 24 90 104 77 14 7287 2083 305 1135 1234 791 A E NY RF 292 9 5 1861.46 A NY
86 Davey Lopes 255 70 7 49 35 43 15 6311 1661 154 1019 608 820 N E Chi 3O 51 54 8 450 N Hou
87 Denny Walling 382 119 13 54 58 36 12 2133 594 41 287 294 227 N W Hou 3B 59 156 9 595 N Hou
88 Dick Schofield 458 114 13 67 57 48 4 1350 298 28 160 123 122 A W Cal SS 246 389 18 475 A Cal
89 Dickie Thon 278 69 3 24 21 29 8 2079 565 32 258 192 162 N W Hou SS 142 210 10 NA N Hou
90 Don Baylor 585 139 31 93 94 62 17 7546 1982 315 1141 1179 727 A E Bos DH 0 0 0 950 A Bos
91 Don Mattingly 677 238 31 117 113 53 5 2223 737 93 349 401 171 A E NY 1B 1377 100 6 1975 A NY
92 Don Slaught 314 83 13 39 46 16 5 1457 405 28 156 159 76 A W Tex C 533 40 4 431.5 A Tex
93 Donnie Hill 339 96 4 37 29 23 4 1064 290 11 123 108 55 A W Oak 23 104 213 9 275 A Chi
94 Doug Baker 24 3 0 1 0 2 3 159 28 0 20 12 9 A W Oak OF 80 4 0 NA A Oak
95 Doug DeCinces 512 131 26 69 96 52 14 5347 1397 221 712 815 548 A W Cal 3B 119 216 12 850 A Cal
96 Dwayne Murphy 329 83 9 50 39 56 9 3828 948 145 575 528 635 A W Oak CF 276 6 2 600 A Oak
97 Dwight Evans 529 137 26 86 97 97 15 6661 1785 291 1082 949 989 A E Bos RF 280 10 5 933.333 A Bos
98 Ed Romero 233 49 2 41 23 18 8 1350 336 7 166 122 106 A E Bos SS 102 132 10 375 A Bos
99 Eddie Milner 424 110 15 70 47 36 7 2130 544 38 335 174 258 N W Cin CF 292 6 3 490 N SF
100 Eddie Murray 495 151 17 61 84 78 10 5624 1679 275 884 1015 709 A E Bal 1B 1045 88 13 2460 A Bal
101 Enos Cabell 277 71 2 27 29 14 15 5952 1647 60 753 596 259 N W LA 1B 360 32 5 NA N LA
102 Eric Davis 415 115 27 97 71 68 3 711 184 45 156 119 99 N W Cin LF 274 2 7 300 N Cin
103 Ernest Riles 524 132 9 69 47 54 2 972 260 14 123 92 90 A E Mil SS 212 327 20 NA A Mil
104 Ernie Whitt 395 106 16 48 56 35 10 2303 571 86 266 323 248 A E Tor C 709 41 7 NA A Tor
105 Floyd Rayford 210 37 8 15 19 15 6 994 244 36 107 114 53 A E Bal 3B 40 115 15 NA A Bal
106 Frank White 566 154 22 76 84 43 14 6100 1583 131 743 693 300 A W KC 2B 316 439 10 750 A KC
107 Franklin Stubbs 420 95 23 55 58 37 3 646 139 31 77 77 61 N W LA LF 206 10 7 NA N LA
108 Fred Lynn 397 114 23 67 67 53 13 5589 1632 241 906 926 716 A E Bal CF 244 2 4 NA A Bal
109 Garry Templeton 510 126 2 42 44 35 11 5562 1578 44 703 519 256 N W SD SS 207 358 20 737.5 N SD
110 Garth Iorg 327 85 3 30 44 20 8 2140 568 16 216 208 93 A E Tor 32 91 185 12 362.5 A Tor
111 Gary Carter 490 125 24 81 105 62 13 6063 1646 271 847 999 680 N E NY C 869 62 8 1925.571 N NY
112 Gary Gaetti 596 171 34 91 108 52 6 2862 728 107 361 401 224 A W Min 3B 118 334 21 900 A Min
113 Gary Matthews 370 96 21 49 46 60 15 6986 1972 231 1070 955 921 N E Chi LF 137 5 9 733.333 N Chi
114 Gary Pettis 539 139 5 93 58 69 5 1469 369 12 247 126 198 A W Cal CF 462 9 7 400 A Cal
115 Gary Redus 340 84 11 62 33 47 5 1516 376 42 284 141 219 N E Phi LF 185 8 4 400 A Chi
116 Gary Ward 380 120 5 54 51 31 8 3118 900 92 444 419 240 A W Tex LF 237 8 1 600 A NY
117 George Bell 641 198 31 101 108 41 5 2129 610 92 297 319 117 A E Tor LF 269 17 10 1175 A Tor
118 George Brett 441 128 16 70 73 80 14 6675 2095 209 1072 1050 695 A W KC 3B 97 218 16 1500 A KC
119 George Foster 284 64 14 30 42 24 18 7023 1925 348 986 1239 666 N E NY LF 96 4 4 NA N NY
120 George Hendrick 283 77 14 45 47 26 16 6840 1910 259 915 1067 546 A W Cal OF 144 6 5 700 A Cal
121 Glenn Braggs 215 51 4 19 18 11 1 215 51 4 19 18 11 A E Mil LF 116 5 12 70 A Mil
122 Glenn Davis 574 152 31 91 101 64 3 985 260 53 148 173 95 N W Hou 1B 1253 111 11 215 N Hou
123 Glenn Hubbard 408 94 4 42 36 66 9 3573 866 59 429 365 410 N W Atl 2B 282 487 19 535 N Atl
124 Glenn Wilson 584 158 15 70 84 42 5 2358 636 58 265 316 134 N E Phi RF 331 20 4 662.5 N Phi
125 Gorman Thomas 315 59 16 45 36 58 13 4677 1051 268 681 782 697 A W Sea DH 0 0 0 NA A Sea
126 Graig Nettles 354 77 16 36 55 41 20 8716 2172 384 1172 1267 1057 N W SD 3B 83 174 16 200 N Atl
127 Greg Brock 325 76 16 33 52 37 5 1506 351 71 195 219 214 N W LA 1B 726 87 3 385 A Mil
128 Greg Gagne 472 118 12 63 54 30 4 793 187 14 102 80 50 A W Min SS 228 377 26 155 A Min
129 Greg Walker 282 78 13 37 51 29 5 1649 453 73 211 280 138 A W Chi 1B 670 57 5 500 A Chi
130 Hal McRae 278 70 7 22 37 18 18 7186 2081 190 935 1088 643 A W KC DH 0 0 0 325 A KC
131 Harold Baines 570 169 21 72 88 38 7 3754 1077 140 492 589 263 A W Chi RF 295 15 5 950 A Chi
132 Harold Reynolds 445 99 1 46 24 29 4 618 129 1 72 31 48 A W Sea 2B 278 415 16 87.5 A Sea
133 Harry Spilman 143 39 5 18 30 15 9 639 151 16 80 97 61 N W SF 1B 138 15 1 175 N SF
134 Herm Winningham 185 40 4 23 11 18 3 524 125 7 58 37 47 N E Mon OF 97 2 2 90 N Mon
135 Howard Johnson 220 54 10 30 39 31 5 1185 299 40 145 154 128 N E NY 3S 50 136 20 297.5 N NY
136 Hubie Brooks 306 104 14 50 58 25 7 2954 822 55 313 377 187 N E Mon SS 116 222 15 750 N Mon
137 Jack Clark 232 55 9 34 23 45 12 4405 1213 194 702 705 625 N E StL 1B 623 35 3 1300 N StL
138 Jack Howell 151 41 4 26 21 19 2 288 68 9 45 39 35 A W Cal 3B 28 56 2 95 A Cal
139 Jamie Quirk 219 47 8 24 26 17 12 1188 286 23 100 125 63 A W KC CS 260 58 4 NA A KC
140 Jeff Reed 165 39 2 13 9 16 3 196 44 2 18 10 18 A W Min C 332 19 2 75 N Mon
141 Jeff Stone 249 69 6 32 19 20 4 702 209 10 97 48 44 N E Phi OF 103 8 2 NA N Phi
142 Jeffrey Leonard 341 95 6 48 42 20 10 2964 808 81 379 428 221 N W SF LF 158 4 5 100 N SF
143 Jerry Hairston 225 61 5 32 26 26 11 1568 408 25 202 185 257 A W Chi UT 132 9 0 NA A Chi
144 Jerry Mumphrey 309 94 5 37 32 26 13 4618 1330 57 616 522 436 N E Chi OF 161 3 3 600 N Chi
145 Jerry Royster 257 66 5 31 26 32 14 3910 979 33 518 324 382 N W SD UT 87 166 14 250 A Chi
146 Jerry Willard 161 43 4 17 26 22 3 707 179 21 77 99 76 A W Oak C 300 12 2 NA A Oak
147 Jesse Barfield 589 170 40 107 108 69 6 2325 634 128 371 376 238 A E Tor RF 368 20 3 1237.5 A Tor
148 Jim Dwyer 160 39 8 18 31 22 14 2128 543 56 304 268 298 A E Bal DO 33 3 0 275 A Bal
149 Jim Gantner 497 136 7 58 38 26 11 3871 1066 40 450 367 241 A E Mil 2B 304 347 10 850 A Mil
150 Jim Morrison 537 147 23 58 88 47 10 2744 730 97 302 351 174 N E Pit 3B 92 257 20 277.5 N Pit
151 Jim Presley 616 163 27 83 107 32 3 1437 377 65 181 227 82 A W Sea 3B 110 308 15 200 A Sea
152 Jim Rice 618 200 20 98 110 62 13 7127 2163 351 1104 1289 564 A E Bos LF 330 16 8 2412.5 A Bos
153 Jim Sundberg 429 91 12 41 42 57 13 5590 1397 83 578 579 644 A W KC C 686 46 4 825 N Chi
154 Jim Traber 212 54 13 28 44 18 2 233 59 13 31 46 20 A E Bal UT 243 23 5 NA A Bal
155 Jody Davis 528 132 21 61 74 41 6 2641 671 97 273 383 226 N E Chi C 885 105 8 1008.333 N Chi
156 Joe Carter 663 200 29 108 121 32 4 1447 404 57 210 222 68 A E Cle RF 241 8 6 250 A Cle
157 Joe Orsulak 401 100 2 60 19 28 4 876 238 2 126 44 55 N E Pit RF 193 11 4 NA N Pit
158 Joel Skinner 315 73 5 23 37 16 4 450 108 6 38 46 28 A W Chi C 227 15 3 110 A NY
159 Joel Youngblood 184 47 5 20 28 18 11 3327 890 74 419 382 304 N W SF OF 49 2 0 450 N SF
160 John Cangelosi 438 103 2 65 32 71 2 440 103 2 67 32 71 A W Chi LF 276 7 9 100 N Pit
161 John Kruk 278 86 4 33 38 45 1 278 86 4 33 38 45 N W SD LF 102 4 2 110 N SD
162 John Moses 399 102 3 56 34 34 5 670 167 4 89 48 54 A W Sea CF 211 9 3 80 A Sea
163 John Russell 315 76 13 35 60 25 3 630 151 24 68 94 55 N E Phi C 498 39 13 155 N Phi
164 John Shelby 404 92 11 54 49 18 6 1354 325 30 188 135 63 A E Bal OF 222 5 5 300 A Bal
165 Johnny Grubb 210 70 13 32 51 28 15 4040 1130 97 544 462 551 A E Det DH 0 0 0 365 A Det
166 Johnny Ray 579 174 7 67 78 58 6 3053 880 32 366 337 218 N E Pit 2B 280 479 5 657 N Pit
167 Jorge Orta 336 93 9 35 46 23 15 5779 1610 128 730 741 497 A W KC DH 0 0 0 NA A KC
168 Jose Canseco 600 144 33 85 117 65 2 696 173 38 101 130 69 A W Oak LF 319 4 14 165 A Oak
169 Jose Cruz 479 133 10 48 72 55 17 7472 2147 153 980 1032 854 N W Hou LF 237 5 4 773.333 N Hou
170 Jose Uribe 453 101 3 46 43 61 3 948 218 6 96 72 91 N W SF SS 249 444 16 195 N SF
171 Juan Beniquez 343 103 6 48 36 40 15 4338 1193 70 581 421 325 A E Bal UT 211 56 13 430 A KC
172 Juan Bonilla 284 69 1 33 18 25 5 1407 361 6 139 98 111 A E Bal 2B 122 140 5 NA N Pit
173 Juan Samuel 591 157 16 90 78 26 4 2020 541 52 310 226 91 N E Phi 2B 290 440 25 640 N Phi
174 Julio Cruz 209 45 0 38 19 42 10 3859 916 23 557 279 478 A W Chi 2B 132 205 5 NA A Chi
175 Julio Franco 599 183 10 80 74 32 5 2482 715 27 330 326 158 A E Cle SS 231 374 18 775 A Cle
176 Kal Daniels 181 58 6 34 23 22 1 181 58 6 34 23 22 N W Cin OF 88 0 3 86.5 N Cin
177 Keith Hernandez 551 171 13 94 83 94 13 6090 1840 128 969 900 917 N E NY 1B 1199 149 5 1800 N NY
178 Keith Moreland 586 159 12 72 79 53 9 3082 880 83 363 477 295 N E Chi RF 181 13 4 1043.333 N Chi
179 Ken Griffey 490 150 21 69 58 35 14 6126 1839 121 983 707 600 A E NY OF 96 5 3 1000 N Atl
180 Ken Landreaux 283 74 4 34 29 22 10 3919 1062 85 505 456 283 N W LA OF 145 5 7 737.5 N LA
181 Ken Oberkfell 503 136 5 62 48 83 10 3423 970 20 408 303 414 N W Atl 3B 65 258 8 725 N Atl
182 Ken Phelps 344 85 24 69 64 88 7 911 214 64 150 156 187 A W Sea DH 0 0 0 300 A Sea
183 Kent Hrbek 550 147 29 85 91 71 6 2816 815 117 405 474 319 A W Min 1B 1218 104 10 1310 A Min
184 Kevin Bass 591 184 20 83 79 38 5 1689 462 40 219 195 82 N W Hou RF 303 12 5 630 N Hou
185 Kevin McReynolds 560 161 26 89 96 66 4 1789 470 65 233 260 155 N W SD CF 332 9 8 625 N NY
186 Kevin Mitchell 328 91 12 51 43 33 2 342 94 12 51 44 33 N E NY OS 145 59 8 125 N SD
187 Kirby Puckett 680 223 31 119 96 34 3 1928 587 35 262 201 91 A W Min CF 429 8 6 365 A Min
188 Kirk Gibson 441 118 28 84 86 68 8 2723 750 126 433 420 309 A E Det RF 190 2 2 1300 A Det
189 Kurt Stillwell 279 64 0 31 26 30 1 279 64 0 31 26 30 N W Cin SS 107 205 16 75 N Cin
190 Lance Parrish 327 84 22 53 62 38 10 4273 1123 212 577 700 334 A E Det C 483 48 6 800 N Phi
191 Larry Herndon 283 70 8 33 37 27 12 4479 1222 94 557 483 307 A E Det OF 156 2 2 225 A Det
192 Larry Parrish 464 128 28 67 94 52 13 5829 1552 210 740 840 452 A W Tex DH 0 0 0 587.5 A Tex
193 Larry Sheets 338 92 18 42 60 21 3 682 185 36 88 112 50 A E Bal DH 0 0 0 145 A Bal
194 Lee Lacy 491 141 11 77 47 37 15 4291 1240 84 615 430 340 A E Bal RF 239 8 2 525 A Bal
195 Len Dykstra 431 127 8 77 45 58 2 667 187 9 117 64 88 N E NY CF 283 8 3 202.5 N NY
196 Len Matuszek 199 52 9 26 28 21 6 805 191 30 113 119 87 N W LA O1 235 22 5 265 N LA
197 Leon Durham 484 127 20 66 65 67 7 3006 844 116 436 458 377 N E Chi 1B 1231 80 7 1183.333 N Chi
198 Lloyd Moseby 589 149 21 89 86 64 7 3558 928 102 513 471 351 A E Tor CF 371 6 6 787.5 A Tor
199 Lonnie Smith 508 146 8 80 44 46 9 3148 915 41 571 289 326 A W KC LF 245 5 9 NA A KC
200 Lou Whitaker 584 157 20 95 73 63 10 4704 1320 93 724 522 576 A E Det 2B 276 421 11 420 A Det
201 Luis Rivera 166 34 0 20 13 17 1 166 34 0 20 13 17 N E Mon SS 64 119 9 NA N Mon
202 Mariano Duncan 407 93 8 47 30 30 2 969 230 14 121 69 68 N W LA SS 172 317 25 150 N LA
203 Mark Salas 258 60 8 28 33 18 3 638 170 17 80 75 36 A W Min C 358 32 8 137 A Min
204 Marty Barrett 625 179 4 94 60 65 5 1696 476 12 216 163 166 A E Bos 2B 303 450 14 575 A Bos
205 Marvell Wynne 288 76 7 34 37 15 4 1644 408 16 198 120 113 N W SD OF 203 3 3 240 N SD
206 Mel Hall 442 131 18 68 77 33 6 1416 398 47 210 203 136 A E Cle LF 233 7 7 550 A Cle
207 Mickey Hatcher 317 88 3 40 32 19 8 2543 715 28 269 270 118 A W Min UT 220 16 4 NA A Min
208 Mickey Tettleton 211 43 10 26 35 39 3 498 116 14 59 55 78 A W Oak C 463 32 8 120 A Oak
209 Mike Aldrete 216 54 2 27 25 33 1 216 54 2 27 25 33 N W SF 1O 317 36 1 75 N SF
210 Mike Brown 243 53 4 18 26 27 4 853 228 23 101 110 76 N E Pit OF 107 3 3 NA N Pit
211 Mike Davis 489 131 19 77 55 34 7 2051 549 62 300 263 153 A W Oak RF 310 9 9 780 A Oak
212 Mike Diaz 209 56 12 22 36 19 2 216 58 12 24 37 19 N E Pit O1 201 6 3 90 N Pit
213 Mike Easler 490 148 14 64 78 49 13 3400 1000 113 445 491 301 A E NY DH 0 0 0 700 N Phi
214 Mike Fitzgerald 209 59 6 20 37 27 4 884 209 14 66 106 92 N E Mon C 415 35 3 NA N Mon
215 Mike Heath 288 65 8 30 36 27 9 2815 698 55 315 325 189 N E StL C 259 30 10 650 A Det
216 Mike Kingery 209 54 3 25 14 12 1 209 54 3 25 14 12 A W KC OF 102 6 3 68 A Sea
217 Mike LaValliere 303 71 3 18 30 36 3 344 76 3 20 36 45 N E StL C 468 47 6 100 N Pit
218 Mike Marshall 330 77 19 47 53 27 6 1928 516 90 247 288 161 N W LA RF 149 8 6 670 N LA
219 Mike Pagliarulo 504 120 28 71 71 54 3 1085 259 54 150 167 114 A E NY 3B 103 283 19 175 A NY
220 Mike Schmidt 20 1 0 0 0 0 2 41 9 2 6 7 4 N E Phi 3B 78 220 6 2127.333 N Phi
221 Mike Scioscia 374 94 5 36 26 62 7 1968 519 26 181 199 288 N W LA C 756 64 15 875 N LA
222 Mike Young 369 93 9 43 42 49 5 1258 323 54 181 177 157 A E Bal LF 149 1 6 350 A Bal
223 Milt Thompson 299 75 6 38 23 26 3 580 160 8 71 33 44 N E Phi CF 212 1 2 140 N Phi
224 Mitch Webster 576 167 8 89 49 57 4 822 232 19 132 83 79 N E Mon CF 325 12 8 210 N Mon
225 Mookie Wilson 381 110 9 61 45 32 7 3015 834 40 451 249 168 N E NY OF 228 7 5 800 N NY
226 Nick Esasky 330 76 12 35 41 47 4 1367 326 55 167 198 167 N W Cin 1B 512 30 5 NA N Cin
227 Oddibe McDowell 572 152 18 105 49 65 2 978 249 36 168 91 101 A W Tex CF 325 13 3 200 A Tex
228 Omar Moreno 359 84 4 46 27 21 12 4992 1257 37 699 386 387 N W Atl RF 151 8 5 NA N Atl
229 Ozzie Guillen 547 137 2 58 47 12 2 1038 271 3 129 80 24 A W Chi SS 261 459 22 175 A Chi
230 Ozzie Smith 514 144 0 67 54 79 9 4739 1169 13 583 374 528 N E StL SS 229 453 15 1940 N StL
231 Ozzie Virgil 359 80 15 45 48 63 7 1493 359 61 176 202 175 N W Atl C 682 93 13 700 N Atl
232 Pat Sheridan 236 56 6 41 19 21 5 1257 329 24 166 125 105 A E Det OF 172 1 4 190 A Det
233 Pat Tabler 473 154 6 61 48 29 6 1966 566 29 250 252 178 A E Cle 1B 846 84 9 580 A Cle
234 Paul Molitor 437 123 9 62 55 40 9 4139 1203 79 676 390 364 A E Mil 3B 82 170 15 1260 A Mil
235 Pete Incaviglia 540 135 30 82 88 55 1 540 135 30 82 88 55 A W Tex RF 157 6 14 172 A Tex
236 Pete O'Brien 551 160 23 86 90 87 5 2235 602 75 278 328 273 A W Tex 1B 1224 115 11 NA A Tex
237 Pete Rose 237 52 0 15 25 30 24 14053 4256 160 2165 1314 1566 N W Cin 1B 523 43 6 750 N Cin
238 Phil Bradley 526 163 12 88 50 77 4 1556 470 38 245 167 174 A W Sea LF 250 11 1 750 A Sea
239 Phil Garner 313 83 9 43 41 30 14 5885 1543 104 751 714 535 N W Hou 3B 58 141 23 450 N Hou
240 Rafael Belliard 309 72 0 33 31 26 5 354 82 0 41 32 26 N E Pit SS 117 269 12 130 N Pit
241 Rafael Ramirez 496 119 8 57 33 21 7 3358 882 36 365 280 165 N W Atl S3 155 371 29 875 N Atl
242 Rafael Santana 394 86 1 38 28 36 4 1089 267 3 94 71 76 N E NY SS 203 369 16 250 N NY
243 Rance Mulliniks 348 90 11 50 45 43 10 2288 614 43 295 273 269 A E Tor 3B 60 176 6 450 A Tor
244 Randy Bush 357 96 7 50 45 39 5 1394 344 43 178 192 136 A W Min LF 167 2 4 300 A Min
245 Randy Kutcher 186 44 7 28 16 11 1 186 44 7 28 16 11 N W SF OF 99 3 1 NA N SF
246 Ray Knight 486 145 11 51 76 40 11 3967 1102 67 410 497 284 N E NY 3B 88 204 16 500 A Bal
247 Reggie Jackson 419 101 18 65 58 92 20 9528 2510 548 1509 1659 1342 A W Cal DH 0 0 0 487.5 A Oak
248 Reggie Williams 303 84 4 35 32 23 2 312 87 4 39 32 23 N W LA CF 179 5 3 NA N LA
249 Rey Quinones 312 68 2 32 22 24 1 312 68 2 32 22 24 A E Bos SS 86 150 15 70 A Sea
250 Rich Gedman 462 119 16 49 65 37 7 2131 583 69 244 288 150 A E Bos C 866 65 6 NA A Bos
251 Rick Burleson 271 77 5 35 29 33 12 4933 1358 48 630 435 403 A W Cal UT 62 90 3 450 A Bal
252 Rick Cerone 216 56 4 22 18 15 12 2796 665 43 266 304 198 A E Mil C 391 44 4 250 A NY
253 Rick Dempsey 327 68 13 42 29 45 18 3949 939 78 438 380 466 A E Bal C 659 53 7 400 A Cle
254 Rick Leach 246 76 5 35 39 13 6 912 234 12 102 96 80 A E Tor DO 44 0 1 250 A Tor
255 Rick Manning 205 52 8 31 27 17 12 5134 1323 56 643 445 459 A E Mil OF 155 3 2 400 A Mil
256 Rick Schu 208 57 8 32 25 18 3 653 170 17 98 54 62 N E Phi 3B 42 94 13 140 N Phi
257 Rickey Henderson 608 160 28 130 74 89 8 4071 1182 103 862 417 708 A E NY CF 426 4 6 1670 A NY
258 Ricky Jones 33 6 0 2 4 7 1 33 6 0 2 4 7 A W Cal RF 205 5 4 NA A Cal
259 Rob Deer 466 108 33 75 86 72 3 652 142 44 102 109 102 A E Mil RF 286 8 8 215 A Mil
260 Rob Wilfong 288 63 3 25 33 16 10 2682 667 38 315 259 204 A W Cal 2B 135 257 7 341.667 A Cal
261 Robby Thompson 549 149 7 73 47 42 1 549 149 7 73 47 42 N W SF 2B 255 450 17 140 N SF
262 Robin Yount 522 163 9 82 46 62 13 7037 2019 153 1043 827 535 A E Mil CF 352 9 1 1000 A Mil
263 Ron Cey 256 70 13 42 36 44 16 7058 1845 312 965 1128 990 N E Chi 3B 41 118 8 1050 A Oak
264 Ron Hassey 341 110 9 45 49 46 9 2331 658 50 249 322 274 A E NY C 251 9 4 560 A Chi
265 Ron Kittle 376 82 21 42 60 35 5 1770 408 115 238 299 157 A W Chi DH 0 0 0 425 A NY
266 Ron Oester 523 135 8 52 44 52 9 3368 895 39 377 284 296 N W Cin 2B 367 475 19 750 N Cin
267 Ron Roenicke 275 68 5 42 42 61 6 961 238 16 128 104 172 N E Phi OF 181 3 2 191 N Phi
268 Ronn Reynolds 126 27 3 8 10 5 4 239 49 3 16 13 14 N E Pit LF 190 2 9 190 N Pit
269 Roy Smalley 459 113 20 59 57 68 12 5348 1369 155 713 660 735 A W Min DH 0 0 0 740 A Min
270 Ruben Sierra 382 101 16 50 55 22 1 382 101 16 50 55 22 A W Tex OF 200 7 6 97.5 A Tex
271 Rudy Law 307 80 1 42 36 29 7 2421 656 18 379 198 184 A W KC OF 145 2 2 NA A KC
272 Ryne Sandberg 627 178 14 68 76 46 6 3146 902 74 494 345 242 N E Chi 2B 309 492 5 740 N Chi
273 Scott Bradley 220 66 5 20 28 13 3 290 80 5 27 31 15 A W Sea C 281 21 3 90 A Sea
274 Scott Fletcher 530 159 3 82 50 47 6 1619 426 11 218 149 163 A W Tex SS 196 354 15 475 A Tex
275 Shawon Dunston 581 145 17 66 68 21 2 831 210 21 106 86 40 N E Chi SS 320 465 32 155 N Chi
276 Sid Bream 522 140 16 73 77 60 4 730 185 22 93 106 86 N E Pit 1B 1320 166 17 200 N Pit
277 Spike Owen 528 122 1 67 45 51 4 1716 403 12 211 146 155 A W Sea SS 209 372 17 350 A Bos
278 Steve Balboni 512 117 29 54 88 43 6 1750 412 100 204 276 155 A W KC 1B 1236 98 18 100 A KC
279 Steve Buechele 461 112 18 54 54 35 2 680 160 24 76 75 49 A W Tex 3B 111 226 11 135 A Tex
280 Steve Garvey 557 142 21 58 81 23 18 8759 2583 271 1138 1299 478 N W SD 1B 1160 53 7 1450 N SD
281 Steve Jeltz 439 96 0 44 36 65 4 711 148 1 68 56 99 N E Phi SS 229 406 22 150 N Phi
282 Steve Lombardozzi 453 103 8 53 33 52 2 507 123 8 63 39 58 A W Min 2B 289 407 6 105 A Min
283 Steve Sax 633 210 6 91 56 59 6 3070 872 19 420 230 274 N W LA 2B 367 432 16 90 N LA
284 Ted Simmons 127 32 4 14 25 12 19 8396 2402 242 1048 1348 819 N W Atl UT 167 18 6 500 N Atl
285 Terry Harper 265 68 8 26 30 29 7 1337 339 32 135 163 128 N W Atl OF 92 5 3 425 A Det
286 Terry Kennedy 19 4 1 2 3 1 1 19 4 1 2 3 1 N W SD C 692 70 8 920 A Bal
287 Terry Pendleton 578 138 1 56 59 34 3 1399 357 7 149 161 87 N E StL 3B 133 371 20 160 N StL
288 Terry Puhl 172 42 3 17 14 15 10 4086 1150 57 579 363 406 N W Hou OF 65 0 0 900 N Hou
289 Tim Flannery 368 103 3 48 28 54 8 1897 493 9 207 162 198 N W SD 2B 209 246 3 326.667 N SD
290 Tim Hulett 520 120 17 53 44 21 4 927 227 22 106 80 52 A W Chi 3B 70 144 11 185 A Chi
291 Tim Laudner 193 47 10 21 29 24 6 1136 256 42 129 139 106 A W Min C 299 13 5 245 A Min
292 Tim Raines 580 194 9 91 62 78 8 3372 1028 48 604 314 469 N E Mon LF 270 13 6 NA N Mon
293 Tim Teufel 279 69 4 35 31 32 4 1359 355 31 180 148 158 N E NY 2B 133 173 9 277.5 N NY
294 Tim Wallach 480 112 18 50 71 44 7 3031 771 110 338 406 239 N E Mon 3B 94 270 16 750 N Mon
295 Tito Landrum 205 43 2 24 17 20 7 854 219 12 105 99 71 N E StL OF 131 6 1 286.667 N StL
296 Toby Harrah 289 63 7 36 41 44 17 7402 1954 195 1115 919 1153 A W Tex 2B 166 211 7 NA A Tex
297 Tom Brookens 281 76 3 42 25 20 8 2658 657 48 324 300 179 A E Det UT 106 144 7 341.667 A Det
298 Tom Brunansky 593 152 23 69 75 53 6 2765 686 133 369 384 321 A W Min RF 315 10 6 940 A Min
299 Tom Foley 263 70 1 26 23 30 4 888 220 9 83 82 86 N E Mon UT 81 147 4 250 N Mon
300 Tom O'Malley 181 46 1 19 18 17 5 937 238 9 88 95 104 A E Bal 3B 37 98 9 NA A Bal
301 Tom Paciorek 213 61 4 17 22 3 17 4061 1145 83 488 491 244 A W Tex UT 178 45 4 235 A Tex
302 Tommy Herr 559 141 2 48 61 73 8 3162 874 16 421 349 359 N E StL 2B 352 414 9 925 N StL
303 Tony Armas 16 2 0 1 0 0 2 28 4 0 1 0 0 A E Bos CF 247 4 8 NA A Bos
304 Tony Bernazard 562 169 17 88 73 53 8 3181 841 61 450 342 373 A E Cle 2B 351 442 17 530 A Cle
305 Tony Fernandez 687 213 10 91 65 27 4 1518 448 15 196 137 89 A E Tor SS 294 445 13 350 A Tor
306 Tony Gwynn 642 211 14 107 59 52 5 2364 770 27 352 230 193 N W SD RF 337 19 4 740 N SD
307 Tony Pena 510 147 10 56 52 53 7 2872 821 63 307 340 174 N E Pit C 810 99 18 1150 N StL
308 Tony Perez 200 51 2 14 29 25 23 9778 2732 379 1272 1652 925 N W Cin 1B 398 29 7 NA N Cin
309 Tony Phillips 441 113 5 76 52 76 5 1546 397 17 226 149 191 A W Oak 2B 160 290 11 425 A Oak
310 Vance Law 360 81 5 37 44 37 7 2268 566 41 279 257 246 N E Mon 2B 170 284 3 525 N Mon
311 Vince Coleman 600 139 0 94 29 60 2 1236 309 1 201 69 110 N E StL LF 300 12 9 160 N StL
312 Von Hayes 610 186 19 107 98 74 6 2728 753 69 399 366 286 N E Phi 1B 1182 96 13 1300 N Phi
313 Wade Boggs 580 207 8 107 71 105 5 2778 978 32 474 322 417 A E Bos 3B 121 267 19 1600 A Bos
314 Wally Backman 387 124 1 67 27 36 7 1775 506 6 272 125 194 N E NY 2B 186 290 17 550 N NY
315 Wally Joyner 593 172 22 82 100 57 1 593 172 22 82 100 57 A W Cal 1B 1222 139 15 165 A Cal
316 Wayne Krenchicki 221 53 2 21 23 22 8 1063 283 15 107 124 106 N E Mon 13 325 58 6 NA N Mon
317 Wayne Tolleson 475 126 3 61 43 52 6 1700 433 7 217 93 146 A W Chi 3B 37 113 7 385 A NY
318 Will Clark 408 117 11 66 41 34 1 408 117 11 66 41 34 N W SF 1B 942 72 11 120 N SF
319 Willie McGee 497 127 7 65 48 37 5 2703 806 32 379 311 138 N E StL CF 325 9 3 700 N StL
320 Willie Randolph 492 136 5 76 50 94 12 5511 1511 39 897 451 875 A E NY 2B 313 381 20 875 A NY
321 Willie Upshaw 573 144 9 85 60 78 8 3198 857 97 470 420 332 A E Tor 1B 1314 131 12 960 A Tor
322 Willie Wilson 631 170 9 77 44 31 11 4908 1457 30 775 357 249 A W KC CF 408 4 3 1000 A KC
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Scatter Plot with ReactiveModel</title>
<script src="//d3js.org/d3.v4.0.0-alpha.49.min.js"></script>
<script src="//datavis-tech.github.io/reactive-model/reactive-model-v0.11.0.min.js"></script>
<style>
/* Make the chart container fill the page using CSS. */
#chart-container {
position: fixed;
left: 0px;
right: 0px;
top: 0px;
bottom: 0px;
}
.axis text {
font: 10pt sans-serif;
}
.axis-label {
font: 14pt sans-serif;
}
.axis path {
display: none;
}
.tick line {
fill: none;
stroke: #DDD;
stroke-width: 1px;
shape-rendering: crispEdges;
}
</style>
</head>
<body>
<!-- The SVG graphics will be injected into this div. -->
<div id="chart-container"></div>
<script>
var transitionDuration = 800;
// Resizes the SVG container.
function SVG(my){
my("svg")
("width", 100)
("height", 100)
("svg-width", function (svg, width){
svg.attr("width", width);
}, "svg, width")
("svg-height", function (svg, height){
svg.attr("height", height);
}, "svg, height");
}
// Encapsulates the margin convention.
function Margin(my){
my("marginTop", 50)
("marginBottom", 50)
("marginLeft", 50)
("marginRight", 50)
("innerWidth", function (width, marginLeft, marginRight){
return width - marginLeft - marginRight;
}, "width, marginLeft, marginRight")
("innerHeight", function (height, marginTop, marginBottom){
return height - marginTop - marginBottom;
}, "height, marginTop, marginBottom")
("g", function (svg){
return svg.append("g");
}, "svg")
("g-transform", function (g, marginLeft, marginTop){
g.attr("transform", "translate(" + marginLeft + "," + marginTop + ")");
}, "g, marginLeft, marginTop");
}
// Adds the "data" property.
function Data(my){
my("data");
}
// Adds a column and accessor for the given column name.
function Column(my, name){
my(name + "Column")
(name + "Accessor", function (column){
return function (d){ return d[column]; };
}, name + "Column");
}
// Sets up a linear scale with the given name.
function ScaleLinear(my, name){
var scale = d3.scaleLinear();
my(name + "ScaleDomain", function (data, accessor){
return d3.extent(data, accessor);
}, "data, " + name + "Accessor");
if(name === "x"){
my("xScaleRange", function (innerWidth){
return [0, innerWidth];
}, "innerWidth");
} else if(name === "y"){
my("yScaleRange", function (innerHeight){
return [innerHeight, 0];
}, "innerHeight");
}
my(name + "Scale", function(domain, range){
return scale
.domain(domain)
.range(range)
.nice();
}, name + "ScaleDomain, " + name + "ScaleRange")
(name + "Scaled", function(scale, accessor){
return function (d){
return scale(accessor(d));
};
}, name + "Scale, " + name + "Accessor");
}
// Sets up an axis with the given name ("x" or "y")
function Axis(my, name){
var axisLengthProperty;
var tickSizeProperty;
var axis;
// Approximate number of pixels between ticks.
my(name + "AxisTickSpacing", 70)
(name + "AxisG", function (g){
return g.append("g").attr("class", name + " axis");
}, "g");
if(name === "x"){
axisLengthProperty = "innerWidth";
tickSizeProperty = "innerHeight";
axis = d3.axisBottom();
my(function(xAxisG, innerHeight){
xAxisG.attr("transform", "translate(0," + innerHeight + ")");
}, "xAxisG, innerHeight");
} else if(name === "y"){
axisLengthProperty = "innerHeight";
tickSizeProperty = "innerWidth";
axis = d3.axisLeft();
}
my(name + "AxisTicks", function (xAxisTickSpacing, axisLength){
return axisLength / xAxisTickSpacing;
}, name + "AxisTickSpacing," + axisLengthProperty)
(name + "Axis", function(ticks, scale, tickSize){
return axis
.scale(scale)
.tickSize(-tickSize)
.ticks(ticks);
}, name + "AxisTicks, " + name + "Scale," + tickSizeProperty)
(function(axisG, axis){
axis(axisG.transition().duration(transitionDuration));
}, name + "AxisG, " + name + "Axis");
}
function AxisLabel(my, name){
my(name + "AxisLabelOffset", 15)
(name + "AxisLabel", function (svg){
return svg.append("text")
.attr("class", name + " axis-label")
.style("text-anchor", "middle");
}, "svg")
my(function (axisLabel, column){
axisLabel.text(column);
}, name + "AxisLabel," + name + "Column");
if(name === "x"){
my(function (axisLabel, marginLeft, innerWidth){
axisLabel.attr("x", marginLeft + innerWidth / 2);
}, "xAxisLabel, marginLeft, innerWidth")
(function (axisLabel, height, offset){
axisLabel.attr("y", height - offset);
}, "xAxisLabel, height, xAxisLabelOffset");
} else if(name === "y"){
my(function (label, offset, innerHeight, marginTop){
label.attr("transform", [
"translate(",
offset,
",",
marginTop + innerHeight / 2,
") rotate(-90)"
].join(""));
}, "yAxisLabel, yAxisLabelOffset, innerHeight, marginTop");
}
}
function ScatterPlotMarks(my){
my("circleG", function (g){
return g.append("g");
}, "g")
(function (circleG, data, xScaled, yScaled){
var circle = circleG.selectAll("circle").data(data);
circle.exit().remove();
circle.enter().append("circle")
.attr("r", 5)
.attr("fill", "none")
.attr("stroke", "rgba(0,0,0,0.7)")
.merge(circle)
.transition().duration(transitionDuration)
.attr("cx", xScaled)
.attr("cy", yScaled);
}, "circleG, data, xScaled, yScaled");
}
// The constructor for an "axis visualization" component.
// Renders a gray rectangle with responsive axes.
function ScatterPlot(){
return ReactiveModel()
.call(SVG)
.call(Margin)
.call(Data)
.call(Column, "x")
.call(Column, "y")
.call(ScaleLinear, "x")
.call(ScaleLinear, "y")
.call(ScatterPlotMarks)
.call(Axis, "x")
.call(Axis, "y")
.call(AxisLabel, "x")
.call(AxisLabel, "y");
}
// Respond to resize by setting width and height from DOM element.
function Resize(my, el){
function resize(){
my.width(el.clientWidth)
.height(el.clientHeight);
}
resize();
window.addEventListener("resize", resize);
}
// The main program that uses the ScatterPlot component.
function main(){
// Set up the ScatterPlot instance.
var container = d3.select("#chart-container"),
scatterPlot = ScatterPlot()
.svg(container.append("svg"))
.call(Resize, container.node());
// Tweak properties
scatterPlot
.marginTop(10)
.marginBottom(40)
.marginLeft(70)
.marginRight(40)
.xAxisLabelOffset(10)
.yAxisLabelOffset(20)
.yAxisTickSpacing(20);
// Configure the visual encoding.
scatterPlot
.xColumn("atbat")
.yColumn("hits");
var interestingColumns = ["atbat", "hits", "homeruns", "rbi", "runs", "walks", "years"];
// Load the data.
d3.csv("Baseball.csv", function (d){
interestingColumns.forEach(function (column){
d[column] = +d[column];
});
return d;
}, function(err, data){
scatterPlot.data(data);
});
function randomColumn(){
var i = Math.floor(Math.random() * interestingColumns.length);
return interestingColumns[i];
}
// Update the X and Y columns randomly.
setInterval(function (){
scatterPlot.xColumn(randomColumn());
}, 2345);
setInterval(function (){
scatterPlot.yColumn(randomColumn());
}, 3456);
}
main();
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment