Skip to content

Instantly share code, notes, and snippets.

@scresawn
Last active March 1, 2021 18:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save scresawn/4ac516e538991f7461ccd5ef90d0f6bd to your computer and use it in GitHub Desktop.
Save scresawn/4ac516e538991f7461ccd5ef90d0f6bd to your computer and use it in GitHub Desktop.
Group Project Bioinformaticsnew3
license: mit

https://gist.github.com/4544529 (demo) was my first d3 adventure, where I scraped signatures from a White House petition and showed them as a pie chart.

Here, I show them as a US heat map (based on one of Mike Bostock's map demos). You can click on a state, and see how many signatures came from it.

Darker color means more signatures, but since the numbers range from a few dozens to >4500, the scale is logarithmic. I don't know yet how to use log() interpolators (I promise to learn), so I just did it quick and dirty with linear() and masking tape.

forked from thedod's block: Clickable US heat-map of petition signature count

forked from Craftbd's block: Group Project Bioinformatics

forked from rubin2ma's block: Group Project Bioinformatics

forked from Craftbd's block: Group Project Bioinformaticsnew

forked from rubin2ma's block: Group Project Bioinformaticsnew3

year name Population Poverty Level (%) Mental Health (18+ %) Marijuana use (18+) Medium Income Alcohol Dependence & Abuse UFO Sightings
2013 Alabama 4829479 18.29 4.99 206 42849 222 84
2013 Alaska 736879 9.09 4.32 63 72237 38 52
2013 Arizona 6624617 18.21 5.16 438 48510 399 234
2013 Arkansas 2958663 19.11 5.2 149 40511 121 55
2013 California 38335203 16.51 3.53 2673 60190 2042 718
2013 Colorado 5267603 12.67 4.36 603 58823 315 145
2013 Connecticut 3596003 10.4 3.46 237 67098 198 140
2013 Delaware 925395 12.03 3.81 59 57846 46 12
2013 District of Columbia 649165 17.8 3.45 67 67572 54 2
2013 Florida 19582022 16.61 3.61 1166 46036 969 541
2013 Georgia 9984938 18.47 3.43 585 47829 486 143
2013 Hawaii 1406481 10.55 3.39 83 68020 75 53
2013 Idaho 1612011 15.29 5.05 74 46783 83 81
2013 Illinois 12879505 14.33 3.29 750 56210 637 173
2013 Indiana 6569102 15.45 4.26 375 47529 348 145
2013 Iowa 3091930 12.26 4.38 117 52229 154 101
2013 Kansas 2892821 13.6 4.17 135 50972 167 55
2013 Kentucky 4400477 18.19 4.57 227 43399 193 97
2013 Louisiana 4626402 19.19 3.72 211 44964 219 51
2013 Maine 1329076 13.59 4.35 136 46974 63 82
2013 Maryland 5931129 9.87 3.19 388 72483 319 115
2013 Massachusetts 6706786 11.49 3.77 631 66768 368 195
2013 Michigan 9898982 16.65 4.45 787 48273 491 170
2013 Minnesota 5418521 10.93 3.9 301 60702 276 125
2013 Mississippi 2990482 23.27 4.56 129 37963 135 39
2013 Missouri 6042711 15.41 4.6 370 46931 307 110
2013 Montana 1014314 16.13 4.74 80 46972 63 53
2013 Nebraska 1868559 12.81 4.44 95 51440 111 21
2013 Nevada 2786464 15.56 4.21 164 51230 152 7
2013 New Hampshire 1322687 8.43 4.39 122 64230 83 28
2013 New Jersey 8899162 11.22 3.09 428 70165 463 163
2013 New Mexico 2085193 21.51 4.38 150 43872 114 84
2013 New York 19673546 15.53 3.56 1309 57369 1062 252
2013 North Carolina 9841590 17.43 3.74 497 45906 481 197
2013 North Dakota 724019 11.38 3.87 32 55759 45 45
2013 Ohio 11570022 15.53 4.71 616 48981 620 361
2013 Oklahoma 3852415 16.27 5.25 178 45690 194 81
2013 Oregon 3925751 16.36 4.97 385 50251 223 190
2013 Pennsylvania 12781338 13.23 4.06 722 52007 692 306
2013 Rhode Island 1053033 13.72 4.28 107 55902 67 30
2013 South Carolina 4767894 18.05 4.26 239 44163 226 155
2013 South Dakota 844922 13.66 3.82 30 48947 51 15
2013 Tennessee 6494821 17.35 4.23 273 44297 280 125
2013 Texas 26473525 17.11 3.57 1132 51704 1330 247
2013 Utah 2902663 12.44 5.16 112 59770 117 89
2013 Vermont 627140 11.81 4.69 67 52578 37 66
2013 Virginia 8262692 11.36 4.17 432 62666 466 204
2013 Washington 6968006 13.88 5.39 693 58405 368 323
2013 West Virginia 1853231 17.93 5.38 92 41253 95 58
2013 Wisconsin 5742854 13.16 3.89 279 51467 358 178
2013 Wyoming 582684 10.65 4.07 28 58752 35 17
2014 Alabama 4843214 17.8 4.99 206 42830 222 124
2014 Alaska 736705 11.9 4.32 63 71583 38 43
2014 Arizona 6719993 21.2 5.16 438 50068 399 301
2014 Arkansas 2966912 18.4 5.2 149 41262 121 34
2014 California 38680810 15.8 3.53 2673 61933 2042 866
2014 Colorado 5349648 12.3 4.36 603 61303 315 198
2014 Connecticut 3591873 8.6 3.46 237 70048 198 95
2014 Delaware 934948 11 3.81 59 59716 46 37
2014 District of Columbia 659005 19 3.45 67 71648 54 7
2014 Florida 19888741 16.7 3.61 1166 47463 969 639
2014 Georgia 10087231 16.8 3.43 585 49321 486 221
2014 Hawaii 1416349 10.8 3.39 83 69592 75 69
2014 Idaho 1633532 12.4 5.05 74 47861 83 68
2014 Illinois 12867544 13.7 3.29 750 57444 637 168
2014 Indiana 6595233 14.6 4.26 375 49446 348 146
2014 Iowa 3108030 10.3 4.38 117 53712 154 88
2014 Kansas 2899360 12.1 4.17 135 52504 167 68
2014 Kentucky 4413057 20 4.57 227 42958 193 89
2014 Louisiana 4647880 23.1 3.72 211 44555 219 111
2014 Maine 1330719 14.6 4.35 136 49462 63 53
2014 Maryland 5967295 9.8 3.19 388 73971 319 144
2014 Massachusetts 6749911 13.6 3.77 631 69160 368 198
2014 Michigan 9915767 14.8 4.45 787 49847 491 183
2014 Minnesota 5453109 8.3 3.9 301 61481 276 103
2014 Mississippi 2992400 22.1 4.56 129 39680 135 44
2014 Missouri 6060930 10.4 4.6 370 48363 307 144
2014 Montana 1022867 12 4.74 80 46328 63 56
2014 Nebraska 1881145 11.8 4.44 95 52686 111 17
2014 Nevada 2833013 17 4.21 164 51450 152 11
2014 New Hampshire 1328743 7.2 4.39 122 66532 83 25
2014 New Jersey 8925001 11.3 3.09 428 71919 463 169
2014 New Mexico 2083024 20 4.38 150 44803 114 109
2014 New York 19718515 14 3.56 1309 58878 1062 325
2014 North Carolina 9934399 17.1 3.74 497 46556 481 279
2014 North Dakota 739904 9.7 3.87 32 59029 45 32
2014 Ohio 11594408 15.6 4.71 616 49308 620 278
2014 Oklahoma 3877499 17.3 5.25 178 47529 194 93
2014 Oregon 3968371 14.4 4.97 385 51075 223 224
2014 Pennsylvania 12790565 12.5 4.06 722 53234 692 375
2014 Rhode Island 1054480 11.3 4.28 107 54891 67 37
2014 South Carolina 4828430 16.5 4.26 239 45238 226 262
2014 South Dakota 852561 12.8 3.82 30 50979 51 21
2014 Tennessee 6544663 17.3 4.23 273 44361 280 146
2014 Texas 26944751 16.4 3.57 1132 53035 1330 307
2014 Utah 2941836 10.2 5.16 112 60922 117 71
2014 Vermont 626984 9.3 4.69 67 54166 37 30
2014 Virginia 8317372 10.2 4.17 432 64902 466 181
2014 Washington 7054196 12 5.39 693 61366 368 363
2014 West Virginia 1848514 20.6 5.38 92 41059 95 55
2014 Wisconsin 5758377 10.9 3.89 279 52622 358 146
2014 Wyoming 583642 9.7 4.07 28 57055 35 21
2015 Alabama 4853875 13.5 4.21 366 44765 117 63
2015 Alaska 737709 16.3 4.18 103 73355 18 37
2015 Arizona 6817565 9.2 4.25 670 51492 183 279
2015 Arkansas 2977853 17.2 5.2 247 41995 64 40
2015 California 38993940 16.1 3.79 4170 64500 1030 800
2015 Colorado 5448819 13.9 3.9 824 63909 1337 162
2015 Connecticut 3584730 9.9 3.43 382 71346 86 85
2015 Delaware 944076 9.1 3.99 99 61255 21 30
2015 District of Columbia 670377 11.1 3.78 115 75628 24 3
2015 Florida 20244914 16.6 3.86 1794 49426 451 469
2015 Georgia 10199398 16.2 3.99 869 51244 245 134
2015 Hawaii 1425157 18.1 3.43 130 73486 39 28
2015 Idaho 1652828 10.9 4.79 145 48275 40 47
2015 Illinois 12839047 12.3 3.42 1180 59588 308 182
2015 Indiana 6612768 10.9 4.71 632 50532 171 79
2015 Iowa 3121997 13.5 4.45 227 54736 71 97
2015 Kansas 2906721 10.4 4.12 231 53906 76 46
2015 Kentucky 4424611 14.2 4.96 363 45215 90 70
2015 Louisiana 4668960 19.5 4.27 382 45727 117 60
2015 Maine 1329453 18.6 4.96 208 51494 30 58
2015 Maryland 5994983 12.3 3.31 601 75847 148 115
2015 Massachusetts 6784240 9.6 4.03 913 70628 156 147
2015 Michigan 9917715 11.5 4.53 1183 51084 246 181
2015 Minnesota 5482435 12.8 4.32 504 63488 117 152
2015 Mississippi 2989390 7.8 4.72 203 40593 72 40
2015 Missouri 6076204 19.1 4.87 580 50238 136 100
2015 Montana 1032073 9.8 4.39 110 49509 29 61
2015 Nebraska 1893765 11.9 4.44 141 54996 51 3
2015 Nevada 2883758 10.3 4.33 272 52431 74 11
2015 New Hampshire 1330111 13 4.65 176 70303 39 23
2015 New Jersey 8935421 7.3 3.46 754 72222 203 129
2015 New Mexico 2080328 11.2 4.23 240 45382 57 75
2015 New York 19747183 19.7 3.74 2172 60850 531 295
2015 North Carolina 10035186 14.2 4.85 888 47830 230 186
2015 North Dakota 756835 15.3 4.04 56 60557 21 10
2015 Ohio 11605090 10.7 4.74 1017 51075 293 214
2015 Oklahoma 3907414 13.6 4.59 302 48568 87 68
2015 Oregon 4024634 14.2 4.83 596 54148 104 212
2015 Pennsylvania 12791904 11.9 4 1149 55702 293 239
2015 Rhode Island 1055607 12.3 4.98 158 58073 32 48
2015 South Carolina 4894834 11.8 4.35 414 47238 114 105
2015 South Dakota 857919 14.3 3.7 55 53017 23 17
2015 Tennessee 6595056 13.9 4.52 501 47275 132 109
2015 Texas 27429639 14.7 3.84 1792 55653 601 183
2015 Utah 2990632 14.7 5.17 196 62912 59 77
2015 Vermont 626088 9.3 5.28 100 56990 18 45
2015 Virginia 8367587 10.7 3.98 813 66262 218 149
2015 Washington 7160290 10.9 4.72 1012 64129 160 268
2015 West Virginia 1841053 11.4 5.53 158 42019 46 62
2015 Wisconsin 5767891 14.5 4.15 509 55638 157 130
2015 Wyoming 586555 11.4 4.3 46 60214 17 19
2016 Alabama 4863300 16.2 4.21 366 46257 117 53
2016 Alaska 741894 12.6 4.18 103 76440 18 41
2016 Arizona 6931071 16.1 4.25 670 53558 183 230
2016 Arkansas 2988248 16 5.2 247 44334 64 41
2016 California 39250017 13.9 3.79 4170 67739 1030 570
2016 Colorado 5540545 8.5 3.9 824 65685 1337 196
2016 Connecticut 3576452 9.8 3.43 382 73433 86 71
2016 Delaware 952065 11.6 3.99 99 61757 21 18
2016 District of Columbia 681170 16.3 3.78 115 75506 24 5
2016 Florida 20612439 13 3.86 1794 50860 451 353
2016 Georgia 10310371 15.4 3.99 869 53559 245 121
2016 Hawaii 1428557 9.3 3.43 130 74511 39 29
2016 Idaho 1683140 11.1 4.79 145 51807 40 40
2016 Illinois 12801539 12.1 3.42 1180 60960 308 149
2016 Indiana 6633053 11.8 4.71 632 52314 171 83
2016 Iowa 3134693 9.8 4.45 227 56247 71 72
2016 Kansas 2907289 11.2 4.12 231 54935 76 49
2016 Kentucky 4436974 15.2 4.96 363 46659 90 51
2016 Louisiana 4681666 20.2 4.27 382 45146 117 48
2016 Maine 1331479 12.7 4.96 208 53079 30 68
2016 Maryland 6016447 7.1 3.31 601 78945 148 96
2016 Massachusetts 6811779 9.6 4.03 913 75297 156 108
2016 Michigan 9928300 11.1 4.53 1183 52492 246 137
2016 Minnesota 5519952 8.7 4.32 504 65599 117 81
2016 Mississippi 2988726 21.1 4.72 203 41754 72 32
2016 Missouri 6093000 13 4.87 580 51746 136 111
2016 Montana 1042520 11.7 4.39 110 50027 29 48
2016 Nebraska 1907116 9.6 4.44 141 56927 51 4
2016 Nevada 2940058 10.1 4.33 272 55180 74 12
2016 New Hampshire 1334795 6.4 4.65 176 70936 39 15
2016 New Jersey 8944469 9.4 3.46 754 76126 203 126
2016 New Mexico 2081015 17.8 4.23 240 46748 57 78
2016 New York 19745289 11.9 3.74 2172 62909 531 211
2016 North Carolina 10146788 13.6 4.85 888 50584 230 214
2016 North Dakota 757952 11.1 4.04 56 60656 21 18
2016 Ohio 11614373 13.7 4.74 1017 52334 293 143
2016 Oklahoma 3923561 14.6 4.59 302 49176 87 43
2016 Oregon 4093465 11.8 4.83 596 57532 104 164
2016 Pennsylvania 12784227 11.1 4 1149 56907 293 195
2016 Rhode Island 1056426 11.4 4.98 158 60596 32 33
2016 South Carolina 4961119 14.1 4.35 414 49501 114 93
2016 South Dakota 865454 14.5 3.7 55 54467 23 22
2016 Tennessee 6651194 14.9 4.52 501 48547 132 111
2016 Texas 27862596 13.8 3.84 1792 56565 601 148
2016 Utah 3051217 8.6 5.17 196 65977 59 88
2016 Vermont 624594 9.6 5.28 100 57677 18 22
2016 Virginia 8411808 11.4 3.98 813 68114 218 116
2016 Washington 7288000 11 4.72 1012 67106 160 227
2016 West Virginia 1831102 18 5.53 158 43385 46 29
2016 Wisconsin 5778708 10.7 4.15 509 56811 157 116
2016 Wyoming 585501 10.9 4.3 46 59882 17 15
<!DOCTYPE html>
<meta charset="utf-8">
<script src="//d3js.org/d3.v3.min.js"></script>
<script src="histograms.js"></script>
<meta charset="utf-8">
<style>
.background {
fill: none;
pointer-events: all;
}
#states {
stroke: #050505;
stroke-width: 1.5px;
}
#states text {
fill: #000;
stroke: none;
text-anchor:middle;
font-size: 10px;
font-weight:bold;
}
#states .active {
fill: steelblue !important;
}
#states text.active {
font: 10px sans-serif;
font-size: 12px;
font-weight:bold;
fill: #fff;
stroke-width: .5px;
fill: #fe3f2d !important;
stroke: #ffffff;
}
svg {
font: 10px sans-serif;
font-weight:bold;
}
.background path {
fill: none;
stroke: #ccc;
stroke-opacity: .4;
shape-rendering: crispEdges;
}
.foreground path {
fill: none;
stroke: steelblue;
stroke-opacity: .7;
}
.brush .extent {
fill-opacity: .3;
stroke: #fff;
shape-rendering: crispEdges;
}
.axis line,
.axis path {
fill: none;
stroke: #000;
shape-rendering: crispEdges;
}
.axis text {
text-shadow: 0 1px 0 #ffffff;
cursor: move;
}
</style>
<body>
<script>
var m = [30, 10, 10, 10],
w = 960 - m[1] - m[3],
h = 500 - m[0] - m[2];
var xGraph = d3.scale.ordinal().rangePoints([0, w], 1),
yGraph = {},
dragging = {};
var line = d3.svg.line(),
axis = d3.svg.axis().orient("left"),
background,
foreground;
var svgGraph = d3.select("body").append("svg")
.attr("width", w + m[1] + m[3])
.attr("height", h + m[0] + m[2])
.append("g")
.attr("transform", "translate(" + m[3] + "," + m[0] + ")");
d3.csv("Final_Data5.csv", function(error, stateGraph) {
//console.log(cars);
// Extract the list of dimensions and create a scale for each.
xGraph.domain(dimensions = d3.keys(stateGraph[0]).filter(function(d) {
return d != "name" && (yGraph[d] = d3.scale.linear()
.domain(d3.extent(stateGraph, function(p) { return +p[d]; }))
.range([h, 0]));
}));
// Add grey background lines for context.
background = svgGraph.append("g")
.attr("class", "background")
.selectAll("path")
.data(stateGraph)
.enter().append("path")
.attr("d", path);
// Add blue foreground lines for focus.
foreground = svgGraph.append("g")
.attr("class", "foreground")
.selectAll("path")
.data(stateGraph)
.enter().append("path")
.attr("id", function(d) { return d.name.replace(" ","")})
.attr("d", path);
// Add a group element for each dimension.
var g = svgGraph.selectAll(".dimension")
.data(dimensions)
.enter().append("g")
.attr("class", "dimension")
.attr("transform", function(d) { return "translate(" + xGraph(d) + ")"; })
.call(d3.behavior.drag()
.on("dragstart", function(d) {
dragging[d] = this.__origin__ = xGraph(d);
background.attr("visibility", "hidden");
})
.on("drag", function(d) {
dragging[d] = Math.min(w, Math.max(0, this.__origin__ += d3.event.dx));
foreground.attr("d", path);
dimensions.sort(function(a, b) { return position(a) - position(b); });
xGraph.domain(dimensions);
g.attr("transform", function(d) { return "translate(" + position(d) + ")"; })
})
.on("dragend", function(d) {
delete this.__origin__;
delete dragging[d];
transition(d3.select(this)).attr("transform", "translate(" + xGraph(d) + ")");
transition(foreground)
.attr("d", path);
background
.attr("d", path)
.transition()
.delay(500)
.duration(0)
.attr("visibility", null);
}));
// Add an axis and title.
g.append("g")
.attr("class", "axis")
.each(function(d) { d3.select(this).call(axis.scale(yGraph[d])); })
.append("text")
.attr("text-anchor", "middle")
.attr("y", -9)
.text(String);
// Add and store a brush for each axis.
g.append("g")
.attr("class", "brush")
.each(function(d) { d3.select(this).call(yGraph[d].brush = d3.svg.brush().y(yGraph[d]).on("brushstart", brushstart).on("brush", brush)); })
.selectAll("rect")
.attr("x", -8)
.attr("width", 16);
});
function position(d) {
var v = dragging[d];
return v == null ? xGraph(d) : v;
}
function transition(g) {
return g.transition().duration(500);
}
// Returns the path for a given data point.
function path(d) {
return line(dimensions.map(function(p) { return [position(p), yGraph[p](d[p])]; }));
}
// When brushing, don’t trigger axis dragging.
function brushstart() {
d3.event.sourceEvent.stopPropagation();
}
// Handles a brush event, toggling the display of foreground lines.
function brush() {
var actives = dimensions.filter(function(p) { return !yGraph[p].brush.empty(); }),
extents = actives.map(function(p) { return yGraph[p].brush.extent(); });
foreground.style("display", function(d) {
return actives.every(function(p, i) {
return extents[i][0] <= d[p] && d[p] <= extents[i][1];
}) ? null : "none";
});
}
<!-- This is where the code starts for the map drawning -->
var hits = {};
var width = 960,
height =500,
centered;
var projection = d3.geo.albersUsa()
.scale(width)
.translate([0, 0]);
var pathMap = d3.geo.path()
.projection(projection);
var svgMap = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height);
svgMap.append("rect")
.attr("class", "background")
.attr("width", width)
.attr("height", height)
.on("click", click);
var gMap = svgMap.append("g")
.attr("transform", "translate(" + width / 2 + "," + height / 2 + ")")
.append("g")
.attr("id", "states");
UFO_color = [];
var color_by = "total";
var color = d3.scale.log()
.range(["aqua", "midnightblue"]);
d3.csv("UFO_color.csv", function(data){
data.forEach(function(d){
d["total"] = +d["total"];
})
color.domain([d3.min(data, function(d){ return d.total}),
d3.max(data,function(d) {return d.total; })]);
d3.json("states.json", function(json) {
data.forEach(function(d){
//console.log('d:', d);
//console.log("json:", json);
json.features.forEach(function(s){
//console.log('s', s);
if (d.state == s.properties.abbr){
s.total = d.total;
}
})
})
var states = gMap.selectAll("pathMap")
.data(json.features)
.enter().append("path")
.attr("d", pathMap)
.attr("id", function(d) { return d.properties.abbr; })
.style("fill", function(d) { return color(d.total); })
.on("click", click)
var labels = gMap.selectAll("text")
.data(json.features)
.enter().append("text")
.attr("transform", function(d) { return "translate(" + pathMap.centroid(d) + ")"; })
.attr("id", function(d) { return 'label-'+d.properties.abbr; })
.attr("dy", ".35em")
.on("click", click)
.text(function(d) { return d.properties.abbr; });
});
})
function click(d) {
var x = 0,
y = 0,
k = 1;
if (d && centered !== d) {
var centroid = pathMap.centroid(d);
x = -centroid[0];
y = -centroid[1];
k = 4;
centered = d;
} else {
centered = null;
}
if (centered) { console.log(d.properties.name) }
else {
d3.selectAll(".foreground").selectAll("path").style("visibility", "visible");
}
//console.log("eachstate:", eachstate);
if (centered) {
d3.selectAll(".foreground").selectAll("path").style("visibility", "hidden");
d3.selectAll(".foreground").selectAll("path#" + d.properties.name.replace(" ","")).style("visibility", "visible");
}
gMap.selectAll("pathMap")
.classed("active", centered && function(d) { return d === centered; });
gMap.selectAll("text")
.text(function(d) { return d.properties.abbr; })
.classed("active",false);
if (centered) {
gMap.select("#label-"+centered.properties.abbr)
.text(function(d) { return d.properties.name+'[ '+ '1:' +( Math.round(d.total) + ' ]' ||'(none)'); })
.classed("active", centered && function(d) { return d === centered; });
}
//Zooming Function
gMap.transition()
.duration(1000)
.attr("transform", "scale(" + k + ")translate(" + x + "," + y + ")")
.style("stroke-width", 1.5 / k + "px");
}
//connect graph to state "each one", number of sighting to popup in each state.
</script>
</body>
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
state total
al 13208.35695
ak 3885.773684
az 5744.963528
ar 15729.73016
ca 11888.20613
co 6881.087898
ct 8361.923077
de 287.6327718
fl 300.1936795
ga 29104.38986
hi 54253.93048
id 3657.56701
il 2272.621547
in 5799.958916
ia 25104.71103
ks 12456.652
ky 888.682389
la 14978.91525
me 16453.09894
md 2533.68
ma 8600.667626
mi 8875.562992
mn 18958.30019
ms 32358.01183
mo 5547.773655
mt 25179.29876
ne 9697.584906
nv 5258.066852
nh 8591.06006
nj 2004.651584
nm 22483.65995
ny 1758.775338
nc 20672.04717
nd 221988.6889
oh 688.2421442
ok 37047.83706
or 4555.295082
pa 3311.046319
ri 73913.34682
sc 1535.497817
sd 53440.31868
tn 1569.2
tx 6760.734568
ut 74053.48229
vt 16694.30899
va 872.1476323
wa 6351.763138
wv 33105.22326
wi 2949.56
wy 71135.28395
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment