-
-
Save lazycipher/4d565748a57d90038d4a49f5ef677b17 to your computer and use it in GitHub Desktop.
// Define functions to render linked interactive plots using d3. | |
// Another script should define e.g. | |
// <script> | |
// var plot = new animint("#plot","path/to/plot.json"); | |
// </script> | |
// Constructor for animint Object. | |
var animint = function (to_select, json_file) { | |
function wait_until_then(timeout, condFun, readyFun) { | |
var args=arguments | |
function checkFun() { | |
if(condFun()) { | |
readyFun(args[3],args[4]); | |
} else{ | |
setTimeout(checkFun, timeout); | |
} | |
} | |
checkFun(); | |
} | |
function convert_R_types(resp_array, types){ | |
return resp_array.map(function (d) { | |
for (var v_name in d) { | |
if(!is_interactive_aes(v_name)){ | |
var r_type = types[v_name]; | |
if (r_type == "integer") { | |
d[v_name] = parseInt(d[v_name]); | |
} else if (r_type == "numeric") { | |
d[v_name] = parseFloat(d[v_name]); | |
} else if (r_type == "factor" || r_type == "rgb" | |
|| r_type == "linetype" || r_type == "label" | |
|| r_type == "character") { | |
// keep it as a character | |
} else if (r_type == "character" & v_name == "outliers") { | |
d[v_name] = parseFloat(d[v_name].split(" @ ")); | |
} | |
} | |
} | |
return d; | |
}); | |
} | |
// replacing periods in variable with an underscore this makes sure | |
// that selector doesn't confuse . in name with css selectors | |
function safe_name(unsafe_name){ | |
return unsafe_name.replace(/[ .]/g, '_'); | |
} | |
function legend_class_name(selector_name){ | |
return safe_name(selector_name) + "_variable"; | |
} | |
function is_interactive_aes(v_name){ | |
if(v_name.indexOf("clickSelects") > -1){ | |
return true; | |
} | |
if(v_name.indexOf("showSelected") > -1){ | |
return true; | |
} | |
return false; | |
} | |
var linetypesize2dasharray = function (lt, size) { | |
var isInt = function(n) { | |
return typeof n === 'number' && parseFloat(n) == parseInt(n, 10) && !isNaN(n); | |
}; | |
if(isInt(lt)){ // R integer line types. | |
if(lt == 1){ | |
return null; | |
} | |
var o = { | |
0: size * 0 + "," + size * 10, | |
2: size * 4 + "," + size * 4, | |
3: size + "," + size * 2, | |
4: size + "," + size * 2 + "," + size * 4 + "," + size * 2, | |
5: size * 8 + "," + size * 4, | |
6: size * 2 + "," + size * 2 + "," + size * 6 + "," + size * 2 | |
}; | |
} else { // R defined line types | |
if(lt == "solid" || lt === null){ | |
return null; | |
} | |
var o = { | |
"blank": size * 0 + "," + size * 10, | |
"none": size * 0 + "," + size * 10, | |
"dashed": size * 4 + "," + size * 4, | |
"dotted": size + "," + size * 2, | |
"dotdash": size + "," + size * 2 + "," + size * 4 + "," + size * 2, | |
"longdash": size * 8 + "," + size * 4, | |
"twodash": size * 2 + "," + size * 2 + "," + size * 6 + "," + size * 2, | |
"22": size * 2 + "," + size * 2, | |
"42": size * 4 + "," + size * 2, | |
"44": size * 4 + "," + size * 4,"13": size + "," + size * 3, | |
"1343": size + "," + size * 3 + "," + size * 4 + "," + size * 3, | |
"73": size * 7 + "," + size * 3, | |
"2262": size * 2 + "," + size * 2 + "," + size * 6 + "," + size * 2, | |
"12223242": size + "," + size * 2 + "," + size * 2 + "," + size * 2 + "," + size * 3 + "," + size * 2 + "," + size * 4 + "," + size * 2, | |
"F282": size * 15 + "," + size * 2 + "," + size * 8 + "," + size * 2, | |
"F4448444": size * 15 + "," + size * 4 + "," + size * 4 + "," + size * 4 + "," + size * 8 + "," + size * 4 + "," + size * 4 + "," + size * 4, | |
"224282F2": size * 2 + "," + size * 2 + "," + size * 4 + "," + size * 2 + "," + size * 8 + "," + size * 2 + "," + size * 16 + "," + size * 2, | |
"F1": size * 16 + "," + size | |
}; | |
} | |
if (lt in o){ | |
return o[lt]; | |
} else{ // manually specified line types | |
str = lt.split(""); | |
strnum = str.map(function (d) { | |
return size * parseInt(d, 16); | |
}); | |
return strnum; | |
} | |
}; | |
var isArray = function(o) { | |
return Object.prototype.toString.call(o) === '[object Array]'; | |
}; | |
// create a dummy element, apply the appropriate classes, | |
// and then measure the element | |
// Inspired from http://jsfiddle.net/uzddx/2/ | |
var measureText = function(pText, pFontSize, pAngle, pStyle) { | |
if (!pText || pText.length === 0) return {height: 0, width: 0}; | |
if (pAngle === null || isNaN(pAngle)) pAngle = 0; | |
var container = element.append('svg'); | |
// do we need to set the class so that styling is applied? | |
//.attr('class', classname); | |
container.append('text') | |
.attr({x: -1000, y: -1000}) | |
.attr("transform", "rotate(" + pAngle + ")") | |
.attr("style", pStyle) | |
.attr("font-size", pFontSize) | |
.text(pText); | |
var bbox = container.node().getBBox(); | |
container.remove(); | |
return {height: bbox.height, width: bbox.width}; | |
}; | |
var nest_by_group = d3.nest().key(function(d){ return d.group; }); | |
var dirs = json_file.split("/"); | |
dirs.pop(); //if a directory path exists, remove the JSON file from dirs | |
var element = d3.select(to_select); | |
this.element = element; | |
var viz_id = element.attr("id"); | |
var Widgets = {}; | |
this.Widgets = Widgets; | |
var Selectors = {}; | |
this.Selectors = Selectors; | |
var Plots = {}; | |
this.Plots = Plots; | |
var Geoms = {}; | |
this.Geoms = Geoms; | |
// SVGs must be stored separately from Geoms since they are | |
// initialized first, with the Plots. | |
var SVGs = {}; | |
this.SVGs = SVGs; | |
var Animation = {}; | |
this.Animation = Animation; | |
var all_geom_names = {}; | |
this.all_geom_names = all_geom_names; | |
//creating an array to contain the selectize widgets | |
var selectized_array = []; | |
var data_object_geoms = { | |
"line":true, | |
"path":true, | |
"ribbon":true, | |
"polygon":true | |
}; | |
var css = document.createElement('style'); | |
css.type = 'text/css'; | |
var styles = [".axis path{fill: none;stroke: black;shape-rendering: crispEdges;}", | |
".axis line{fill: none;stroke: black;shape-rendering: crispEdges;}", | |
".axis text {font-family: sans-serif;font-size: 11px;}"]; | |
var add_geom = function (g_name, g_info) { | |
// Determine what style to use to show the selection for this | |
// geom. This is a hack and should be removed when we implement | |
// the selected.color, selected.size, etc aesthetics. | |
if(g_info.aes.hasOwnProperty("fill") && | |
g_info.geom == "rect" && | |
g_info.aes.hasOwnProperty("clickSelects")){ | |
g_info.select_style = "stroke"; | |
}else{ | |
g_info.select_style = "opacity"; | |
} | |
// Determine if data will be an object or an array. | |
if(g_info.geom in data_object_geoms){ | |
g_info.data_is_object = true; | |
}else{ | |
g_info.data_is_object = false; | |
} | |
// Add a row to the loading table. | |
g_info.tr = Widgets["loading"].append("tr"); | |
g_info.tr.append("td").text(g_name); | |
g_info.tr.append("td").attr("class", "chunk"); | |
g_info.tr.append("td").attr("class", "downloaded").text(0); | |
g_info.tr.append("td").text(g_info.total); | |
g_info.tr.append("td").attr("class", "status").text("initialized"); | |
// load chunk tsv | |
g_info.data = {}; | |
g_info.download_status = {}; | |
Geoms[g_name] = g_info; | |
// Determine whether common chunk tsv exists | |
// If yes, load it | |
if(g_info.hasOwnProperty("columns") && g_info.columns.common){ | |
var common_tsv = get_tsv(g_info, "_common"); | |
g_info.common_tsv = common_tsv; | |
var common_path = getTSVpath(common_tsv); | |
d3.tsv(common_path, function (error, response) { | |
var converted = convert_R_types(response, g_info.types); | |
g_info.data[common_tsv] = nest_by_group.map(converted); | |
}); | |
} else { | |
g_info.common_tsv = null; | |
} | |
// Save this geom and load it! | |
update_geom(g_name, null); | |
}; | |
var add_plot = function (p_name, p_info) { | |
// Each plot may have one or more legends. To make space for the | |
// legends, we put each plot in a table with one row and two | |
// columns: tdLeft and tdRight. | |
var plot_table = element.append("table").style("display", "inline-block"); | |
var plot_tr = plot_table.append("tr"); | |
var tdLeft = plot_tr.append("td"); | |
var tdRight = plot_tr.append("td").attr("class", p_name+"_legend"); | |
if(viz_id === null){ | |
p_info.plot_id = p_name; | |
}else{ | |
p_info.plot_id = viz_id + "_" + p_name; | |
} | |
var svg = tdLeft.append("svg") | |
.attr("id", p_info.plot_id) | |
.attr("height", p_info.options.height) | |
.attr("width", p_info.options.width); | |
// divvy up width/height based on the panel layout | |
var nrows = Math.max.apply(null, p_info.layout.ROW); | |
var ncols = Math.max.apply(null, p_info.layout.COL); | |
var panel_names = p_info.layout.PANEL; | |
var npanels = Math.max.apply(null, panel_names); | |
// Note axis names are "shared" across panels (just like the title) | |
var xtitlepadding = 5 + measureText(p_info["xtitle"], 11).height; | |
var ytitlepadding = 5 + measureText(p_info["ytitle"], 11).height; | |
// 'margins' are fixed across panels and do not | |
// include title/axis/label padding (since these are not | |
// fixed across panels). They do, however, account for | |
// spacing between panels | |
var text_height_pixels = measureText("foo", 11).height; | |
var margin = { | |
left: 0, | |
right: text_height_pixels * p_info.panel_margin_lines, | |
top: text_height_pixels * p_info.panel_margin_lines, | |
bottom: 0 | |
}; | |
var plotdim = { | |
width: 0, | |
height: 0, | |
xstart: 0, | |
xend: 0, | |
ystart: 0, | |
yend: 0, | |
graph: { | |
width: 0, | |
height: 0 | |
}, | |
margin: margin, | |
xlab: { | |
x: 0, | |
y: 0 | |
}, | |
ylab: { | |
x: 0, | |
y: 0 | |
}, | |
title: { | |
x: 0, | |
y: 0 | |
} | |
}; | |
// Draw the title | |
var titlepadding = measureText(p_info.title, 20).height + 10; | |
// why are we giving the title padding if it is undefined? | |
if (p_info.title === undefined) titlepadding = 0; | |
plotdim.title.x = p_info.options.width / 2; | |
plotdim.title.y = titlepadding / 2; | |
svg.append("text") | |
.text(p_info.title) | |
.attr("class", "plottitle") | |
.attr("font-family", "sans-serif") | |
.attr("font-size", "20px") | |
.attr("transform", "translate(" + plotdim.title.x + "," + | |
plotdim.title.y + ")") | |
.style("text-anchor", "middle"); | |
// grab max text size over axis labels and facet strip labels | |
var axispaddingy = 5; | |
if(p_info.hasOwnProperty("ylabs") && p_info.ylabs.length){ | |
axispaddingy += Math.max.apply(null, p_info.ylabs.map(function(entry){ | |
// + 5 to give a little extra space to avoid bad axis labels | |
// in shiny. | |
return measureText(entry, 11).width + 5; | |
})); | |
} | |
var axispaddingx = 10 + 20; | |
if(p_info.hasOwnProperty("xlabs") && p_info.xlabs.length){ | |
// TODO: throw warning if text height is large portion of plot height? | |
axispaddingx += Math.max.apply(null, p_info.xlabs.map(function(entry){ | |
return measureText(entry, 11, p_info.xangle).height; | |
})); | |
// TODO: carefully calculating this gets complicated with rotating xlabs | |
//margin.right += 5; | |
} | |
plotdim.margin = margin; | |
var strip_heights = p_info.strips.top.map(function(entry){ | |
return measureText(entry, 11).height; | |
}); | |
var strip_widths = p_info.strips.right.map(function(entry){ | |
return measureText(entry, 11).height; | |
}); | |
// compute the number of x/y axes, max strip height per row, and | |
// max strip width per columns, for calculating height/width of | |
// graphing region. | |
var row_strip_heights = []; | |
var col_strip_widths = []; | |
var n_xaxes = 0; | |
var n_yaxes = 0; | |
var current_row, current_col; | |
for (var layout_i = 0; layout_i < npanels; layout_i++) { | |
current_row = p_info.layout.ROW[layout_i] - 1; | |
current_col = p_info.layout.COL[layout_i] - 1; | |
if(row_strip_heights[current_row] === undefined){ | |
row_strip_heights[current_row] = []; | |
} | |
if(col_strip_widths[current_col] === undefined){ | |
col_strip_widths[current_col] = []; | |
} | |
row_strip_heights[current_row].push(strip_heights[layout_i]); | |
col_strip_widths[current_col].push(strip_widths[layout_i]); | |
if (p_info.layout.COL[layout_i] == 1) { | |
n_xaxes += p_info.layout.AXIS_X[layout_i]; | |
} | |
if (p_info.layout.ROW[layout_i] == 1) { | |
n_yaxes += p_info.layout.AXIS_Y[layout_i]; | |
} | |
} | |
function cumsum_array(array_of_arrays){ | |
var cumsum = [], max_value, cumsum_value = 0; | |
for(var i=0; i<array_of_arrays.length; i++){ | |
cumsum_value += d3.max(array_of_arrays[i]); | |
cumsum[i] = cumsum_value; | |
} | |
return cumsum; | |
} | |
var cum_height_per_row = cumsum_array(row_strip_heights); | |
var cum_width_per_col = cumsum_array(col_strip_widths); | |
var strip_width = d3.max(cum_width_per_col); | |
var strip_height = d3.max(cum_height_per_row); | |
// the *entire graph* height/width | |
var graph_width = p_info.options.width - | |
ncols * (margin.left + margin.right) - | |
strip_width - | |
n_yaxes * axispaddingy - ytitlepadding; | |
var graph_height = p_info.options.height - | |
nrows * (margin.top + margin.bottom) - | |
strip_height - | |
titlepadding - n_xaxes * axispaddingx - xtitlepadding; | |
// Impose the pixelated aspect ratio of the graph upon the width/height | |
// proportions calculated by the compiler. This has to be done on the | |
// rendering side since the precomputed proportions apply to the *graph* | |
// and the graph size depends upon results of measureText() | |
if (p_info.layout.coord_fixed[0]) { | |
var aspect = (graph_height / nrows) / (graph_width / ncols); | |
} else { | |
var aspect = 1; | |
} | |
var wp = p_info.layout.width_proportion.map(function(x){ | |
return x * Math.min(1, aspect); | |
}) | |
var hp = p_info.layout.height_proportion.map(function(x){ | |
return x * Math.min(1, 1/aspect); | |
}) | |
// track the proportion of the graph that should be 'blank' | |
// this is mainly used to implement coord_fixed() | |
var graph_height_blank = 1; | |
var graph_width_blank = 1; | |
for (var layout_i = 0; layout_i < npanels; layout_i++) { | |
if (p_info.layout.COL[layout_i] == 1) graph_height_blank -= hp[layout_i]; | |
if (p_info.layout.ROW[layout_i] == 1) graph_width_blank -= wp[layout_i]; | |
} | |
// cumulative portion of the graph used | |
var graph_width_cum = (graph_width_blank / 2) * graph_width; | |
var graph_height_cum = (graph_height_blank / 2) * graph_height; | |
// Bind plot data to this plot's SVG element | |
svg.plot = p_info; | |
Plots[p_name] = p_info; | |
p_info.geoms.forEach(function (g_name) { | |
var layer_g_element = svg.append("g").attr("class", g_name); | |
panel_names.forEach(function(PANEL){ | |
layer_g_element.append("g").attr("class", "PANEL" + PANEL); | |
}); | |
SVGs[g_name] = svg; | |
}); | |
// create a grouping for strip labels (even if there are none). | |
var topStrip = svg.append("g") | |
.attr("class", "topStrip") | |
; | |
var rightStrip = svg.append("g") | |
.attr("class", "rightStrip") | |
; | |
// this will hold x/y scales for each panel | |
// eventually we inject this into Plots[p_name] | |
var scales = {}; | |
n_xaxes = 0; | |
n_yaxes = 0; | |
// Draw a plot outline for every panel | |
for (var layout_i = 0; layout_i < npanels; layout_i++) { | |
var panel_i = layout_i + 1; | |
var axis = p_info["axis" + panel_i]; | |
//forces values to be in an array | |
var xaxisvals = []; | |
var xaxislabs = []; | |
var yaxisvals = []; | |
var yaxislabs = []; | |
var outbreaks, outlabs; | |
//function to write labels and breaks to their respective arrays | |
var axislabs = function(breaks, labs, axis){ | |
if(axis=="x"){ | |
outbreaks = xaxisvals; | |
outlabs = xaxislabs; | |
} else { | |
outbreaks = yaxisvals; | |
outlabs = yaxislabs; | |
} // set appropriate variable names | |
if (isArray(breaks)) { | |
breaks.forEach(function (d) { | |
outbreaks.push(d); | |
}) | |
} else { | |
//breaks can be an object! | |
for (key in breaks) { | |
outbreaks.push(breaks[key]); | |
} | |
} | |
if (labs){ | |
labs.forEach(function (d) { | |
outlabs.push(d); | |
// push each label provided into the array | |
}); | |
} else { | |
outbreaks.forEach(function (d) { | |
outlabs.push(""); | |
// push a blank string to the array for each axis tick | |
// if the specified label is null | |
}); | |
} | |
}; | |
if(axis["xticks"]){ | |
axislabs(axis.x, axis.xlab, "x"); | |
} | |
if(axis["yticks"]){ | |
axislabs(axis.y, axis.ylab, "y"); | |
} | |
// compute the current panel height/width | |
plotdim.graph.height = graph_height * hp[layout_i]; | |
plotdim.graph.width = graph_width * wp[layout_i]; | |
current_row = p_info.layout.ROW[layout_i]; | |
current_col = p_info.layout.COL[layout_i]; | |
var draw_x = p_info.layout.AXIS_X[layout_i]; | |
var draw_y = p_info.layout.AXIS_Y[layout_i]; | |
// panels are drawn using a "typewriter approach" (left to right | |
// & top to bottom) if the carriage is returned (ie, there is a | |
// new row), change some parameters: | |
var new_row = current_col <= p_info.layout.COL[layout_i - 1] | |
if (new_row) { | |
n_yaxes = 0; | |
graph_width_cum = (graph_width_blank / 2) * graph_width; | |
graph_height_cum += graph_height * hp[layout_i-1]; | |
} | |
n_xaxes += draw_x; | |
n_yaxes += draw_y; | |
// calculate panel specific locations to be used in placing | |
// axes, labels, etc. | |
plotdim.xstart = current_col * plotdim.margin.left + | |
(current_col - 1) * plotdim.margin.right + | |
graph_width_cum + n_yaxes * axispaddingy + ytitlepadding; | |
// room for right strips should be distributed evenly across | |
// panels to preserve aspect ratio | |
plotdim.xend = plotdim.xstart + plotdim.graph.width; | |
// total height of strips drawn thus far | |
var strip_h = cum_height_per_row[current_row-1]; | |
plotdim.ystart = current_row * plotdim.margin.top + | |
(current_row - 1) * plotdim.margin.bottom + | |
graph_height_cum + titlepadding + strip_h; | |
// room for xaxis title should be distributed evenly across | |
// panels to preserve aspect ratio | |
plotdim.yend = plotdim.ystart + plotdim.graph.height; | |
// always add to the width (note it may have been reset earlier) | |
graph_width_cum = graph_width_cum + plotdim.graph.width; | |
// get the x position of the y-axis title (and add padding) when | |
// rendering the first plot. | |
if (layout_i === 0) { | |
var ytitle_x = (plotdim.xstart - axispaddingy - ytitlepadding / 2); | |
var xtitle_left = plotdim.xstart; | |
var ytitle_top = plotdim.ystart; | |
} | |
// get the y position of the x-axis title when drawing the last | |
// panel. | |
if (layout_i === (npanels - 1)) { | |
var xtitle_y = (plotdim.yend + axispaddingx); | |
var xtitle_right = plotdim.xend; | |
var ytitle_bottom = plotdim.yend; | |
} | |
var draw_strip = function(strip, side) { | |
if (strip == "") { | |
return(null); | |
} | |
var x, y, rotate, stripElement; | |
if (side == "right") { | |
x = plotdim.xend + strip_widths[layout_i] / 2 - 2; | |
y = (plotdim.ystart + plotdim.yend) / 2; | |
rotate = 90; | |
stripElement = rightStrip; | |
}else{ //top | |
x = (plotdim.xstart + plotdim.xend) / 2; | |
y = plotdim.ystart - strip_heights[layout_i] / 2 + 3; | |
rotate = 0; | |
stripElement = topStrip; | |
} | |
var trans_text = "translate(" + x + "," + y + ")"; | |
var rot_text = "rotate(" + rotate + ")"; | |
stripElement | |
.selectAll("." + side + "Strips") | |
.data(strip) | |
.enter() | |
.append("text") | |
.style("text-anchor", "middle") | |
.style("font-size", "11px") | |
.text(function(d) { return d; }) | |
// NOTE: there could be multiple strips per panel | |
// TODO: is there a better way to manage spacing? | |
.attr("transform", trans_text + rot_text) | |
; | |
} | |
draw_strip([p_info.strips.top[layout_i]], "top"); | |
draw_strip([p_info.strips.right[layout_i]], "right"); | |
// for each of the x and y axes, there is a "real" and fake | |
// version. The real version will be used for plotting the | |
// data, and the fake version is just for the display of the | |
// axes. | |
scales[panel_i] = {}; | |
scales[panel_i].x = d3.scale.linear() | |
.domain(axis.xrange) | |
.range([plotdim.xstart, plotdim.xend]); | |
scales[panel_i].y = d3.scale.linear() | |
.domain(axis.yrange) | |
.range([plotdim.yend, plotdim.ystart]); | |
if(draw_x){ | |
var xaxis = d3.svg.axis() | |
.scale(scales[panel_i].x) | |
.tickValues(xaxisvals) | |
.tickFormat(function (d) { | |
return xaxislabs[xaxisvals.indexOf(d)].toString(); | |
}) | |
.orient("bottom") | |
; | |
var axis_panel = "xaxis" + "_" + panel_i; | |
var xaxis_g = svg.append("g") | |
.attr("class", "xaxis axis " + axis_panel) | |
.attr("transform", "translate(0," + plotdim.yend + ")") | |
.call(xaxis); | |
if(axis["xline"] == false){ | |
var axis_path = xaxis_g.select("path.domain"); | |
axis_path.remove(); | |
} | |
xaxis_g.selectAll("text") | |
.style("text-anchor", p_info.xanchor) | |
.attr("transform", "rotate(" + p_info.xangle + " 0 9)"); | |
} | |
if(draw_y){ | |
var yaxis = d3.svg.axis() | |
.scale(scales[panel_i].y) | |
.tickValues(yaxisvals) | |
.tickFormat(function (d) { | |
return yaxislabs[yaxisvals.indexOf(d)].toString(); | |
}) | |
.orient("left"); | |
var axis_panel = "yaxis" + "_" + panel_i; | |
var yaxis_g = svg.append("g") | |
.attr("class", "yaxis axis " + axis_panel) | |
.attr("transform", "translate(" + (plotdim.xstart) + ",0)") | |
.call(yaxis); | |
if(axis["yline"] == false){ | |
var axis_path = yaxis_g.select("path.domain"); | |
axis_path.remove(); | |
} | |
} | |
if(!axis.xline) { | |
styles.push("#"+p_name+" #xaxis"+" path{stroke:none;}"); | |
} | |
if(!axis.xticks) { | |
styles.push("#"+p_name+" #xaxis .tick"+" line{stroke:none;}"); | |
} | |
if(!axis.yline) { | |
styles.push("#"+p_name+" #yaxis"+" path{stroke:none;}"); | |
} | |
if(!axis.yticks) { | |
styles.push("#"+p_name+" #yaxis .tick"+" line{stroke:none;}"); | |
} | |
// creating g element for background, grid lines, and border | |
// uses insert to draw it right before plot title | |
var background = svg.insert("g", ".plottitle") | |
.attr("class", "background bgr" + panel_i); | |
// drawing background | |
if(Object.keys(p_info.panel_background).length > 1) { | |
background.append("rect") | |
.attr("x", plotdim.xstart) | |
.attr("y", plotdim.ystart) | |
.attr("width", plotdim.xend - plotdim.xstart) | |
.attr("height", plotdim.yend - plotdim.ystart) | |
.attr("class", "background_rect") | |
.style("fill", p_info.panel_background.fill) | |
.style("stroke", p_info.panel_background.colour) | |
.style("stroke-dasharray", function() { | |
return linetypesize2dasharray(p_info.panel_background.linetype, | |
p_info.panel_background.size); | |
}); | |
} | |
// drawing the grid lines | |
["grid_minor", "grid_major"].forEach(function(grid_class){ | |
var grid_background = p_info[grid_class]; | |
// if grid lines are defined | |
if(grid_background.hasOwnProperty("size")) { | |
var grid = background.append("g") | |
.attr("class", grid_class); | |
["x","y"].forEach(function(scale_var){ | |
var const_var; | |
if(scale_var == "x"){ | |
const_var = "y"; | |
}else{ | |
const_var = "x"; | |
} | |
grid.append("g") | |
.attr("class", scale_var) | |
.selectAll("line") | |
.data(grid_background.loc[scale_var][layout_i]) | |
.enter() | |
.append("line") | |
.attr(const_var + "1", plotdim[const_var + "start"]) | |
.attr(const_var + "2", plotdim[const_var + "end"]) | |
.attr(scale_var + "1", function(d) { | |
return scales[panel_i][scale_var](d); | |
}) | |
.attr(scale_var + "2", function(d) { | |
return scales[panel_i][scale_var](d); | |
}) | |
.style("stroke", grid_background.colour) | |
.style("stroke-linecap", grid_background.lineend) | |
.style("stroke-width", grid_background.size) | |
.style("stroke-dasharray", linetypesize2dasharray( | |
grid_background.linetype, grid_background.size)) | |
; | |
}); | |
} | |
}); | |
// drawing border | |
// uses insert to draw it right before the #plottitle | |
if(Object.keys(p_info.panel_border).length > 1) { | |
background.append("rect") | |
.attr("x", plotdim.xstart) | |
.attr("y", plotdim.ystart) | |
.attr("width", plotdim.xend - plotdim.xstart) | |
.attr("height", plotdim.yend - plotdim.ystart) | |
.attr("class", "border_rect") | |
.style("fill", p_info.panel_border.fill) | |
.style("stroke", p_info.panel_border.colour) | |
.style("stroke-dasharray", function() { | |
return linetypesize2dasharray(p_info.panel_border.linetype, | |
p_info.panel_border.size); | |
}); | |
} | |
} //end of for(layout_i | |
// After drawing all backgrounds, we can draw the axis labels. | |
if(p_info["ytitle"]){ | |
svg.append("text") | |
.text(p_info["ytitle"]) | |
.attr("class", "ytitle") | |
.style("text-anchor", "middle") | |
.style("font-size", "11px") | |
.attr("transform", "translate(" + | |
ytitle_x + | |
"," + | |
(ytitle_top + ytitle_bottom)/2 + | |
")rotate(270)") | |
; | |
} | |
if(p_info["xtitle"]){ | |
svg.append("text") | |
.text(p_info["xtitle"]) | |
.attr("class", "xtitle") | |
.style("text-anchor", "middle") | |
.style("font-size", "11px") | |
.attr("transform", "translate(" + | |
(xtitle_left + xtitle_right)/2 + | |
"," + | |
xtitle_y + | |
")") | |
; | |
} | |
Plots[p_name].scales = scales; | |
}; //end of add_plot() | |
function update_legend_opacity(v_name){ | |
var s_info = Selectors[v_name]; | |
s_info.legend_tds.style("opacity", s_info.legend_update_fun); | |
} | |
var add_selector = function (s_name, s_info) { | |
Selectors[s_name] = s_info; | |
if(s_info.type == "multiple"){ | |
if(!isArray(s_info.selected)){ | |
s_info.selected = [s_info.selected]; | |
} | |
// legend_update_fun is evaluated in the context of the | |
// td.legend_entry_label. | |
s_info.legend_update_fun = function(d){ | |
var i_value = s_info.selected.indexOf(this.textContent); | |
if(i_value == -1){ | |
return 0.5; | |
}else{ | |
return 1; | |
} | |
} | |
}else{ | |
s_info.legend_update_fun = function(d){ | |
if(this.textContent == s_info.selected){ | |
return 1; | |
}else{ | |
return 0.5; | |
} | |
} | |
} | |
s_info.legend_tds = | |
element.selectAll("tr."+legend_class_name(s_name)+" td.legend_entry_label") | |
; | |
update_legend_opacity(s_name); | |
}; //end of add_selector() | |
function get_tsv(g_info, chunk_id){ | |
return g_info.classed + "_chunk" + chunk_id + ".tsv"; | |
} | |
function getTSVpath(tsv_name){ | |
return dirs.concat(tsv_name).join("/"); | |
} | |
/** | |
* copy common chunk tsv to varied chunk tsv, returning an array of | |
* objects. | |
*/ | |
function copy_chunk(g_info, varied_chunk) { | |
var varied_by_group = nest_by_group.map(varied_chunk); | |
var common_by_group = g_info.data[g_info.common_tsv]; | |
var new_varied_chunk = []; | |
for(group_id in varied_by_group){ | |
var varied_one_group = varied_by_group[group_id]; | |
var common_one_group = common_by_group[group_id]; | |
var common_i = 0; | |
for(var varied_i=0; varied_i < varied_one_group.length; varied_i++){ | |
// there are two cases: each group of varied data is of length | |
// 1, or of length of the common data. | |
if(common_one_group.length == varied_one_group.length){ | |
common_i = varied_i; | |
} | |
var varied_obj = varied_one_group[varied_i]; | |
var common_obj = common_one_group[common_i]; | |
for(col in common_obj){ | |
if(col != "group"){ | |
varied_obj[col] = common_obj[col]; | |
} | |
} | |
new_varied_chunk.push(varied_obj); | |
} | |
} | |
return new_varied_chunk; | |
} | |
// update_geom is called from add_geom and update_selector. It | |
// downloads data if necessary, and then calls draw_geom. | |
var update_geom = function (g_name, selector_name) { | |
var g_info = Geoms[g_name]; | |
// First apply chunk_order selector variables. | |
var chunk_id = g_info.chunks; | |
g_info.chunk_order.forEach(function (v_name) { | |
if(chunk_id == null){ | |
return; // no data in a higher up chunk var. | |
} | |
var value = Selectors[v_name].selected; | |
if(chunk_id.hasOwnProperty(value)){ | |
chunk_id = chunk_id[value]; | |
}else{ | |
chunk_id = null; // no data to show in this subset. | |
} | |
}); | |
if(chunk_id == null){ | |
draw_panels(g_info, [], selector_name); //draw nothing. | |
return; | |
} | |
var tsv_name = get_tsv(g_info, chunk_id); | |
// get the data if it has not yet been downloaded. | |
g_info.tr.select("td.chunk").text(tsv_name); | |
if(g_info.data.hasOwnProperty(tsv_name)){ | |
draw_panels(g_info, g_info.data[tsv_name], selector_name); | |
}else{ | |
g_info.tr.select("td.status").text("downloading"); | |
var svg = SVGs[g_name]; | |
var loading = svg.append("text") | |
.attr("class", "loading"+tsv_name) | |
.text("Downloading "+tsv_name+"...") | |
.attr("font-size", 9) | |
//.attr("x", svg.attr("width")/2) | |
.attr("y", 10) | |
.style("fill", "red"); | |
download_chunk(g_info, tsv_name, function(chunk){ | |
loading.remove(); | |
draw_panels(g_info, chunk, selector_name); | |
}); | |
} | |
}; | |
var draw_panels = function(g_info, chunk, selector_name) { | |
// derive the plot name from the geometry name | |
var g_names = g_info.classed.split("_"); | |
var p_name = g_names[g_names.length - 1]; | |
var panels = Plots[p_name].layout.PANEL; | |
panels.forEach(function(panel) { | |
draw_geom(g_info, chunk, selector_name, panel); | |
}); | |
}; | |
function download_next(g_name){ | |
var g_info = Geoms[g_name]; | |
var selector_value = Animation.sequence[g_info.seq_i]; | |
var chunk_id = g_info.chunks[selector_value]; | |
var tsv_name = get_tsv(g_info, chunk_id); | |
g_info.seq_count += 1; | |
if(Animation.sequence.length == g_info.seq_count){ | |
Animation.done_geoms[g_name] = 1; | |
return; | |
} | |
g_info.seq_i += 1; | |
if(g_info.seq_i == Animation.sequence.length){ | |
g_info.seq_i = 0; | |
} | |
if(typeof(chunk_id) == "string"){ | |
download_chunk(g_info, tsv_name, function(chunk){ | |
download_next(g_name); | |
}) | |
}else{ | |
download_next(g_name); | |
} | |
} | |
// download_chunk is called from update_geom and download_next. | |
function download_chunk(g_info, tsv_name, funAfter){ | |
if(g_info.download_status.hasOwnProperty(tsv_name)){ | |
var chunk; | |
if(g_info.data_is_object){ | |
chunk = {}; | |
}else{ | |
chunk = []; | |
} | |
funAfter(chunk); | |
return; // do not download twice. | |
} | |
g_info.download_status[tsv_name] = "downloading"; | |
// prefix tsv file with appropriate path | |
var tsv_file = getTSVpath(tsv_name); | |
d3.tsv(tsv_file, function (error, response) { | |
// First convert to correct types. | |
g_info.download_status[tsv_name] = "processing"; | |
response = convert_R_types(response, g_info.types); | |
wait_until_then(500, function(){ | |
if(g_info.common_tsv) { | |
return g_info.data.hasOwnProperty(g_info.common_tsv); | |
}else{ | |
return true; | |
} | |
}, function(){ | |
if(g_info.common_tsv) { | |
// copy data from common tsv to varied tsv | |
response = copy_chunk(g_info, response); | |
} | |
var nest = d3.nest(); | |
g_info.nest_order.forEach(function (v_name) { | |
nest.key(function (d) { | |
return d[v_name]; | |
}); | |
}); | |
var chunk = nest.map(response); | |
g_info.data[tsv_name] = chunk; | |
g_info.tr.select("td.downloaded").text(d3.keys(g_info.data).length); | |
g_info.download_status[tsv_name] = "saved"; | |
funAfter(chunk); | |
}); | |
}); | |
}//download_chunk. | |
// update_geom is responsible for obtaining a chunk of downloaded | |
// data, and then calling draw_geom to actually draw it. | |
var draw_geom = function(g_info, chunk, selector_name, PANEL){ | |
g_info.tr.select("td.status").text("displayed"); | |
var svg = SVGs[g_info.classed]; | |
// derive the plot name from the geometry name | |
var g_names = g_info.classed.split("_"); | |
var p_name = g_names[g_names.length - 1]; | |
var scales = Plots[p_name].scales[PANEL]; | |
var selected_arrays = [ [] ]; //double array necessary. | |
g_info.subset_order.forEach(function (aes_name) { | |
var selected, values; | |
var new_arrays = []; | |
if(0 < aes_name.indexOf(".variable")){ | |
selected_arrays.forEach(function(old_array){ | |
var some_data = chunk; | |
old_array.forEach(function(value){ | |
if(some_data.hasOwnProperty(value)) { | |
some_data = some_data[value]; | |
} else { | |
some_data = {}; | |
} | |
}) | |
values = d3.keys(some_data); | |
values.forEach(function(s_name){ | |
var selected = Selectors[s_name].selected; | |
var new_array = old_array.concat(s_name).concat(selected); | |
new_arrays.push(new_array); | |
}) | |
}) | |
}else{//not .variable aes: | |
if(aes_name == "PANEL"){ | |
selected = PANEL; | |
}else{ | |
var s_name = g_info.aes[aes_name]; | |
selected = Selectors[s_name].selected; | |
} | |
if(isArray(selected)){ | |
values = selected; //multiple selection. | |
}else{ | |
values = [selected]; //single selection. | |
} | |
values.forEach(function(value){ | |
selected_arrays.forEach(function(old_array){ | |
var new_array = old_array.concat(value); | |
new_arrays.push(new_array); | |
}) | |
}) | |
} | |
selected_arrays = new_arrays; | |
}); | |
// data can be either an array[] if it will be directly involved | |
// in a data-bind, or an object{} if it will be involved in a | |
// data-bind by group (e.g. geom_line). | |
var data; | |
if(g_info.data_is_object){ | |
data = {}; | |
}else{ | |
data = []; | |
} | |
selected_arrays.forEach(function(value_array){ | |
var some_data = chunk; | |
value_array.forEach(function(value){ | |
if (some_data.hasOwnProperty(value)) { | |
some_data = some_data[value]; | |
} else { | |
if(g_info.data_is_object){ | |
some_data = {}; | |
}else{ | |
some_data = []; | |
} | |
} | |
}); | |
if(g_info.data_is_object){ | |
if(isArray(some_data) && some_data.length){ | |
data["0"] = some_data; | |
}else{ | |
for(k in some_data){ | |
data[k] = some_data[k]; | |
} | |
} | |
}else{//some_data is an array. | |
data = data.concat(some_data); | |
} | |
}); | |
var aes = g_info.aes; | |
var toXY = function (xy, a) { | |
return function (d) { | |
return scales[xy](d[a]); | |
}; | |
}; | |
var layer_g_element = svg.select("g." + g_info.classed); | |
var panel_g_element = layer_g_element.select("g.PANEL" + PANEL); | |
var elements = panel_g_element.selectAll(".geom"); | |
// TODO: standardize this code across aes/styles. | |
var base_opacity = 1; | |
if (g_info.params.alpha) { | |
base_opacity = g_info.params.alpha; | |
} | |
//alert(g_info.classed+" "+base_opacity); | |
var get_alpha = function (d) { | |
var a; | |
if (aes.hasOwnProperty("alpha") && d.hasOwnProperty("alpha")) { | |
a = d["alpha"]; | |
} else { | |
a = base_opacity; | |
} | |
return a; | |
}; | |
var size = 2; | |
if(g_info.geom == "text"){ | |
size = 12; | |
} | |
if (g_info.params.hasOwnProperty("size")) { | |
size = g_info.params.size; | |
} | |
var get_size = function (d) { | |
if (aes.hasOwnProperty("size") && d.hasOwnProperty("size")) { | |
return d["size"]; | |
} | |
return size; | |
}; | |
// stroke_width for geom_point | |
var stroke_width = 1; // by default ggplot2 has 0.5, animint has 1 | |
if (g_info.params.hasOwnProperty("stroke")) { | |
stroke_width = g_info.params.stroke; | |
} | |
var get_stroke_width = function (d) { | |
if (aes.hasOwnProperty("stroke") && d.hasOwnProperty("stroke")) { | |
return d["stroke"]; | |
} | |
return stroke_width; | |
} | |
var linetype = "solid"; | |
if (g_info.params.linetype) { | |
linetype = g_info.params.linetype; | |
} | |
var get_dasharray = function (d) { | |
var lt = linetype; | |
if (aes.hasOwnProperty("linetype") && d.hasOwnProperty("linetype")) { | |
lt = d["linetype"]; | |
} | |
return linetypesize2dasharray(lt, get_size(d)); | |
}; | |
var colour = "black"; | |
var fill = "black"; | |
var get_colour = function (d) { | |
if (d.hasOwnProperty("colour")) { | |
return d["colour"] | |
} | |
return colour; | |
}; | |
var get_fill = function (d) { | |
if (d.hasOwnProperty("fill")) { | |
return d["fill"]; | |
} | |
return fill; | |
}; | |
if (g_info.params.colour) { | |
colour = g_info.params.colour; | |
} | |
if (g_info.params.fill) { | |
fill = g_info.params.fill; | |
}else if(g_info.params.colour){ | |
fill = g_info.params.colour; | |
} | |
// For aes(hjust) the compiler should make an "anchor" column. | |
var text_anchor = "middle"; | |
if(g_info.params.hasOwnProperty("anchor")){ | |
text_anchor = g_info.params["anchor"]; | |
} | |
var get_text_anchor; | |
if(g_info.aes.hasOwnProperty("hjust")) { | |
get_text_anchor = function(d){ | |
return d["anchor"]; | |
} | |
}else{ | |
get_text_anchor = function(d){ | |
return text_anchor; | |
} | |
} | |
var eActions, eAppend, linkActions; | |
var key_fun = null; | |
var id_fun = function(d){ | |
return d.id; | |
}; | |
if(g_info.aes.hasOwnProperty("key")){ | |
key_fun = function(d){ | |
return d.key; | |
}; | |
} | |
if(g_info.data_is_object) { | |
// Lines, paths, polygons, and ribbons are a bit special. For | |
// every unique value of the group variable, we take the | |
// corresponding data rows and make 1 path. The tricky part is | |
// that to use d3 I do a data-bind of some "fake" data which are | |
// just group ids, which is the kv variable in the code below | |
// // case of only 1 line and no groups. | |
// if(!aes.hasOwnProperty("group")){ | |
// kv = [{"key":0,"value":0}]; | |
// data = {0:data}; | |
// }else{ | |
// // we need to use a path for each group. | |
// var kv = d3.entries(d3.keys(data)); | |
// kv = kv.map(function(d){ | |
// d[aes.group] = d.value; | |
// return d; | |
// }); | |
// } | |
// For an example consider breakpointError$error which is | |
// defined using this R code | |
// geom_line(aes(segments, error, group=bases.per.probe, | |
// clickSelects=bases.per.probe), data=only.error, lwd=4) | |
// Inside update_geom the variables take the following values | |
// (pseudo-Javascript code) | |
// var kv = [{"key":"0","value":"133","bases.per.probe":"133"}, | |
// {"key":"1","value":"2667","bases.per.probe":"2667"}]; | |
// var data = {"133":[array of 20 points used to draw the line for group 133], | |
// "2667":[array of 20 points used to draw the line for group 2667]}; | |
// I do elements.data(kv) so that when I set the d attribute of | |
// each path, I need to select the correct group before | |
// returning anything. | |
// e.attr("d",function(group_info){ | |
// var one_group = data[group_info.value]; | |
// return lineThing(one_group); | |
// }) | |
// To make color work I think you just have to select the group | |
// and take the color of the first element, e.g. | |
// .style("stroke",function(group_info){ | |
// var one_group = data[group_info.value]; | |
// var one_row = one_group[0]; | |
// return get_color(one_row); | |
// } | |
// In order to get d3 lines to play nice, bind fake "data" (group | |
// id's) -- the kv variable. Then each separate object is plotted | |
// using path (case of only 1 thing and no groups). | |
// we need to use a path for each group. | |
var keyed_data = {}, one_group, group_id, k; | |
for(group_id in data){ | |
one_group = data[group_id]; | |
one_row = one_group[0]; | |
if(one_row.hasOwnProperty("key")){ | |
k = one_row.key; | |
}else{ | |
k = group_id; | |
} | |
keyed_data[k] = one_group; | |
} | |
var kv_array = d3.entries(d3.keys(keyed_data)); | |
var kv = kv_array.map(function (d) { | |
//d[aes.group] = d.value; | |
// Need to store the clickSelects value that will | |
// be passed to the selector when we click on this | |
// item. | |
d.clickSelects = keyed_data[d.value][0].clickSelects; | |
return d; | |
}); | |
// line, path, and polygon use d3.svg.line(), | |
// ribbon uses d3.svg.area() | |
// we have to define lineThing accordingly. | |
if (g_info.geom == "ribbon") { | |
var lineThing = d3.svg.area() | |
.x(toXY("x", "x")) | |
.y(toXY("y", "ymax")) | |
.y0(toXY("y", "ymin")); | |
} else { | |
var lineThing = d3.svg.line() | |
.x(toXY("x", "x")) | |
.y(toXY("y", "y")); | |
} | |
// select the correct group before returning anything. | |
key_fun = function(group_info){ | |
return group_info.value; | |
}; | |
id_fun = function(group_info){ | |
var one_group = keyed_data[group_info.value]; | |
var one_row = one_group[0]; | |
// take key from first value in the group. | |
return one_row.id; | |
}; | |
elements = elements.data(kv, key_fun); | |
linkActions = function(a_elements){ | |
a_elements | |
.attr("xlink:href", function(group_info){ | |
var one_group = keyed_data[group_info.value]; | |
var one_row = one_group[0]; | |
return one_row.href; | |
}) | |
.attr("target", "_blank") | |
.attr("class", "geom") | |
; | |
}; | |
eActions = function (e) { | |
e.attr("d", function (d) { | |
var one_group = keyed_data[d.value]; | |
// filter NaN since they make the whole line disappear! | |
var no_na = one_group.filter(function(d){ | |
if(g_info.geom == "ribbon"){ | |
return !isNaN(d.x) && !isNaN(d.ymin) && !isNaN(d.ymax); | |
}else{ | |
return !isNaN(d.x) && !isNaN(d.y); | |
} | |
}); | |
return lineThing(no_na); | |
}) | |
.style("fill", function (group_info) { | |
if (g_info.geom == "line" || g_info.geom == "path") { | |
return "none"; | |
} | |
var one_group = keyed_data[group_info.value]; | |
var one_row = one_group[0]; | |
// take color for first value in the group | |
return get_fill(one_row); | |
}) | |
.style("stroke-width", function (group_info) { | |
var one_group = keyed_data[group_info.value]; | |
var one_row = one_group[0]; | |
// take size for first value in the group | |
return get_size(one_row); | |
}) | |
.style("stroke", function (group_info) { | |
var one_group = keyed_data[group_info.value]; | |
var one_row = one_group[0]; | |
// take color for first value in the group | |
return get_colour(one_row); | |
}) | |
.style("stroke-dasharray", function (group_info) { | |
var one_group = keyed_data[group_info.value]; | |
var one_row = one_group[0]; | |
// take linetype for first value in the group | |
return get_dasharray(one_row); | |
}) | |
.style("stroke-width", function (group_info) { | |
var one_group = keyed_data[group_info.value]; | |
var one_row = one_group[0]; | |
// take line size for first value in the group | |
return get_size(one_row); | |
}); | |
}; | |
eAppend = "path"; | |
}else{ | |
linkActions = function(a_elements){ | |
a_elements.attr("xlink:href", function(d){ return d.href; }) | |
.attr("target", "_blank") | |
.attr("class", "geom"); | |
}; | |
} | |
if (g_info.geom == "segment") { | |
elements = elements.data(data, key_fun); | |
eActions = function (e) { | |
e.attr("x1", function (d) { | |
return scales.x(d["x"]); | |
}) | |
.attr("x2", function (d) { | |
return scales.x(d["xend"]); | |
}) | |
.attr("y1", function (d) { | |
return scales.y(d["y"]); | |
}) | |
.attr("y2", function (d) { | |
return scales.y(d["yend"]); | |
}) | |
.style("stroke-dasharray", get_dasharray) | |
.style("stroke-width", get_size) | |
.style("stroke", get_colour); | |
}; | |
eAppend = "line"; | |
} | |
if (g_info.geom == "linerange") { | |
elements = elements.data(data, key_fun); | |
eActions = function (e) { | |
e.attr("x1", function (d) { | |
return scales.x(d["x"]); | |
}) | |
.attr("x2", function (d) { | |
return scales.x(d["x"]); | |
}) | |
.attr("y1", function (d) { | |
return scales.y(d["ymax"]); | |
}) | |
.attr("y2", function (d) { | |
return scales.y(d["ymin"]); | |
}) | |
.style("stroke-dasharray", get_dasharray) | |
.style("stroke-width", get_size) | |
.style("stroke", get_colour); | |
}; | |
eAppend = "line"; | |
} | |
if (g_info.geom == "vline") { | |
elements = elements.data(data, key_fun); | |
eActions = function (e) { | |
e.attr("x1", toXY("x", "xintercept")) | |
.attr("x2", toXY("x", "xintercept")) | |
.attr("y1", scales.y.range()[0]) | |
.attr("y2", scales.y.range()[1]) | |
.style("stroke-dasharray", get_dasharray) | |
.style("stroke-width", get_size) | |
.style("stroke", get_colour); | |
}; | |
eAppend = "line"; | |
} | |
if (g_info.geom == "hline") { | |
// pretty much a copy of geom_vline with obvious modifications | |
elements = elements.data(data, key_fun); | |
eActions = function (e) { | |
e.attr("y1", toXY("y", "yintercept")) | |
.attr("y2", toXY("y", "yintercept")) | |
.attr("x1", scales.x.range()[0]) | |
.attr("x2", scales.x.range()[1]) | |
.style("stroke-dasharray", get_dasharray) | |
.style("stroke-width", get_size) | |
.style("stroke", get_colour); | |
}; | |
eAppend = "line"; | |
} | |
if (g_info.geom == "text") { | |
elements = elements.data(data, key_fun); | |
// TODO: how to support vjust? firefox doensn't support | |
// baseline-shift... use paths? | |
// http://commons.oreilly.com/wiki/index.php/SVG_Essentials/Text | |
eActions = function (e) { | |
e.attr("x", toXY("x", "x")) | |
.attr("y", toXY("y", "y")) | |
.style("fill", get_colour) | |
.attr("font-size", get_size) | |
.style("text-anchor", get_text_anchor) | |
.text(function (d) { | |
return d.label; | |
}); | |
}; | |
eAppend = "text"; | |
} | |
if (g_info.geom == "point") { | |
elements = elements.data(data, key_fun); | |
eActions = function (e) { | |
e.attr("cx", toXY("x", "x")) | |
.attr("cy", toXY("y", "y")) | |
.attr("r", get_size) | |
.style("fill", get_fill) | |
.style("stroke", get_colour) | |
.style("stroke-width", get_stroke_width); | |
}; | |
eAppend = "circle"; | |
} | |
if (g_info.geom == "tallrect") { | |
elements = elements.data(data, key_fun); | |
eActions = function (e) { | |
e.attr("x", toXY("x", "xmin")) | |
.attr("width", function (d) { | |
return scales.x(d["xmax"]) - scales.x(d["xmin"]); | |
}) | |
.attr("y", scales.y.range()[1]) | |
.attr("height", scales.y.range()[0] - scales.y.range()[1]) | |
.style("fill", get_fill) | |
.style("stroke-dasharray", get_dasharray) | |
.style("stroke-width", get_size) | |
.style("stroke", get_colour); | |
}; | |
eAppend = "rect"; | |
} | |
if (g_info.geom == "widerect") { | |
elements = elements.data(data, key_fun); | |
eActions = function (e) { | |
e.attr("y", toXY("y", "ymax")) | |
.attr("height", function (d) { | |
return scales.y(d["ymin"]) - scales.y(d["ymax"]); | |
}) | |
.attr("x", scales.x.range()[0]) | |
.attr("width", scales.x.range()[1] - scales.x.range()[0]) | |
.style("fill", get_fill) | |
.style("stroke-dasharray", get_dasharray) | |
.style("stroke-width", get_size) | |
.style("stroke", get_colour); | |
}; | |
eAppend = "rect"; | |
} | |
if (g_info.geom == "rect") { | |
elements = elements.data(data, key_fun); | |
eActions = function (e) { | |
e.attr("x", toXY("x", "xmin")) | |
.attr("width", function (d) { | |
return Math.abs(scales.x(d.xmax) - scales.x(d.xmin)); | |
}) | |
.attr("y", toXY("y", "ymax")) | |
.attr("height", function (d) { | |
return Math.abs(scales.y(d.ymin) - scales.y(d.ymax)); | |
}) | |
.style("stroke-dasharray", get_dasharray) | |
.style("stroke-width", get_size) | |
.style("fill", get_fill); | |
if(g_info.select_style != "stroke"){ | |
e.style("stroke", get_colour); | |
} | |
}; | |
eAppend = "rect"; | |
} | |
if (g_info.geom == "boxplot") { | |
// TODO: currently boxplots are unsupported (we intentionally | |
// stop with an error in the R code). The reason why is that | |
// boxplots are drawn using multiple geoms and it is not | |
// straightforward to deal with that using our current JS | |
// code. After all, a boxplot could be produced by combing 3 | |
// other geoms (rects, lines, and points) if you really wanted | |
// it. | |
fill = "white"; | |
elements = elements.data(data); | |
eActions = function (e) { | |
e.append("line") | |
.attr("x1", function (d) { | |
return scales.x(d["x"]); | |
}) | |
.attr("x2", function (d) { | |
return scales.x(d["x"]); | |
}) | |
.attr("y1", function (d) { | |
return scales.y(d["ymin"]); | |
}) | |
.attr("y2", function (d) { | |
return scales.y(d["lower"]); | |
}) | |
.style("stroke-dasharray", get_dasharray) | |
.style("stroke-width", get_size) | |
.style("stroke", get_colour); | |
e.append("line") | |
.attr("x1", function (d) { | |
return scales.x(d["x"]); | |
}) | |
.attr("x2", function (d) { | |
return scales.x(d["x"]); | |
}) | |
.attr("y1", function (d) { | |
return scales.y(d["upper"]); | |
}) | |
.attr("y2", function (d) { | |
return scales.y(d["ymax"]); | |
}) | |
.style("stroke-dasharray", get_dasharray) | |
.style("stroke-width", get_size) | |
.style("stroke", get_colour); | |
e.append("rect") | |
.attr("x", function (d) { | |
return scales.x(d["xmin"]); | |
}) | |
.attr("width", function (d) { | |
return scales.x(d["xmax"]) - scales.x(d["xmin"]); | |
}) | |
.attr("y", function (d) { | |
return scales.y(d["upper"]); | |
}) | |
.attr("height", function (d) { | |
return Math.abs(scales.y(d["upper"]) - scales.y(d["lower"])); | |
}) | |
.style("stroke-dasharray", get_dasharray) | |
.style("stroke-width", get_size) | |
.style("stroke", get_colour) | |
.style("fill", get_fill); | |
e.append("line") | |
.attr("x1", function (d) { | |
return scales.x(d["xmin"]); | |
}) | |
.attr("x2", function (d) { | |
return scales.x(d["xmax"]); | |
}) | |
.attr("y1", function (d) { | |
return scales.y(d["middle"]); | |
}) | |
.attr("y2", function (d) { | |
return scales.y(d["middle"]); | |
}) | |
.style("stroke-dasharray", get_dasharray) | |
.style("stroke-width", get_size) | |
.style("stroke", get_colour); | |
}; | |
} | |
elements.exit().remove(); | |
var enter = elements.enter(); | |
if(g_info.aes.hasOwnProperty("href")){ | |
enter = enter.append("svg:a") | |
.append("svg:"+eAppend); | |
}else{ | |
enter = enter.append(eAppend) | |
.attr("class", "geom"); | |
} | |
var has_clickSelects = g_info.aes.hasOwnProperty("clickSelects"); | |
var has_clickSelects_variable = | |
g_info.aes.hasOwnProperty("clickSelects.variable"); | |
if (has_clickSelects || has_clickSelects_variable) { | |
var selected_funs = { | |
"opacity":{ | |
"mouseout":function (d) { | |
var alpha_on = get_alpha(d); | |
var alpha_off = get_alpha(d) - 0.5; | |
if(has_clickSelects){ | |
return ifSelectedElse(d.clickSelects, g_info.aes.clickSelects, | |
alpha_on, alpha_off); | |
}else if(has_clickSelects_variable){ | |
return ifSelectedElse(d["clickSelects.value"], | |
d["clickSelects.variable"], | |
alpha_on, alpha_off); | |
} | |
}, | |
"mouseover":function (d) { | |
return get_alpha(d); | |
} | |
}, | |
"stroke":{ | |
"mouseout":function(d){ | |
var stroke_on = "black"; | |
var stroke_off = "transparent"; | |
if(has_clickSelects){ | |
return ifSelectedElse(d.clickSelects, g_info.aes.clickSelects, | |
stroke_on, stroke_off); | |
}else{ | |
return ifSelectedElse(d["clickSelects.value"], | |
d["clickSelects.variable"], | |
stroke_on, stroke_off); | |
} | |
}, | |
"mouseover":function(d){ | |
return "black"; | |
} | |
} | |
}; //selected_funs. | |
// My original design for clicking/interactivity/transparency: | |
// Basically I wanted a really simple way to show which element | |
// in a group of clickable geom elements is currently | |
// selected. So I decided that all the non-selected elements | |
// should have alpha transparency 0.5 less than normal, and the | |
// selected element should have normal alpha transparency. Also, | |
// the element currently under the mouse has normal alpha | |
// transparency, to visually indicate that it can be | |
// clicked. Looking at my examples, you will see that I | |
// basically use this in two ways: | |
// 1. By specifying | |
// geom_vline(aes(clickSelects=variable),alpha=0.5), which | |
// implies a normal alpha transparency of 0.5. So all the vlines | |
// are hidden (normal alpha 0.5 - 0.5 = 0), except the current | |
// selection and the current element under the mouse pointer are | |
// drawn a bit faded with alpha=0.5. | |
// 2. By specifying e.g. geom_point(aes(clickSelects=variable)), | |
// that implies a normal alpha=1. Thus the current selection and | |
// the current element under the mouse pointer are fully drawn | |
// with alpha=1 and the others are shown but a bit faded with | |
// alpha=0.5 (normal alpha 1 - 0.5 = 0.5). | |
// Edit 19 March 2014: Now there are two styles to show the | |
// selection, depending on the geom. For most geoms it is as | |
// described above. But for geoms like rects with | |
// aes(fill=numericVariable), using opacity to indicate the | |
// selection results in a misleading decoding of the fill | |
// variable. So in this case we set stroke to "black" for the | |
// current selection. | |
// TODO: user-configurable selection styles. | |
var style_funs = selected_funs[g_info.select_style]; | |
var over_fun = function(e){ | |
e.style(g_info.select_style, style_funs["mouseover"]); | |
}; | |
var out_fun = function(e){ | |
e.style(g_info.select_style, style_funs["mouseout"]); | |
}; | |
elements.call(out_fun) | |
.on("mouseover", function (d) { | |
d3.select(this).call(over_fun); | |
}) | |
.on("mouseout", function (d) { | |
d3.select(this).call(out_fun); | |
}) | |
; | |
if(has_clickSelects){ | |
elements.on("click", function (d) { | |
// The main idea of how clickSelects works: when we click | |
// something, we call update_selector with the clicked | |
// value. | |
var s_name = g_info.aes.clickSelects; | |
update_selector(s_name, d.clickSelects); | |
}); | |
}else{ | |
elements.on("click", function(d){ | |
var s_name = d["clickSelects.variable"]; | |
var s_value = d["clickSelects.value"]; | |
update_selector(s_name, s_value); | |
}); | |
} | |
}else{//has neither clickSelects nor clickSelects.variable. | |
elements.style("opacity", get_alpha); | |
} | |
var has_tooltip = g_info.aes.hasOwnProperty("tooltip"); | |
if(has_clickSelects || has_tooltip || has_clickSelects_variable){ | |
var text_fun, get_one; | |
if(g_info.data_is_object){ | |
get_one = function(d_or_kv){ | |
var one_group = keyed_data[d_or_kv.value]; | |
return one_group[0]; | |
}; | |
}else{ | |
get_one = function(d_or_kv){ | |
return d_or_kv; | |
}; | |
} | |
if(has_tooltip){ | |
text_fun = function(d){ | |
return d.tooltip; | |
}; | |
}else if(has_clickSelects){ | |
text_fun = function(d){ | |
var v_name = g_info.aes.clickSelects; | |
return v_name + " " + d.clickSelects; | |
}; | |
}else{ //clickSelects_variable | |
text_fun = function(d){ | |
return d["clickSelects.variable"] + " " + d["clickSelects.value"]; | |
}; | |
} | |
// if elements have an existing title, remove it. | |
elements.selectAll("title").remove(); | |
elements.append("svg:title") | |
.text(function(d_or_kv){ | |
var d = get_one(d_or_kv); | |
return text_fun(d); | |
}) | |
; | |
} | |
// Set attributes of only the entering elements. This is needed to | |
// prevent things from flying around from the upper left when they | |
// enter the plot. | |
eActions(enter); // DO NOT DELETE! | |
if(Selectors.hasOwnProperty(selector_name)){ | |
var milliseconds = Selectors[selector_name].duration; | |
elements = elements.transition().duration(milliseconds); | |
} | |
if(g_info.aes.hasOwnProperty("id")){ | |
elements.attr("id", id_fun); | |
} | |
if(g_info.aes.hasOwnProperty("href")){ | |
// elements are <a>, children are e.g. <circle> | |
var linked_geoms = elements.select(eAppend); | |
// d3.select(linked_geoms).data(data, key_fun); // WHY did we need this? | |
eActions(linked_geoms); | |
linkActions(elements); | |
}else{ | |
// elements are e.g. <circle> | |
eActions(elements); // Set the attributes of all elements (enter/exit/stay) | |
} | |
}; | |
var value_tostring = function(selected_values) { | |
//function that is helpful to change the format of the string | |
var selector_url="#" | |
for (var selc_var in selected_values){ | |
if(selected_values.hasOwnProperty(selc_var)){ | |
var values_str=selected_values[selc_var].join(); | |
var sub_url=selc_var.concat("=","{",values_str,"}"); | |
selector_url=selector_url.concat(sub_url); | |
} | |
} | |
var url_nohash=window.location.href.match(/(^[^#]*)/)[0]; | |
selector_url=url_nohash.concat(selector_url); | |
return selector_url; | |
}; | |
var get_values=function(){ | |
// function that is useful to get the selected values | |
var selected_values={} | |
for(var s_name in Selectors){ | |
var s_info=Selectors[s_name]; | |
var initial_selections = []; | |
if(s_info.type==="single"){ | |
initial_selections=[s_info.selected]; | |
} | |
else{ | |
for(var i in s_info.selected) { | |
initial_selections[i] = s_info.selected[i]; | |
} | |
} | |
selected_values[s_name]=initial_selections; | |
} | |
return selected_values; | |
}; | |
// var counter=-1; | |
// var update_selector_url = function() { | |
// var selected_values=get_values(); | |
// var url=value_tostring(selected_values); | |
// if(counter===-1){ | |
// $(".table_selector_widgets").after("<table style='display:none' class='urltable'><tr class='selectorurl'></tr></table>"); | |
// $(".selectorurl").append("<p>Current URL</p>"); | |
// $(".selectorurl").append("<a href=''></a>"); | |
// counter++; | |
// } | |
// $(".selectorurl a").attr("href",url).text(url); | |
// }; | |
// update scales for the plots that have update_axes option in | |
// theme_animint | |
function update_scales(p_name, axes, v_name, value){ | |
// Get pre-computed domain | |
var axis_domains = Plots[p_name]["axis_domains"]; | |
if(!isArray(axes)){ | |
axes = [axes]; | |
} | |
if(axis_domains != null){ | |
axes.forEach(function(xyaxis){ | |
// For Each PANEL, update the axes | |
Plots[p_name].layout.PANEL.forEach(function(panel_i, i){ | |
// Determine whether this panel has a scale or not | |
// If not we just update the scales according to the common | |
// scale and skip the updating of axis | |
var draw_axes = Plots[p_name].layout["AXIS_"+ xyaxis.toUpperCase()][i]; | |
if(draw_axes){ | |
var use_panel = panel_i; | |
}else{ | |
var use_panel = Plots[p_name].layout.PANEL[0]; | |
} | |
// We update the current selection of the plot every time | |
// and use it to index the correct domain | |
var curr_select = axis_domains[xyaxis].curr_select; | |
if(axis_domains[xyaxis].selectors.indexOf(v_name) > -1){ | |
curr_select[v_name] = value; | |
var str = use_panel+"."; | |
for(selec in curr_select){ | |
str = str + curr_select[selec] + "_"; | |
} | |
str = str.substring(0, str.length - 1); // Strip off trailing underscore | |
var use_domain = axis_domains[xyaxis]["domains"][str]; | |
} | |
if(use_domain != null){ | |
Plots[p_name]["scales"][panel_i][xyaxis].domain(use_domain); | |
var scales = Plots[p_name]["scales"][panel_i][xyaxis]; | |
// major and minor grid lines as calculated in the compiler | |
var grid_vals = Plots[p_name]["axis_domains"][xyaxis]["grids"][str]; | |
// Once scales are updated, update the axis ticks if needed | |
if(draw_axes){ | |
// Tick values are same as major grid lines | |
update_axes(p_name, xyaxis, panel_i, grid_vals[1]); | |
} | |
// Update major and minor grid lines | |
update_grids(p_name, xyaxis, panel_i, grid_vals, scales); | |
} | |
}); | |
}); | |
} | |
} | |
// Update the axis ticks etc. once plot is zoomed in/out | |
// currently called from update_scales. | |
function update_axes(p_name, axes, panel_i, tick_vals){ | |
var orientation; | |
if(axes == "x"){ | |
orientation = "bottom"; | |
}else{ | |
orientation = "left"; | |
} | |
if(!isArray(tick_vals)){ | |
tick_vals = [tick_vals]; | |
} | |
var xyaxis = d3.svg.axis() | |
.scale(Plots[p_name]["scales"][panel_i][axes]) | |
.orient(orientation) | |
.tickValues(tick_vals); | |
// update existing axis | |
var xyaxis_g = element.select("#plot_"+p_name).select("."+axes+"axis_"+panel_i) | |
.transition() | |
.duration(1000) | |
.call(xyaxis); | |
} | |
// Update major/minor grids once axes ticks have been updated | |
function update_grids(p_name, axes, panel_i, grid_vals, scales){ | |
// Select panel to update | |
var bgr = element.select("#plot_"+p_name).select(".bgr"+panel_i); | |
// Update major and minor grid lines | |
["minor", "major"].forEach(function(grid_class, j){ | |
var lines = bgr.select(".grid_"+grid_class).select("."+axes); | |
var xy1, xy2; | |
if(axes == "x"){ | |
xy1 = lines.select("line").attr("y1"); | |
xy2 = lines.select("line").attr("y2"); | |
}else{ | |
xy1 = lines.select("line").attr("x1"); | |
xy2 = lines.select("line").attr("x2"); | |
} | |
// Get default values for grid lines like colour, stroke etc. | |
var grid_background = Plots[p_name]["grid_"+grid_class]; | |
var col = grid_background.colour; | |
var lt = grid_background.linetype; | |
var size = grid_background.size; | |
var cap = grid_background.lineend; | |
// Remove old lines | |
lines.selectAll("line") | |
.remove(); | |
if(!isArray(grid_vals[j])){ | |
grid_vals[j] = [grid_vals[j]]; | |
} | |
if(axes == "x"){ | |
lines.selectAll("line") | |
.data(grid_vals[j]) | |
.enter() | |
.append("line") | |
.attr("y1", xy1) | |
.attr("y2", xy2) | |
.attr("x1", function(d) { return scales(d); }) | |
.attr("x2", function(d) { return scales(d); }) | |
.style("stroke", col) | |
.style("stroke-linecap", cap) | |
.style("stroke-width", size) | |
.style("stroke-dasharray", function() { | |
return linetypesize2dasharray(lt, size); | |
}); | |
}else{ | |
lines.selectAll("line") | |
.data(grid_vals[j]) | |
.enter() | |
.append("line") | |
.attr("x1", xy1) | |
.attr("x2", xy2) | |
.attr("y1", function(d) { return scales(d); }) | |
.attr("y2", function(d) { return scales(d); }) | |
.style("stroke", col) | |
.style("stroke-linecap", cap) | |
.style("stroke-width", size) | |
.style("stroke-dasharray", function() { | |
return linetypesize2dasharray(lt, size); | |
}); | |
} | |
}); | |
} | |
var update_selector = function (v_name, value) { | |
if(!Selectors.hasOwnProperty(v_name)){ | |
return; | |
} | |
value = value + ""; | |
var s_info = Selectors[v_name]; | |
if(s_info.type == "single"){ | |
// value is the new selection. | |
s_info.selected = value; | |
}else{ | |
// value should be added or removed from the selection. | |
var i_value = s_info.selected.indexOf(value); | |
if(i_value == -1){ | |
// not found, add to selection. | |
s_info.selected.push(value); | |
}else{ | |
// found, remove from selection. | |
s_info.selected.splice(i_value, 1); | |
} | |
} | |
// update_selector_url() | |
// if there are levels, then there is a selectize widget which | |
// should be updated. | |
if(isArray(s_info.levels)){ | |
// the jquery ids | |
if(s_info.type == "single") { | |
var selected_ids = v_name.concat("___", value); | |
} else { | |
var selected_ids = []; | |
for(i in s_info.selected) { | |
selected_ids[i] = v_name.concat("___", s_info.selected[i]); | |
} | |
} | |
// from | |
// https://github.com/brianreavis/selectize.js/blob/master/docs/api.md: | |
// setValue(value, silent) If "silent" is truthy, no change | |
// event will be fired on the original input. | |
selectized_array[v_name].setValue(selected_ids, true); | |
} | |
// For each updated geom, check if the axes of the plot need to be | |
// updated and update them | |
s_info.update.forEach(function(g_name){ | |
var plot_name = g_name.split("_").pop(); | |
var axes = Plots[plot_name]["options"]["update_axes"]; | |
if(axes != null){ | |
update_scales(plot_name, axes, v_name, value); | |
} | |
}); | |
update_legend_opacity(v_name); | |
s_info.update.forEach(function(g_name){ | |
update_geom(g_name, v_name); | |
}); | |
}; | |
var ifSelectedElse = function (s_value, s_name, selected, not_selected) { | |
var is_selected; | |
var s_info = Selectors[s_name]; | |
if(s_info.type == "single"){ | |
is_selected = s_value == s_info.selected; | |
}else{ | |
is_selected = s_info.selected.indexOf(s_value) != -1; | |
} | |
if(is_selected){ | |
return selected; | |
} else { | |
return not_selected; | |
} | |
}; | |
function update_next_animation(){ | |
var values = d3.values(Animation.done_geoms); | |
if(d3.sum(values) == values.length){ | |
// If the values in done_geoms are all 1, then we have loaded | |
// all of the animation-related chunks, and we can start | |
// playing the animation. | |
var v_name = Animation.variable; | |
var cur = Selectors[v_name].selected; | |
var next = Animation.next[cur]; | |
update_selector(v_name, next); | |
} | |
} | |
// The main idea of how legends work: | |
// 1. In getLegend in animint.R I export the legend entries as a | |
// list of rows that can be used in a data() bind in D3. | |
// 2. Here in add_legend I create a <table> for every legend, and | |
// then I bind the legend entries to <tr>, <td>, and <svg> elements. | |
var add_legend = function(p_name, p_info){ | |
// case of multiple legends, d3 reads legend structure in as an array | |
var tdRight = element.select("td."+p_name+"_legend"); | |
var legendkeys = d3.keys(p_info.legend); | |
for(var i=0; i<legendkeys.length; i++){ | |
var legend_key = legendkeys[i]; | |
var l_info = p_info.legend[legend_key]; | |
// the table that contains one row for each legend element. | |
var legend_table = tdRight.append("table") | |
.attr("class", "legend") | |
; | |
var legend_class = legend_class_name(l_info["class"]); | |
var legend_id = p_info.plot_id + "_" + legend_class; | |
// the legend table with breaks/value/label . | |
// TODO: variable and value should be set in the compiler! What | |
// if label is different from the data value? | |
for(var entry_i=0; entry_i < l_info.entries.length; entry_i++){ | |
var entry = l_info.entries[entry_i]; | |
entry.variable = l_info.selector; | |
entry.value = entry.label; | |
entry.id = safe_name(legend_id + "_" + entry["label"]); | |
} | |
var legend_rows = legend_table.selectAll("tr") | |
.data(l_info.entries) | |
.enter() | |
.append("tr") | |
// in a good data viz there should not be more than one legend | |
// that shows the same thing, so there should be no duplicate | |
// id. | |
.attr("id", function(d) { return d["id"]; }) | |
.attr("class", legend_class) | |
; | |
if(l_info.selector != null){ | |
legend_rows | |
.on("click", function(d) { | |
update_selector(d.variable, d.value); | |
}) | |
.attr("title", function(d) { | |
return "Toggle " + d.value; | |
}) | |
.attr("style", "cursor:pointer") | |
; | |
} | |
var first_tr = legend_table.insert("tr", "tr"); | |
var first_th = first_tr.append("th") | |
.attr("align", "left") | |
.attr("colspan", 2) | |
.text(l_info.title) | |
.attr("class", legend_class) | |
; | |
var legend_svgs = legend_rows.append("td") | |
.append("svg") | |
.attr("id", function(d){return d["id"]+"_svg";}) | |
.attr("height", 14) | |
.attr("width", 20); | |
var pointscale = d3.scale.linear().domain([0,7]).range([1,4]); | |
// scale points so they are visible in the legend. (does not | |
// affect plot scaling) | |
var linescale = d3.scale.linear().domain([0,6]).range([1,4]); | |
// scale lines so they are visible in the legend. (does not | |
// affect plot scaling) | |
if(l_info.geoms.indexOf("polygon")>-1){ | |
// aesthetics that would draw a rect | |
legend_svgs.append("rect") | |
.attr("x", 2) | |
.attr("y", 2) | |
.attr("width", 10) | |
.attr("height", 10) | |
.style("stroke-width", function(d){return d["polygonsize"]||1;}) | |
.style("stroke-dasharray", function(d){ | |
return linetypesize2dasharray(d["polygonlinetype"], d["size"]||2); | |
}) | |
.style("stroke", function(d){return d["polygoncolour"] || "#000000";}) | |
.style("fill", function(d){return d["polygonfill"] || "#FFFFFF";}) | |
.style("opacity", function(d){return d["polygonalpha"]||1;}); | |
} | |
if(l_info.geoms.indexOf("text")>-1){ | |
// aesthetics that would draw a rect | |
legend_svgs.append("text") | |
.attr("x", 10) | |
.attr("y", 14) | |
.style("fill", function(d){return d["textcolour"]||1;}) | |
.style("text-anchor", "middle") | |
.attr("font-size", function(d){return d["textsize"]||1;}) | |
.text("a"); | |
} | |
if(l_info.geoms.indexOf("path")>-1){ | |
// aesthetics that would draw a line | |
legend_svgs.append("line") | |
.attr("x1", 1).attr("x2", 19).attr("y1", 7).attr("y2", 7) | |
.style("stroke-width", function(d){ | |
return linescale(d["pathsize"])||2; | |
}) | |
.style("stroke-dasharray", function(d){ | |
return linetypesize2dasharray(d["pathlinetype"], d["pathsize"] || 2); | |
}) | |
.style("stroke", function(d){return d["pathcolour"] || "#000000";}) | |
.style("opacity", function(d){return d["pathalpha"]||1;}); | |
} | |
if(l_info.geoms.indexOf("point")>-1){ | |
// aesthetics that would draw a point | |
legend_svgs.append("circle") | |
.attr("cx", 10) | |
.attr("cy", 7) | |
.attr("r", function(d){return pointscale(d["pointsize"])||4;}) | |
.style("stroke", function(d){return d["pointcolour"] || "#000000";}) | |
.style("fill", function(d){ | |
return d["pointfill"] || d["pointcolour"] || "#000000"; | |
}) | |
.style("opacity", function(d){return d["pointalpha"]||1;}); | |
} | |
legend_rows.append("td") | |
.attr("align", "left") // TODO: right for numbers? | |
.attr("class", "legend_entry_label") | |
.attr("id", function(d){ return d["id"]+"_label"; }) | |
.text(function(d){ return d["label"];}); | |
} | |
} | |
// Download the main description of the interactive plot. | |
d3.json(json_file, function (error, response) { | |
if(response.hasOwnProperty("title")){ | |
// This selects the title of the web page, outside of wherever | |
// the animint is defined, usually a <div> -- so it is OK to use | |
// global d3.select here. | |
d3.select("title").text(response.title); | |
} | |
// Add plots. | |
for (var p_name in response.plots) { | |
add_plot(p_name, response.plots[p_name]); | |
add_legend(p_name, response.plots[p_name]); | |
// Append style sheet to document head. | |
css.appendChild(document.createTextNode(styles.join(" "))); | |
document.head.appendChild(css); | |
} | |
// Then add selectors and start downloading the first data subset. | |
for (var s_name in response.selectors) { | |
add_selector(s_name, response.selectors[s_name]); | |
} | |
// Update the scales/axes of the plots if needed | |
// We do this so that the plots zoom in initially after loading | |
for (var p_name in response.plots) { | |
if(response.plots[p_name].axis_domains !== null){ | |
for(var xy in response.plots[p_name].axis_domains){ | |
var selectors = response.plots[p_name].axis_domains[xy].selectors; | |
if(!isArray(selectors)){ | |
selectors = [selectors]; | |
} | |
update_scales(p_name, xy, selectors[0], | |
response.selectors[selectors[0]].selected); | |
} | |
} | |
} | |
//////////////////////////////////////////// | |
// Widgets at bottom of page | |
//////////////////////////////////////////// | |
element.append("br"); | |
// loading table. | |
var show_hide_table = element.append("button") | |
.text("Show download status table"); | |
show_hide_table | |
.on("click", function(){ | |
if(this.textContent == "Show download status table"){ | |
loading.style("display", ""); | |
show_hide_table.text("Hide download status table"); | |
}else{ | |
loading.style("display", "none"); | |
show_hide_table.text("Show download status table"); | |
} | |
}); | |
var loading = element.append("table") | |
.style("display", "none"); | |
Widgets["loading"] = loading; | |
var tr = loading.append("tr"); | |
tr.append("th").text("geom"); | |
tr.append("th").attr("class", "chunk").text("selected chunk"); | |
tr.append("th").attr("class", "downloaded").text("downloaded"); | |
tr.append("th").attr("class", "total").text("total"); | |
tr.append("th").attr("class", "status").text("status"); | |
// Add geoms and construct nest operators. | |
for (var g_name in response.geoms) { | |
add_geom(g_name, response.geoms[g_name]); | |
} | |
// Animation control widgets. | |
var show_message = "Show animation controls"; | |
// add a button to view the animation widgets | |
var show_hide_animation_controls = element.append("button") | |
.text(show_message) | |
.attr("id", viz_id + "_show_hide_animation_controls") | |
.on("click", function(){ | |
if(this.textContent == show_message){ | |
time_table.style("display", ""); | |
show_hide_animation_controls.text("Hide animation controls"); | |
}else{ | |
time_table.style("display", "none"); | |
show_hide_animation_controls.text(show_message); | |
} | |
}) | |
; | |
// table of the animint widgets | |
var time_table = element.append("table") | |
.style("display", "none"); | |
var first_tr = time_table.append("tr"); | |
var first_th = first_tr.append("th"); | |
// if there's a time variable, add a button to pause the animint | |
if(response.time){ | |
Animation.next = {}; | |
Animation.ms = response.time.ms; | |
Animation.variable = response.time.variable; | |
Animation.sequence = response.time.sequence; | |
Widgets["play_pause"] = first_th.append("button") | |
.text("Play") | |
.attr("id", "play_pause") | |
.on("click", function(){ | |
if(this.textContent == "Play"){ | |
Animation.play(); | |
}else{ | |
Animation.pause(false); | |
} | |
}) | |
; | |
} | |
first_tr.append("th").text("milliseconds"); | |
if(response.time){ | |
var second_tr = time_table.append("tr"); | |
second_tr.append("td").text("updates"); | |
second_tr.append("td").append("input") | |
.attr("id", "updates_ms") | |
.attr("type", "text") | |
.attr("value", Animation.ms) | |
.on("change", function(){ | |
Animation.pause(false); | |
Animation.ms = this.value; | |
Animation.play(); | |
}) | |
; | |
} | |
for(s_name in Selectors){ | |
var s_info = Selectors[s_name]; | |
if(!s_info.hasOwnProperty("duration")){ | |
s_info.duration = 0; | |
} | |
} | |
var selector_array = d3.keys(Selectors); | |
var duration_rows = time_table.selectAll("tr.duration") | |
.data(selector_array) | |
.enter() | |
.append("tr"); | |
duration_rows | |
.append("td") | |
.text(function(s_name){return s_name;}); | |
var duration_tds = duration_rows.append("td"); | |
var duration_inputs = duration_tds | |
.append("input") | |
.attr("id", function(s_name){ | |
return viz_id + "_duration_ms_" + s_name; | |
}) | |
.attr("type", "text") | |
.on("change", function(s_name){ | |
Selectors[s_name].duration = this.value; | |
}) | |
.attr("value", function(s_name){ | |
return Selectors[s_name].duration; | |
}); | |
// selector widgets | |
var toggle_message = "Show selection menus"; | |
var show_or_hide_fun = function(){ | |
if(this.textContent == toggle_message){ | |
selector_table.style("display", ""); | |
show_hide_selector_widgets.text("Hide selection menus"); | |
d3.select(".urltable").style("display","") | |
}else{ | |
selector_table.style("display", "none"); | |
show_hide_selector_widgets.text(toggle_message); | |
d3.select(".urltable").style("display","none") | |
} | |
} | |
var show_hide_selector_widgets = element.append("button") | |
.text(toggle_message) | |
.attr("class", "show_hide_selector_widgets") | |
.on("click", show_or_hide_fun) | |
; | |
// adding a table for selector widgets | |
var selector_table = element.append("table") | |
.style("display", "none") | |
.attr("class", "table_selector_widgets") | |
; | |
var selector_first_tr = selector_table.append("tr"); | |
selector_first_tr | |
.append("th") | |
.text("Variable") | |
; | |
selector_first_tr | |
.append("th") | |
.text("Selected value(s)") | |
; | |
// looping through and adding a row for each selector | |
for(s_name in Selectors) { | |
var s_info = Selectors[s_name]; | |
// for .variable .value selectors, levels is undefined and we do | |
// not want to make a selectize widget. | |
// TODO: why does it take so long to initialize the selectize | |
// widget when there are many (>1000) values? | |
if(isArray(s_info.levels)){ | |
// If there were no geoms that specified clickSelects for this | |
// selector, then there is no way to select it other than the | |
// selectize widgets (and possibly legends). So in this case | |
// we show the selectize widgets by default. | |
var selector_widgets_hidden = | |
show_hide_selector_widgets.text() == toggle_message; | |
var has_no_clickSelects = | |
!Selectors[s_name].hasOwnProperty("clickSelects") | |
var has_no_legend = | |
!Selectors[s_name].hasOwnProperty("legend") | |
if(selector_widgets_hidden && has_no_clickSelects && has_no_legend){ | |
var node = show_hide_selector_widgets.node(); | |
show_or_hide_fun.apply(node); | |
} | |
// removing "." from name so it can be used in ids | |
var s_name_id = legend_class_name(s_name); | |
// adding a row for each selector | |
var selector_widget_row = selector_table | |
.append("tr") | |
.attr("class", function() { return s_name_id + "_selector_widget"; }) | |
; | |
selector_widget_row.append("td").text(s_name); | |
// adding the selector | |
var selector_widget_select = selector_widget_row | |
.append("td") | |
.append("select") | |
.attr("class", function() { return s_name_id + "_input"; }) | |
.attr("placeholder", function() { return "Toggle " + s_name; }); | |
// adding an option for each level of the variable | |
selector_widget_select.selectAll("option") | |
.data(s_info.levels) | |
.enter() | |
.append("option") | |
.attr("value", function(d) { return d; }) | |
.text(function(d) { return d; }); | |
// making sure that the first option is blank | |
selector_widget_select | |
.insert("option") | |
.attr("value", "") | |
.text(function() { return "Toggle " + s_name; }); | |
// calling selectize | |
var selectize_selector = to_select + ' .' + s_name_id + "_input"; | |
if(s_info.type == "single") { | |
// setting up array of selector and options | |
var selector_values = []; | |
for(i in s_info.levels) { | |
selector_values[i] = { | |
id: s_name.concat("___", s_info.levels[i]), | |
text: s_info.levels[i] | |
}; | |
} | |
// the id of the first selector | |
var selected_id = s_name.concat("___", s_info.selected); | |
// if single selection, only allow one item | |
var $temp = $(selectize_selector) | |
.selectize({ | |
create: false, | |
valueField: 'id', | |
labelField: 'text', | |
searchField: ['text'], | |
options: selector_values, | |
items: [selected_id], | |
maxItems: 1, | |
allowEmptyOption: true, | |
onChange: function(value) { | |
// extracting the name and the level to update | |
var selector_name = value.split("___")[0]; | |
var selected_level = value.split("___")[1]; | |
// updating the selector | |
update_selector(selector_name, selected_level); | |
} | |
}) | |
; | |
} else { // multiple selection: | |
// setting up array of selector and options | |
var selector_values = []; | |
if(typeof s_info.levels == "object") { | |
for(i in s_info.levels) { | |
selector_values[i] = { | |
id: s_name.concat("___", s_info.levels[i]), | |
text: s_info.levels[i] | |
}; | |
} | |
} else { | |
selector_values[0] = { | |
id: s_name.concat("___", s_info.levels), | |
text: s_info.levels | |
}; | |
} | |
// setting up an array to contain the initally selected elements | |
var initial_selections = []; | |
for(i in s_info.selected) { | |
initial_selections[i] = s_name.concat("___", s_info.selected[i]); | |
} | |
// construct the selectize | |
var $temp = $(selectize_selector) | |
.selectize({ | |
create: false, | |
valueField: 'id', | |
labelField: 'text', | |
searchField: ['text'], | |
options: selector_values, | |
items: initial_selections, | |
maxItems: s_info.levels.length, | |
allowEmptyOption: true, | |
onChange: function(value) { | |
// if nothing is selected, remove what is currently selected | |
if(value == null) { | |
// extracting the selector ids from the options | |
var the_ids = Object.keys($(this)[0].options); | |
// the name of the appropriate selector | |
var selector_name = the_ids[0].split("___")[0]; | |
// the previously selected elements | |
var old_selections = Selectors[selector_name].selected; | |
// updating the selector for each of the old selections | |
old_selections.forEach(function(element) { | |
update_selector(selector_name, element); | |
}); | |
} else { // value is not null: | |
// grabbing the name of the selector from the selected value | |
var selector_name = value[0].split("___")[0]; | |
// identifying the levels that should be selected | |
var specified_levels = []; | |
for(i in value) { | |
specified_levels[i] = value[i].split("___")[1]; | |
} | |
// the previously selected entries | |
old_selections = Selectors[selector_name].selected; | |
// the levels that need to have selections turned on | |
specified_levels | |
.filter(function(n) { | |
return old_selections.indexOf(n) == -1; | |
}) | |
.forEach(function(element) { | |
update_selector(selector_name, element); | |
}) | |
; | |
// the levels that need to be turned off | |
// - same approach | |
old_selections | |
.filter(function(n) { | |
return specified_levels.indexOf(n) == -1; | |
}) | |
.forEach(function(element) { | |
update_selector(selector_name, element); | |
}) | |
; | |
}//value==null | |
}//onChange | |
})//selectize | |
; | |
}//single or multiple selection. | |
selectized_array[s_name] = $temp[0].selectize; | |
}//levels, is.variable.value | |
} // close for loop through selector widgets | |
// If this is an animation, then start downloading all the rest of | |
// the data, and start the animation. | |
if (response.time) { | |
var i, prev, cur; | |
for (var i = 0; i < Animation.sequence.length; i++) { | |
if (i == 0) { | |
prev = Animation.sequence[Animation.sequence.length-1]; | |
} else { | |
prev = Animation.sequence[i - 1]; | |
} | |
cur = Animation.sequence[i]; | |
Animation.next[prev] = cur; | |
} | |
Animation.timer = null; | |
Animation.play = function(){ | |
if(Animation.timer == null){ // only play if not already playing. | |
// as shown on http://bl.ocks.org/mbostock/3808234 | |
Animation.timer = setInterval(update_next_animation, Animation.ms); | |
Widgets["play_pause"].text("Pause"); | |
} | |
}; | |
Animation.play_after_visible = false; | |
Animation.pause = function(play_after_visible){ | |
Animation.play_after_visible = play_after_visible; | |
clearInterval(Animation.timer); | |
Animation.timer = null; | |
Widgets["play_pause"].text("Play"); | |
}; | |
var s_info = Selectors[Animation.variable]; | |
Animation.done_geoms = {}; | |
s_info.update.forEach(function(g_name){ | |
var g_info = Geoms[g_name]; | |
if(g_info.chunk_order.length == 1 && | |
g_info.chunk_order[0] == Animation.variable){ | |
g_info.seq_i = Animation.sequence.indexOf(s_info.selected); | |
g_info.seq_count = 0; | |
Animation.done_geoms[g_name] = 0; | |
download_next(g_name); | |
} | |
}); | |
Animation.play(); | |
all_geom_names = d3.keys(response.geoms); | |
// This code starts/stops the animation timer when the page is | |
// hidden, inspired by | |
// http://stackoverflow.com/questions/1060008 | |
function onchange (evt) { | |
if(document.visibilityState == "visible"){ | |
if(Animation.play_after_visible){ | |
Animation.play(); | |
} | |
}else{ | |
if(Widgets["play_pause"].text() == "Pause"){ | |
Animation.pause(true); | |
} | |
} | |
}; | |
document.addEventListener("visibilitychange", onchange); | |
} | |
// update_selector_url() | |
var check_func=function(){ | |
var status_array = $('.status').map(function(){ | |
return $.trim($(this).text()); | |
}).get(); | |
status_array=status_array.slice(1) | |
return status_array.every(function(elem){ return elem === "displayed"}); | |
} | |
if(window.location.hash) { | |
var fragment=window.location.hash; | |
fragment=fragment.slice(1); | |
fragment=decodeURI(fragment) | |
var frag_array=fragment.split(/(.*?})/); | |
frag_array=frag_array.filter(function(x){ return x!=""}) | |
frag_array.forEach(function(selector_string){ | |
var selector_hash=selector_string.split("="); | |
var selector_nam=selector_hash[0]; | |
var selector_values=selector_hash[1]; | |
var re = /\{(.*?)\}/; | |
selector_values = re.exec(selector_values)[1]; | |
var array_values = selector_values.split(','); | |
if(Selectors.hasOwnProperty(selector_nam)){ | |
var s_info = Selectors[selector_nam] | |
if(s_info.type=="single"){//TODO fix | |
array_values.forEach(function(element) { | |
wait_until_then(100, check_func, update_selector,selector_nam,element) | |
if(response.time)Animation.pause(true) | |
}); | |
}else{ | |
var old_selections = Selectors[selector_nam].selected; | |
// the levels that need to have selections turned on | |
array_values | |
.filter(function(n) { | |
return old_selections.indexOf(n) == -1; | |
}) | |
.forEach(function(element) { | |
wait_until_then(100, check_func, update_selector,selector_nam,element) | |
if(response.time){ | |
Animation.pause(true) | |
} | |
}); | |
old_selections | |
.filter(function(n) { | |
return array_values.indexOf(n) == -1; | |
}) | |
.forEach(function(element) { | |
wait_until_then(100, check_func, update_selector,selector_nam,element) | |
if(response.time){ | |
Animation.pause(true) | |
} | |
}); | |
}//if(single) else multiple selection | |
}//if(Selectors.hasOwnProperty(selector_nam)) | |
})//frag_array.forEach | |
}//if(window.location.hash) | |
}); | |
}; | |
// Copyright (c) 2013, Michael Bostock | |
// All rights reserved. | |
// Redistribution and use in source and binary forms, with or without | |
// modification, are permitted provided that the following conditions are met: | |
// * Redistributions of source code must retain the above copyright notice, this | |
// list of conditions and the following disclaimer. | |
// * Redistributions in binary form must reproduce the above copyright notice, | |
// this list of conditions and the following disclaimer in the documentation | |
// and/or other materials provided with the distribution. | |
// * The name Michael Bostock may not be used to endorse or promote products | |
// derived from this software without specific prior written permission. | |
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | |
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |
// DISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT, | |
// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, | |
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY | |
// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | |
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, | |
// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
d3 = function() { | |
var π = Math.PI, ε = 1e-6, d3 = { | |
version: "3.0.6" | |
}, d3_radians = π / 180, d3_degrees = 180 / π, d3_document = document, d3_window = window; | |
function d3_target(d) { | |
return d.target; | |
} | |
function d3_source(d) { | |
return d.source; | |
} | |
var d3_format_decimalPoint = ".", d3_format_thousandsSeparator = ",", d3_format_grouping = [ 3, 3 ]; | |
if (!Date.now) Date.now = function() { | |
return +new Date(); | |
}; | |
try { | |
d3_document.createElement("div").style.setProperty("opacity", 0, ""); | |
} catch (error) { | |
var d3_style_prototype = d3_window.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty; | |
d3_style_prototype.setProperty = function(name, value, priority) { | |
d3_style_setProperty.call(this, name, value + "", priority); | |
}; | |
} | |
function d3_class(ctor, properties) { | |
try { | |
for (var key in properties) { | |
Object.defineProperty(ctor.prototype, key, { | |
value: properties[key], | |
enumerable: false | |
}); | |
} | |
} catch (e) { | |
ctor.prototype = properties; | |
} | |
} | |
var d3_array = d3_arraySlice; | |
function d3_arrayCopy(pseudoarray) { | |
var i = -1, n = pseudoarray.length, array = []; | |
while (++i < n) array.push(pseudoarray[i]); | |
return array; | |
} | |
function d3_arraySlice(pseudoarray) { | |
return Array.prototype.slice.call(pseudoarray); | |
} | |
try { | |
d3_array(d3_document.documentElement.childNodes)[0].nodeType; | |
} catch (e) { | |
d3_array = d3_arrayCopy; | |
} | |
var d3_arraySubclass = [].__proto__ ? function(array, prototype) { | |
array.__proto__ = prototype; | |
} : function(array, prototype) { | |
for (var property in prototype) array[property] = prototype[property]; | |
}; | |
d3.map = function(object) { | |
var map = new d3_Map(); | |
for (var key in object) map.set(key, object[key]); | |
return map; | |
}; | |
function d3_Map() {} | |
d3_class(d3_Map, { | |
has: function(key) { | |
return d3_map_prefix + key in this; | |
}, | |
get: function(key) { | |
return this[d3_map_prefix + key]; | |
}, | |
set: function(key, value) { | |
return this[d3_map_prefix + key] = value; | |
}, | |
remove: function(key) { | |
key = d3_map_prefix + key; | |
return key in this && delete this[key]; | |
}, | |
keys: function() { | |
var keys = []; | |
this.forEach(function(key) { | |
keys.push(key); | |
}); | |
return keys; | |
}, | |
values: function() { | |
var values = []; | |
this.forEach(function(key, value) { | |
values.push(value); | |
}); | |
return values; | |
}, | |
entries: function() { | |
var entries = []; | |
this.forEach(function(key, value) { | |
entries.push({ | |
key: key, | |
value: value | |
}); | |
}); | |
return entries; | |
}, | |
forEach: function(f) { | |
for (var key in this) { | |
if (key.charCodeAt(0) === d3_map_prefixCode) { | |
f.call(this, key.substring(1), this[key]); | |
} | |
} | |
} | |
}); | |
var d3_map_prefix = "\0", d3_map_prefixCode = d3_map_prefix.charCodeAt(0); | |
function d3_identity(d) { | |
return d; | |
} | |
function d3_true() { | |
return true; | |
} | |
function d3_functor(v) { | |
return typeof v === "function" ? v : function() { | |
return v; | |
}; | |
} | |
d3.functor = d3_functor; | |
d3.rebind = function(target, source) { | |
var i = 1, n = arguments.length, method; | |
while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]); | |
return target; | |
}; | |
function d3_rebind(target, source, method) { | |
return function() { | |
var value = method.apply(source, arguments); | |
return arguments.length ? target : value; | |
}; | |
} | |
d3.ascending = function(a, b) { | |
return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; | |
}; | |
d3.descending = function(a, b) { | |
return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; | |
}; | |
d3.mean = function(array, f) { | |
var n = array.length, a, m = 0, i = -1, j = 0; | |
if (arguments.length === 1) { | |
while (++i < n) if (d3_number(a = array[i])) m += (a - m) / ++j; | |
} else { | |
while (++i < n) if (d3_number(a = f.call(array, array[i], i))) m += (a - m) / ++j; | |
} | |
return j ? m : undefined; | |
}; | |
d3.median = function(array, f) { | |
if (arguments.length > 1) array = array.map(f); | |
array = array.filter(d3_number); | |
return array.length ? d3.quantile(array.sort(d3.ascending), .5) : undefined; | |
}; | |
d3.min = function(array, f) { | |
var i = -1, n = array.length, a, b; | |
if (arguments.length === 1) { | |
while (++i < n && ((a = array[i]) == null || a != a)) a = undefined; | |
while (++i < n) if ((b = array[i]) != null && a > b) a = b; | |
} else { | |
while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined; | |
while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b; | |
} | |
return a; | |
}; | |
d3.max = function(array, f) { | |
var i = -1, n = array.length, a, b; | |
if (arguments.length === 1) { | |
while (++i < n && ((a = array[i]) == null || a != a)) a = undefined; | |
while (++i < n) if ((b = array[i]) != null && b > a) a = b; | |
} else { | |
while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined; | |
while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b; | |
} | |
return a; | |
}; | |
d3.extent = function(array, f) { | |
var i = -1, n = array.length, a, b, c; | |
if (arguments.length === 1) { | |
while (++i < n && ((a = c = array[i]) == null || a != a)) a = c = undefined; | |
while (++i < n) if ((b = array[i]) != null) { | |
if (a > b) a = b; | |
if (c < b) c = b; | |
} | |
} else { | |
while (++i < n && ((a = c = f.call(array, array[i], i)) == null || a != a)) a = undefined; | |
while (++i < n) if ((b = f.call(array, array[i], i)) != null) { | |
if (a > b) a = b; | |
if (c < b) c = b; | |
} | |
} | |
return [ a, c ]; | |
}; | |
d3.random = { | |
normal: function(µ, σ) { | |
var n = arguments.length; | |
if (n < 2) σ = 1; | |
if (n < 1) µ = 0; | |
return function() { | |
var x, y, r; | |
do { | |
x = Math.random() * 2 - 1; | |
y = Math.random() * 2 - 1; | |
r = x * x + y * y; | |
} while (!r || r > 1); | |
return µ + σ * x * Math.sqrt(-2 * Math.log(r) / r); | |
}; | |
}, | |
logNormal: function() { | |
var random = d3.random.normal.apply(d3, arguments); | |
return function() { | |
return Math.exp(random()); | |
}; | |
}, | |
irwinHall: function(m) { | |
return function() { | |
for (var s = 0, j = 0; j < m; j++) s += Math.random(); | |
return s / m; | |
}; | |
} | |
}; | |
function d3_number(x) { | |
return x != null && !isNaN(x); | |
} | |
d3.sum = function(array, f) { | |
var s = 0, n = array.length, a, i = -1; | |
if (arguments.length === 1) { | |
while (++i < n) if (!isNaN(a = +array[i])) s += a; | |
} else { | |
while (++i < n) if (!isNaN(a = +f.call(array, array[i], i))) s += a; | |
} | |
return s; | |
}; | |
d3.quantile = function(values, p) { | |
var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h; | |
return e ? v + e * (values[h] - v) : v; | |
}; | |
d3.shuffle = function(array) { | |
var m = array.length, t, i; | |
while (m) { | |
i = Math.random() * m-- | 0; | |
t = array[m], array[m] = array[i], array[i] = t; | |
} | |
return array; | |
}; | |
d3.transpose = function(matrix) { | |
return d3.zip.apply(d3, matrix); | |
}; | |
d3.zip = function() { | |
if (!(n = arguments.length)) return []; | |
for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m; ) { | |
for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n; ) { | |
zip[j] = arguments[j][i]; | |
} | |
} | |
return zips; | |
}; | |
function d3_zipLength(d) { | |
return d.length; | |
} | |
d3.bisector = function(f) { | |
return { | |
left: function(a, x, lo, hi) { | |
if (arguments.length < 3) lo = 0; | |
if (arguments.length < 4) hi = a.length; | |
while (lo < hi) { | |
var mid = lo + hi >>> 1; | |
if (f.call(a, a[mid], mid) < x) lo = mid + 1; else hi = mid; | |
} | |
return lo; | |
}, | |
right: function(a, x, lo, hi) { | |
if (arguments.length < 3) lo = 0; | |
if (arguments.length < 4) hi = a.length; | |
while (lo < hi) { | |
var mid = lo + hi >>> 1; | |
if (x < f.call(a, a[mid], mid)) hi = mid; else lo = mid + 1; | |
} | |
return lo; | |
} | |
}; | |
}; | |
var d3_bisector = d3.bisector(function(d) { | |
return d; | |
}); | |
d3.bisectLeft = d3_bisector.left; | |
d3.bisect = d3.bisectRight = d3_bisector.right; | |
d3.nest = function() { | |
var nest = {}, keys = [], sortKeys = [], sortValues, rollup; | |
function map(array, depth) { | |
if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array; | |
var i = -1, n = array.length, key = keys[depth++], keyValue, object, valuesByKey = new d3_Map(), values, o = {}; | |
while (++i < n) { | |
if (values = valuesByKey.get(keyValue = key(object = array[i]))) { | |
values.push(object); | |
} else { | |
valuesByKey.set(keyValue, [ object ]); | |
} | |
} | |
valuesByKey.forEach(function(keyValue, values) { | |
o[keyValue] = map(values, depth); | |
}); | |
return o; | |
} | |
function entries(map, depth) { | |
if (depth >= keys.length) return map; | |
var a = [], sortKey = sortKeys[depth++], key; | |
for (key in map) { | |
a.push({ | |
key: key, | |
values: entries(map[key], depth) | |
}); | |
} | |
if (sortKey) a.sort(function(a, b) { | |
return sortKey(a.key, b.key); | |
}); | |
return a; | |
} | |
nest.map = function(array) { | |
return map(array, 0); | |
}; | |
nest.entries = function(array) { | |
return entries(map(array, 0), 0); | |
}; | |
nest.key = function(d) { | |
keys.push(d); | |
return nest; | |
}; | |
nest.sortKeys = function(order) { | |
sortKeys[keys.length - 1] = order; | |
return nest; | |
}; | |
nest.sortValues = function(order) { | |
sortValues = order; | |
return nest; | |
}; | |
nest.rollup = function(f) { | |
rollup = f; | |
return nest; | |
}; | |
return nest; | |
}; | |
d3.keys = function(map) { | |
var keys = []; | |
for (var key in map) keys.push(key); | |
return keys; | |
}; | |
d3.values = function(map) { | |
var values = []; | |
for (var key in map) values.push(map[key]); | |
return values; | |
}; | |
d3.entries = function(map) { | |
var entries = []; | |
for (var key in map) entries.push({ | |
key: key, | |
value: map[key] | |
}); | |
return entries; | |
}; | |
d3.permute = function(array, indexes) { | |
var permutes = [], i = -1, n = indexes.length; | |
while (++i < n) permutes[i] = array[indexes[i]]; | |
return permutes; | |
}; | |
d3.merge = function(arrays) { | |
return Array.prototype.concat.apply([], arrays); | |
}; | |
function d3_collapse(s) { | |
return s.trim().replace(/\s+/g, " "); | |
} | |
d3.range = function(start, stop, step) { | |
if (arguments.length < 3) { | |
step = 1; | |
if (arguments.length < 2) { | |
stop = start; | |
start = 0; | |
} | |
} | |
if ((stop - start) / step === Infinity) throw new Error("infinite range"); | |
var range = [], k = d3_range_integerScale(Math.abs(step)), i = -1, j; | |
start *= k, stop *= k, step *= k; | |
if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); else while ((j = start + step * ++i) < stop) range.push(j / k); | |
return range; | |
}; | |
function d3_range_integerScale(x) { | |
var k = 1; | |
while (x * k % 1) k *= 10; | |
return k; | |
} | |
d3.requote = function(s) { | |
return s.replace(d3_requote_re, "\\$&"); | |
}; | |
var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g; | |
d3.round = function(x, n) { | |
return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x); | |
}; | |
d3.xhr = function(url, mimeType, callback) { | |
var xhr = {}, dispatch = d3.dispatch("progress", "load", "error"), headers = {}, response = d3_identity, request = new (d3_window.XDomainRequest && /^(http(s)?:)?\/\//.test(url) ? XDomainRequest : XMLHttpRequest)(); | |
"onload" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() { | |
request.readyState > 3 && respond(); | |
}; | |
function respond() { | |
var s = request.status; | |
!s && request.responseText || s >= 200 && s < 300 || s === 304 ? dispatch.load.call(xhr, response.call(xhr, request)) : dispatch.error.call(xhr, request); | |
} | |
request.onprogress = function(event) { | |
var o = d3.event; | |
d3.event = event; | |
try { | |
dispatch.progress.call(xhr, request); | |
} finally { | |
d3.event = o; | |
} | |
}; | |
xhr.header = function(name, value) { | |
name = (name + "").toLowerCase(); | |
if (arguments.length < 2) return headers[name]; | |
if (value == null) delete headers[name]; else headers[name] = value + ""; | |
return xhr; | |
}; | |
xhr.mimeType = function(value) { | |
if (!arguments.length) return mimeType; | |
mimeType = value == null ? null : value + ""; | |
return xhr; | |
}; | |
xhr.response = function(value) { | |
response = value; | |
return xhr; | |
}; | |
[ "get", "post" ].forEach(function(method) { | |
xhr[method] = function() { | |
return xhr.send.apply(xhr, [ method ].concat(d3_array(arguments))); | |
}; | |
}); | |
xhr.send = function(method, data, callback) { | |
if (arguments.length === 2 && typeof data === "function") callback = data, data = null; | |
request.open(method, url, true); | |
if (mimeType != null && !("accept" in headers)) headers["accept"] = mimeType + ",*/*"; | |
if (request.setRequestHeader) for (var name in headers) request.setRequestHeader(name, headers[name]); | |
if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType); | |
if (callback != null) xhr.on("error", callback).on("load", function(request) { | |
callback(null, request); | |
}); | |
request.send(data == null ? null : data); | |
return xhr; | |
}; | |
xhr.abort = function() { | |
request.abort(); | |
return xhr; | |
}; | |
d3.rebind(xhr, dispatch, "on"); | |
if (arguments.length === 2 && typeof mimeType === "function") callback = mimeType, | |
mimeType = null; | |
return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback)); | |
}; | |
function d3_xhr_fixCallback(callback) { | |
return callback.length === 1 ? function(error, request) { | |
callback(error == null ? request : null); | |
} : callback; | |
} | |
d3.text = function() { | |
return d3.xhr.apply(d3, arguments).response(d3_text); | |
}; | |
function d3_text(request) { | |
return request.responseText; | |
} | |
d3.json = function(url, callback) { | |
return d3.xhr(url, "application/json", callback).response(d3_json); | |
}; | |
function d3_json(request) { | |
return JSON.parse(request.responseText); | |
} | |
d3.html = function(url, callback) { | |
return d3.xhr(url, "text/html", callback).response(d3_html); | |
}; | |
function d3_html(request) { | |
var range = d3_document.createRange(); | |
range.selectNode(d3_document.body); | |
return range.createContextualFragment(request.responseText); | |
} | |
d3.xml = function() { | |
return d3.xhr.apply(d3, arguments).response(d3_xml); | |
}; | |
function d3_xml(request) { | |
return request.responseXML; | |
} | |
var d3_nsPrefix = { | |
svg: "http://www.w3.org/2000/svg", | |
xhtml: "http://www.w3.org/1999/xhtml", | |
xlink: "http://www.w3.org/1999/xlink", | |
xml: "http://www.w3.org/XML/1998/namespace", | |
xmlns: "http://www.w3.org/2000/xmlns/" | |
}; | |
d3.ns = { | |
prefix: d3_nsPrefix, | |
qualify: function(name) { | |
var i = name.indexOf(":"), prefix = name; | |
if (i >= 0) { | |
prefix = name.substring(0, i); | |
name = name.substring(i + 1); | |
} | |
return d3_nsPrefix.hasOwnProperty(prefix) ? { | |
space: d3_nsPrefix[prefix], | |
local: name | |
} : name; | |
} | |
}; | |
d3.dispatch = function() { | |
var dispatch = new d3_dispatch(), i = -1, n = arguments.length; | |
while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch); | |
return dispatch; | |
}; | |
function d3_dispatch() {} | |
d3_dispatch.prototype.on = function(type, listener) { | |
var i = type.indexOf("."), name = ""; | |
if (i > 0) { | |
name = type.substring(i + 1); | |
type = type.substring(0, i); | |
} | |
return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener); | |
}; | |
function d3_dispatch_event(dispatch) { | |
var listeners = [], listenerByName = new d3_Map(); | |
function event() { | |
var z = listeners, i = -1, n = z.length, l; | |
while (++i < n) if (l = z[i].on) l.apply(this, arguments); | |
return dispatch; | |
} | |
event.on = function(name, listener) { | |
var l = listenerByName.get(name), i; | |
if (arguments.length < 2) return l && l.on; | |
if (l) { | |
l.on = null; | |
listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1)); | |
listenerByName.remove(name); | |
} | |
if (listener) listeners.push(listenerByName.set(name, { | |
on: listener | |
})); | |
return dispatch; | |
}; | |
return event; | |
} | |
d3.format = function(specifier) { | |
var match = d3_format_re.exec(specifier), fill = match[1] || " ", align = match[2] || ">", sign = match[3] || "", basePrefix = match[4] || "", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, suffix = "", integer = false; | |
if (precision) precision = +precision.substring(1); | |
if (zfill || fill === "0" && align === "=") { | |
zfill = fill = "0"; | |
align = "="; | |
if (comma) width -= Math.floor((width - 1) / 4); | |
} | |
switch (type) { | |
case "n": | |
comma = true; | |
type = "g"; | |
break; | |
case "%": | |
scale = 100; | |
suffix = "%"; | |
type = "f"; | |
break; | |
case "p": | |
scale = 100; | |
suffix = "%"; | |
type = "r"; | |
break; | |
case "b": | |
case "o": | |
case "x": | |
case "X": | |
if (basePrefix) basePrefix = "0" + type.toLowerCase(); | |
case "c": | |
case "d": | |
integer = true; | |
precision = 0; | |
break; | |
case "s": | |
scale = -1; | |
type = "r"; | |
break; | |
} | |
if (basePrefix === "#") basePrefix = ""; | |
if (type == "r" && !precision) type = "g"; | |
type = d3_format_types.get(type) || d3_format_typeDefault; | |
var zcomma = zfill && comma; | |
return function(value) { | |
if (integer && value % 1) return ""; | |
var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, "-") : sign; | |
if (scale < 0) { | |
var prefix = d3.formatPrefix(value, precision); | |
value = prefix.scale(value); | |
suffix = prefix.symbol; | |
} else { | |
value *= scale; | |
} | |
value = type(value, precision); | |
if (!zfill && comma) value = d3_format_group(value); | |
var length = basePrefix.length + value.length + (zcomma ? 0 : negative.length), padding = length < width ? new Array(length = width - length + 1).join(fill) : ""; | |
if (zcomma) value = d3_format_group(padding + value); | |
if (d3_format_decimalPoint) value.replace(".", d3_format_decimalPoint); | |
negative += basePrefix; | |
return (align === "<" ? negative + value + padding : align === ">" ? padding + negative + value : align === "^" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) + suffix; | |
}; | |
}; | |
var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/; | |
var d3_format_types = d3.map({ | |
b: function(x) { | |
return x.toString(2); | |
}, | |
c: function(x) { | |
return String.fromCharCode(x); | |
}, | |
o: function(x) { | |
return x.toString(8); | |
}, | |
x: function(x) { | |
return x.toString(16); | |
}, | |
X: function(x) { | |
return x.toString(16).toUpperCase(); | |
}, | |
g: function(x, p) { | |
return x.toPrecision(p); | |
}, | |
e: function(x, p) { | |
return x.toExponential(p); | |
}, | |
f: function(x, p) { | |
return x.toFixed(p); | |
}, | |
r: function(x, p) { | |
return (x = d3.round(x, d3_format_precision(x, p))).toFixed(Math.max(0, Math.min(20, d3_format_precision(x * (1 + 1e-15), p)))); | |
} | |
}); | |
function d3_format_precision(x, p) { | |
return p - (x ? Math.ceil(Math.log(x) / Math.LN10) : 1); | |
} | |
function d3_format_typeDefault(x) { | |
return x + ""; | |
} | |
var d3_format_group = d3_identity; | |
if (d3_format_grouping) { | |
var d3_format_groupingLength = d3_format_grouping.length; | |
d3_format_group = function(value) { | |
var i = value.lastIndexOf("."), f = i >= 0 ? "." + value.substring(i + 1) : (i = value.length, | |
""), t = [], j = 0, g = d3_format_grouping[0]; | |
while (i > 0 && g > 0) { | |
t.push(value.substring(i -= g, i + g)); | |
g = d3_format_grouping[j = (j + 1) % d3_format_groupingLength]; | |
} | |
return t.reverse().join(d3_format_thousandsSeparator || "") + f; | |
}; | |
} | |
var d3_formatPrefixes = [ "y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y" ].map(d3_formatPrefix); | |
d3.formatPrefix = function(value, precision) { | |
var i = 0; | |
if (value) { | |
if (value < 0) value *= -1; | |
if (precision) value = d3.round(value, d3_format_precision(value, precision)); | |
i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10); | |
i = Math.max(-24, Math.min(24, Math.floor((i <= 0 ? i + 1 : i - 1) / 3) * 3)); | |
} | |
return d3_formatPrefixes[8 + i / 3]; | |
}; | |
function d3_formatPrefix(d, i) { | |
var k = Math.pow(10, Math.abs(8 - i) * 3); | |
return { | |
scale: i > 8 ? function(d) { | |
return d / k; | |
} : function(d) { | |
return d * k; | |
}, | |
symbol: d | |
}; | |
} | |
var d3_ease_default = function() { | |
return d3_identity; | |
}; | |
var d3_ease = d3.map({ | |
linear: d3_ease_default, | |
poly: d3_ease_poly, | |
quad: function() { | |
return d3_ease_quad; | |
}, | |
cubic: function() { | |
return d3_ease_cubic; | |
}, | |
sin: function() { | |
return d3_ease_sin; | |
}, | |
exp: function() { | |
return d3_ease_exp; | |
}, | |
circle: function() { | |
return d3_ease_circle; | |
}, | |
elastic: d3_ease_elastic, | |
back: d3_ease_back, | |
bounce: function() { | |
return d3_ease_bounce; | |
} | |
}); | |
var d3_ease_mode = d3.map({ | |
"in": d3_identity, | |
out: d3_ease_reverse, | |
"in-out": d3_ease_reflect, | |
"out-in": function(f) { | |
return d3_ease_reflect(d3_ease_reverse(f)); | |
} | |
}); | |
d3.ease = function(name) { | |
var i = name.indexOf("-"), t = i >= 0 ? name.substring(0, i) : name, m = i >= 0 ? name.substring(i + 1) : "in"; | |
t = d3_ease.get(t) || d3_ease_default; | |
m = d3_ease_mode.get(m) || d3_identity; | |
return d3_ease_clamp(m(t.apply(null, Array.prototype.slice.call(arguments, 1)))); | |
}; | |
function d3_ease_clamp(f) { | |
return function(t) { | |
return t <= 0 ? 0 : t >= 1 ? 1 : f(t); | |
}; | |
} | |
function d3_ease_reverse(f) { | |
return function(t) { | |
return 1 - f(1 - t); | |
}; | |
} | |
function d3_ease_reflect(f) { | |
return function(t) { | |
return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t)); | |
}; | |
} | |
function d3_ease_quad(t) { | |
return t * t; | |
} | |
function d3_ease_cubic(t) { | |
return t * t * t; | |
} | |
function d3_ease_cubicInOut(t) { | |
if (t <= 0) return 0; | |
if (t >= 1) return 1; | |
var t2 = t * t, t3 = t2 * t; | |
return 4 * (t < .5 ? t3 : 3 * (t - t2) + t3 - .75); | |
} | |
function d3_ease_poly(e) { | |
return function(t) { | |
return Math.pow(t, e); | |
}; | |
} | |
function d3_ease_sin(t) { | |
return 1 - Math.cos(t * π / 2); | |
} | |
function d3_ease_exp(t) { | |
return Math.pow(2, 10 * (t - 1)); | |
} | |
function d3_ease_circle(t) { | |
return 1 - Math.sqrt(1 - t * t); | |
} | |
function d3_ease_elastic(a, p) { | |
var s; | |
if (arguments.length < 2) p = .45; | |
if (arguments.length) s = p / (2 * π) * Math.asin(1 / a); else a = 1, s = p / 4; | |
return function(t) { | |
return 1 + a * Math.pow(2, 10 * -t) * Math.sin((t - s) * 2 * π / p); | |
}; | |
} | |
function d3_ease_back(s) { | |
if (!s) s = 1.70158; | |
return function(t) { | |
return t * t * ((s + 1) * t - s); | |
}; | |
} | |
function d3_ease_bounce(t) { | |
return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375; | |
} | |
d3.event = null; | |
function d3_eventCancel() { | |
d3.event.stopPropagation(); | |
d3.event.preventDefault(); | |
} | |
function d3_eventSource() { | |
var e = d3.event, s; | |
while (s = e.sourceEvent) e = s; | |
return e; | |
} | |
function d3_eventDispatch(target) { | |
var dispatch = new d3_dispatch(), i = 0, n = arguments.length; | |
while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch); | |
dispatch.of = function(thiz, argumentz) { | |
return function(e1) { | |
try { | |
var e0 = e1.sourceEvent = d3.event; | |
e1.target = target; | |
d3.event = e1; | |
dispatch[e1.type].apply(thiz, argumentz); | |
} finally { | |
d3.event = e0; | |
} | |
}; | |
}; | |
return dispatch; | |
} | |
d3.transform = function(string) { | |
var g = d3_document.createElementNS(d3.ns.prefix.svg, "g"); | |
return (d3.transform = function(string) { | |
g.setAttribute("transform", string); | |
var t = g.transform.baseVal.consolidate(); | |
return new d3_transform(t ? t.matrix : d3_transformIdentity); | |
})(string); | |
}; | |
function d3_transform(m) { | |
var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0; | |
if (r0[0] * r1[1] < r1[0] * r0[1]) { | |
r0[0] *= -1; | |
r0[1] *= -1; | |
kx *= -1; | |
kz *= -1; | |
} | |
this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees; | |
this.translate = [ m.e, m.f ]; | |
this.scale = [ kx, ky ]; | |
this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0; | |
} | |
d3_transform.prototype.toString = function() { | |
return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")"; | |
}; | |
function d3_transformDot(a, b) { | |
return a[0] * b[0] + a[1] * b[1]; | |
} | |
function d3_transformNormalize(a) { | |
var k = Math.sqrt(d3_transformDot(a, a)); | |
if (k) { | |
a[0] /= k; | |
a[1] /= k; | |
} | |
return k; | |
} | |
function d3_transformCombine(a, b, k) { | |
a[0] += k * b[0]; | |
a[1] += k * b[1]; | |
return a; | |
} | |
var d3_transformIdentity = { | |
a: 1, | |
b: 0, | |
c: 0, | |
d: 1, | |
e: 0, | |
f: 0 | |
}; | |
d3.interpolate = function(a, b) { | |
var i = d3.interpolators.length, f; | |
while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ; | |
return f; | |
}; | |
d3.interpolateNumber = function(a, b) { | |
b -= a; | |
return function(t) { | |
return a + b * t; | |
}; | |
}; | |
d3.interpolateRound = function(a, b) { | |
b -= a; | |
return function(t) { | |
return Math.round(a + b * t); | |
}; | |
}; | |
d3.interpolateString = function(a, b) { | |
var m, i, j, s0 = 0, s1 = 0, s = [], q = [], n, o; | |
d3_interpolate_number.lastIndex = 0; | |
for (i = 0; m = d3_interpolate_number.exec(b); ++i) { | |
if (m.index) s.push(b.substring(s0, s1 = m.index)); | |
q.push({ | |
i: s.length, | |
x: m[0] | |
}); | |
s.push(null); | |
s0 = d3_interpolate_number.lastIndex; | |
} | |
if (s0 < b.length) s.push(b.substring(s0)); | |
for (i = 0, n = q.length; (m = d3_interpolate_number.exec(a)) && i < n; ++i) { | |
o = q[i]; | |
if (o.x == m[0]) { | |
if (o.i) { | |
if (s[o.i + 1] == null) { | |
s[o.i - 1] += o.x; | |
s.splice(o.i, 1); | |
for (j = i + 1; j < n; ++j) q[j].i--; | |
} else { | |
s[o.i - 1] += o.x + s[o.i + 1]; | |
s.splice(o.i, 2); | |
for (j = i + 1; j < n; ++j) q[j].i -= 2; | |
} | |
} else { | |
if (s[o.i + 1] == null) { | |
s[o.i] = o.x; | |
} else { | |
s[o.i] = o.x + s[o.i + 1]; | |
s.splice(o.i + 1, 1); | |
for (j = i + 1; j < n; ++j) q[j].i--; | |
} | |
} | |
q.splice(i, 1); | |
n--; | |
i--; | |
} else { | |
o.x = d3.interpolateNumber(parseFloat(m[0]), parseFloat(o.x)); | |
} | |
} | |
while (i < n) { | |
o = q.pop(); | |
if (s[o.i + 1] == null) { | |
s[o.i] = o.x; | |
} else { | |
s[o.i] = o.x + s[o.i + 1]; | |
s.splice(o.i + 1, 1); | |
} | |
n--; | |
} | |
if (s.length === 1) { | |
return s[0] == null ? q[0].x : function() { | |
return b; | |
}; | |
} | |
return function(t) { | |
for (i = 0; i < n; ++i) s[(o = q[i]).i] = o.x(t); | |
return s.join(""); | |
}; | |
}; | |
d3.interpolateTransform = function(a, b) { | |
var s = [], q = [], n, A = d3.transform(a), B = d3.transform(b), ta = A.translate, tb = B.translate, ra = A.rotate, rb = B.rotate, wa = A.skew, wb = B.skew, ka = A.scale, kb = B.scale; | |
if (ta[0] != tb[0] || ta[1] != tb[1]) { | |
s.push("translate(", null, ",", null, ")"); | |
q.push({ | |
i: 1, | |
x: d3.interpolateNumber(ta[0], tb[0]) | |
}, { | |
i: 3, | |
x: d3.interpolateNumber(ta[1], tb[1]) | |
}); | |
} else if (tb[0] || tb[1]) { | |
s.push("translate(" + tb + ")"); | |
} else { | |
s.push(""); | |
} | |
if (ra != rb) { | |
if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360; | |
q.push({ | |
i: s.push(s.pop() + "rotate(", null, ")") - 2, | |
x: d3.interpolateNumber(ra, rb) | |
}); | |
} else if (rb) { | |
s.push(s.pop() + "rotate(" + rb + ")"); | |
} | |
if (wa != wb) { | |
q.push({ | |
i: s.push(s.pop() + "skewX(", null, ")") - 2, | |
x: d3.interpolateNumber(wa, wb) | |
}); | |
} else if (wb) { | |
s.push(s.pop() + "skewX(" + wb + ")"); | |
} | |
if (ka[0] != kb[0] || ka[1] != kb[1]) { | |
n = s.push(s.pop() + "scale(", null, ",", null, ")"); | |
q.push({ | |
i: n - 4, | |
x: d3.interpolateNumber(ka[0], kb[0]) | |
}, { | |
i: n - 2, | |
x: d3.interpolateNumber(ka[1], kb[1]) | |
}); | |
} else if (kb[0] != 1 || kb[1] != 1) { | |
s.push(s.pop() + "scale(" + kb + ")"); | |
} | |
n = q.length; | |
return function(t) { | |
var i = -1, o; | |
while (++i < n) s[(o = q[i]).i] = o.x(t); | |
return s.join(""); | |
}; | |
}; | |
d3.interpolateRgb = function(a, b) { | |
a = d3.rgb(a); | |
b = d3.rgb(b); | |
var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab; | |
return function(t) { | |
return "#" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t)); | |
}; | |
}; | |
d3.interpolateHsl = function(a, b) { | |
a = d3.hsl(a); | |
b = d3.hsl(b); | |
var h0 = a.h, s0 = a.s, l0 = a.l, h1 = b.h - h0, s1 = b.s - s0, l1 = b.l - l0; | |
if (h1 > 180) h1 -= 360; else if (h1 < -180) h1 += 360; | |
return function(t) { | |
return d3_hsl_rgb(h0 + h1 * t, s0 + s1 * t, l0 + l1 * t) + ""; | |
}; | |
}; | |
d3.interpolateLab = function(a, b) { | |
a = d3.lab(a); | |
b = d3.lab(b); | |
var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab; | |
return function(t) { | |
return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + ""; | |
}; | |
}; | |
d3.interpolateHcl = function(a, b) { | |
a = d3.hcl(a); | |
b = d3.hcl(b); | |
var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al; | |
if (bh > 180) bh -= 360; else if (bh < -180) bh += 360; | |
return function(t) { | |
return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + ""; | |
}; | |
}; | |
d3.interpolateArray = function(a, b) { | |
var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i; | |
for (i = 0; i < n0; ++i) x.push(d3.interpolate(a[i], b[i])); | |
for (;i < na; ++i) c[i] = a[i]; | |
for (;i < nb; ++i) c[i] = b[i]; | |
return function(t) { | |
for (i = 0; i < n0; ++i) c[i] = x[i](t); | |
return c; | |
}; | |
}; | |
d3.interpolateObject = function(a, b) { | |
var i = {}, c = {}, k; | |
for (k in a) { | |
if (k in b) { | |
i[k] = d3_interpolateByName(k)(a[k], b[k]); | |
} else { | |
c[k] = a[k]; | |
} | |
} | |
for (k in b) { | |
if (!(k in a)) { | |
c[k] = b[k]; | |
} | |
} | |
return function(t) { | |
for (k in i) c[k] = i[k](t); | |
return c; | |
}; | |
}; | |
var d3_interpolate_number = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g; | |
function d3_interpolateByName(name) { | |
return name == "transform" ? d3.interpolateTransform : d3.interpolate; | |
} | |
d3.interpolators = [ d3.interpolateObject, function(a, b) { | |
return b instanceof Array && d3.interpolateArray(a, b); | |
}, function(a, b) { | |
return (typeof a === "string" || typeof b === "string") && d3.interpolateString(a + "", b + ""); | |
}, function(a, b) { | |
return (typeof b === "string" ? d3_rgb_names.has(b) || /^(#|rgb\(|hsl\()/.test(b) : b instanceof d3_Color) && d3.interpolateRgb(a, b); | |
}, function(a, b) { | |
return !isNaN(a = +a) && !isNaN(b = +b) && d3.interpolateNumber(a, b); | |
} ]; | |
function d3_uninterpolateNumber(a, b) { | |
b = b - (a = +a) ? 1 / (b - a) : 0; | |
return function(x) { | |
return (x - a) * b; | |
}; | |
} | |
function d3_uninterpolateClamp(a, b) { | |
b = b - (a = +a) ? 1 / (b - a) : 0; | |
return function(x) { | |
return Math.max(0, Math.min(1, (x - a) * b)); | |
}; | |
} | |
function d3_Color() {} | |
d3_Color.prototype.toString = function() { | |
return this.rgb() + ""; | |
}; | |
d3.rgb = function(r, g, b) { | |
return arguments.length === 1 ? r instanceof d3_Rgb ? d3_rgb(r.r, r.g, r.b) : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb) : d3_rgb(~~r, ~~g, ~~b); | |
}; | |
function d3_rgb(r, g, b) { | |
return new d3_Rgb(r, g, b); | |
} | |
function d3_Rgb(r, g, b) { | |
this.r = r; | |
this.g = g; | |
this.b = b; | |
} | |
var d3_rgbPrototype = d3_Rgb.prototype = new d3_Color(); | |
d3_rgbPrototype.brighter = function(k) { | |
k = Math.pow(.7, arguments.length ? k : 1); | |
var r = this.r, g = this.g, b = this.b, i = 30; | |
if (!r && !g && !b) return d3_rgb(i, i, i); | |
if (r && r < i) r = i; | |
if (g && g < i) g = i; | |
if (b && b < i) b = i; | |
return d3_rgb(Math.min(255, Math.floor(r / k)), Math.min(255, Math.floor(g / k)), Math.min(255, Math.floor(b / k))); | |
}; | |
d3_rgbPrototype.darker = function(k) { | |
k = Math.pow(.7, arguments.length ? k : 1); | |
return d3_rgb(Math.floor(k * this.r), Math.floor(k * this.g), Math.floor(k * this.b)); | |
}; | |
d3_rgbPrototype.hsl = function() { | |
return d3_rgb_hsl(this.r, this.g, this.b); | |
}; | |
d3_rgbPrototype.toString = function() { | |
return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b); | |
}; | |
function d3_rgb_hex(v) { | |
return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16); | |
} | |
function d3_rgb_parse(format, rgb, hsl) { | |
var r = 0, g = 0, b = 0, m1, m2, name; | |
m1 = /([a-z]+)\((.*)\)/i.exec(format); | |
if (m1) { | |
m2 = m1[2].split(","); | |
switch (m1[1]) { | |
case "hsl": | |
{ | |
return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100); | |
} | |
case "rgb": | |
{ | |
return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2])); | |
} | |
} | |
} | |
if (name = d3_rgb_names.get(format)) return rgb(name.r, name.g, name.b); | |
if (format != null && format.charAt(0) === "#") { | |
if (format.length === 4) { | |
r = format.charAt(1); | |
r += r; | |
g = format.charAt(2); | |
g += g; | |
b = format.charAt(3); | |
b += b; | |
} else if (format.length === 7) { | |
r = format.substring(1, 3); | |
g = format.substring(3, 5); | |
b = format.substring(5, 7); | |
} | |
r = parseInt(r, 16); | |
g = parseInt(g, 16); | |
b = parseInt(b, 16); | |
} | |
return rgb(r, g, b); | |
} | |
function d3_rgb_hsl(r, g, b) { | |
var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2; | |
if (d) { | |
s = l < .5 ? d / (max + min) : d / (2 - max - min); | |
if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4; | |
h *= 60; | |
} else { | |
s = h = 0; | |
} | |
return d3_hsl(h, s, l); | |
} | |
function d3_rgb_lab(r, g, b) { | |
r = d3_rgb_xyz(r); | |
g = d3_rgb_xyz(g); | |
b = d3_rgb_xyz(b); | |
var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z); | |
return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z)); | |
} | |
function d3_rgb_xyz(r) { | |
return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4); | |
} | |
function d3_rgb_parseNumber(c) { | |
var f = parseFloat(c); | |
return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f; | |
} | |
var d3_rgb_names = d3.map({ | |
aliceblue: "#f0f8ff", | |
antiquewhite: "#faebd7", | |
aqua: "#00ffff", | |
aquamarine: "#7fffd4", | |
azure: "#f0ffff", | |
beige: "#f5f5dc", | |
bisque: "#ffe4c4", | |
black: "#000000", | |
blanchedalmond: "#ffebcd", | |
blue: "#0000ff", | |
blueviolet: "#8a2be2", | |
brown: "#a52a2a", | |
burlywood: "#deb887", | |
cadetblue: "#5f9ea0", | |
chartreuse: "#7fff00", | |
chocolate: "#d2691e", | |
coral: "#ff7f50", | |
cornflowerblue: "#6495ed", | |
cornsilk: "#fff8dc", | |
crimson: "#dc143c", | |
cyan: "#00ffff", | |
darkblue: "#00008b", | |
darkcyan: "#008b8b", | |
darkgoldenrod: "#b8860b", | |
darkgray: "#a9a9a9", | |
darkgreen: "#006400", | |
darkgrey: "#a9a9a9", | |
darkkhaki: "#bdb76b", | |
darkmagenta: "#8b008b", | |
darkolivegreen: "#556b2f", | |
darkorange: "#ff8c00", | |
darkorchid: "#9932cc", | |
darkred: "#8b0000", | |
darksalmon: "#e9967a", | |
darkseagreen: "#8fbc8f", | |
darkslateblue: "#483d8b", | |
darkslategray: "#2f4f4f", | |
darkslategrey: "#2f4f4f", | |
darkturquoise: "#00ced1", | |
darkviolet: "#9400d3", | |
deeppink: "#ff1493", | |
deepskyblue: "#00bfff", | |
dimgray: "#696969", | |
dimgrey: "#696969", | |
dodgerblue: "#1e90ff", | |
firebrick: "#b22222", | |
floralwhite: "#fffaf0", | |
forestgreen: "#228b22", | |
fuchsia: "#ff00ff", | |
gainsboro: "#dcdcdc", | |
ghostwhite: "#f8f8ff", | |
gold: "#ffd700", | |
goldenrod: "#daa520", | |
gray: "#808080", | |
green: "#008000", | |
greenyellow: "#adff2f", | |
grey: "#808080", | |
honeydew: "#f0fff0", | |
hotpink: "#ff69b4", | |
indianred: "#cd5c5c", | |
indigo: "#4b0082", | |
ivory: "#fffff0", | |
khaki: "#f0e68c", | |
lavender: "#e6e6fa", | |
lavenderblush: "#fff0f5", | |
lawngreen: "#7cfc00", | |
lemonchiffon: "#fffacd", | |
lightblue: "#add8e6", | |
lightcoral: "#f08080", | |
lightcyan: "#e0ffff", | |
lightgoldenrodyellow: "#fafad2", | |
lightgray: "#d3d3d3", | |
lightgreen: "#90ee90", | |
lightgrey: "#d3d3d3", | |
lightpink: "#ffb6c1", | |
lightsalmon: "#ffa07a", | |
lightseagreen: "#20b2aa", | |
lightskyblue: "#87cefa", | |
lightslategray: "#778899", | |
lightslategrey: "#778899", | |
lightsteelblue: "#b0c4de", | |
lightyellow: "#ffffe0", | |
lime: "#00ff00", | |
limegreen: "#32cd32", | |
linen: "#faf0e6", | |
magenta: "#ff00ff", | |
maroon: "#800000", | |
mediumaquamarine: "#66cdaa", | |
mediumblue: "#0000cd", | |
mediumorchid: "#ba55d3", | |
mediumpurple: "#9370db", | |
mediumseagreen: "#3cb371", | |
mediumslateblue: "#7b68ee", | |
mediumspringgreen: "#00fa9a", | |
mediumturquoise: "#48d1cc", | |
mediumvioletred: "#c71585", | |
midnightblue: "#191970", | |
mintcream: "#f5fffa", | |
mistyrose: "#ffe4e1", | |
moccasin: "#ffe4b5", | |
navajowhite: "#ffdead", | |
navy: "#000080", | |
oldlace: "#fdf5e6", | |
olive: "#808000", | |
olivedrab: "#6b8e23", | |
orange: "#ffa500", | |
orangered: "#ff4500", | |
orchid: "#da70d6", | |
palegoldenrod: "#eee8aa", | |
palegreen: "#98fb98", | |
paleturquoise: "#afeeee", | |
palevioletred: "#db7093", | |
papayawhip: "#ffefd5", | |
peachpuff: "#ffdab9", | |
peru: "#cd853f", | |
pink: "#ffc0cb", | |
plum: "#dda0dd", | |
powderblue: "#b0e0e6", | |
purple: "#800080", | |
red: "#ff0000", | |
rosybrown: "#bc8f8f", | |
royalblue: "#4169e1", | |
saddlebrown: "#8b4513", | |
salmon: "#fa8072", | |
sandybrown: "#f4a460", | |
seagreen: "#2e8b57", | |
seashell: "#fff5ee", | |
sienna: "#a0522d", | |
silver: "#c0c0c0", | |
skyblue: "#87ceeb", | |
slateblue: "#6a5acd", | |
slategray: "#708090", | |
slategrey: "#708090", | |
snow: "#fffafa", | |
springgreen: "#00ff7f", | |
steelblue: "#4682b4", | |
tan: "#d2b48c", | |
teal: "#008080", | |
thistle: "#d8bfd8", | |
tomato: "#ff6347", | |
turquoise: "#40e0d0", | |
violet: "#ee82ee", | |
wheat: "#f5deb3", | |
white: "#ffffff", | |
whitesmoke: "#f5f5f5", | |
yellow: "#ffff00", | |
yellowgreen: "#9acd32" | |
}); | |
d3_rgb_names.forEach(function(key, value) { | |
d3_rgb_names.set(key, d3_rgb_parse(value, d3_rgb, d3_hsl_rgb)); | |
}); | |
d3.hsl = function(h, s, l) { | |
return arguments.length === 1 ? h instanceof d3_Hsl ? d3_hsl(h.h, h.s, h.l) : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) : d3_hsl(+h, +s, +l); | |
}; | |
function d3_hsl(h, s, l) { | |
return new d3_Hsl(h, s, l); | |
} | |
function d3_Hsl(h, s, l) { | |
this.h = h; | |
this.s = s; | |
this.l = l; | |
} | |
var d3_hslPrototype = d3_Hsl.prototype = new d3_Color(); | |
d3_hslPrototype.brighter = function(k) { | |
k = Math.pow(.7, arguments.length ? k : 1); | |
return d3_hsl(this.h, this.s, this.l / k); | |
}; | |
d3_hslPrototype.darker = function(k) { | |
k = Math.pow(.7, arguments.length ? k : 1); | |
return d3_hsl(this.h, this.s, k * this.l); | |
}; | |
d3_hslPrototype.rgb = function() { | |
return d3_hsl_rgb(this.h, this.s, this.l); | |
}; | |
function d3_hsl_rgb(h, s, l) { | |
var m1, m2; | |
h = h % 360; | |
if (h < 0) h += 360; | |
s = s < 0 ? 0 : s > 1 ? 1 : s; | |
l = l < 0 ? 0 : l > 1 ? 1 : l; | |
m2 = l <= .5 ? l * (1 + s) : l + s - l * s; | |
m1 = 2 * l - m2; | |
function v(h) { | |
if (h > 360) h -= 360; else if (h < 0) h += 360; | |
if (h < 60) return m1 + (m2 - m1) * h / 60; | |
if (h < 180) return m2; | |
if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60; | |
return m1; | |
} | |
function vv(h) { | |
return Math.round(v(h) * 255); | |
} | |
return d3_rgb(vv(h + 120), vv(h), vv(h - 120)); | |
} | |
d3.hcl = function(h, c, l) { | |
return arguments.length === 1 ? h instanceof d3_Hcl ? d3_hcl(h.h, h.c, h.l) : h instanceof d3_Lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : d3_hcl(+h, +c, +l); | |
}; | |
function d3_hcl(h, c, l) { | |
return new d3_Hcl(h, c, l); | |
} | |
function d3_Hcl(h, c, l) { | |
this.h = h; | |
this.c = c; | |
this.l = l; | |
} | |
var d3_hclPrototype = d3_Hcl.prototype = new d3_Color(); | |
d3_hclPrototype.brighter = function(k) { | |
return d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1))); | |
}; | |
d3_hclPrototype.darker = function(k) { | |
return d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1))); | |
}; | |
d3_hclPrototype.rgb = function() { | |
return d3_hcl_lab(this.h, this.c, this.l).rgb(); | |
}; | |
function d3_hcl_lab(h, c, l) { | |
return d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c); | |
} | |
d3.lab = function(l, a, b) { | |
return arguments.length === 1 ? l instanceof d3_Lab ? d3_lab(l.l, l.a, l.b) : l instanceof d3_Hcl ? d3_hcl_lab(l.l, l.c, l.h) : d3_rgb_lab((l = d3.rgb(l)).r, l.g, l.b) : d3_lab(+l, +a, +b); | |
}; | |
function d3_lab(l, a, b) { | |
return new d3_Lab(l, a, b); | |
} | |
function d3_Lab(l, a, b) { | |
this.l = l; | |
this.a = a; | |
this.b = b; | |
} | |
var d3_lab_K = 18; | |
var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883; | |
var d3_labPrototype = d3_Lab.prototype = new d3_Color(); | |
d3_labPrototype.brighter = function(k) { | |
return d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b); | |
}; | |
d3_labPrototype.darker = function(k) { | |
return d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b); | |
}; | |
d3_labPrototype.rgb = function() { | |
return d3_lab_rgb(this.l, this.a, this.b); | |
}; | |
function d3_lab_rgb(l, a, b) { | |
var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200; | |
x = d3_lab_xyz(x) * d3_lab_X; | |
y = d3_lab_xyz(y) * d3_lab_Y; | |
z = d3_lab_xyz(z) * d3_lab_Z; | |
return d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z)); | |
} | |
function d3_lab_hcl(l, a, b) { | |
return d3_hcl(Math.atan2(b, a) / π * 180, Math.sqrt(a * a + b * b), l); | |
} | |
function d3_lab_xyz(x) { | |
return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037; | |
} | |
function d3_xyz_lab(x) { | |
return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29; | |
} | |
function d3_xyz_rgb(r) { | |
return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055)); | |
} | |
function d3_selection(groups) { | |
d3_arraySubclass(groups, d3_selectionPrototype); | |
return groups; | |
} | |
var d3_select = function(s, n) { | |
return n.querySelector(s); | |
}, d3_selectAll = function(s, n) { | |
return n.querySelectorAll(s); | |
}, d3_selectRoot = d3_document.documentElement, d3_selectMatcher = d3_selectRoot.matchesSelector || d3_selectRoot.webkitMatchesSelector || d3_selectRoot.mozMatchesSelector || d3_selectRoot.msMatchesSelector || d3_selectRoot.oMatchesSelector, d3_selectMatches = function(n, s) { | |
return d3_selectMatcher.call(n, s); | |
}; | |
if (typeof Sizzle === "function") { | |
d3_select = function(s, n) { | |
return Sizzle(s, n)[0] || null; | |
}; | |
d3_selectAll = function(s, n) { | |
return Sizzle.uniqueSort(Sizzle(s, n)); | |
}; | |
d3_selectMatches = Sizzle.matchesSelector; | |
} | |
var d3_selectionPrototype = []; | |
d3.selection = function() { | |
return d3_selectionRoot; | |
}; | |
d3.selection.prototype = d3_selectionPrototype; | |
d3_selectionPrototype.select = function(selector) { | |
var subgroups = [], subgroup, subnode, group, node; | |
if (typeof selector !== "function") selector = d3_selection_selector(selector); | |
for (var j = -1, m = this.length; ++j < m; ) { | |
subgroups.push(subgroup = []); | |
subgroup.parentNode = (group = this[j]).parentNode; | |
for (var i = -1, n = group.length; ++i < n; ) { | |
if (node = group[i]) { | |
subgroup.push(subnode = selector.call(node, node.__data__, i)); | |
if (subnode && "__data__" in node) subnode.__data__ = node.__data__; | |
} else { | |
subgroup.push(null); | |
} | |
} | |
} | |
return d3_selection(subgroups); | |
}; | |
function d3_selection_selector(selector) { | |
return function() { | |
return d3_select(selector, this); | |
}; | |
} | |
d3_selectionPrototype.selectAll = function(selector) { | |
var subgroups = [], subgroup, node; | |
if (typeof selector !== "function") selector = d3_selection_selectorAll(selector); | |
for (var j = -1, m = this.length; ++j < m; ) { | |
for (var group = this[j], i = -1, n = group.length; ++i < n; ) { | |
if (node = group[i]) { | |
subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i))); | |
subgroup.parentNode = node; | |
} | |
} | |
} | |
return d3_selection(subgroups); | |
}; | |
function d3_selection_selectorAll(selector) { | |
return function() { | |
return d3_selectAll(selector, this); | |
}; | |
} | |
d3_selectionPrototype.attr = function(name, value) { | |
if (arguments.length < 2) { | |
if (typeof name === "string") { | |
var node = this.node(); | |
name = d3.ns.qualify(name); | |
return name.local ? node.getAttributeNS(name.space, name.local) : node.getAttribute(name); | |
} | |
for (value in name) this.each(d3_selection_attr(value, name[value])); | |
return this; | |
} | |
return this.each(d3_selection_attr(name, value)); | |
}; | |
function d3_selection_attr(name, value) { | |
name = d3.ns.qualify(name); | |
function attrNull() { | |
this.removeAttribute(name); | |
} | |
function attrNullNS() { | |
this.removeAttributeNS(name.space, name.local); | |
} | |
function attrConstant() { | |
this.setAttribute(name, value); | |
} | |
function attrConstantNS() { | |
this.setAttributeNS(name.space, name.local, value); | |
} | |
function attrFunction() { | |
var x = value.apply(this, arguments); | |
if (x == null) this.removeAttribute(name); else this.setAttribute(name, x); | |
} | |
function attrFunctionNS() { | |
var x = value.apply(this, arguments); | |
if (x == null) this.removeAttributeNS(name.space, name.local); else this.setAttributeNS(name.space, name.local, x); | |
} | |
return value == null ? name.local ? attrNullNS : attrNull : typeof value === "function" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant; | |
} | |
d3_selectionPrototype.classed = function(name, value) { | |
if (arguments.length < 2) { | |
if (typeof name === "string") { | |
var node = this.node(), n = (name = name.trim().split(/^|\s+/g)).length, i = -1; | |
if (value = node.classList) { | |
while (++i < n) if (!value.contains(name[i])) return false; | |
} else { | |
value = node.className; | |
if (value.baseVal != null) value = value.baseVal; | |
while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false; | |
} | |
return true; | |
} | |
for (value in name) this.each(d3_selection_classed(value, name[value])); | |
return this; | |
} | |
return this.each(d3_selection_classed(name, value)); | |
}; | |
function d3_selection_classedRe(name) { | |
return new RegExp("(?:^|\\s+)" + d3.requote(name) + "(?:\\s+|$)", "g"); | |
} | |
function d3_selection_classed(name, value) { | |
name = name.trim().split(/\s+/).map(d3_selection_classedName); | |
var n = name.length; | |
function classedConstant() { | |
var i = -1; | |
while (++i < n) name[i](this, value); | |
} | |
function classedFunction() { | |
var i = -1, x = value.apply(this, arguments); | |
while (++i < n) name[i](this, x); | |
} | |
return typeof value === "function" ? classedFunction : classedConstant; | |
} | |
function d3_selection_classedName(name) { | |
var re = d3_selection_classedRe(name); | |
return function(node, value) { | |
if (c = node.classList) return value ? c.add(name) : c.remove(name); | |
var c = node.className, cb = c.baseVal != null, cv = cb ? c.baseVal : c; | |
if (value) { | |
re.lastIndex = 0; | |
if (!re.test(cv)) { | |
cv = d3_collapse(cv + " " + name); | |
if (cb) c.baseVal = cv; else node.className = cv; | |
} | |
} else if (cv) { | |
cv = d3_collapse(cv.replace(re, " ")); | |
if (cb) c.baseVal = cv; else node.className = cv; | |
} | |
}; | |
} | |
d3_selectionPrototype.style = function(name, value, priority) { | |
var n = arguments.length; | |
if (n < 3) { | |
if (typeof name !== "string") { | |
if (n < 2) value = ""; | |
for (priority in name) this.each(d3_selection_style(priority, name[priority], value)); | |
return this; | |
} | |
if (n < 2) return d3_window.getComputedStyle(this.node(), null).getPropertyValue(name); | |
priority = ""; | |
} | |
return this.each(d3_selection_style(name, value, priority)); | |
}; | |
function d3_selection_style(name, value, priority) { | |
function styleNull() { | |
this.style.removeProperty(name); | |
} | |
function styleConstant() { | |
this.style.setProperty(name, value, priority); | |
} | |
function styleFunction() { | |
var x = value.apply(this, arguments); | |
if (x == null) this.style.removeProperty(name); else this.style.setProperty(name, x, priority); | |
} | |
return value == null ? styleNull : typeof value === "function" ? styleFunction : styleConstant; | |
} | |
d3_selectionPrototype.property = function(name, value) { | |
if (arguments.length < 2) { | |
if (typeof name === "string") return this.node()[name]; | |
for (value in name) this.each(d3_selection_property(value, name[value])); | |
return this; | |
} | |
return this.each(d3_selection_property(name, value)); | |
}; | |
function d3_selection_property(name, value) { | |
function propertyNull() { | |
delete this[name]; | |
} | |
function propertyConstant() { | |
this[name] = value; | |
} | |
function propertyFunction() { | |
var x = value.apply(this, arguments); | |
if (x == null) delete this[name]; else this[name] = x; | |
} | |
return value == null ? propertyNull : typeof value === "function" ? propertyFunction : propertyConstant; | |
} | |
d3_selectionPrototype.text = function(value) { | |
return arguments.length ? this.each(typeof value === "function" ? function() { | |
var v = value.apply(this, arguments); | |
this.textContent = v == null ? "" : v; | |
} : value == null ? function() { | |
this.textContent = ""; | |
} : function() { | |
this.textContent = value; | |
}) : this.node().textContent; | |
}; | |
d3_selectionPrototype.html = function(value) { | |
return arguments.length ? this.each(typeof value === "function" ? function() { | |
var v = value.apply(this, arguments); | |
this.innerHTML = v == null ? "" : v; | |
} : value == null ? function() { | |
this.innerHTML = ""; | |
} : function() { | |
this.innerHTML = value; | |
}) : this.node().innerHTML; | |
}; | |
d3_selectionPrototype.append = function(name) { | |
name = d3.ns.qualify(name); | |
function append() { | |
return this.appendChild(d3_document.createElementNS(this.namespaceURI, name)); | |
} | |
function appendNS() { | |
return this.appendChild(d3_document.createElementNS(name.space, name.local)); | |
} | |
return this.select(name.local ? appendNS : append); | |
}; | |
d3_selectionPrototype.insert = function(name, before) { | |
name = d3.ns.qualify(name); | |
function insert() { | |
return this.insertBefore(d3_document.createElementNS(this.namespaceURI, name), d3_select(before, this)); | |
} | |
function insertNS() { | |
return this.insertBefore(d3_document.createElementNS(name.space, name.local), d3_select(before, this)); | |
} | |
return this.select(name.local ? insertNS : insert); | |
}; | |
d3_selectionPrototype.remove = function() { | |
return this.each(function() { | |
var parent = this.parentNode; | |
if (parent) parent.removeChild(this); | |
}); | |
}; | |
d3_selectionPrototype.data = function(value, key) { | |
var i = -1, n = this.length, group, node; | |
if (!arguments.length) { | |
value = new Array(n = (group = this[0]).length); | |
while (++i < n) { | |
if (node = group[i]) { | |
value[i] = node.__data__; | |
} | |
} | |
return value; | |
} | |
function bind(group, groupData) { | |
var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData; | |
if (key) { | |
var nodeByKeyValue = new d3_Map(), dataByKeyValue = new d3_Map(), keyValues = [], keyValue; | |
for (i = -1; ++i < n; ) { | |
keyValue = key.call(node = group[i], node.__data__, i); | |
if (nodeByKeyValue.has(keyValue)) { | |
exitNodes[i] = node; | |
} else { | |
nodeByKeyValue.set(keyValue, node); | |
} | |
keyValues.push(keyValue); | |
} | |
for (i = -1; ++i < m; ) { | |
keyValue = key.call(groupData, nodeData = groupData[i], i); | |
if (node = nodeByKeyValue.get(keyValue)) { | |
updateNodes[i] = node; | |
node.__data__ = nodeData; | |
} else if (!dataByKeyValue.has(keyValue)) { | |
enterNodes[i] = d3_selection_dataNode(nodeData); | |
} | |
dataByKeyValue.set(keyValue, nodeData); | |
nodeByKeyValue.remove(keyValue); | |
} | |
for (i = -1; ++i < n; ) { | |
if (nodeByKeyValue.has(keyValues[i])) { | |
exitNodes[i] = group[i]; | |
} | |
} | |
} else { | |
for (i = -1; ++i < n0; ) { | |
node = group[i]; | |
nodeData = groupData[i]; | |
if (node) { | |
node.__data__ = nodeData; | |
updateNodes[i] = node; | |
} else { | |
enterNodes[i] = d3_selection_dataNode(nodeData); | |
} | |
} | |
for (;i < m; ++i) { | |
enterNodes[i] = d3_selection_dataNode(groupData[i]); | |
} | |
for (;i < n; ++i) { | |
exitNodes[i] = group[i]; | |
} | |
} | |
enterNodes.update = updateNodes; | |
enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group.parentNode; | |
enter.push(enterNodes); | |
update.push(updateNodes); | |
exit.push(exitNodes); | |
} | |
var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]); | |
if (typeof value === "function") { | |
while (++i < n) { | |
bind(group = this[i], value.call(group, group.parentNode.__data__, i)); | |
} | |
} else { | |
while (++i < n) { | |
bind(group = this[i], value); | |
} | |
} | |
update.enter = function() { | |
return enter; | |
}; | |
update.exit = function() { | |
return exit; | |
}; | |
return update; | |
}; | |
function d3_selection_dataNode(data) { | |
return { | |
__data__: data | |
}; | |
} | |
d3_selectionPrototype.datum = function(value) { | |
return arguments.length ? this.property("__data__", value) : this.property("__data__"); | |
}; | |
d3_selectionPrototype.filter = function(filter) { | |
var subgroups = [], subgroup, group, node; | |
if (typeof filter !== "function") filter = d3_selection_filter(filter); | |
for (var j = 0, m = this.length; j < m; j++) { | |
subgroups.push(subgroup = []); | |
subgroup.parentNode = (group = this[j]).parentNode; | |
for (var i = 0, n = group.length; i < n; i++) { | |
if ((node = group[i]) && filter.call(node, node.__data__, i)) { | |
subgroup.push(node); | |
} | |
} | |
} | |
return d3_selection(subgroups); | |
}; | |
function d3_selection_filter(selector) { | |
return function() { | |
return d3_selectMatches(this, selector); | |
}; | |
} | |
d3_selectionPrototype.order = function() { | |
for (var j = -1, m = this.length; ++j < m; ) { | |
for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) { | |
if (node = group[i]) { | |
if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next); | |
next = node; | |
} | |
} | |
} | |
return this; | |
}; | |
d3_selectionPrototype.sort = function(comparator) { | |
comparator = d3_selection_sortComparator.apply(this, arguments); | |
for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator); | |
return this.order(); | |
}; | |
function d3_selection_sortComparator(comparator) { | |
if (!arguments.length) comparator = d3.ascending; | |
return function(a, b) { | |
return !a - !b || comparator(a.__data__, b.__data__); | |
}; | |
} | |
d3_selectionPrototype.on = function(type, listener, capture) { | |
var n = arguments.length; | |
if (n < 3) { | |
if (typeof type !== "string") { | |
if (n < 2) listener = false; | |
for (capture in type) this.each(d3_selection_on(capture, type[capture], listener)); | |
return this; | |
} | |
if (n < 2) return (n = this.node()["__on" + type]) && n._; | |
capture = false; | |
} | |
return this.each(d3_selection_on(type, listener, capture)); | |
}; | |
function d3_selection_on(type, listener, capture) { | |
var name = "__on" + type, i = type.indexOf("."); | |
if (i > 0) type = type.substring(0, i); | |
function onRemove() { | |
var wrapper = this[name]; | |
if (wrapper) { | |
this.removeEventListener(type, wrapper, wrapper.$); | |
delete this[name]; | |
} | |
} | |
function onAdd() { | |
var node = this, args = d3_array(arguments); | |
onRemove.call(this); | |
this.addEventListener(type, this[name] = wrapper, wrapper.$ = capture); | |
wrapper._ = listener; | |
function wrapper(e) { | |
var o = d3.event; | |
d3.event = e; | |
args[0] = node.__data__; | |
try { | |
listener.apply(node, args); | |
} finally { | |
d3.event = o; | |
} | |
} | |
} | |
return listener ? onAdd : onRemove; | |
} | |
d3_selectionPrototype.each = function(callback) { | |
return d3_selection_each(this, function(node, i, j) { | |
callback.call(node, node.__data__, i, j); | |
}); | |
}; | |
function d3_selection_each(groups, callback) { | |
for (var j = 0, m = groups.length; j < m; j++) { | |
for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) { | |
if (node = group[i]) callback(node, i, j); | |
} | |
} | |
return groups; | |
} | |
d3_selectionPrototype.call = function(callback) { | |
var args = d3_array(arguments); | |
callback.apply(args[0] = this, args); | |
return this; | |
}; | |
d3_selectionPrototype.empty = function() { | |
return !this.node(); | |
}; | |
d3_selectionPrototype.node = function() { | |
for (var j = 0, m = this.length; j < m; j++) { | |
for (var group = this[j], i = 0, n = group.length; i < n; i++) { | |
var node = group[i]; | |
if (node) return node; | |
} | |
} | |
return null; | |
}; | |
d3_selectionPrototype.transition = function() { | |
var id = d3_transitionInheritId || ++d3_transitionId, subgroups = [], subgroup, node, transition = Object.create(d3_transitionInherit); | |
transition.time = Date.now(); | |
for (var j = -1, m = this.length; ++j < m; ) { | |
subgroups.push(subgroup = []); | |
for (var group = this[j], i = -1, n = group.length; ++i < n; ) { | |
if (node = group[i]) d3_transitionNode(node, i, id, transition); | |
subgroup.push(node); | |
} | |
} | |
return d3_transition(subgroups, id); | |
}; | |
var d3_selectionRoot = d3_selection([ [ d3_document ] ]); | |
d3_selectionRoot[0].parentNode = d3_selectRoot; | |
d3.select = function(selector) { | |
return typeof selector === "string" ? d3_selectionRoot.select(selector) : d3_selection([ [ selector ] ]); | |
}; | |
d3.selectAll = function(selector) { | |
return typeof selector === "string" ? d3_selectionRoot.selectAll(selector) : d3_selection([ d3_array(selector) ]); | |
}; | |
function d3_selection_enter(selection) { | |
d3_arraySubclass(selection, d3_selection_enterPrototype); | |
return selection; | |
} | |
var d3_selection_enterPrototype = []; | |
d3.selection.enter = d3_selection_enter; | |
d3.selection.enter.prototype = d3_selection_enterPrototype; | |
d3_selection_enterPrototype.append = d3_selectionPrototype.append; | |
d3_selection_enterPrototype.insert = d3_selectionPrototype.insert; | |
d3_selection_enterPrototype.empty = d3_selectionPrototype.empty; | |
d3_selection_enterPrototype.node = d3_selectionPrototype.node; | |
d3_selection_enterPrototype.select = function(selector) { | |
var subgroups = [], subgroup, subnode, upgroup, group, node; | |
for (var j = -1, m = this.length; ++j < m; ) { | |
upgroup = (group = this[j]).update; | |
subgroups.push(subgroup = []); | |
subgroup.parentNode = group.parentNode; | |
for (var i = -1, n = group.length; ++i < n; ) { | |
if (node = group[i]) { | |
subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i)); | |
subnode.__data__ = node.__data__; | |
} else { | |
subgroup.push(null); | |
} | |
} | |
} | |
return d3_selection(subgroups); | |
}; | |
function d3_transition(groups, id) { | |
d3_arraySubclass(groups, d3_transitionPrototype); | |
groups.id = id; | |
return groups; | |
} | |
var d3_transitionPrototype = [], d3_transitionId = 0, d3_transitionInheritId, d3_transitionInherit = { | |
ease: d3_ease_cubicInOut, | |
delay: 0, | |
duration: 250 | |
}; | |
d3_transitionPrototype.call = d3_selectionPrototype.call; | |
d3_transitionPrototype.empty = d3_selectionPrototype.empty; | |
d3_transitionPrototype.node = d3_selectionPrototype.node; | |
d3.transition = function(selection) { | |
return arguments.length ? d3_transitionInheritId ? selection.transition() : selection : d3_selectionRoot.transition(); | |
}; | |
d3.transition.prototype = d3_transitionPrototype; | |
function d3_transitionNode(node, i, id, inherit) { | |
var lock = node.__transition__ || (node.__transition__ = { | |
active: 0, | |
count: 0 | |
}), transition = lock[id]; | |
if (!transition) { | |
var time = inherit.time; | |
transition = lock[id] = { | |
tween: new d3_Map(), | |
event: d3.dispatch("start", "end"), | |
time: time, | |
ease: inherit.ease, | |
delay: inherit.delay, | |
duration: inherit.duration | |
}; | |
++lock.count; | |
d3.timer(function(elapsed) { | |
var d = node.__data__, ease = transition.ease, event = transition.event, delay = transition.delay, duration = transition.duration, tweened = []; | |
return delay <= elapsed ? start(elapsed) : d3.timer(start, delay, time), 1; | |
function start(elapsed) { | |
if (lock.active > id) return stop(); | |
lock.active = id; | |
event.start.call(node, d, i); | |
transition.tween.forEach(function(key, value) { | |
if (value = value.call(node, d, i)) { | |
tweened.push(value); | |
} | |
}); | |
if (!tick(elapsed)) d3.timer(tick, 0, time); | |
return 1; | |
} | |
function tick(elapsed) { | |
if (lock.active !== id) return stop(); | |
var t = (elapsed - delay) / duration, e = ease(t), n = tweened.length; | |
while (n > 0) { | |
tweened[--n].call(node, e); | |
} | |
if (t >= 1) { | |
stop(); | |
event.end.call(node, d, i); | |
return 1; | |
} | |
} | |
function stop() { | |
if (--lock.count) delete lock[id]; else delete node.__transition__; | |
return 1; | |
} | |
}, 0, time); | |
return transition; | |
} | |
} | |
d3_transitionPrototype.select = function(selector) { | |
var id = this.id, subgroups = [], subgroup, subnode, node; | |
if (typeof selector !== "function") selector = d3_selection_selector(selector); | |
for (var j = -1, m = this.length; ++j < m; ) { | |
subgroups.push(subgroup = []); | |
for (var group = this[j], i = -1, n = group.length; ++i < n; ) { | |
if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i))) { | |
if ("__data__" in node) subnode.__data__ = node.__data__; | |
d3_transitionNode(subnode, i, id, node.__transition__[id]); | |
subgroup.push(subnode); | |
} else { | |
subgroup.push(null); | |
} | |
} | |
} | |
return d3_transition(subgroups, id); | |
}; | |
d3_transitionPrototype.selectAll = function(selector) { | |
var id = this.id, subgroups = [], subgroup, subnodes, node, subnode, transition; | |
if (typeof selector !== "function") selector = d3_selection_selectorAll(selector); | |
for (var j = -1, m = this.length; ++j < m; ) { | |
for (var group = this[j], i = -1, n = group.length; ++i < n; ) { | |
if (node = group[i]) { | |
transition = node.__transition__[id]; | |
subnodes = selector.call(node, node.__data__, i); | |
subgroups.push(subgroup = []); | |
for (var k = -1, o = subnodes.length; ++k < o; ) { | |
d3_transitionNode(subnode = subnodes[k], k, id, transition); | |
subgroup.push(subnode); | |
} | |
} | |
} | |
} | |
return d3_transition(subgroups, id); | |
}; | |
d3_transitionPrototype.filter = function(filter) { | |
var subgroups = [], subgroup, group, node; | |
if (typeof filter !== "function") filter = d3_selection_filter(filter); | |
for (var j = 0, m = this.length; j < m; j++) { | |
subgroups.push(subgroup = []); | |
for (var group = this[j], i = 0, n = group.length; i < n; i++) { | |
if ((node = group[i]) && filter.call(node, node.__data__, i)) { | |
subgroup.push(node); | |
} | |
} | |
} | |
return d3_transition(subgroups, this.id, this.time).ease(this.ease()); | |
}; | |
d3_transitionPrototype.attr = function(nameNS, value) { | |
if (arguments.length < 2) { | |
for (value in nameNS) this.attr(value, nameNS[value]); | |
return this; | |
} | |
var interpolate = d3_interpolateByName(nameNS), name = d3.ns.qualify(nameNS); | |
function attrNull() { | |
this.removeAttribute(name); | |
} | |
function attrNullNS() { | |
this.removeAttributeNS(name.space, name.local); | |
} | |
return d3_transition_tween(this, "attr." + nameNS, value, function(b) { | |
function attrString() { | |
var a = this.getAttribute(name), i; | |
return a !== b && (i = interpolate(a, b), function(t) { | |
this.setAttribute(name, i(t)); | |
}); | |
} | |
function attrStringNS() { | |
var a = this.getAttributeNS(name.space, name.local), i; | |
return a !== b && (i = interpolate(a, b), function(t) { | |
this.setAttributeNS(name.space, name.local, i(t)); | |
}); | |
} | |
return b == null ? name.local ? attrNullNS : attrNull : (b += "", name.local ? attrStringNS : attrString); | |
}); | |
}; | |
d3_transitionPrototype.attrTween = function(nameNS, tween) { | |
var name = d3.ns.qualify(nameNS); | |
function attrTween(d, i) { | |
var f = tween.call(this, d, i, this.getAttribute(name)); | |
return f && function(t) { | |
this.setAttribute(name, f(t)); | |
}; | |
} | |
function attrTweenNS(d, i) { | |
var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local)); | |
return f && function(t) { | |
this.setAttributeNS(name.space, name.local, f(t)); | |
}; | |
} | |
return this.tween("attr." + nameNS, name.local ? attrTweenNS : attrTween); | |
}; | |
d3_transitionPrototype.style = function(name, value, priority) { | |
var n = arguments.length; | |
if (n < 3) { | |
if (typeof name !== "string") { | |
if (n < 2) value = ""; | |
for (priority in name) this.style(priority, name[priority], value); | |
return this; | |
} | |
priority = ""; | |
} | |
var interpolate = d3_interpolateByName(name); | |
function styleNull() { | |
this.style.removeProperty(name); | |
} | |
return d3_transition_tween(this, "style." + name, value, function(b) { | |
function styleString() { | |
var a = d3_window.getComputedStyle(this, null).getPropertyValue(name), i; | |
return a !== b && (i = interpolate(a, b), function(t) { | |
this.style.setProperty(name, i(t), priority); | |
}); | |
} | |
return b == null ? styleNull : (b += "", styleString); | |
}); | |
}; | |
d3_transitionPrototype.styleTween = function(name, tween, priority) { | |
if (arguments.length < 3) priority = ""; | |
return this.tween("style." + name, function(d, i) { | |
var f = tween.call(this, d, i, d3_window.getComputedStyle(this, null).getPropertyValue(name)); | |
return f && function(t) { | |
this.style.setProperty(name, f(t), priority); | |
}; | |
}); | |
}; | |
d3_transitionPrototype.text = function(value) { | |
return d3_transition_tween(this, "text", value, d3_transition_text); | |
}; | |
function d3_transition_text(b) { | |
if (b == null) b = ""; | |
return function() { | |
this.textContent = b; | |
}; | |
} | |
d3_transitionPrototype.remove = function() { | |
return this.each("end.transition", function() { | |
var p; | |
if (!this.__transition__ && (p = this.parentNode)) p.removeChild(this); | |
}); | |
}; | |
d3_transitionPrototype.ease = function(value) { | |
var id = this.id; | |
if (arguments.length < 1) return this.node().__transition__[id].ease; | |
if (typeof value !== "function") value = d3.ease.apply(d3, arguments); | |
return d3_selection_each(this, function(node) { | |
node.__transition__[id].ease = value; | |
}); | |
}; | |
d3_transitionPrototype.delay = function(value) { | |
var id = this.id; | |
return d3_selection_each(this, typeof value === "function" ? function(node, i, j) { | |
node.__transition__[id].delay = value.call(node, node.__data__, i, j) | 0; | |
} : (value |= 0, function(node) { | |
node.__transition__[id].delay = value; | |
})); | |
}; | |
d3_transitionPrototype.duration = function(value) { | |
var id = this.id; | |
return d3_selection_each(this, typeof value === "function" ? function(node, i, j) { | |
node.__transition__[id].duration = Math.max(1, value.call(node, node.__data__, i, j) | 0); | |
} : (value = Math.max(1, value | 0), function(node) { | |
node.__transition__[id].duration = value; | |
})); | |
}; | |
d3_transitionPrototype.each = function(type, listener) { | |
var id = this.id; | |
if (arguments.length < 2) { | |
var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId; | |
d3_transitionInheritId = id; | |
d3_selection_each(this, function(node, i, j) { | |
d3_transitionInherit = node.__transition__[id]; | |
type.call(node, node.__data__, i, j); | |
}); | |
d3_transitionInherit = inherit; | |
d3_transitionInheritId = inheritId; | |
} else { | |
d3_selection_each(this, function(node) { | |
node.__transition__[id].event.on(type, listener); | |
}); | |
} | |
return this; | |
}; | |
d3_transitionPrototype.transition = function() { | |
var id0 = this.id, id1 = ++d3_transitionId, subgroups = [], subgroup, group, node, transition; | |
for (var j = 0, m = this.length; j < m; j++) { | |
subgroups.push(subgroup = []); | |
for (var group = this[j], i = 0, n = group.length; i < n; i++) { | |
if (node = group[i]) { | |
transition = Object.create(node.__transition__[id0]); | |
transition.delay += transition.duration; | |
d3_transitionNode(node, i, id1, transition); | |
} | |
subgroup.push(node); | |
} | |
} | |
return d3_transition(subgroups, id1); | |
}; | |
d3_transitionPrototype.tween = function(name, tween) { | |
var id = this.id; | |
if (arguments.length < 2) return this.node().__transition__[id].tween.get(name); | |
return d3_selection_each(this, tween == null ? function(node) { | |
node.__transition__[id].tween.remove(name); | |
} : function(node) { | |
node.__transition__[id].tween.set(name, tween); | |
}); | |
}; | |
function d3_transition_tween(groups, name, value, tween) { | |
var id = groups.id; | |
return d3_selection_each(groups, typeof value === "function" ? function(node, i, j) { | |
node.__transition__[id].tween.set(name, tween(value.call(node, node.__data__, i, j))); | |
} : (value = tween(value), function(node) { | |
node.__transition__[id].tween.set(name, value); | |
})); | |
} | |
var d3_timer_id = 0, d3_timer_byId = {}, d3_timer_queue = null, d3_timer_interval, d3_timer_timeout; | |
d3.timer = function(callback, delay, then) { | |
if (arguments.length < 3) { | |
if (arguments.length < 2) delay = 0; else if (!isFinite(delay)) return; | |
then = Date.now(); | |
} | |
var timer = d3_timer_byId[callback.id]; | |
if (timer && timer.callback === callback) { | |
timer.then = then; | |
timer.delay = delay; | |
} else d3_timer_byId[callback.id = ++d3_timer_id] = d3_timer_queue = { | |
callback: callback, | |
then: then, | |
delay: delay, | |
next: d3_timer_queue | |
}; | |
if (!d3_timer_interval) { | |
d3_timer_timeout = clearTimeout(d3_timer_timeout); | |
d3_timer_interval = 1; | |
d3_timer_frame(d3_timer_step); | |
} | |
}; | |
function d3_timer_step() { | |
var elapsed, now = Date.now(), t1 = d3_timer_queue; | |
while (t1) { | |
elapsed = now - t1.then; | |
if (elapsed >= t1.delay) t1.flush = t1.callback(elapsed); | |
t1 = t1.next; | |
} | |
var delay = d3_timer_flush() - now; | |
if (delay > 24) { | |
if (isFinite(delay)) { | |
clearTimeout(d3_timer_timeout); | |
d3_timer_timeout = setTimeout(d3_timer_step, delay); | |
} | |
d3_timer_interval = 0; | |
} else { | |
d3_timer_interval = 1; | |
d3_timer_frame(d3_timer_step); | |
} | |
} | |
d3.timer.flush = function() { | |
var elapsed, now = Date.now(), t1 = d3_timer_queue; | |
while (t1) { | |
elapsed = now - t1.then; | |
if (!t1.delay) t1.flush = t1.callback(elapsed); | |
t1 = t1.next; | |
} | |
d3_timer_flush(); | |
}; | |
function d3_timer_flush() { | |
var t0 = null, t1 = d3_timer_queue, then = Infinity; | |
while (t1) { | |
if (t1.flush) { | |
delete d3_timer_byId[t1.callback.id]; | |
t1 = t0 ? t0.next = t1.next : d3_timer_queue = t1.next; | |
} else { | |
then = Math.min(then, t1.then + t1.delay); | |
t1 = (t0 = t1).next; | |
} | |
} | |
return then; | |
} | |
var d3_timer_frame = d3_window.requestAnimationFrame || d3_window.webkitRequestAnimationFrame || d3_window.mozRequestAnimationFrame || d3_window.oRequestAnimationFrame || d3_window.msRequestAnimationFrame || function(callback) { | |
setTimeout(callback, 17); | |
}; | |
d3.mouse = function(container) { | |
return d3_mousePoint(container, d3_eventSource()); | |
}; | |
var d3_mouse_bug44083 = /WebKit/.test(d3_window.navigator.userAgent) ? -1 : 0; | |
function d3_mousePoint(container, e) { | |
var svg = container.ownerSVGElement || container; | |
if (svg.createSVGPoint) { | |
var point = svg.createSVGPoint(); | |
if (d3_mouse_bug44083 < 0 && (d3_window.scrollX || d3_window.scrollY)) { | |
svg = d3.select(d3_document.body).append("svg").style("position", "absolute").style("top", 0).style("left", 0); | |
var ctm = svg[0][0].getScreenCTM(); | |
d3_mouse_bug44083 = !(ctm.f || ctm.e); | |
svg.remove(); | |
} | |
if (d3_mouse_bug44083) { | |
point.x = e.pageX; | |
point.y = e.pageY; | |
} else { | |
point.x = e.clientX; | |
point.y = e.clientY; | |
} | |
point = point.matrixTransform(container.getScreenCTM().inverse()); | |
return [ point.x, point.y ]; | |
} | |
var rect = container.getBoundingClientRect(); | |
return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ]; | |
} | |
d3.touches = function(container, touches) { | |
if (arguments.length < 2) touches = d3_eventSource().touches; | |
return touches ? d3_array(touches).map(function(touch) { | |
var point = d3_mousePoint(container, touch); | |
point.identifier = touch.identifier; | |
return point; | |
}) : []; | |
}; | |
function d3_noop() {} | |
d3.scale = {}; | |
function d3_scaleExtent(domain) { | |
var start = domain[0], stop = domain[domain.length - 1]; | |
return start < stop ? [ start, stop ] : [ stop, start ]; | |
} | |
function d3_scaleRange(scale) { | |
return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range()); | |
} | |
function d3_scale_nice(domain, nice) { | |
var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx; | |
if (x1 < x0) { | |
dx = i0, i0 = i1, i1 = dx; | |
dx = x0, x0 = x1, x1 = dx; | |
} | |
if (nice = nice(x1 - x0)) { | |
domain[i0] = nice.floor(x0); | |
domain[i1] = nice.ceil(x1); | |
} | |
return domain; | |
} | |
function d3_scale_niceDefault() { | |
return Math; | |
} | |
d3.scale.linear = function() { | |
return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3.interpolate, false); | |
}; | |
function d3_scale_linear(domain, range, interpolate, clamp) { | |
var output, input; | |
function rescale() { | |
var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber; | |
output = linear(domain, range, uninterpolate, interpolate); | |
input = linear(range, domain, uninterpolate, d3.interpolate); | |
return scale; | |
} | |
function scale(x) { | |
return output(x); | |
} | |
scale.invert = function(y) { | |
return input(y); | |
}; | |
scale.domain = function(x) { | |
if (!arguments.length) return domain; | |
domain = x.map(Number); | |
return rescale(); | |
}; | |
scale.range = function(x) { | |
if (!arguments.length) return range; | |
range = x; | |
return rescale(); | |
}; | |
scale.rangeRound = function(x) { | |
return scale.range(x).interpolate(d3.interpolateRound); | |
}; | |
scale.clamp = function(x) { | |
if (!arguments.length) return clamp; | |
clamp = x; | |
return rescale(); | |
}; | |
scale.interpolate = function(x) { | |
if (!arguments.length) return interpolate; | |
interpolate = x; | |
return rescale(); | |
}; | |
scale.ticks = function(m) { | |
return d3_scale_linearTicks(domain, m); | |
}; | |
scale.tickFormat = function(m) { | |
return d3_scale_linearTickFormat(domain, m); | |
}; | |
scale.nice = function() { | |
d3_scale_nice(domain, d3_scale_linearNice); | |
return rescale(); | |
}; | |
scale.copy = function() { | |
return d3_scale_linear(domain, range, interpolate, clamp); | |
}; | |
return rescale(); | |
} | |
function d3_scale_linearRebind(scale, linear) { | |
return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp"); | |
} | |
function d3_scale_linearNice(dx) { | |
dx = Math.pow(10, Math.round(Math.log(dx) / Math.LN10) - 1); | |
return dx && { | |
floor: function(x) { | |
return Math.floor(x / dx) * dx; | |
}, | |
ceil: function(x) { | |
return Math.ceil(x / dx) * dx; | |
} | |
}; | |
} | |
function d3_scale_linearTickRange(domain, m) { | |
var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step; | |
if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2; | |
extent[0] = Math.ceil(extent[0] / step) * step; | |
extent[1] = Math.floor(extent[1] / step) * step + step * .5; | |
extent[2] = step; | |
return extent; | |
} | |
function d3_scale_linearTicks(domain, m) { | |
return d3.range.apply(d3, d3_scale_linearTickRange(domain, m)); | |
} | |
function d3_scale_linearTickFormat(domain, m) { | |
return d3.format(",." + Math.max(0, -Math.floor(Math.log(d3_scale_linearTickRange(domain, m)[2]) / Math.LN10 + .01)) + "f"); | |
} | |
function d3_scale_bilinear(domain, range, uninterpolate, interpolate) { | |
var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]); | |
return function(x) { | |
return i(u(x)); | |
}; | |
} | |
function d3_scale_polylinear(domain, range, uninterpolate, interpolate) { | |
var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1; | |
if (domain[k] < domain[0]) { | |
domain = domain.slice().reverse(); | |
range = range.slice().reverse(); | |
} | |
while (++j <= k) { | |
u.push(uninterpolate(domain[j - 1], domain[j])); | |
i.push(interpolate(range[j - 1], range[j])); | |
} | |
return function(x) { | |
var j = d3.bisect(domain, x, 1, k) - 1; | |
return i[j](u[j](x)); | |
}; | |
} | |
d3.scale.log = function() { | |
return d3_scale_log(d3.scale.linear(), d3_scale_logp); | |
}; | |
function d3_scale_log(linear, log) { | |
var pow = log.pow; | |
function scale(x) { | |
return linear(log(x)); | |
} | |
scale.invert = function(x) { | |
return pow(linear.invert(x)); | |
}; | |
scale.domain = function(x) { | |
if (!arguments.length) return linear.domain().map(pow); | |
log = x[0] < 0 ? d3_scale_logn : d3_scale_logp; | |
pow = log.pow; | |
linear.domain(x.map(log)); | |
return scale; | |
}; | |
scale.nice = function() { | |
linear.domain(d3_scale_nice(linear.domain(), d3_scale_niceDefault)); | |
return scale; | |
}; | |
scale.ticks = function() { | |
var extent = d3_scaleExtent(linear.domain()), ticks = []; | |
if (extent.every(isFinite)) { | |
var i = Math.floor(extent[0]), j = Math.ceil(extent[1]), u = pow(extent[0]), v = pow(extent[1]); | |
if (log === d3_scale_logn) { | |
ticks.push(pow(i)); | |
for (;i++ < j; ) for (var k = 9; k > 0; k--) ticks.push(pow(i) * k); | |
} else { | |
for (;i < j; i++) for (var k = 1; k < 10; k++) ticks.push(pow(i) * k); | |
ticks.push(pow(i)); | |
} | |
for (i = 0; ticks[i] < u; i++) {} | |
for (j = ticks.length; ticks[j - 1] > v; j--) {} | |
ticks = ticks.slice(i, j); | |
} | |
return ticks; | |
}; | |
scale.tickFormat = function(n, format) { | |
if (arguments.length < 2) format = d3_scale_logFormat; | |
if (!arguments.length) return format; | |
var k = Math.max(.1, n / scale.ticks().length), f = log === d3_scale_logn ? (e = -1e-12, | |
Math.floor) : (e = 1e-12, Math.ceil), e; | |
return function(d) { | |
return d / pow(f(log(d) + e)) <= k ? format(d) : ""; | |
}; | |
}; | |
scale.copy = function() { | |
return d3_scale_log(linear.copy(), log); | |
}; | |
return d3_scale_linearRebind(scale, linear); | |
} | |
var d3_scale_logFormat = d3.format(".0e"); | |
function d3_scale_logp(x) { | |
return Math.log(x < 0 ? 0 : x) / Math.LN10; | |
} | |
function d3_scale_logn(x) { | |
return -Math.log(x > 0 ? 0 : -x) / Math.LN10; | |
} | |
d3_scale_logp.pow = function(x) { | |
return Math.pow(10, x); | |
}; | |
d3_scale_logn.pow = function(x) { | |
return -Math.pow(10, -x); | |
}; | |
d3.scale.pow = function() { | |
return d3_scale_pow(d3.scale.linear(), 1); | |
}; | |
function d3_scale_pow(linear, exponent) { | |
var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent); | |
function scale(x) { | |
return linear(powp(x)); | |
} | |
scale.invert = function(x) { | |
return powb(linear.invert(x)); | |
}; | |
scale.domain = function(x) { | |
if (!arguments.length) return linear.domain().map(powb); | |
linear.domain(x.map(powp)); | |
return scale; | |
}; | |
scale.ticks = function(m) { | |
return d3_scale_linearTicks(scale.domain(), m); | |
}; | |
scale.tickFormat = function(m) { | |
return d3_scale_linearTickFormat(scale.domain(), m); | |
}; | |
scale.nice = function() { | |
return scale.domain(d3_scale_nice(scale.domain(), d3_scale_linearNice)); | |
}; | |
scale.exponent = function(x) { | |
if (!arguments.length) return exponent; | |
var domain = scale.domain(); | |
powp = d3_scale_powPow(exponent = x); | |
powb = d3_scale_powPow(1 / exponent); | |
return scale.domain(domain); | |
}; | |
scale.copy = function() { | |
return d3_scale_pow(linear.copy(), exponent); | |
}; | |
return d3_scale_linearRebind(scale, linear); | |
} | |
function d3_scale_powPow(e) { | |
return function(x) { | |
return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e); | |
}; | |
} | |
d3.scale.sqrt = function() { | |
return d3.scale.pow().exponent(.5); | |
}; | |
d3.scale.ordinal = function() { | |
return d3_scale_ordinal([], { | |
t: "range", | |
a: [ [] ] | |
}); | |
}; | |
function d3_scale_ordinal(domain, ranger) { | |
var index, range, rangeBand; | |
function scale(x) { | |
return range[((index.get(x) || index.set(x, domain.push(x))) - 1) % range.length]; | |
} | |
function steps(start, step) { | |
return d3.range(domain.length).map(function(i) { | |
return start + step * i; | |
}); | |
} | |
scale.domain = function(x) { | |
if (!arguments.length) return domain; | |
domain = []; | |
index = new d3_Map(); | |
var i = -1, n = x.length, xi; | |
while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi)); | |
return scale[ranger.t].apply(scale, ranger.a); | |
}; | |
scale.range = function(x) { | |
if (!arguments.length) return range; | |
range = x; | |
rangeBand = 0; | |
ranger = { | |
t: "range", | |
a: arguments | |
}; | |
return scale; | |
}; | |
scale.rangePoints = function(x, padding) { | |
if (arguments.length < 2) padding = 0; | |
var start = x[0], stop = x[1], step = (stop - start) / (Math.max(1, domain.length - 1) + padding); | |
range = steps(domain.length < 2 ? (start + stop) / 2 : start + step * padding / 2, step); | |
rangeBand = 0; | |
ranger = { | |
t: "rangePoints", | |
a: arguments | |
}; | |
return scale; | |
}; | |
scale.rangeBands = function(x, padding, outerPadding) { | |
if (arguments.length < 2) padding = 0; | |
if (arguments.length < 3) outerPadding = padding; | |
var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding); | |
range = steps(start + step * outerPadding, step); | |
if (reverse) range.reverse(); | |
rangeBand = step * (1 - padding); | |
ranger = { | |
t: "rangeBands", | |
a: arguments | |
}; | |
return scale; | |
}; | |
scale.rangeRoundBands = function(x, padding, outerPadding) { | |
if (arguments.length < 2) padding = 0; | |
if (arguments.length < 3) outerPadding = padding; | |
var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding)), error = stop - start - (domain.length - padding) * step; | |
range = steps(start + Math.round(error / 2), step); | |
if (reverse) range.reverse(); | |
rangeBand = Math.round(step * (1 - padding)); | |
ranger = { | |
t: "rangeRoundBands", | |
a: arguments | |
}; | |
return scale; | |
}; | |
scale.rangeBand = function() { | |
return rangeBand; | |
}; | |
scale.rangeExtent = function() { | |
return d3_scaleExtent(ranger.a[0]); | |
}; | |
scale.copy = function() { | |
return d3_scale_ordinal(domain, ranger); | |
}; | |
return scale.domain(domain); | |
} | |
d3.scale.category10 = function() { | |
return d3.scale.ordinal().range(d3_category10); | |
}; | |
d3.scale.category20 = function() { | |
return d3.scale.ordinal().range(d3_category20); | |
}; | |
d3.scale.category20b = function() { | |
return d3.scale.ordinal().range(d3_category20b); | |
}; | |
d3.scale.category20c = function() { | |
return d3.scale.ordinal().range(d3_category20c); | |
}; | |
var d3_category10 = [ "#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf" ]; | |
var d3_category20 = [ "#1f77b4", "#aec7e8", "#ff7f0e", "#ffbb78", "#2ca02c", "#98df8a", "#d62728", "#ff9896", "#9467bd", "#c5b0d5", "#8c564b", "#c49c94", "#e377c2", "#f7b6d2", "#7f7f7f", "#c7c7c7", "#bcbd22", "#dbdb8d", "#17becf", "#9edae5" ]; | |
var d3_category20b = [ "#393b79", "#5254a3", "#6b6ecf", "#9c9ede", "#637939", "#8ca252", "#b5cf6b", "#cedb9c", "#8c6d31", "#bd9e39", "#e7ba52", "#e7cb94", "#843c39", "#ad494a", "#d6616b", "#e7969c", "#7b4173", "#a55194", "#ce6dbd", "#de9ed6" ]; | |
var d3_category20c = [ "#3182bd", "#6baed6", "#9ecae1", "#c6dbef", "#e6550d", "#fd8d3c", "#fdae6b", "#fdd0a2", "#31a354", "#74c476", "#a1d99b", "#c7e9c0", "#756bb1", "#9e9ac8", "#bcbddc", "#dadaeb", "#636363", "#969696", "#bdbdbd", "#d9d9d9" ]; | |
d3.scale.quantile = function() { | |
return d3_scale_quantile([], []); | |
}; | |
function d3_scale_quantile(domain, range) { | |
var thresholds; | |
function rescale() { | |
var k = 0, q = range.length; | |
thresholds = []; | |
while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q); | |
return scale; | |
} | |
function scale(x) { | |
if (isNaN(x = +x)) return NaN; | |
return range[d3.bisect(thresholds, x)]; | |
} | |
scale.domain = function(x) { | |
if (!arguments.length) return domain; | |
domain = x.filter(function(d) { | |
return !isNaN(d); | |
}).sort(d3.ascending); | |
return rescale(); | |
}; | |
scale.range = function(x) { | |
if (!arguments.length) return range; | |
range = x; | |
return rescale(); | |
}; | |
scale.quantiles = function() { | |
return thresholds; | |
}; | |
scale.copy = function() { | |
return d3_scale_quantile(domain, range); | |
}; | |
return rescale(); | |
} | |
d3.scale.quantize = function() { | |
return d3_scale_quantize(0, 1, [ 0, 1 ]); | |
}; | |
function d3_scale_quantize(x0, x1, range) { | |
var kx, i; | |
function scale(x) { | |
return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))]; | |
} | |
function rescale() { | |
kx = range.length / (x1 - x0); | |
i = range.length - 1; | |
return scale; | |
} | |
scale.domain = function(x) { | |
if (!arguments.length) return [ x0, x1 ]; | |
x0 = +x[0]; | |
x1 = +x[x.length - 1]; | |
return rescale(); | |
}; | |
scale.range = function(x) { | |
if (!arguments.length) return range; | |
range = x; | |
return rescale(); | |
}; | |
scale.copy = function() { | |
return d3_scale_quantize(x0, x1, range); | |
}; | |
return rescale(); | |
} | |
d3.scale.threshold = function() { | |
return d3_scale_threshold([ .5 ], [ 0, 1 ]); | |
}; | |
function d3_scale_threshold(domain, range) { | |
function scale(x) { | |
return range[d3.bisect(domain, x)]; | |
} | |
scale.domain = function(_) { | |
if (!arguments.length) return domain; | |
domain = _; | |
return scale; | |
}; | |
scale.range = function(_) { | |
if (!arguments.length) return range; | |
range = _; | |
return scale; | |
}; | |
scale.copy = function() { | |
return d3_scale_threshold(domain, range); | |
}; | |
return scale; | |
} | |
d3.scale.identity = function() { | |
return d3_scale_identity([ 0, 1 ]); | |
}; | |
function d3_scale_identity(domain) { | |
function identity(x) { | |
return +x; | |
} | |
identity.invert = identity; | |
identity.domain = identity.range = function(x) { | |
if (!arguments.length) return domain; | |
domain = x.map(identity); | |
return identity; | |
}; | |
identity.ticks = function(m) { | |
return d3_scale_linearTicks(domain, m); | |
}; | |
identity.tickFormat = function(m) { | |
return d3_scale_linearTickFormat(domain, m); | |
}; | |
identity.copy = function() { | |
return d3_scale_identity(domain); | |
}; | |
return identity; | |
} | |
d3.svg = {}; | |
d3.svg.arc = function() { | |
var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle; | |
function arc() { | |
var r0 = innerRadius.apply(this, arguments), r1 = outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) + d3_svg_arcOffset, a1 = endAngle.apply(this, arguments) + d3_svg_arcOffset, da = (a1 < a0 && (da = a0, | |
a0 = a1, a1 = da), a1 - a0), df = da < π ? "0" : "1", c0 = Math.cos(a0), s0 = Math.sin(a0), c1 = Math.cos(a1), s1 = Math.sin(a1); | |
return da >= d3_svg_arcMax ? r0 ? "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "M0," + r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + -r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + r0 + "Z" : "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "Z" : r0 ? "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L" + r0 * c1 + "," + r0 * s1 + "A" + r0 + "," + r0 + " 0 " + df + ",0 " + r0 * c0 + "," + r0 * s0 + "Z" : "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L0,0" + "Z"; | |
} | |
arc.innerRadius = function(v) { | |
if (!arguments.length) return innerRadius; | |
innerRadius = d3_functor(v); | |
return arc; | |
}; | |
arc.outerRadius = function(v) { | |
if (!arguments.length) return outerRadius; | |
outerRadius = d3_functor(v); | |
return arc; | |
}; | |
arc.startAngle = function(v) { | |
if (!arguments.length) return startAngle; | |
startAngle = d3_functor(v); | |
return arc; | |
}; | |
arc.endAngle = function(v) { | |
if (!arguments.length) return endAngle; | |
endAngle = d3_functor(v); | |
return arc; | |
}; | |
arc.centroid = function() { | |
var r = (innerRadius.apply(this, arguments) + outerRadius.apply(this, arguments)) / 2, a = (startAngle.apply(this, arguments) + endAngle.apply(this, arguments)) / 2 + d3_svg_arcOffset; | |
return [ Math.cos(a) * r, Math.sin(a) * r ]; | |
}; | |
return arc; | |
}; | |
var d3_svg_arcOffset = -π / 2, d3_svg_arcMax = 2 * π - 1e-6; | |
function d3_svg_arcInnerRadius(d) { | |
return d.innerRadius; | |
} | |
function d3_svg_arcOuterRadius(d) { | |
return d.outerRadius; | |
} | |
function d3_svg_arcStartAngle(d) { | |
return d.startAngle; | |
} | |
function d3_svg_arcEndAngle(d) { | |
return d.endAngle; | |
} | |
function d3_svg_line(projection) { | |
var x = d3_svg_lineX, y = d3_svg_lineY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7; | |
function line(data) { | |
var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y); | |
function segment() { | |
segments.push("M", interpolate(projection(points), tension)); | |
} | |
while (++i < n) { | |
if (defined.call(this, d = data[i], i)) { | |
points.push([ +fx.call(this, d, i), +fy.call(this, d, i) ]); | |
} else if (points.length) { | |
segment(); | |
points = []; | |
} | |
} | |
if (points.length) segment(); | |
return segments.length ? segments.join("") : null; | |
} | |
line.x = function(_) { | |
if (!arguments.length) return x; | |
x = _; | |
return line; | |
}; | |
line.y = function(_) { | |
if (!arguments.length) return y; | |
y = _; | |
return line; | |
}; | |
line.defined = function(_) { | |
if (!arguments.length) return defined; | |
defined = _; | |
return line; | |
}; | |
line.interpolate = function(_) { | |
if (!arguments.length) return interpolateKey; | |
if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key; | |
return line; | |
}; | |
line.tension = function(_) { | |
if (!arguments.length) return tension; | |
tension = _; | |
return line; | |
}; | |
return line; | |
} | |
d3.svg.line = function() { | |
return d3_svg_line(d3_identity); | |
}; | |
function d3_svg_lineX(d) { | |
return d[0]; | |
} | |
function d3_svg_lineY(d) { | |
return d[1]; | |
} | |
var d3_svg_lineInterpolators = d3.map({ | |
linear: d3_svg_lineLinear, | |
"linear-closed": d3_svg_lineLinearClosed, | |
"step-before": d3_svg_lineStepBefore, | |
"step-after": d3_svg_lineStepAfter, | |
basis: d3_svg_lineBasis, | |
"basis-open": d3_svg_lineBasisOpen, | |
"basis-closed": d3_svg_lineBasisClosed, | |
bundle: d3_svg_lineBundle, | |
cardinal: d3_svg_lineCardinal, | |
"cardinal-open": d3_svg_lineCardinalOpen, | |
"cardinal-closed": d3_svg_lineCardinalClosed, | |
monotone: d3_svg_lineMonotone | |
}); | |
d3_svg_lineInterpolators.forEach(function(key, value) { | |
value.key = key; | |
value.closed = /-closed$/.test(key); | |
}); | |
function d3_svg_lineLinear(points) { | |
return points.join("L"); | |
} | |
function d3_svg_lineLinearClosed(points) { | |
return d3_svg_lineLinear(points) + "Z"; | |
} | |
function d3_svg_lineStepBefore(points) { | |
var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ]; | |
while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]); | |
return path.join(""); | |
} | |
function d3_svg_lineStepAfter(points) { | |
var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ]; | |
while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]); | |
return path.join(""); | |
} | |
function d3_svg_lineCardinalOpen(points, tension) { | |
return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, points.length - 1), d3_svg_lineCardinalTangents(points, tension)); | |
} | |
function d3_svg_lineCardinalClosed(points, tension) { | |
return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite((points.push(points[0]), | |
points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension)); | |
} | |
function d3_svg_lineCardinal(points, tension) { | |
return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension)); | |
} | |
function d3_svg_lineHermite(points, tangents) { | |
if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) { | |
return d3_svg_lineLinear(points); | |
} | |
var quad = points.length != tangents.length, path = "", p0 = points[0], p = points[1], t0 = tangents[0], t = t0, pi = 1; | |
if (quad) { | |
path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3) + "," + p[0] + "," + p[1]; | |
p0 = points[1]; | |
pi = 2; | |
} | |
if (tangents.length > 1) { | |
t = tangents[1]; | |
p = points[pi]; | |
pi++; | |
path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1]) + "," + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1]; | |
for (var i = 2; i < tangents.length; i++, pi++) { | |
p = points[pi]; | |
t = tangents[i]; | |
path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1]; | |
} | |
} | |
if (quad) { | |
var lp = points[pi]; | |
path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3) + "," + lp[0] + "," + lp[1]; | |
} | |
return path; | |
} | |
function d3_svg_lineCardinalTangents(points, tension) { | |
var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length; | |
while (++i < n) { | |
p0 = p1; | |
p1 = p2; | |
p2 = points[i]; | |
tangents.push([ a * (p2[0] - p0[0]), a * (p2[1] - p0[1]) ]); | |
} | |
return tangents; | |
} | |
function d3_svg_lineBasis(points) { | |
if (points.length < 3) return d3_svg_lineLinear(points); | |
var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [ x0, x0, x0, (pi = points[1])[0] ], py = [ y0, y0, y0, pi[1] ], path = [ x0, ",", y0 ]; | |
d3_svg_lineBasisBezier(path, px, py); | |
while (++i < n) { | |
pi = points[i]; | |
px.shift(); | |
px.push(pi[0]); | |
py.shift(); | |
py.push(pi[1]); | |
d3_svg_lineBasisBezier(path, px, py); | |
} | |
i = -1; | |
while (++i < 2) { | |
px.shift(); | |
px.push(pi[0]); | |
py.shift(); | |
py.push(pi[1]); | |
d3_svg_lineBasisBezier(path, px, py); | |
} | |
return path.join(""); | |
} | |
function d3_svg_lineBasisOpen(points) { | |
if (points.length < 4) return d3_svg_lineLinear(points); | |
var path = [], i = -1, n = points.length, pi, px = [ 0 ], py = [ 0 ]; | |
while (++i < 3) { | |
pi = points[i]; | |
px.push(pi[0]); | |
py.push(pi[1]); | |
} | |
path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py)); | |
--i; | |
while (++i < n) { | |
pi = points[i]; | |
px.shift(); | |
px.push(pi[0]); | |
py.shift(); | |
py.push(pi[1]); | |
d3_svg_lineBasisBezier(path, px, py); | |
} | |
return path.join(""); | |
} | |
function d3_svg_lineBasisClosed(points) { | |
var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = []; | |
while (++i < 4) { | |
pi = points[i % n]; | |
px.push(pi[0]); | |
py.push(pi[1]); | |
} | |
path = [ d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ]; | |
--i; | |
while (++i < m) { | |
pi = points[i % n]; | |
px.shift(); | |
px.push(pi[0]); | |
py.shift(); | |
py.push(pi[1]); | |
d3_svg_lineBasisBezier(path, px, py); | |
} | |
return path.join(""); | |
} | |
function d3_svg_lineBundle(points, tension) { | |
var n = points.length - 1; | |
if (n) { | |
var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t; | |
while (++i <= n) { | |
p = points[i]; | |
t = i / n; | |
p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx); | |
p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy); | |
} | |
} | |
return d3_svg_lineBasis(points); | |
} | |
function d3_svg_lineDot4(a, b) { | |
return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3]; | |
} | |
var d3_svg_lineBasisBezier1 = [ 0, 2 / 3, 1 / 3, 0 ], d3_svg_lineBasisBezier2 = [ 0, 1 / 3, 2 / 3, 0 ], d3_svg_lineBasisBezier3 = [ 0, 1 / 6, 2 / 3, 1 / 6 ]; | |
function d3_svg_lineBasisBezier(path, x, y) { | |
path.push("C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y)); | |
} | |
function d3_svg_lineSlope(p0, p1) { | |
return (p1[1] - p0[1]) / (p1[0] - p0[0]); | |
} | |
function d3_svg_lineFiniteDifferences(points) { | |
var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1); | |
while (++i < j) { | |
m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2; | |
} | |
m[i] = d; | |
return m; | |
} | |
function d3_svg_lineMonotoneTangents(points) { | |
var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1; | |
while (++i < j) { | |
d = d3_svg_lineSlope(points[i], points[i + 1]); | |
if (Math.abs(d) < 1e-6) { | |
m[i] = m[i + 1] = 0; | |
} else { | |
a = m[i] / d; | |
b = m[i + 1] / d; | |
s = a * a + b * b; | |
if (s > 9) { | |
s = d * 3 / Math.sqrt(s); | |
m[i] = s * a; | |
m[i + 1] = s * b; | |
} | |
} | |
} | |
i = -1; | |
while (++i <= j) { | |
s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i])); | |
tangents.push([ s || 0, m[i] * s || 0 ]); | |
} | |
return tangents; | |
} | |
function d3_svg_lineMonotone(points) { | |
return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points)); | |
} | |
d3.svg.line.radial = function() { | |
var line = d3_svg_line(d3_svg_lineRadial); | |
line.radius = line.x, delete line.x; | |
line.angle = line.y, delete line.y; | |
return line; | |
}; | |
function d3_svg_lineRadial(points) { | |
var point, i = -1, n = points.length, r, a; | |
while (++i < n) { | |
point = points[i]; | |
r = point[0]; | |
a = point[1] + d3_svg_arcOffset; | |
point[0] = r * Math.cos(a); | |
point[1] = r * Math.sin(a); | |
} | |
return points; | |
} | |
function d3_svg_area(projection) { | |
var x0 = d3_svg_lineX, x1 = d3_svg_lineX, y0 = 0, y1 = d3_svg_lineY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = "L", tension = .7; | |
function area(data) { | |
var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() { | |
return x; | |
} : d3_functor(x1), fy1 = y0 === y1 ? function() { | |
return y; | |
} : d3_functor(y1), x, y; | |
function segment() { | |
segments.push("M", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), "Z"); | |
} | |
while (++i < n) { | |
if (defined.call(this, d = data[i], i)) { | |
points0.push([ x = +fx0.call(this, d, i), y = +fy0.call(this, d, i) ]); | |
points1.push([ +fx1.call(this, d, i), +fy1.call(this, d, i) ]); | |
} else if (points0.length) { | |
segment(); | |
points0 = []; | |
points1 = []; | |
} | |
} | |
if (points0.length) segment(); | |
return segments.length ? segments.join("") : null; | |
} | |
area.x = function(_) { | |
if (!arguments.length) return x1; | |
x0 = x1 = _; | |
return area; | |
}; | |
area.x0 = function(_) { | |
if (!arguments.length) return x0; | |
x0 = _; | |
return area; | |
}; | |
area.x1 = function(_) { | |
if (!arguments.length) return x1; | |
x1 = _; | |
return area; | |
}; | |
area.y = function(_) { | |
if (!arguments.length) return y1; | |
y0 = y1 = _; | |
return area; | |
}; | |
area.y0 = function(_) { | |
if (!arguments.length) return y0; | |
y0 = _; | |
return area; | |
}; | |
area.y1 = function(_) { | |
if (!arguments.length) return y1; | |
y1 = _; | |
return area; | |
}; | |
area.defined = function(_) { | |
if (!arguments.length) return defined; | |
defined = _; | |
return area; | |
}; | |
area.interpolate = function(_) { | |
if (!arguments.length) return interpolateKey; | |
if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key; | |
interpolateReverse = interpolate.reverse || interpolate; | |
L = interpolate.closed ? "M" : "L"; | |
return area; | |
}; | |
area.tension = function(_) { | |
if (!arguments.length) return tension; | |
tension = _; | |
return area; | |
}; | |
return area; | |
} | |
d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter; | |
d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore; | |
d3.svg.area = function() { | |
return d3_svg_area(d3_identity); | |
}; | |
d3.svg.area.radial = function() { | |
var area = d3_svg_area(d3_svg_lineRadial); | |
area.radius = area.x, delete area.x; | |
area.innerRadius = area.x0, delete area.x0; | |
area.outerRadius = area.x1, delete area.x1; | |
area.angle = area.y, delete area.y; | |
area.startAngle = area.y0, delete area.y0; | |
area.endAngle = area.y1, delete area.y1; | |
return area; | |
}; | |
d3.svg.chord = function() { | |
var source = d3_source, target = d3_target, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle; | |
function chord(d, i) { | |
var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i); | |
return "M" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + "Z"; | |
} | |
function subgroup(self, f, d, i) { | |
var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) + d3_svg_arcOffset, a1 = endAngle.call(self, subgroup, i) + d3_svg_arcOffset; | |
return { | |
r: r, | |
a0: a0, | |
a1: a1, | |
p0: [ r * Math.cos(a0), r * Math.sin(a0) ], | |
p1: [ r * Math.cos(a1), r * Math.sin(a1) ] | |
}; | |
} | |
function equals(a, b) { | |
return a.a0 == b.a0 && a.a1 == b.a1; | |
} | |
function arc(r, p, a) { | |
return "A" + r + "," + r + " 0 " + +(a > π) + ",1 " + p; | |
} | |
function curve(r0, p0, r1, p1) { | |
return "Q 0,0 " + p1; | |
} | |
chord.radius = function(v) { | |
if (!arguments.length) return radius; | |
radius = d3_functor(v); | |
return chord; | |
}; | |
chord.source = function(v) { | |
if (!arguments.length) return source; | |
source = d3_functor(v); | |
return chord; | |
}; | |
chord.target = function(v) { | |
if (!arguments.length) return target; | |
target = d3_functor(v); | |
return chord; | |
}; | |
chord.startAngle = function(v) { | |
if (!arguments.length) return startAngle; | |
startAngle = d3_functor(v); | |
return chord; | |
}; | |
chord.endAngle = function(v) { | |
if (!arguments.length) return endAngle; | |
endAngle = d3_functor(v); | |
return chord; | |
}; | |
return chord; | |
}; | |
function d3_svg_chordRadius(d) { | |
return d.radius; | |
} | |
d3.svg.diagonal = function() { | |
var source = d3_source, target = d3_target, projection = d3_svg_diagonalProjection; | |
function diagonal(d, i) { | |
var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [ p0, { | |
x: p0.x, | |
y: m | |
}, { | |
x: p3.x, | |
y: m | |
}, p3 ]; | |
p = p.map(projection); | |
return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3]; | |
} | |
diagonal.source = function(x) { | |
if (!arguments.length) return source; | |
source = d3_functor(x); | |
return diagonal; | |
}; | |
diagonal.target = function(x) { | |
if (!arguments.length) return target; | |
target = d3_functor(x); | |
return diagonal; | |
}; | |
diagonal.projection = function(x) { | |
if (!arguments.length) return projection; | |
projection = x; | |
return diagonal; | |
}; | |
return diagonal; | |
}; | |
function d3_svg_diagonalProjection(d) { | |
return [ d.x, d.y ]; | |
} | |
d3.svg.diagonal.radial = function() { | |
var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection; | |
diagonal.projection = function(x) { | |
return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection; | |
}; | |
return diagonal; | |
}; | |
function d3_svg_diagonalRadialProjection(projection) { | |
return function() { | |
var d = projection.apply(this, arguments), r = d[0], a = d[1] + d3_svg_arcOffset; | |
return [ r * Math.cos(a), r * Math.sin(a) ]; | |
}; | |
} | |
d3.svg.symbol = function() { | |
var type = d3_svg_symbolType, size = d3_svg_symbolSize; | |
function symbol(d, i) { | |
return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i)); | |
} | |
symbol.type = function(x) { | |
if (!arguments.length) return type; | |
type = d3_functor(x); | |
return symbol; | |
}; | |
symbol.size = function(x) { | |
if (!arguments.length) return size; | |
size = d3_functor(x); | |
return symbol; | |
}; | |
return symbol; | |
}; | |
function d3_svg_symbolSize() { | |
return 64; | |
} | |
function d3_svg_symbolType() { | |
return "circle"; | |
} | |
function d3_svg_symbolCircle(size) { | |
var r = Math.sqrt(size / π); | |
return "M0," + r + "A" + r + "," + r + " 0 1,1 0," + -r + "A" + r + "," + r + " 0 1,1 0," + r + "Z"; | |
} | |
var d3_svg_symbols = d3.map({ | |
circle: d3_svg_symbolCircle, | |
cross: function(size) { | |
var r = Math.sqrt(size / 5) / 2; | |
return "M" + -3 * r + "," + -r + "H" + -r + "V" + -3 * r + "H" + r + "V" + -r + "H" + 3 * r + "V" + r + "H" + r + "V" + 3 * r + "H" + -r + "V" + r + "H" + -3 * r + "Z"; | |
}, | |
diamond: function(size) { | |
var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30; | |
return "M0," + -ry + "L" + rx + ",0" + " 0," + ry + " " + -rx + ",0" + "Z"; | |
}, | |
square: function(size) { | |
var r = Math.sqrt(size) / 2; | |
return "M" + -r + "," + -r + "L" + r + "," + -r + " " + r + "," + r + " " + -r + "," + r + "Z"; | |
}, | |
"triangle-down": function(size) { | |
var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2; | |
return "M0," + ry + "L" + rx + "," + -ry + " " + -rx + "," + -ry + "Z"; | |
}, | |
"triangle-up": function(size) { | |
var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2; | |
return "M0," + -ry + "L" + rx + "," + ry + " " + -rx + "," + ry + "Z"; | |
} | |
}); | |
d3.svg.symbolTypes = d3_svg_symbols.keys(); | |
var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians); | |
d3.svg.axis = function() { | |
var scale = d3.scale.linear(), orient = d3_svg_axisDefaultOrient, tickMajorSize = 6, tickMinorSize = 6, tickEndSize = 6, tickPadding = 3, tickArguments_ = [ 10 ], tickValues = null, tickFormat_, tickSubdivide = 0; | |
function axis(g) { | |
g.each(function() { | |
var g = d3.select(this); | |
var ticks = tickValues == null ? scale.ticks ? scale.ticks.apply(scale, tickArguments_) : scale.domain() : tickValues, tickFormat = tickFormat_ == null ? scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments_) : String : tickFormat_; | |
var subticks = d3_svg_axisSubdivide(scale, ticks, tickSubdivide), subtick = g.selectAll(".tick.minor").data(subticks, String), subtickEnter = subtick.enter().insert("line", ".tick").attr("class", "tick minor").style("opacity", 1e-6), subtickExit = d3.transition(subtick.exit()).style("opacity", 1e-6).remove(), subtickUpdate = d3.transition(subtick).style("opacity", 1); | |
var tick = g.selectAll(".tick.major").data(ticks, String), tickEnter = tick.enter().insert("g", "path").attr("class", "tick major").style("opacity", 1e-6), tickExit = d3.transition(tick.exit()).style("opacity", 1e-6).remove(), tickUpdate = d3.transition(tick).style("opacity", 1), tickTransform; | |
var range = d3_scaleRange(scale), path = g.selectAll(".domain").data([ 0 ]), pathUpdate = (path.enter().append("path").attr("class", "domain"), | |
d3.transition(path)); | |
var scale1 = scale.copy(), scale0 = this.__chart__ || scale1; | |
this.__chart__ = scale1; | |
tickEnter.append("line"); | |
tickEnter.append("text"); | |
var lineEnter = tickEnter.select("line"), lineUpdate = tickUpdate.select("line"), text = tick.select("text").text(tickFormat), textEnter = tickEnter.select("text"), textUpdate = tickUpdate.select("text"); | |
switch (orient) { | |
case "bottom": | |
{ | |
tickTransform = d3_svg_axisX; | |
subtickEnter.attr("y2", tickMinorSize); | |
subtickUpdate.attr("x2", 0).attr("y2", tickMinorSize); | |
lineEnter.attr("y2", tickMajorSize); | |
textEnter.attr("y", Math.max(tickMajorSize, 0) + tickPadding); | |
lineUpdate.attr("x2", 0).attr("y2", tickMajorSize); | |
textUpdate.attr("x", 0).attr("y", Math.max(tickMajorSize, 0) + tickPadding); | |
text.attr("dy", ".71em").style("text-anchor", "middle"); | |
pathUpdate.attr("d", "M" + range[0] + "," + tickEndSize + "V0H" + range[1] + "V" + tickEndSize); | |
break; | |
} | |
case "top": | |
{ | |
tickTransform = d3_svg_axisX; | |
subtickEnter.attr("y2", -tickMinorSize); | |
subtickUpdate.attr("x2", 0).attr("y2", -tickMinorSize); | |
lineEnter.attr("y2", -tickMajorSize); | |
textEnter.attr("y", -(Math.max(tickMajorSize, 0) + tickPadding)); | |
lineUpdate.attr("x2", 0).attr("y2", -tickMajorSize); | |
textUpdate.attr("x", 0).attr("y", -(Math.max(tickMajorSize, 0) + tickPadding)); | |
text.attr("dy", "0em").style("text-anchor", "middle"); | |
pathUpdate.attr("d", "M" + range[0] + "," + -tickEndSize + "V0H" + range[1] + "V" + -tickEndSize); | |
break; | |
} | |
case "left": | |
{ | |
tickTransform = d3_svg_axisY; | |
subtickEnter.attr("x2", -tickMinorSize); | |
subtickUpdate.attr("x2", -tickMinorSize).attr("y2", 0); | |
lineEnter.attr("x2", -tickMajorSize); | |
textEnter.attr("x", -(Math.max(tickMajorSize, 0) + tickPadding)); | |
lineUpdate.attr("x2", -tickMajorSize).attr("y2", 0); | |
textUpdate.attr("x", -(Math.max(tickMajorSize, 0) + tickPadding)).attr("y", 0); | |
text.attr("dy", ".32em").style("text-anchor", "end"); | |
pathUpdate.attr("d", "M" + -tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + -tickEndSize); | |
break; | |
} | |
case "right": | |
{ | |
tickTransform = d3_svg_axisY; | |
subtickEnter.attr("x2", tickMinorSize); | |
subtickUpdate.attr("x2", tickMinorSize).attr("y2", 0); | |
lineEnter.attr("x2", tickMajorSize); | |
textEnter.attr("x", Math.max(tickMajorSize, 0) + tickPadding); | |
lineUpdate.attr("x2", tickMajorSize).attr("y2", 0); | |
textUpdate.attr("x", Math.max(tickMajorSize, 0) + tickPadding).attr("y", 0); | |
text.attr("dy", ".32em").style("text-anchor", "start"); | |
pathUpdate.attr("d", "M" + tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + tickEndSize); | |
break; | |
} | |
} | |
if (scale.ticks) { | |
tickEnter.call(tickTransform, scale0); | |
tickUpdate.call(tickTransform, scale1); | |
tickExit.call(tickTransform, scale1); | |
subtickEnter.call(tickTransform, scale0); | |
subtickUpdate.call(tickTransform, scale1); | |
subtickExit.call(tickTransform, scale1); | |
} else { | |
var dx = scale1.rangeBand() / 2, x = function(d) { | |
return scale1(d) + dx; | |
}; | |
tickEnter.call(tickTransform, x); | |
tickUpdate.call(tickTransform, x); | |
} | |
}); | |
} | |
axis.scale = function(x) { | |
if (!arguments.length) return scale; | |
scale = x; | |
return axis; | |
}; | |
axis.orient = function(x) { | |
if (!arguments.length) return orient; | |
orient = x in d3_svg_axisOrients ? x + "" : d3_svg_axisDefaultOrient; | |
return axis; | |
}; | |
axis.ticks = function() { | |
if (!arguments.length) return tickArguments_; | |
tickArguments_ = arguments; | |
return axis; | |
}; | |
axis.tickValues = function(x) { | |
if (!arguments.length) return tickValues; | |
tickValues = x; | |
return axis; | |
}; | |
axis.tickFormat = function(x) { | |
if (!arguments.length) return tickFormat_; | |
tickFormat_ = x; | |
return axis; | |
}; | |
axis.tickSize = function(x, y) { | |
if (!arguments.length) return tickMajorSize; | |
var n = arguments.length - 1; | |
tickMajorSize = +x; | |
tickMinorSize = n > 1 ? +y : tickMajorSize; | |
tickEndSize = n > 0 ? +arguments[n] : tickMajorSize; | |
return axis; | |
}; | |
axis.tickPadding = function(x) { | |
if (!arguments.length) return tickPadding; | |
tickPadding = +x; | |
return axis; | |
}; | |
axis.tickSubdivide = function(x) { | |
if (!arguments.length) return tickSubdivide; | |
tickSubdivide = +x; | |
return axis; | |
}; | |
return axis; | |
}; | |
var d3_svg_axisDefaultOrient = "bottom", d3_svg_axisOrients = { | |
top: 1, | |
right: 1, | |
bottom: 1, | |
left: 1 | |
}; | |
function d3_svg_axisX(selection, x) { | |
selection.attr("transform", function(d) { | |
return "translate(" + x(d) + ",0)"; | |
}); | |
} | |
function d3_svg_axisY(selection, y) { | |
selection.attr("transform", function(d) { | |
return "translate(0," + y(d) + ")"; | |
}); | |
} | |
function d3_svg_axisSubdivide(scale, ticks, m) { | |
subticks = []; | |
if (m && ticks.length > 1) { | |
var extent = d3_scaleExtent(scale.domain()), subticks, i = -1, n = ticks.length, d = (ticks[1] - ticks[0]) / ++m, j, v; | |
while (++i < n) { | |
for (j = m; --j > 0; ) { | |
if ((v = +ticks[i] - j * d) >= extent[0]) { | |
subticks.push(v); | |
} | |
} | |
} | |
for (--i, j = 0; ++j < m && (v = +ticks[i] + j * d) < extent[1]; ) { | |
subticks.push(v); | |
} | |
} | |
return subticks; | |
} | |
d3.svg.brush = function() { | |
var event = d3_eventDispatch(brush, "brushstart", "brush", "brushend"), x = null, y = null, resizes = d3_svg_brushResizes[0], extent = [ [ 0, 0 ], [ 0, 0 ] ], extentDomain; | |
function brush(g) { | |
g.each(function() { | |
var g = d3.select(this), bg = g.selectAll(".background").data([ 0 ]), fg = g.selectAll(".extent").data([ 0 ]), tz = g.selectAll(".resize").data(resizes, String), e; | |
g.style("pointer-events", "all").on("mousedown.brush", brushstart).on("touchstart.brush", brushstart); | |
bg.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair"); | |
fg.enter().append("rect").attr("class", "extent").style("cursor", "move"); | |
tz.enter().append("g").attr("class", function(d) { | |
return "resize " + d; | |
}).style("cursor", function(d) { | |
return d3_svg_brushCursor[d]; | |
}).append("rect").attr("x", function(d) { | |
return /[ew]$/.test(d) ? -3 : null; | |
}).attr("y", function(d) { | |
return /^[ns]/.test(d) ? -3 : null; | |
}).attr("width", 6).attr("height", 6).style("visibility", "hidden"); | |
tz.style("display", brush.empty() ? "none" : null); | |
tz.exit().remove(); | |
if (x) { | |
e = d3_scaleRange(x); | |
bg.attr("x", e[0]).attr("width", e[1] - e[0]); | |
redrawX(g); | |
} | |
if (y) { | |
e = d3_scaleRange(y); | |
bg.attr("y", e[0]).attr("height", e[1] - e[0]); | |
redrawY(g); | |
} | |
redraw(g); | |
}); | |
} | |
function redraw(g) { | |
g.selectAll(".resize").attr("transform", function(d) { | |
return "translate(" + extent[+/e$/.test(d)][0] + "," + extent[+/^s/.test(d)][1] + ")"; | |
}); | |
} | |
function redrawX(g) { | |
g.select(".extent").attr("x", extent[0][0]); | |
g.selectAll(".extent,.n>rect,.s>rect").attr("width", extent[1][0] - extent[0][0]); | |
} | |
function redrawY(g) { | |
g.select(".extent").attr("y", extent[0][1]); | |
g.selectAll(".extent,.e>rect,.w>rect").attr("height", extent[1][1] - extent[0][1]); | |
} | |
function brushstart() { | |
var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed("extent"), center, origin = mouse(), offset; | |
var w = d3.select(d3_window).on("mousemove.brush", brushmove).on("mouseup.brush", brushend).on("touchmove.brush", brushmove).on("touchend.brush", brushend).on("keydown.brush", keydown).on("keyup.brush", keyup); | |
if (dragging) { | |
origin[0] = extent[0][0] - origin[0]; | |
origin[1] = extent[0][1] - origin[1]; | |
} else if (resizing) { | |
var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing); | |
offset = [ extent[1 - ex][0] - origin[0], extent[1 - ey][1] - origin[1] ]; | |
origin[0] = extent[ex][0]; | |
origin[1] = extent[ey][1]; | |
} else if (d3.event.altKey) center = origin.slice(); | |
g.style("pointer-events", "none").selectAll(".resize").style("display", null); | |
d3.select("body").style("cursor", eventTarget.style("cursor")); | |
event_({ | |
type: "brushstart" | |
}); | |
brushmove(); | |
d3_eventCancel(); | |
function mouse() { | |
var touches = d3.event.changedTouches; | |
return touches ? d3.touches(target, touches)[0] : d3.mouse(target); | |
} | |
function keydown() { | |
if (d3.event.keyCode == 32) { | |
if (!dragging) { | |
center = null; | |
origin[0] -= extent[1][0]; | |
origin[1] -= extent[1][1]; | |
dragging = 2; | |
} | |
d3_eventCancel(); | |
} | |
} | |
function keyup() { | |
if (d3.event.keyCode == 32 && dragging == 2) { | |
origin[0] += extent[1][0]; | |
origin[1] += extent[1][1]; | |
dragging = 0; | |
d3_eventCancel(); | |
} | |
} | |
function brushmove() { | |
var point = mouse(), moved = false; | |
if (offset) { | |
point[0] += offset[0]; | |
point[1] += offset[1]; | |
} | |
if (!dragging) { | |
if (d3.event.altKey) { | |
if (!center) center = [ (extent[0][0] + extent[1][0]) / 2, (extent[0][1] + extent[1][1]) / 2 ]; | |
origin[0] = extent[+(point[0] < center[0])][0]; | |
origin[1] = extent[+(point[1] < center[1])][1]; | |
} else center = null; | |
} | |
if (resizingX && move1(point, x, 0)) { | |
redrawX(g); | |
moved = true; | |
} | |
if (resizingY && move1(point, y, 1)) { | |
redrawY(g); | |
moved = true; | |
} | |
if (moved) { | |
redraw(g); | |
event_({ | |
type: "brush", | |
mode: dragging ? "move" : "resize" | |
}); | |
} | |
} | |
function move1(point, scale, i) { | |
var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], size = extent[1][i] - extent[0][i], min, max; | |
if (dragging) { | |
r0 -= position; | |
r1 -= size + position; | |
} | |
min = Math.max(r0, Math.min(r1, point[i])); | |
if (dragging) { | |
max = (min += position) + size; | |
} else { | |
if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min)); | |
if (position < min) { | |
max = min; | |
min = position; | |
} else { | |
max = position; | |
} | |
} | |
if (extent[0][i] !== min || extent[1][i] !== max) { | |
extentDomain = null; | |
extent[0][i] = min; | |
extent[1][i] = max; | |
return true; | |
} | |
} | |
function brushend() { | |
brushmove(); | |
g.style("pointer-events", "all").selectAll(".resize").style("display", brush.empty() ? "none" : null); | |
d3.select("body").style("cursor", null); | |
w.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null); | |
event_({ | |
type: "brushend" | |
}); | |
d3_eventCancel(); | |
} | |
} | |
brush.x = function(z) { | |
if (!arguments.length) return x; | |
x = z; | |
resizes = d3_svg_brushResizes[!x << 1 | !y]; | |
return brush; | |
}; | |
brush.y = function(z) { | |
if (!arguments.length) return y; | |
y = z; | |
resizes = d3_svg_brushResizes[!x << 1 | !y]; | |
return brush; | |
}; | |
brush.extent = function(z) { | |
var x0, x1, y0, y1, t; | |
if (!arguments.length) { | |
z = extentDomain || extent; | |
if (x) { | |
x0 = z[0][0], x1 = z[1][0]; | |
if (!extentDomain) { | |
x0 = extent[0][0], x1 = extent[1][0]; | |
if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1); | |
if (x1 < x0) t = x0, x0 = x1, x1 = t; | |
} | |
} | |
if (y) { | |
y0 = z[0][1], y1 = z[1][1]; | |
if (!extentDomain) { | |
y0 = extent[0][1], y1 = extent[1][1]; | |
if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1); | |
if (y1 < y0) t = y0, y0 = y1, y1 = t; | |
} | |
} | |
return x && y ? [ [ x0, y0 ], [ x1, y1 ] ] : x ? [ x0, x1 ] : y && [ y0, y1 ]; | |
} | |
extentDomain = [ [ 0, 0 ], [ 0, 0 ] ]; | |
if (x) { | |
x0 = z[0], x1 = z[1]; | |
if (y) x0 = x0[0], x1 = x1[0]; | |
extentDomain[0][0] = x0, extentDomain[1][0] = x1; | |
if (x.invert) x0 = x(x0), x1 = x(x1); | |
if (x1 < x0) t = x0, x0 = x1, x1 = t; | |
extent[0][0] = x0 | 0, extent[1][0] = x1 | 0; | |
} | |
if (y) { | |
y0 = z[0], y1 = z[1]; | |
if (x) y0 = y0[1], y1 = y1[1]; | |
extentDomain[0][1] = y0, extentDomain[1][1] = y1; | |
if (y.invert) y0 = y(y0), y1 = y(y1); | |
if (y1 < y0) t = y0, y0 = y1, y1 = t; | |
extent[0][1] = y0 | 0, extent[1][1] = y1 | 0; | |
} | |
return brush; | |
}; | |
brush.clear = function() { | |
extentDomain = null; | |
extent[0][0] = extent[0][1] = extent[1][0] = extent[1][1] = 0; | |
return brush; | |
}; | |
brush.empty = function() { | |
return x && extent[0][0] === extent[1][0] || y && extent[0][1] === extent[1][1]; | |
}; | |
return d3.rebind(brush, event, "on"); | |
}; | |
var d3_svg_brushCursor = { | |
n: "ns-resize", | |
e: "ew-resize", | |
s: "ns-resize", | |
w: "ew-resize", | |
nw: "nwse-resize", | |
ne: "nesw-resize", | |
se: "nwse-resize", | |
sw: "nesw-resize" | |
}; | |
var d3_svg_brushResizes = [ [ "n", "e", "s", "w", "nw", "ne", "se", "sw" ], [ "e", "w" ], [ "n", "s" ], [] ]; | |
d3.behavior = {}; | |
d3.behavior.drag = function() { | |
var event = d3_eventDispatch(drag, "drag", "dragstart", "dragend"), origin = null; | |
function drag() { | |
this.on("mousedown.drag", mousedown).on("touchstart.drag", mousedown); | |
} | |
function mousedown() { | |
var target = this, event_ = event.of(target, arguments), eventTarget = d3.event.target, touchId = d3.event.touches ? d3.event.changedTouches[0].identifier : null, offset, origin_ = point(), moved = 0; | |
var w = d3.select(d3_window).on(touchId != null ? "touchmove.drag-" + touchId : "mousemove.drag", dragmove).on(touchId != null ? "touchend.drag-" + touchId : "mouseup.drag", dragend, true); | |
if (origin) { | |
offset = origin.apply(target, arguments); | |
offset = [ offset.x - origin_[0], offset.y - origin_[1] ]; | |
} else { | |
offset = [ 0, 0 ]; | |
} | |
if (touchId == null) d3_eventCancel(); | |
event_({ | |
type: "dragstart" | |
}); | |
function point() { | |
var p = target.parentNode; | |
return touchId != null ? d3.touches(p).filter(function(p) { | |
return p.identifier === touchId; | |
})[0] : d3.mouse(p); | |
} | |
function dragmove() { | |
if (!target.parentNode) return dragend(); | |
var p = point(), dx = p[0] - origin_[0], dy = p[1] - origin_[1]; | |
moved |= dx | dy; | |
origin_ = p; | |
d3_eventCancel(); | |
event_({ | |
type: "drag", | |
x: p[0] + offset[0], | |
y: p[1] + offset[1], | |
dx: dx, | |
dy: dy | |
}); | |
} | |
function dragend() { | |
event_({ | |
type: "dragend" | |
}); | |
if (moved) { | |
d3_eventCancel(); | |
if (d3.event.target === eventTarget) w.on("click.drag", click, true); | |
} | |
w.on(touchId != null ? "touchmove.drag-" + touchId : "mousemove.drag", null).on(touchId != null ? "touchend.drag-" + touchId : "mouseup.drag", null); | |
} | |
function click() { | |
d3_eventCancel(); | |
w.on("click.drag", null); | |
} | |
} | |
drag.origin = function(x) { | |
if (!arguments.length) return origin; | |
origin = x; | |
return drag; | |
}; | |
return d3.rebind(drag, event, "on"); | |
}; | |
d3.behavior.zoom = function() { | |
var translate = [ 0, 0 ], translate0, scale = 1, scale0, scaleExtent = d3_behavior_zoomInfinity, event = d3_eventDispatch(zoom, "zoom"), x0, x1, y0, y1, touchtime; | |
function zoom() { | |
this.on("mousedown.zoom", mousedown).on("mousemove.zoom", mousemove).on(d3_behavior_zoomWheel + ".zoom", mousewheel).on("dblclick.zoom", dblclick).on("touchstart.zoom", touchstart).on("touchmove.zoom", touchmove).on("touchend.zoom", touchstart); | |
} | |
zoom.translate = function(x) { | |
if (!arguments.length) return translate; | |
translate = x.map(Number); | |
rescale(); | |
return zoom; | |
}; | |
zoom.scale = function(x) { | |
if (!arguments.length) return scale; | |
scale = +x; | |
rescale(); | |
return zoom; | |
}; | |
zoom.scaleExtent = function(x) { | |
if (!arguments.length) return scaleExtent; | |
scaleExtent = x == null ? d3_behavior_zoomInfinity : x.map(Number); | |
return zoom; | |
}; | |
zoom.x = function(z) { | |
if (!arguments.length) return x1; | |
x1 = z; | |
x0 = z.copy(); | |
translate = [ 0, 0 ]; | |
scale = 1; | |
return zoom; | |
}; | |
zoom.y = function(z) { | |
if (!arguments.length) return y1; | |
y1 = z; | |
y0 = z.copy(); | |
translate = [ 0, 0 ]; | |
scale = 1; | |
return zoom; | |
}; | |
function location(p) { | |
return [ (p[0] - translate[0]) / scale, (p[1] - translate[1]) / scale ]; | |
} | |
function point(l) { | |
return [ l[0] * scale + translate[0], l[1] * scale + translate[1] ]; | |
} | |
function scaleTo(s) { | |
scale = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s)); | |
} | |
function translateTo(p, l) { | |
l = point(l); | |
translate[0] += p[0] - l[0]; | |
translate[1] += p[1] - l[1]; | |
} | |
function rescale() { | |
if (x1) x1.domain(x0.range().map(function(x) { | |
return (x - translate[0]) / scale; | |
}).map(x0.invert)); | |
if (y1) y1.domain(y0.range().map(function(y) { | |
return (y - translate[1]) / scale; | |
}).map(y0.invert)); | |
} | |
function dispatch(event) { | |
rescale(); | |
d3.event.preventDefault(); | |
event({ | |
type: "zoom", | |
scale: scale, | |
translate: translate | |
}); | |
} | |
function mousedown() { | |
var target = this, event_ = event.of(target, arguments), eventTarget = d3.event.target, moved = 0, w = d3.select(d3_window).on("mousemove.zoom", mousemove).on("mouseup.zoom", mouseup), l = location(d3.mouse(target)); | |
d3_window.focus(); | |
d3_eventCancel(); | |
function mousemove() { | |
moved = 1; | |
translateTo(d3.mouse(target), l); | |
dispatch(event_); | |
} | |
function mouseup() { | |
if (moved) d3_eventCancel(); | |
w.on("mousemove.zoom", null).on("mouseup.zoom", null); | |
if (moved && d3.event.target === eventTarget) w.on("click.zoom", click, true); | |
} | |
function click() { | |
d3_eventCancel(); | |
w.on("click.zoom", null); | |
} | |
} | |
function mousewheel() { | |
if (!translate0) translate0 = location(d3.mouse(this)); | |
scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * scale); | |
translateTo(d3.mouse(this), translate0); | |
dispatch(event.of(this, arguments)); | |
} | |
function mousemove() { | |
translate0 = null; | |
} | |
function dblclick() { | |
var p = d3.mouse(this), l = location(p), k = Math.log(scale) / Math.LN2; | |
scaleTo(Math.pow(2, d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1)); | |
translateTo(p, l); | |
dispatch(event.of(this, arguments)); | |
} | |
function touchstart() { | |
var touches = d3.touches(this), now = Date.now(); | |
scale0 = scale; | |
translate0 = {}; | |
touches.forEach(function(t) { | |
translate0[t.identifier] = location(t); | |
}); | |
d3_eventCancel(); | |
if (touches.length === 1) { | |
if (now - touchtime < 500) { | |
var p = touches[0], l = location(touches[0]); | |
scaleTo(scale * 2); | |
translateTo(p, l); | |
dispatch(event.of(this, arguments)); | |
} | |
touchtime = now; | |
} | |
} | |
function touchmove() { | |
var touches = d3.touches(this), p0 = touches[0], l0 = translate0[p0.identifier]; | |
if (p1 = touches[1]) { | |
var p1, l1 = translate0[p1.identifier]; | |
p0 = [ (p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2 ]; | |
l0 = [ (l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2 ]; | |
scaleTo(d3.event.scale * scale0); | |
} | |
translateTo(p0, l0); | |
touchtime = null; | |
dispatch(event.of(this, arguments)); | |
} | |
return d3.rebind(zoom, event, "on"); | |
}; | |
var d3_behavior_zoomInfinity = [ 0, Infinity ]; | |
var d3_behavior_zoomDelta, d3_behavior_zoomWheel = "onwheel" in document ? (d3_behavior_zoomDelta = function() { | |
return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1); | |
}, "wheel") : "onmousewheel" in document ? (d3_behavior_zoomDelta = function() { | |
return d3.event.wheelDelta; | |
}, "mousewheel") : (d3_behavior_zoomDelta = function() { | |
return -d3.event.detail; | |
}, "MozMousePixelScroll"); | |
d3.layout = {}; | |
d3.layout.bundle = function() { | |
return function(links) { | |
var paths = [], i = -1, n = links.length; | |
while (++i < n) paths.push(d3_layout_bundlePath(links[i])); | |
return paths; | |
}; | |
}; | |
function d3_layout_bundlePath(link) { | |
var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [ start ]; | |
while (start !== lca) { | |
start = start.parent; | |
points.push(start); | |
} | |
var k = points.length; | |
while (end !== lca) { | |
points.splice(k, 0, end); | |
end = end.parent; | |
} | |
return points; | |
} | |
function d3_layout_bundleAncestors(node) { | |
var ancestors = [], parent = node.parent; | |
while (parent != null) { | |
ancestors.push(node); | |
node = parent; | |
parent = parent.parent; | |
} | |
ancestors.push(node); | |
return ancestors; | |
} | |
function d3_layout_bundleLeastCommonAncestor(a, b) { | |
if (a === b) return a; | |
var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null; | |
while (aNode === bNode) { | |
sharedNode = aNode; | |
aNode = aNodes.pop(); | |
bNode = bNodes.pop(); | |
} | |
return sharedNode; | |
} | |
d3.layout.chord = function() { | |
var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords; | |
function relayout() { | |
var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j; | |
chords = []; | |
groups = []; | |
k = 0, i = -1; | |
while (++i < n) { | |
x = 0, j = -1; | |
while (++j < n) { | |
x += matrix[i][j]; | |
} | |
groupSums.push(x); | |
subgroupIndex.push(d3.range(n)); | |
k += x; | |
} | |
if (sortGroups) { | |
groupIndex.sort(function(a, b) { | |
return sortGroups(groupSums[a], groupSums[b]); | |
}); | |
} | |
if (sortSubgroups) { | |
subgroupIndex.forEach(function(d, i) { | |
d.sort(function(a, b) { | |
return sortSubgroups(matrix[i][a], matrix[i][b]); | |
}); | |
}); | |
} | |
k = (2 * π - padding * n) / k; | |
x = 0, i = -1; | |
while (++i < n) { | |
x0 = x, j = -1; | |
while (++j < n) { | |
var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k; | |
subgroups[di + "-" + dj] = { | |
index: di, | |
subindex: dj, | |
startAngle: a0, | |
endAngle: a1, | |
value: v | |
}; | |
} | |
groups[di] = { | |
index: di, | |
startAngle: x0, | |
endAngle: x, | |
value: (x - x0) / k | |
}; | |
x += padding; | |
} | |
i = -1; | |
while (++i < n) { | |
j = i - 1; | |
while (++j < n) { | |
var source = subgroups[i + "-" + j], target = subgroups[j + "-" + i]; | |
if (source.value || target.value) { | |
chords.push(source.value < target.value ? { | |
source: target, | |
target: source | |
} : { | |
source: source, | |
target: target | |
}); | |
} | |
} | |
} | |
if (sortChords) resort(); | |
} | |
function resort() { | |
chords.sort(function(a, b) { | |
return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2); | |
}); | |
} | |
chord.matrix = function(x) { | |
if (!arguments.length) return matrix; | |
n = (matrix = x) && matrix.length; | |
chords = groups = null; | |
return chord; | |
}; | |
chord.padding = function(x) { | |
if (!arguments.length) return padding; | |
padding = x; | |
chords = groups = null; | |
return chord; | |
}; | |
chord.sortGroups = function(x) { | |
if (!arguments.length) return sortGroups; | |
sortGroups = x; | |
chords = groups = null; | |
return chord; | |
}; | |
chord.sortSubgroups = function(x) { | |
if (!arguments.length) return sortSubgroups; | |
sortSubgroups = x; | |
chords = null; | |
return chord; | |
}; | |
chord.sortChords = function(x) { | |
if (!arguments.length) return sortChords; | |
sortChords = x; | |
if (chords) resort(); | |
return chord; | |
}; | |
chord.chords = function() { | |
if (!chords) relayout(); | |
return chords; | |
}; | |
chord.groups = function() { | |
if (!groups) relayout(); | |
return groups; | |
}; | |
return chord; | |
}; | |
d3.layout.force = function() { | |
var force = {}, event = d3.dispatch("start", "tick", "end"), size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, gravity = .1, theta = .8, nodes = [], links = [], distances, strengths, charges; | |
function repulse(node) { | |
return function(quad, x1, _, x2) { | |
if (quad.point !== node) { | |
var dx = quad.cx - node.x, dy = quad.cy - node.y, dn = 1 / Math.sqrt(dx * dx + dy * dy); | |
if ((x2 - x1) * dn < theta) { | |
var k = quad.charge * dn * dn; | |
node.px -= dx * k; | |
node.py -= dy * k; | |
return true; | |
} | |
if (quad.point && isFinite(dn)) { | |
var k = quad.pointCharge * dn * dn; | |
node.px -= dx * k; | |
node.py -= dy * k; | |
} | |
} | |
return !quad.charge; | |
}; | |
} | |
force.tick = function() { | |
if ((alpha *= .99) < .005) { | |
event.end({ | |
type: "end", | |
alpha: alpha = 0 | |
}); | |
return true; | |
} | |
var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y; | |
for (i = 0; i < m; ++i) { | |
o = links[i]; | |
s = o.source; | |
t = o.target; | |
x = t.x - s.x; | |
y = t.y - s.y; | |
if (l = x * x + y * y) { | |
l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l; | |
x *= l; | |
y *= l; | |
t.x -= x * (k = s.weight / (t.weight + s.weight)); | |
t.y -= y * k; | |
s.x += x * (k = 1 - k); | |
s.y += y * k; | |
} | |
} | |
if (k = alpha * gravity) { | |
x = size[0] / 2; | |
y = size[1] / 2; | |
i = -1; | |
if (k) while (++i < n) { | |
o = nodes[i]; | |
o.x += (x - o.x) * k; | |
o.y += (y - o.y) * k; | |
} | |
} | |
if (charge) { | |
d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges); | |
i = -1; | |
while (++i < n) { | |
if (!(o = nodes[i]).fixed) { | |
q.visit(repulse(o)); | |
} | |
} | |
} | |
i = -1; | |
while (++i < n) { | |
o = nodes[i]; | |
if (o.fixed) { | |
o.x = o.px; | |
o.y = o.py; | |
} else { | |
o.x -= (o.px - (o.px = o.x)) * friction; | |
o.y -= (o.py - (o.py = o.y)) * friction; | |
} | |
} | |
event.tick({ | |
type: "tick", | |
alpha: alpha | |
}); | |
}; | |
force.nodes = function(x) { | |
if (!arguments.length) return nodes; | |
nodes = x; | |
return force; | |
}; | |
force.links = function(x) { | |
if (!arguments.length) return links; | |
links = x; | |
return force; | |
}; | |
force.size = function(x) { | |
if (!arguments.length) return size; | |
size = x; | |
return force; | |
}; | |
force.linkDistance = function(x) { | |
if (!arguments.length) return linkDistance; | |
linkDistance = typeof x === "function" ? x : +x; | |
return force; | |
}; | |
force.distance = force.linkDistance; | |
force.linkStrength = function(x) { | |
if (!arguments.length) return linkStrength; | |
linkStrength = typeof x === "function" ? x : +x; | |
return force; | |
}; | |
force.friction = function(x) { | |
if (!arguments.length) return friction; | |
friction = +x; | |
return force; | |
}; | |
force.charge = function(x) { | |
if (!arguments.length) return charge; | |
charge = typeof x === "function" ? x : +x; | |
return force; | |
}; | |
force.gravity = function(x) { | |
if (!arguments.length) return gravity; | |
gravity = +x; | |
return force; | |
}; | |
force.theta = function(x) { | |
if (!arguments.length) return theta; | |
theta = +x; | |
return force; | |
}; | |
force.alpha = function(x) { | |
if (!arguments.length) return alpha; | |
x = +x; | |
if (alpha) { | |
if (x > 0) alpha = x; else alpha = 0; | |
} else if (x > 0) { | |
event.start({ | |
type: "start", | |
alpha: alpha = x | |
}); | |
d3.timer(force.tick); | |
} | |
return force; | |
}; | |
force.start = function() { | |
var i, j, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o; | |
for (i = 0; i < n; ++i) { | |
(o = nodes[i]).index = i; | |
o.weight = 0; | |
} | |
for (i = 0; i < m; ++i) { | |
o = links[i]; | |
if (typeof o.source == "number") o.source = nodes[o.source]; | |
if (typeof o.target == "number") o.target = nodes[o.target]; | |
++o.source.weight; | |
++o.target.weight; | |
} | |
for (i = 0; i < n; ++i) { | |
o = nodes[i]; | |
if (isNaN(o.x)) o.x = position("x", w); | |
if (isNaN(o.y)) o.y = position("y", h); | |
if (isNaN(o.px)) o.px = o.x; | |
if (isNaN(o.py)) o.py = o.y; | |
} | |
distances = []; | |
if (typeof linkDistance === "function") for (i = 0; i < m; ++i) distances[i] = +linkDistance.call(this, links[i], i); else for (i = 0; i < m; ++i) distances[i] = linkDistance; | |
strengths = []; | |
if (typeof linkStrength === "function") for (i = 0; i < m; ++i) strengths[i] = +linkStrength.call(this, links[i], i); else for (i = 0; i < m; ++i) strengths[i] = linkStrength; | |
charges = []; | |
if (typeof charge === "function") for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i); else for (i = 0; i < n; ++i) charges[i] = charge; | |
function position(dimension, size) { | |
var neighbors = neighbor(i), j = -1, m = neighbors.length, x; | |
while (++j < m) if (!isNaN(x = neighbors[j][dimension])) return x; | |
return Math.random() * size; | |
} | |
function neighbor() { | |
if (!neighbors) { | |
neighbors = []; | |
for (j = 0; j < n; ++j) { | |
neighbors[j] = []; | |
} | |
for (j = 0; j < m; ++j) { | |
var o = links[j]; | |
neighbors[o.source.index].push(o.target); | |
neighbors[o.target.index].push(o.source); | |
} | |
} | |
return neighbors[i]; | |
} | |
return force.resume(); | |
}; | |
force.resume = function() { | |
return force.alpha(.1); | |
}; | |
force.stop = function() { | |
return force.alpha(0); | |
}; | |
force.drag = function() { | |
if (!drag) drag = d3.behavior.drag().origin(d3_identity).on("dragstart.force", d3_layout_forceDragstart).on("drag.force", dragmove).on("dragend.force", d3_layout_forceDragend); | |
if (!arguments.length) return drag; | |
this.on("mouseover.force", d3_layout_forceMouseover).on("mouseout.force", d3_layout_forceMouseout).call(drag); | |
}; | |
function dragmove(d) { | |
d.px = d3.event.x, d.py = d3.event.y; | |
force.resume(); | |
} | |
return d3.rebind(force, event, "on"); | |
}; | |
function d3_layout_forceDragstart(d) { | |
d.fixed |= 2; | |
} | |
function d3_layout_forceDragend(d) { | |
d.fixed &= ~6; | |
} | |
function d3_layout_forceMouseover(d) { | |
d.fixed |= 4; | |
d.px = d.x, d.py = d.y; | |
} | |
function d3_layout_forceMouseout(d) { | |
d.fixed &= ~4; | |
} | |
function d3_layout_forceAccumulate(quad, alpha, charges) { | |
var cx = 0, cy = 0; | |
quad.charge = 0; | |
if (!quad.leaf) { | |
var nodes = quad.nodes, n = nodes.length, i = -1, c; | |
while (++i < n) { | |
c = nodes[i]; | |
if (c == null) continue; | |
d3_layout_forceAccumulate(c, alpha, charges); | |
quad.charge += c.charge; | |
cx += c.charge * c.cx; | |
cy += c.charge * c.cy; | |
} | |
} | |
if (quad.point) { | |
if (!quad.leaf) { | |
quad.point.x += Math.random() - .5; | |
quad.point.y += Math.random() - .5; | |
} | |
var k = alpha * charges[quad.point.index]; | |
quad.charge += quad.pointCharge = k; | |
cx += k * quad.point.x; | |
cy += k * quad.point.y; | |
} | |
quad.cx = cx / quad.charge; | |
quad.cy = cy / quad.charge; | |
} | |
var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1; | |
d3.layout.partition = function() { | |
var hierarchy = d3.layout.hierarchy(), size = [ 1, 1 ]; | |
function position(node, x, dx, dy) { | |
var children = node.children; | |
node.x = x; | |
node.y = node.depth * dy; | |
node.dx = dx; | |
node.dy = dy; | |
if (children && (n = children.length)) { | |
var i = -1, n, c, d; | |
dx = node.value ? dx / node.value : 0; | |
while (++i < n) { | |
position(c = children[i], x, d = c.value * dx, dy); | |
x += d; | |
} | |
} | |
} | |
function depth(node) { | |
var children = node.children, d = 0; | |
if (children && (n = children.length)) { | |
var i = -1, n; | |
while (++i < n) d = Math.max(d, depth(children[i])); | |
} | |
return 1 + d; | |
} | |
function partition(d, i) { | |
var nodes = hierarchy.call(this, d, i); | |
position(nodes[0], 0, size[0], size[1] / depth(nodes[0])); | |
return nodes; | |
} | |
partition.size = function(x) { | |
if (!arguments.length) return size; | |
size = x; | |
return partition; | |
}; | |
return d3_layout_hierarchyRebind(partition, hierarchy); | |
}; | |
d3.layout.pie = function() { | |
var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = 2 * π; | |
function pie(data) { | |
var values = data.map(function(d, i) { | |
return +value.call(pie, d, i); | |
}); | |
var a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle); | |
var k = ((typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - startAngle) / d3.sum(values); | |
var index = d3.range(data.length); | |
if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) { | |
return values[j] - values[i]; | |
} : function(i, j) { | |
return sort(data[i], data[j]); | |
}); | |
var arcs = []; | |
index.forEach(function(i) { | |
var d; | |
arcs[i] = { | |
data: data[i], | |
value: d = values[i], | |
startAngle: a, | |
endAngle: a += d * k | |
}; | |
}); | |
return arcs; | |
} | |
pie.value = function(x) { | |
if (!arguments.length) return value; | |
value = x; | |
return pie; | |
}; | |
pie.sort = function(x) { | |
if (!arguments.length) return sort; | |
sort = x; | |
return pie; | |
}; | |
pie.startAngle = function(x) { | |
if (!arguments.length) return startAngle; | |
startAngle = x; | |
return pie; | |
}; | |
pie.endAngle = function(x) { | |
if (!arguments.length) return endAngle; | |
endAngle = x; | |
return pie; | |
}; | |
return pie; | |
}; | |
var d3_layout_pieSortByValue = {}; | |
d3.layout.stack = function() { | |
var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY; | |
function stack(data, index) { | |
var series = data.map(function(d, i) { | |
return values.call(stack, d, i); | |
}); | |
var points = series.map(function(d) { | |
return d.map(function(v, i) { | |
return [ x.call(stack, v, i), y.call(stack, v, i) ]; | |
}); | |
}); | |
var orders = order.call(stack, points, index); | |
series = d3.permute(series, orders); | |
points = d3.permute(points, orders); | |
var offsets = offset.call(stack, points, index); | |
var n = series.length, m = series[0].length, i, j, o; | |
for (j = 0; j < m; ++j) { | |
out.call(stack, series[0][j], o = offsets[j], points[0][j][1]); | |
for (i = 1; i < n; ++i) { | |
out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]); | |
} | |
} | |
return data; | |
} | |
stack.values = function(x) { | |
if (!arguments.length) return values; | |
values = x; | |
return stack; | |
}; | |
stack.order = function(x) { | |
if (!arguments.length) return order; | |
order = typeof x === "function" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault; | |
return stack; | |
}; | |
stack.offset = function(x) { | |
if (!arguments.length) return offset; | |
offset = typeof x === "function" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero; | |
return stack; | |
}; | |
stack.x = function(z) { | |
if (!arguments.length) return x; | |
x = z; | |
return stack; | |
}; | |
stack.y = function(z) { | |
if (!arguments.length) return y; | |
y = z; | |
return stack; | |
}; | |
stack.out = function(z) { | |
if (!arguments.length) return out; | |
out = z; | |
return stack; | |
}; | |
return stack; | |
}; | |
function d3_layout_stackX(d) { | |
return d.x; | |
} | |
function d3_layout_stackY(d) { | |
return d.y; | |
} | |
function d3_layout_stackOut(d, y0, y) { | |
d.y0 = y0; | |
d.y = y; | |
} | |
var d3_layout_stackOrders = d3.map({ | |
"inside-out": function(data) { | |
var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) { | |
return max[a] - max[b]; | |
}), top = 0, bottom = 0, tops = [], bottoms = []; | |
for (i = 0; i < n; ++i) { | |
j = index[i]; | |
if (top < bottom) { | |
top += sums[j]; | |
tops.push(j); | |
} else { | |
bottom += sums[j]; | |
bottoms.push(j); | |
} | |
} | |
return bottoms.reverse().concat(tops); | |
}, | |
reverse: function(data) { | |
return d3.range(data.length).reverse(); | |
}, | |
"default": d3_layout_stackOrderDefault | |
}); | |
var d3_layout_stackOffsets = d3.map({ | |
silhouette: function(data) { | |
var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = []; | |
for (j = 0; j < m; ++j) { | |
for (i = 0, o = 0; i < n; i++) o += data[i][j][1]; | |
if (o > max) max = o; | |
sums.push(o); | |
} | |
for (j = 0; j < m; ++j) { | |
y0[j] = (max - sums[j]) / 2; | |
} | |
return y0; | |
}, | |
wiggle: function(data) { | |
var n = data.length, x = data[0], m = x.length, i, j, k, s1, s2, s3, dx, o, o0, y0 = []; | |
y0[0] = o = o0 = 0; | |
for (j = 1; j < m; ++j) { | |
for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1]; | |
for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) { | |
for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) { | |
s3 += (data[k][j][1] - data[k][j - 1][1]) / dx; | |
} | |
s2 += s3 * data[i][j][1]; | |
} | |
y0[j] = o -= s1 ? s2 / s1 * dx : 0; | |
if (o < o0) o0 = o; | |
} | |
for (j = 0; j < m; ++j) y0[j] -= o0; | |
return y0; | |
}, | |
expand: function(data) { | |
var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = []; | |
for (j = 0; j < m; ++j) { | |
for (i = 0, o = 0; i < n; i++) o += data[i][j][1]; | |
if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; else for (i = 0; i < n; i++) data[i][j][1] = k; | |
} | |
for (j = 0; j < m; ++j) y0[j] = 0; | |
return y0; | |
}, | |
zero: d3_layout_stackOffsetZero | |
}); | |
function d3_layout_stackOrderDefault(data) { | |
return d3.range(data.length); | |
} | |
function d3_layout_stackOffsetZero(data) { | |
var j = -1, m = data[0].length, y0 = []; | |
while (++j < m) y0[j] = 0; | |
return y0; | |
} | |
function d3_layout_stackMaxIndex(array) { | |
var i = 1, j = 0, v = array[0][1], k, n = array.length; | |
for (;i < n; ++i) { | |
if ((k = array[i][1]) > v) { | |
j = i; | |
v = k; | |
} | |
} | |
return j; | |
} | |
function d3_layout_stackReduceSum(d) { | |
return d.reduce(d3_layout_stackSum, 0); | |
} | |
function d3_layout_stackSum(p, d) { | |
return p + d[1]; | |
} | |
d3.layout.histogram = function() { | |
var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges; | |
function histogram(data, i) { | |
var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x; | |
while (++i < m) { | |
bin = bins[i] = []; | |
bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]); | |
bin.y = 0; | |
} | |
if (m > 0) { | |
i = -1; | |
while (++i < n) { | |
x = values[i]; | |
if (x >= range[0] && x <= range[1]) { | |
bin = bins[d3.bisect(thresholds, x, 1, m) - 1]; | |
bin.y += k; | |
bin.push(data[i]); | |
} | |
} | |
} | |
return bins; | |
} | |
histogram.value = function(x) { | |
if (!arguments.length) return valuer; | |
valuer = x; | |
return histogram; | |
}; | |
histogram.range = function(x) { | |
if (!arguments.length) return ranger; | |
ranger = d3_functor(x); | |
return histogram; | |
}; | |
histogram.bins = function(x) { | |
if (!arguments.length) return binner; | |
binner = typeof x === "number" ? function(range) { | |
return d3_layout_histogramBinFixed(range, x); | |
} : d3_functor(x); | |
return histogram; | |
}; | |
histogram.frequency = function(x) { | |
if (!arguments.length) return frequency; | |
frequency = !!x; | |
return histogram; | |
}; | |
return histogram; | |
}; | |
function d3_layout_histogramBinSturges(range, values) { | |
return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1)); | |
} | |
function d3_layout_histogramBinFixed(range, n) { | |
var x = -1, b = +range[0], m = (range[1] - b) / n, f = []; | |
while (++x <= n) f[x] = m * x + b; | |
return f; | |
} | |
function d3_layout_histogramRange(values) { | |
return [ d3.min(values), d3.max(values) ]; | |
} | |
d3.layout.hierarchy = function() { | |
var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue; | |
function recurse(node, depth, nodes) { | |
var childs = children.call(hierarchy, node, depth); | |
node.depth = depth; | |
nodes.push(node); | |
if (childs && (n = childs.length)) { | |
var i = -1, n, c = node.children = [], v = 0, j = depth + 1, d; | |
while (++i < n) { | |
d = recurse(childs[i], j, nodes); | |
d.parent = node; | |
c.push(d); | |
v += d.value; | |
} | |
if (sort) c.sort(sort); | |
if (value) node.value = v; | |
} else if (value) { | |
node.value = +value.call(hierarchy, node, depth) || 0; | |
} | |
return node; | |
} | |
function revalue(node, depth) { | |
var children = node.children, v = 0; | |
if (children && (n = children.length)) { | |
var i = -1, n, j = depth + 1; | |
while (++i < n) v += revalue(children[i], j); | |
} else if (value) { | |
v = +value.call(hierarchy, node, depth) || 0; | |
} | |
if (value) node.value = v; | |
return v; | |
} | |
function hierarchy(d) { | |
var nodes = []; | |
recurse(d, 0, nodes); | |
return nodes; | |
} | |
hierarchy.sort = function(x) { | |
if (!arguments.length) return sort; | |
sort = x; | |
return hierarchy; | |
}; | |
hierarchy.children = function(x) { | |
if (!arguments.length) return children; | |
children = x; | |
return hierarchy; | |
}; | |
hierarchy.value = function(x) { | |
if (!arguments.length) return value; | |
value = x; | |
return hierarchy; | |
}; | |
hierarchy.revalue = function(root) { | |
revalue(root, 0); | |
return root; | |
}; | |
return hierarchy; | |
}; | |
function d3_layout_hierarchyRebind(object, hierarchy) { | |
d3.rebind(object, hierarchy, "sort", "children", "value"); | |
object.nodes = object; | |
object.links = d3_layout_hierarchyLinks; | |
return object; | |
} | |
function d3_layout_hierarchyChildren(d) { | |
return d.children; | |
} | |
function d3_layout_hierarchyValue(d) { | |
return d.value; | |
} | |
function d3_layout_hierarchySort(a, b) { | |
return b.value - a.value; | |
} | |
function d3_layout_hierarchyLinks(nodes) { | |
return d3.merge(nodes.map(function(parent) { | |
return (parent.children || []).map(function(child) { | |
return { | |
source: parent, | |
target: child | |
}; | |
}); | |
})); | |
} | |
d3.layout.pack = function() { | |
var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ]; | |
function pack(d, i) { | |
var nodes = hierarchy.call(this, d, i), root = nodes[0]; | |
root.x = 0; | |
root.y = 0; | |
d3_layout_treeVisitAfter(root, function(d) { | |
d.r = Math.sqrt(d.value); | |
}); | |
d3_layout_treeVisitAfter(root, d3_layout_packSiblings); | |
var w = size[0], h = size[1], k = Math.max(2 * root.r / w, 2 * root.r / h); | |
if (padding > 0) { | |
var dr = padding * k / 2; | |
d3_layout_treeVisitAfter(root, function(d) { | |
d.r += dr; | |
}); | |
d3_layout_treeVisitAfter(root, d3_layout_packSiblings); | |
d3_layout_treeVisitAfter(root, function(d) { | |
d.r -= dr; | |
}); | |
k = Math.max(2 * root.r / w, 2 * root.r / h); | |
} | |
d3_layout_packTransform(root, w / 2, h / 2, 1 / k); | |
return nodes; | |
} | |
pack.size = function(x) { | |
if (!arguments.length) return size; | |
size = x; | |
return pack; | |
}; | |
pack.padding = function(_) { | |
if (!arguments.length) return padding; | |
padding = +_; | |
return pack; | |
}; | |
return d3_layout_hierarchyRebind(pack, hierarchy); | |
}; | |
function d3_layout_packSort(a, b) { | |
return a.value - b.value; | |
} | |
function d3_layout_packInsert(a, b) { | |
var c = a._pack_next; | |
a._pack_next = b; | |
b._pack_prev = a; | |
b._pack_next = c; | |
c._pack_prev = b; | |
} | |
function d3_layout_packSplice(a, b) { | |
a._pack_next = b; | |
b._pack_prev = a; | |
} | |
function d3_layout_packIntersects(a, b) { | |
var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r; | |
return dr * dr - dx * dx - dy * dy > .001; | |
} | |
function d3_layout_packSiblings(node) { | |
if (!(nodes = node.children) || !(n = nodes.length)) return; | |
var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n; | |
function bound(node) { | |
xMin = Math.min(node.x - node.r, xMin); | |
xMax = Math.max(node.x + node.r, xMax); | |
yMin = Math.min(node.y - node.r, yMin); | |
yMax = Math.max(node.y + node.r, yMax); | |
} | |
nodes.forEach(d3_layout_packLink); | |
a = nodes[0]; | |
a.x = -a.r; | |
a.y = 0; | |
bound(a); | |
if (n > 1) { | |
b = nodes[1]; | |
b.x = b.r; | |
b.y = 0; | |
bound(b); | |
if (n > 2) { | |
c = nodes[2]; | |
d3_layout_packPlace(a, b, c); | |
bound(c); | |
d3_layout_packInsert(a, c); | |
a._pack_prev = c; | |
d3_layout_packInsert(c, b); | |
b = a._pack_next; | |
for (i = 3; i < n; i++) { | |
d3_layout_packPlace(a, b, c = nodes[i]); | |
var isect = 0, s1 = 1, s2 = 1; | |
for (j = b._pack_next; j !== b; j = j._pack_next, s1++) { | |
if (d3_layout_packIntersects(j, c)) { | |
isect = 1; | |
break; | |
} | |
} | |
if (isect == 1) { | |
for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) { | |
if (d3_layout_packIntersects(k, c)) { | |
break; | |
} | |
} | |
} | |
if (isect) { | |
if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j); else d3_layout_packSplice(a = k, b); | |
i--; | |
} else { | |
d3_layout_packInsert(a, c); | |
b = c; | |
bound(c); | |
} | |
} | |
} | |
} | |
var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0; | |
for (i = 0; i < n; i++) { | |
c = nodes[i]; | |
c.x -= cx; | |
c.y -= cy; | |
cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y)); | |
} | |
node.r = cr; | |
nodes.forEach(d3_layout_packUnlink); | |
} | |
function d3_layout_packLink(node) { | |
node._pack_next = node._pack_prev = node; | |
} | |
function d3_layout_packUnlink(node) { | |
delete node._pack_next; | |
delete node._pack_prev; | |
} | |
function d3_layout_packTransform(node, x, y, k) { | |
var children = node.children; | |
node.x = x += k * node.x; | |
node.y = y += k * node.y; | |
node.r *= k; | |
if (children) { | |
var i = -1, n = children.length; | |
while (++i < n) d3_layout_packTransform(children[i], x, y, k); | |
} | |
} | |
function d3_layout_packPlace(a, b, c) { | |
var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y; | |
if (db && (dx || dy)) { | |
var da = b.r + c.r, dc = dx * dx + dy * dy; | |
da *= da; | |
db *= db; | |
var x = .5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc); | |
c.x = a.x + x * dx + y * dy; | |
c.y = a.y + x * dy - y * dx; | |
} else { | |
c.x = a.x + db; | |
c.y = a.y; | |
} | |
} | |
d3.layout.cluster = function() { | |
var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ]; | |
function cluster(d, i) { | |
var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0; | |
d3_layout_treeVisitAfter(root, function(node) { | |
var children = node.children; | |
if (children && children.length) { | |
node.x = d3_layout_clusterX(children); | |
node.y = d3_layout_clusterY(children); | |
} else { | |
node.x = previousNode ? x += separation(node, previousNode) : 0; | |
node.y = 0; | |
previousNode = node; | |
} | |
}); | |
var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2; | |
d3_layout_treeVisitAfter(root, function(node) { | |
node.x = (node.x - x0) / (x1 - x0) * size[0]; | |
node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1]; | |
}); | |
return nodes; | |
} | |
cluster.separation = function(x) { | |
if (!arguments.length) return separation; | |
separation = x; | |
return cluster; | |
}; | |
cluster.size = function(x) { | |
if (!arguments.length) return size; | |
size = x; | |
return cluster; | |
}; | |
return d3_layout_hierarchyRebind(cluster, hierarchy); | |
}; | |
function d3_layout_clusterY(children) { | |
return 1 + d3.max(children, function(child) { | |
return child.y; | |
}); | |
} | |
function d3_layout_clusterX(children) { | |
return children.reduce(function(x, child) { | |
return x + child.x; | |
}, 0) / children.length; | |
} | |
function d3_layout_clusterLeft(node) { | |
var children = node.children; | |
return children && children.length ? d3_layout_clusterLeft(children[0]) : node; | |
} | |
function d3_layout_clusterRight(node) { | |
var children = node.children, n; | |
return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node; | |
} | |
d3.layout.tree = function() { | |
var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ]; | |
function tree(d, i) { | |
var nodes = hierarchy.call(this, d, i), root = nodes[0]; | |
function firstWalk(node, previousSibling) { | |
var children = node.children, layout = node._tree; | |
if (children && (n = children.length)) { | |
var n, firstChild = children[0], previousChild, ancestor = firstChild, child, i = -1; | |
while (++i < n) { | |
child = children[i]; | |
firstWalk(child, previousChild); | |
ancestor = apportion(child, previousChild, ancestor); | |
previousChild = child; | |
} | |
d3_layout_treeShift(node); | |
var midpoint = .5 * (firstChild._tree.prelim + child._tree.prelim); | |
if (previousSibling) { | |
layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling); | |
layout.mod = layout.prelim - midpoint; | |
} else { | |
layout.prelim = midpoint; | |
} | |
} else { | |
if (previousSibling) { | |
layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling); | |
} | |
} | |
} | |
function secondWalk(node, x) { | |
node.x = node._tree.prelim + x; | |
var children = node.children; | |
if (children && (n = children.length)) { | |
var i = -1, n; | |
x += node._tree.mod; | |
while (++i < n) { | |
secondWalk(children[i], x); | |
} | |
} | |
} | |
function apportion(node, previousSibling, ancestor) { | |
if (previousSibling) { | |
var vip = node, vop = node, vim = previousSibling, vom = node.parent.children[0], sip = vip._tree.mod, sop = vop._tree.mod, sim = vim._tree.mod, som = vom._tree.mod, shift; | |
while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) { | |
vom = d3_layout_treeLeft(vom); | |
vop = d3_layout_treeRight(vop); | |
vop._tree.ancestor = node; | |
shift = vim._tree.prelim + sim - vip._tree.prelim - sip + separation(vim, vip); | |
if (shift > 0) { | |
d3_layout_treeMove(d3_layout_treeAncestor(vim, node, ancestor), node, shift); | |
sip += shift; | |
sop += shift; | |
} | |
sim += vim._tree.mod; | |
sip += vip._tree.mod; | |
som += vom._tree.mod; | |
sop += vop._tree.mod; | |
} | |
if (vim && !d3_layout_treeRight(vop)) { | |
vop._tree.thread = vim; | |
vop._tree.mod += sim - sop; | |
} | |
if (vip && !d3_layout_treeLeft(vom)) { | |
vom._tree.thread = vip; | |
vom._tree.mod += sip - som; | |
ancestor = node; | |
} | |
} | |
return ancestor; | |
} | |
d3_layout_treeVisitAfter(root, function(node, previousSibling) { | |
node._tree = { | |
ancestor: node, | |
prelim: 0, | |
mod: 0, | |
change: 0, | |
shift: 0, | |
number: previousSibling ? previousSibling._tree.number + 1 : 0 | |
}; | |
}); | |
firstWalk(root); | |
secondWalk(root, -root._tree.prelim); | |
var left = d3_layout_treeSearch(root, d3_layout_treeLeftmost), right = d3_layout_treeSearch(root, d3_layout_treeRightmost), deep = d3_layout_treeSearch(root, d3_layout_treeDeepest), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2, y1 = deep.depth || 1; | |
d3_layout_treeVisitAfter(root, function(node) { | |
node.x = (node.x - x0) / (x1 - x0) * size[0]; | |
node.y = node.depth / y1 * size[1]; | |
delete node._tree; | |
}); | |
return nodes; | |
} | |
tree.separation = function(x) { | |
if (!arguments.length) return separation; | |
separation = x; | |
return tree; | |
}; | |
tree.size = function(x) { | |
if (!arguments.length) return size; | |
size = x; | |
return tree; | |
}; | |
return d3_layout_hierarchyRebind(tree, hierarchy); | |
}; | |
function d3_layout_treeSeparation(a, b) { | |
return a.parent == b.parent ? 1 : 2; | |
} | |
function d3_layout_treeLeft(node) { | |
var children = node.children; | |
return children && children.length ? children[0] : node._tree.thread; | |
} | |
function d3_layout_treeRight(node) { | |
var children = node.children, n; | |
return children && (n = children.length) ? children[n - 1] : node._tree.thread; | |
} | |
function d3_layout_treeSearch(node, compare) { | |
var children = node.children; | |
if (children && (n = children.length)) { | |
var child, n, i = -1; | |
while (++i < n) { | |
if (compare(child = d3_layout_treeSearch(children[i], compare), node) > 0) { | |
node = child; | |
} | |
} | |
} | |
return node; | |
} | |
function d3_layout_treeRightmost(a, b) { | |
return a.x - b.x; | |
} | |
function d3_layout_treeLeftmost(a, b) { | |
return b.x - a.x; | |
} | |
function d3_layout_treeDeepest(a, b) { | |
return a.depth - b.depth; | |
} | |
function d3_layout_treeVisitAfter(node, callback) { | |
function visit(node, previousSibling) { | |
var children = node.children; | |
if (children && (n = children.length)) { | |
var child, previousChild = null, i = -1, n; | |
while (++i < n) { | |
child = children[i]; | |
visit(child, previousChild); | |
previousChild = child; | |
} | |
} | |
callback(node, previousSibling); | |
} | |
visit(node, null); | |
} | |
function d3_layout_treeShift(node) { | |
var shift = 0, change = 0, children = node.children, i = children.length, child; | |
while (--i >= 0) { | |
child = children[i]._tree; | |
child.prelim += shift; | |
child.mod += shift; | |
shift += child.shift + (change += child.change); | |
} | |
} | |
function d3_layout_treeMove(ancestor, node, shift) { | |
ancestor = ancestor._tree; | |
node = node._tree; | |
var change = shift / (node.number - ancestor.number); | |
ancestor.change += change; | |
node.change -= change; | |
node.shift += shift; | |
node.prelim += shift; | |
node.mod += shift; | |
} | |
function d3_layout_treeAncestor(vim, node, ancestor) { | |
return vim._tree.ancestor.parent == node.parent ? vim._tree.ancestor : ancestor; | |
} | |
d3.layout.treemap = function() { | |
var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, mode = "squarify", ratio = .5 * (1 + Math.sqrt(5)); | |
function scale(children, k) { | |
var i = -1, n = children.length, child, area; | |
while (++i < n) { | |
area = (child = children[i]).value * (k < 0 ? 0 : k); | |
child.area = isNaN(area) || area <= 0 ? 0 : area; | |
} | |
} | |
function squarify(node) { | |
var children = node.children; | |
if (children && children.length) { | |
var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = mode === "slice" ? rect.dx : mode === "dice" ? rect.dy : mode === "slice-dice" ? node.depth & 1 ? rect.dy : rect.dx : Math.min(rect.dx, rect.dy), n; | |
scale(remaining, rect.dx * rect.dy / node.value); | |
row.area = 0; | |
while ((n = remaining.length) > 0) { | |
row.push(child = remaining[n - 1]); | |
row.area += child.area; | |
if (mode !== "squarify" || (score = worst(row, u)) <= best) { | |
remaining.pop(); | |
best = score; | |
} else { | |
row.area -= row.pop().area; | |
position(row, u, rect, false); | |
u = Math.min(rect.dx, rect.dy); | |
row.length = row.area = 0; | |
best = Infinity; | |
} | |
} | |
if (row.length) { | |
position(row, u, rect, true); | |
row.length = row.area = 0; | |
} | |
children.forEach(squarify); | |
} | |
} | |
function stickify(node) { | |
var children = node.children; | |
if (children && children.length) { | |
var rect = pad(node), remaining = children.slice(), child, row = []; | |
scale(remaining, rect.dx * rect.dy / node.value); | |
row.area = 0; | |
while (child = remaining.pop()) { | |
row.push(child); | |
row.area += child.area; | |
if (child.z != null) { | |
position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length); | |
row.length = row.area = 0; | |
} | |
} | |
children.forEach(stickify); | |
} | |
} | |
function worst(row, u) { | |
var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length; | |
while (++i < n) { | |
if (!(r = row[i].area)) continue; | |
if (r < rmin) rmin = r; | |
if (r > rmax) rmax = r; | |
} | |
s *= s; | |
u *= u; | |
return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity; | |
} | |
function position(row, u, rect, flush) { | |
var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o; | |
if (u == rect.dx) { | |
if (flush || v > rect.dy) v = rect.dy; | |
while (++i < n) { | |
o = row[i]; | |
o.x = x; | |
o.y = y; | |
o.dy = v; | |
x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0); | |
} | |
o.z = true; | |
o.dx += rect.x + rect.dx - x; | |
rect.y += v; | |
rect.dy -= v; | |
} else { | |
if (flush || v > rect.dx) v = rect.dx; | |
while (++i < n) { | |
o = row[i]; | |
o.x = x; | |
o.y = y; | |
o.dx = v; | |
y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0); | |
} | |
o.z = false; | |
o.dy += rect.y + rect.dy - y; | |
rect.x += v; | |
rect.dx -= v; | |
} | |
} | |
function treemap(d) { | |
var nodes = stickies || hierarchy(d), root = nodes[0]; | |
root.x = 0; | |
root.y = 0; | |
root.dx = size[0]; | |
root.dy = size[1]; | |
if (stickies) hierarchy.revalue(root); | |
scale([ root ], root.dx * root.dy / root.value); | |
(stickies ? stickify : squarify)(root); | |
if (sticky) stickies = nodes; | |
return nodes; | |
} | |
treemap.size = function(x) { | |
if (!arguments.length) return size; | |
size = x; | |
return treemap; | |
}; | |
treemap.padding = function(x) { | |
if (!arguments.length) return padding; | |
function padFunction(node) { | |
var p = x.call(treemap, node, node.depth); | |
return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === "number" ? [ p, p, p, p ] : p); | |
} | |
function padConstant(node) { | |
return d3_layout_treemapPad(node, x); | |
} | |
var type; | |
pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === "function" ? padFunction : type === "number" ? (x = [ x, x, x, x ], | |
padConstant) : padConstant; | |
return treemap; | |
}; | |
treemap.round = function(x) { | |
if (!arguments.length) return round != Number; | |
round = x ? Math.round : Number; | |
return treemap; | |
}; | |
treemap.sticky = function(x) { | |
if (!arguments.length) return sticky; | |
sticky = x; | |
stickies = null; | |
return treemap; | |
}; | |
treemap.ratio = function(x) { | |
if (!arguments.length) return ratio; | |
ratio = x; | |
return treemap; | |
}; | |
treemap.mode = function(x) { | |
if (!arguments.length) return mode; | |
mode = x + ""; | |
return treemap; | |
}; | |
return d3_layout_hierarchyRebind(treemap, hierarchy); | |
}; | |
function d3_layout_treemapPadNull(node) { | |
return { | |
x: node.x, | |
y: node.y, | |
dx: node.dx, | |
dy: node.dy | |
}; | |
} | |
function d3_layout_treemapPad(node, padding) { | |
var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2]; | |
if (dx < 0) { | |
x += dx / 2; | |
dx = 0; | |
} | |
if (dy < 0) { | |
y += dy / 2; | |
dy = 0; | |
} | |
return { | |
x: x, | |
y: y, | |
dx: dx, | |
dy: dy | |
}; | |
} | |
function d3_dsv(delimiter, mimeType) { | |
var reFormat = new RegExp('["' + delimiter + "\n]"), delimiterCode = delimiter.charCodeAt(0); | |
function dsv(url, callback) { | |
return d3.xhr(url, mimeType, callback).response(response); | |
} | |
function response(request) { | |
return dsv.parse(request.responseText); | |
} | |
dsv.parse = function(text) { | |
var o; | |
return dsv.parseRows(text, function(row) { | |
if (o) return o(row); | |
o = new Function("d", "return {" + row.map(function(name, i) { | |
return JSON.stringify(name) + ": d[" + i + "]"; | |
}).join(",") + "}"); | |
}); | |
}; | |
dsv.parseRows = function(text, f) { | |
var EOL = {}, EOF = {}, rows = [], N = text.length, I = 0, n = 0, t, eol; | |
function token() { | |
if (I >= N) return EOF; | |
if (eol) return eol = false, EOL; | |
var j = I; | |
if (text.charCodeAt(j) === 34) { | |
var i = j; | |
while (i++ < N) { | |
if (text.charCodeAt(i) === 34) { | |
if (text.charCodeAt(i + 1) !== 34) break; | |
++i; | |
} | |
} | |
I = i + 2; | |
var c = text.charCodeAt(i + 1); | |
if (c === 13) { | |
eol = true; | |
if (text.charCodeAt(i + 2) === 10) ++I; | |
} else if (c === 10) { | |
eol = true; | |
} | |
return text.substring(j + 1, i).replace(/""/g, '"'); | |
} | |
while (I < N) { | |
var c = text.charCodeAt(I++), k = 1; | |
if (c === 10) eol = true; else if (c === 13) { | |
eol = true; | |
if (text.charCodeAt(I) === 10) ++I, ++k; | |
} else if (c !== delimiterCode) continue; | |
return text.substring(j, I - k); | |
} | |
return text.substring(j); | |
} | |
while ((t = token()) !== EOF) { | |
var a = []; | |
while (t !== EOL && t !== EOF) { | |
a.push(t); | |
t = token(); | |
} | |
if (f && !(a = f(a, n++))) continue; | |
rows.push(a); | |
} | |
return rows; | |
}; | |
dsv.format = function(rows) { | |
return rows.map(formatRow).join("\n"); | |
}; | |
function formatRow(row) { | |
return row.map(formatValue).join(delimiter); | |
} | |
function formatValue(text) { | |
return reFormat.test(text) ? '"' + text.replace(/\"/g, '""') + '"' : text; | |
} | |
return dsv; | |
} | |
d3.csv = d3_dsv(",", "text/csv"); | |
d3.tsv = d3_dsv(" ", "text/tab-separated-values"); | |
d3.geo = {}; | |
d3.geo.stream = function(object, listener) { | |
if (d3_geo_streamObjectType.hasOwnProperty(object.type)) { | |
d3_geo_streamObjectType[object.type](object, listener); | |
} else { | |
d3_geo_streamGeometry(object, listener); | |
} | |
}; | |
function d3_geo_streamGeometry(geometry, listener) { | |
if (d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) { | |
d3_geo_streamGeometryType[geometry.type](geometry, listener); | |
} | |
} | |
var d3_geo_streamObjectType = { | |
Feature: function(feature, listener) { | |
d3_geo_streamGeometry(feature.geometry, listener); | |
}, | |
FeatureCollection: function(object, listener) { | |
var features = object.features, i = -1, n = features.length; | |
while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener); | |
} | |
}; | |
var d3_geo_streamGeometryType = { | |
Sphere: function(object, listener) { | |
listener.sphere(); | |
}, | |
Point: function(object, listener) { | |
var coordinate = object.coordinates; | |
listener.point(coordinate[0], coordinate[1]); | |
}, | |
MultiPoint: function(object, listener) { | |
var coordinates = object.coordinates, i = -1, n = coordinates.length, coordinate; | |
while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1]); | |
}, | |
LineString: function(object, listener) { | |
d3_geo_streamLine(object.coordinates, listener, 0); | |
}, | |
MultiLineString: function(object, listener) { | |
var coordinates = object.coordinates, i = -1, n = coordinates.length; | |
while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0); | |
}, | |
Polygon: function(object, listener) { | |
d3_geo_streamPolygon(object.coordinates, listener); | |
}, | |
MultiPolygon: function(object, listener) { | |
var coordinates = object.coordinates, i = -1, n = coordinates.length; | |
while (++i < n) d3_geo_streamPolygon(coordinates[i], listener); | |
}, | |
GeometryCollection: function(object, listener) { | |
var geometries = object.geometries, i = -1, n = geometries.length; | |
while (++i < n) d3_geo_streamGeometry(geometries[i], listener); | |
} | |
}; | |
function d3_geo_streamLine(coordinates, listener, closed) { | |
var i = -1, n = coordinates.length - closed, coordinate; | |
listener.lineStart(); | |
while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1]); | |
listener.lineEnd(); | |
} | |
function d3_geo_streamPolygon(coordinates, listener) { | |
var i = -1, n = coordinates.length; | |
listener.polygonStart(); | |
while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1); | |
listener.polygonEnd(); | |
} | |
function d3_geo_spherical(cartesian) { | |
return [ Math.atan2(cartesian[1], cartesian[0]), Math.asin(Math.max(-1, Math.min(1, cartesian[2]))) ]; | |
} | |
function d3_geo_sphericalEqual(a, b) { | |
return Math.abs(a[0] - b[0]) < ε && Math.abs(a[1] - b[1]) < ε; | |
} | |
function d3_geo_cartesian(spherical) { | |
var λ = spherical[0], φ = spherical[1], cosφ = Math.cos(φ); | |
return [ cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ) ]; | |
} | |
function d3_geo_cartesianDot(a, b) { | |
return a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; | |
} | |
function d3_geo_cartesianCross(a, b) { | |
return [ a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0] ]; | |
} | |
function d3_geo_cartesianAdd(a, b) { | |
a[0] += b[0]; | |
a[1] += b[1]; | |
a[2] += b[2]; | |
} | |
function d3_geo_cartesianScale(vector, k) { | |
return [ vector[0] * k, vector[1] * k, vector[2] * k ]; | |
} | |
function d3_geo_cartesianNormalize(d) { | |
var l = Math.sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]); | |
d[0] /= l; | |
d[1] /= l; | |
d[2] /= l; | |
} | |
function d3_geo_resample(project) { | |
var δ2 = .5, maxDepth = 16; | |
function resample(stream) { | |
var λ0, x0, y0, a0, b0, c0; | |
var resample = { | |
point: point, | |
lineStart: lineStart, | |
lineEnd: lineEnd, | |
polygonStart: function() { | |
stream.polygonStart(); | |
resample.lineStart = polygonLineStart; | |
}, | |
polygonEnd: function() { | |
stream.polygonEnd(); | |
resample.lineStart = lineStart; | |
} | |
}; | |
function point(x, y) { | |
x = project(x, y); | |
stream.point(x[0], x[1]); | |
} | |
function lineStart() { | |
x0 = NaN; | |
resample.point = linePoint; | |
stream.lineStart(); | |
} | |
function linePoint(λ, φ) { | |
var c = d3_geo_cartesian([ λ, φ ]), p = project(λ, φ); | |
resampleLineTo(x0, y0, λ0, a0, b0, c0, x0 = p[0], y0 = p[1], λ0 = λ, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream); | |
stream.point(x0, y0); | |
} | |
function lineEnd() { | |
resample.point = point; | |
stream.lineEnd(); | |
} | |
function polygonLineStart() { | |
var λ00, φ00, x00, y00, a00, b00, c00; | |
lineStart(); | |
resample.point = function(λ, φ) { | |
linePoint(λ00 = λ, φ00 = φ), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0; | |
resample.point = linePoint; | |
}; | |
resample.lineEnd = function() { | |
resampleLineTo(x0, y0, λ0, a0, b0, c0, x00, y00, λ00, a00, b00, c00, maxDepth, stream); | |
resample.lineEnd = lineEnd; | |
lineEnd(); | |
}; | |
} | |
return resample; | |
} | |
function resampleLineTo(x0, y0, λ0, a0, b0, c0, x1, y1, λ1, a1, b1, c1, depth, stream) { | |
var dx = x1 - x0, dy = y1 - y0, d2 = dx * dx + dy * dy; | |
if (d2 > 4 * δ2 && depth--) { | |
var a = a0 + a1, b = b0 + b1, c = c0 + c1, m = Math.sqrt(a * a + b * b + c * c), φ2 = Math.asin(c /= m), λ2 = Math.abs(Math.abs(c) - 1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a), p = project(λ2, φ2), x2 = p[0], y2 = p[1], dx2 = x2 - x0, dy2 = y2 - y0, dz = dy * dx2 - dx * dy2; | |
if (dz * dz / d2 > δ2 || Math.abs((dx * dx2 + dy * dy2) / d2 - .5) > .3) { | |
resampleLineTo(x0, y0, λ0, a0, b0, c0, x2, y2, λ2, a /= m, b /= m, c, depth, stream); | |
stream.point(x2, y2); | |
resampleLineTo(x2, y2, λ2, a, b, c, x1, y1, λ1, a1, b1, c1, depth, stream); | |
} | |
} | |
} | |
resample.precision = function(_) { | |
if (!arguments.length) return Math.sqrt(δ2); | |
maxDepth = (δ2 = _ * _) > 0 && 16; | |
return resample; | |
}; | |
return resample; | |
} | |
d3.geo.albersUsa = function() { | |
var lower48 = d3.geo.albers(); | |
var alaska = d3.geo.albers().rotate([ 160, 0 ]).center([ 0, 60 ]).parallels([ 55, 65 ]); | |
var hawaii = d3.geo.albers().rotate([ 160, 0 ]).center([ 0, 20 ]).parallels([ 8, 18 ]); | |
var puertoRico = d3.geo.albers().rotate([ 60, 0 ]).center([ 0, 10 ]).parallels([ 8, 18 ]); | |
function albersUsa(coordinates) { | |
return projection(coordinates)(coordinates); | |
} | |
function projection(point) { | |
var lon = point[0], lat = point[1]; | |
return lat > 50 ? alaska : lon < -140 ? hawaii : lat < 21 ? puertoRico : lower48; | |
} | |
albersUsa.scale = function(x) { | |
if (!arguments.length) return lower48.scale(); | |
lower48.scale(x); | |
alaska.scale(x * .6); | |
hawaii.scale(x); | |
puertoRico.scale(x * 1.5); | |
return albersUsa.translate(lower48.translate()); | |
}; | |
albersUsa.translate = function(x) { | |
if (!arguments.length) return lower48.translate(); | |
var dz = lower48.scale(), dx = x[0], dy = x[1]; | |
lower48.translate(x); | |
alaska.translate([ dx - .4 * dz, dy + .17 * dz ]); | |
hawaii.translate([ dx - .19 * dz, dy + .2 * dz ]); | |
puertoRico.translate([ dx + .58 * dz, dy + .43 * dz ]); | |
return albersUsa; | |
}; | |
return albersUsa.scale(lower48.scale()); | |
}; | |
function d3_geo_albers(φ0, φ1) { | |
var sinφ0 = Math.sin(φ0), n = (sinφ0 + Math.sin(φ1)) / 2, C = 1 + sinφ0 * (2 * n - sinφ0), ρ0 = Math.sqrt(C) / n; | |
function albers(λ, φ) { | |
var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n; | |
return [ ρ * Math.sin(λ *= n), ρ0 - ρ * Math.cos(λ) ]; | |
} | |
albers.invert = function(x, y) { | |
var ρ0_y = ρ0 - y; | |
return [ Math.atan2(x, ρ0_y) / n, Math.asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n)) ]; | |
}; | |
return albers; | |
} | |
(d3.geo.albers = function() { | |
var φ0 = 29.5 * d3_radians, φ1 = 45.5 * d3_radians, m = d3_geo_projectionMutator(d3_geo_albers), p = m(φ0, φ1); | |
p.parallels = function(_) { | |
if (!arguments.length) return [ φ0 * d3_degrees, φ1 * d3_degrees ]; | |
return m(φ0 = _[0] * d3_radians, φ1 = _[1] * d3_radians); | |
}; | |
return p.rotate([ 98, 0 ]).center([ 0, 38 ]).scale(1e3); | |
}).raw = d3_geo_albers; | |
var d3_geo_azimuthalEqualArea = d3_geo_azimuthal(function(cosλcosφ) { | |
return Math.sqrt(2 / (1 + cosλcosφ)); | |
}, function(ρ) { | |
return 2 * Math.asin(ρ / 2); | |
}); | |
(d3.geo.azimuthalEqualArea = function() { | |
return d3_geo_projection(d3_geo_azimuthalEqualArea); | |
}).raw = d3_geo_azimuthalEqualArea; | |
var d3_geo_azimuthalEquidistant = d3_geo_azimuthal(function(cosλcosφ) { | |
var c = Math.acos(cosλcosφ); | |
return c && c / Math.sin(c); | |
}, d3_identity); | |
(d3.geo.azimuthalEquidistant = function() { | |
return d3_geo_projection(d3_geo_azimuthalEquidistant); | |
}).raw = d3_geo_azimuthalEquidistant; | |
d3.geo.bounds = d3_geo_bounds(d3_identity); | |
function d3_geo_bounds(projectStream) { | |
var x0, y0, x1, y1; | |
var bound = { | |
point: boundPoint, | |
lineStart: d3_noop, | |
lineEnd: d3_noop, | |
polygonStart: function() { | |
bound.lineEnd = boundPolygonLineEnd; | |
}, | |
polygonEnd: function() { | |
bound.point = boundPoint; | |
} | |
}; | |
function boundPoint(x, y) { | |
if (x < x0) x0 = x; | |
if (x > x1) x1 = x; | |
if (y < y0) y0 = y; | |
if (y > y1) y1 = y; | |
} | |
function boundPolygonLineEnd() { | |
bound.point = bound.lineEnd = d3_noop; | |
} | |
return function(feature) { | |
y1 = x1 = -(x0 = y0 = Infinity); | |
d3.geo.stream(feature, projectStream(bound)); | |
return [ [ x0, y0 ], [ x1, y1 ] ]; | |
}; | |
} | |
d3.geo.centroid = function(object) { | |
d3_geo_centroidDimension = d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0; | |
d3.geo.stream(object, d3_geo_centroid); | |
var m; | |
if (d3_geo_centroidW && Math.abs(m = Math.sqrt(d3_geo_centroidX * d3_geo_centroidX + d3_geo_centroidY * d3_geo_centroidY + d3_geo_centroidZ * d3_geo_centroidZ)) > ε) { | |
return [ Math.atan2(d3_geo_centroidY, d3_geo_centroidX) * d3_degrees, Math.asin(Math.max(-1, Math.min(1, d3_geo_centroidZ / m))) * d3_degrees ]; | |
} | |
}; | |
var d3_geo_centroidDimension, d3_geo_centroidW, d3_geo_centroidX, d3_geo_centroidY, d3_geo_centroidZ; | |
var d3_geo_centroid = { | |
sphere: function() { | |
if (d3_geo_centroidDimension < 2) { | |
d3_geo_centroidDimension = 2; | |
d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0; | |
} | |
}, | |
point: d3_geo_centroidPoint, | |
lineStart: d3_geo_centroidLineStart, | |
lineEnd: d3_geo_centroidLineEnd, | |
polygonStart: function() { | |
if (d3_geo_centroidDimension < 2) { | |
d3_geo_centroidDimension = 2; | |
d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0; | |
} | |
d3_geo_centroid.lineStart = d3_geo_centroidRingStart; | |
}, | |
polygonEnd: function() { | |
d3_geo_centroid.lineStart = d3_geo_centroidLineStart; | |
} | |
}; | |
function d3_geo_centroidPoint(λ, φ) { | |
if (d3_geo_centroidDimension) return; | |
++d3_geo_centroidW; | |
λ *= d3_radians; | |
var cosφ = Math.cos(φ *= d3_radians); | |
d3_geo_centroidX += (cosφ * Math.cos(λ) - d3_geo_centroidX) / d3_geo_centroidW; | |
d3_geo_centroidY += (cosφ * Math.sin(λ) - d3_geo_centroidY) / d3_geo_centroidW; | |
d3_geo_centroidZ += (Math.sin(φ) - d3_geo_centroidZ) / d3_geo_centroidW; | |
} | |
function d3_geo_centroidRingStart() { | |
var λ00, φ00; | |
d3_geo_centroidDimension = 1; | |
d3_geo_centroidLineStart(); | |
d3_geo_centroidDimension = 2; | |
var linePoint = d3_geo_centroid.point; | |
d3_geo_centroid.point = function(λ, φ) { | |
linePoint(λ00 = λ, φ00 = φ); | |
}; | |
d3_geo_centroid.lineEnd = function() { | |
d3_geo_centroid.point(λ00, φ00); | |
d3_geo_centroidLineEnd(); | |
d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd; | |
}; | |
} | |
function d3_geo_centroidLineStart() { | |
var x0, y0, z0; | |
if (d3_geo_centroidDimension > 1) return; | |
if (d3_geo_centroidDimension < 1) { | |
d3_geo_centroidDimension = 1; | |
d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0; | |
} | |
d3_geo_centroid.point = function(λ, φ) { | |
λ *= d3_radians; | |
var cosφ = Math.cos(φ *= d3_radians); | |
x0 = cosφ * Math.cos(λ); | |
y0 = cosφ * Math.sin(λ); | |
z0 = Math.sin(φ); | |
d3_geo_centroid.point = nextPoint; | |
}; | |
function nextPoint(λ, φ) { | |
λ *= d3_radians; | |
var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), w = Math.atan2(Math.sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z); | |
d3_geo_centroidW += w; | |
d3_geo_centroidX += w * (x0 + (x0 = x)); | |
d3_geo_centroidY += w * (y0 + (y0 = y)); | |
d3_geo_centroidZ += w * (z0 + (z0 = z)); | |
} | |
} | |
function d3_geo_centroidLineEnd() { | |
d3_geo_centroid.point = d3_geo_centroidPoint; | |
} | |
d3.geo.circle = function() { | |
var origin = [ 0, 0 ], angle, precision = 6, interpolate; | |
function circle() { | |
var center = typeof origin === "function" ? origin.apply(this, arguments) : origin, rotate = d3_geo_rotation(-center[0] * d3_radians, -center[1] * d3_radians, 0).invert, ring = []; | |
interpolate(null, null, 1, { | |
point: function(x, y) { | |
ring.push(x = rotate(x, y)); | |
x[0] *= d3_degrees, x[1] *= d3_degrees; | |
} | |
}); | |
return { | |
type: "Polygon", | |
coordinates: [ ring ] | |
}; | |
} | |
circle.origin = function(x) { | |
if (!arguments.length) return origin; | |
origin = x; | |
return circle; | |
}; | |
circle.angle = function(x) { | |
if (!arguments.length) return angle; | |
interpolate = d3_geo_circleInterpolate((angle = +x) * d3_radians, precision * d3_radians); | |
return circle; | |
}; | |
circle.precision = function(_) { | |
if (!arguments.length) return precision; | |
interpolate = d3_geo_circleInterpolate(angle * d3_radians, (precision = +_) * d3_radians); | |
return circle; | |
}; | |
return circle.angle(90); | |
}; | |
function d3_geo_circleInterpolate(radians, precision) { | |
var cr = Math.cos(radians), sr = Math.sin(radians); | |
return function(from, to, direction, listener) { | |
if (from != null) { | |
from = d3_geo_circleAngle(cr, from); | |
to = d3_geo_circleAngle(cr, to); | |
if (direction > 0 ? from < to : from > to) from += direction * 2 * π; | |
} else { | |
from = radians + direction * 2 * π; | |
to = radians; | |
} | |
var point; | |
for (var step = direction * precision, t = from; direction > 0 ? t > to : t < to; t -= step) { | |
listener.point((point = d3_geo_spherical([ cr, -sr * Math.cos(t), -sr * Math.sin(t) ]))[0], point[1]); | |
} | |
}; | |
} | |
function d3_geo_circleAngle(cr, point) { | |
var a = d3_geo_cartesian(point); | |
a[0] -= cr; | |
d3_geo_cartesianNormalize(a); | |
var angle = Math.acos(Math.max(-1, Math.min(1, -a[1]))); | |
return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ε) % (2 * Math.PI); | |
} | |
function d3_geo_clip(pointVisible, clipLine, interpolate) { | |
return function(listener) { | |
var line = clipLine(listener); | |
var clip = { | |
point: point, | |
lineStart: lineStart, | |
lineEnd: lineEnd, | |
polygonStart: function() { | |
clip.point = pointRing; | |
clip.lineStart = ringStart; | |
clip.lineEnd = ringEnd; | |
invisible = false; | |
invisibleArea = visibleArea = 0; | |
segments = []; | |
listener.polygonStart(); | |
}, | |
polygonEnd: function() { | |
clip.point = point; | |
clip.lineStart = lineStart; | |
clip.lineEnd = lineEnd; | |
segments = d3.merge(segments); | |
if (segments.length) { | |
d3_geo_clipPolygon(segments, interpolate, listener); | |
} else if (visibleArea < -ε || invisible && invisibleArea < -ε) { | |
listener.lineStart(); | |
interpolate(null, null, 1, listener); | |
listener.lineEnd(); | |
} | |
listener.polygonEnd(); | |
segments = null; | |
}, | |
sphere: function() { | |
listener.polygonStart(); | |
listener.lineStart(); | |
interpolate(null, null, 1, listener); | |
listener.lineEnd(); | |
listener.polygonEnd(); | |
} | |
}; | |
function point(λ, φ) { | |
if (pointVisible(λ, φ)) listener.point(λ, φ); | |
} | |
function pointLine(λ, φ) { | |
line.point(λ, φ); | |
} | |
function lineStart() { | |
clip.point = pointLine; | |
line.lineStart(); | |
} | |
function lineEnd() { | |
clip.point = point; | |
line.lineEnd(); | |
} | |
var segments, visibleArea, invisibleArea, invisible; | |
var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), ring; | |
function pointRing(λ, φ) { | |
ringListener.point(λ, φ); | |
ring.push([ λ, φ ]); | |
} | |
function ringStart() { | |
ringListener.lineStart(); | |
ring = []; | |
} | |
function ringEnd() { | |
pointRing(ring[0][0], ring[0][1]); | |
ringListener.lineEnd(); | |
var clean = ringListener.clean(), ringSegments = buffer.buffer(), segment, n = ringSegments.length; | |
if (!n) { | |
invisible = true; | |
invisibleArea += d3_geo_clipAreaRing(ring, -1); | |
ring = null; | |
return; | |
} | |
ring = null; | |
if (clean & 1) { | |
segment = ringSegments[0]; | |
visibleArea += d3_geo_clipAreaRing(segment, 1); | |
var n = segment.length - 1, i = -1, point; | |
listener.lineStart(); | |
while (++i < n) listener.point((point = segment[i])[0], point[1]); | |
listener.lineEnd(); | |
return; | |
} | |
if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift())); | |
segments.push(ringSegments.filter(d3_geo_clipSegmentLength1)); | |
} | |
return clip; | |
}; | |
} | |
function d3_geo_clipPolygon(segments, interpolate, listener) { | |
var subject = [], clip = []; | |
segments.forEach(function(segment) { | |
var n = segment.length; | |
if (n <= 1) return; | |
var p0 = segment[0], p1 = segment[n - 1], a = { | |
point: p0, | |
points: segment, | |
other: null, | |
visited: false, | |
entry: true, | |
subject: true | |
}, b = { | |
point: p0, | |
points: [ p0 ], | |
other: a, | |
visited: false, | |
entry: false, | |
subject: false | |
}; | |
a.other = b; | |
subject.push(a); | |
clip.push(b); | |
a = { | |
point: p1, | |
points: [ p1 ], | |
other: null, | |
visited: false, | |
entry: false, | |
subject: true | |
}; | |
b = { | |
point: p1, | |
points: [ p1 ], | |
other: a, | |
visited: false, | |
entry: true, | |
subject: false | |
}; | |
a.other = b; | |
subject.push(a); | |
clip.push(b); | |
}); | |
clip.sort(d3_geo_clipSort); | |
d3_geo_clipLinkCircular(subject); | |
d3_geo_clipLinkCircular(clip); | |
if (!subject.length) return; | |
var start = subject[0], current, points, point; | |
while (1) { | |
current = start; | |
while (current.visited) if ((current = current.next) === start) return; | |
points = current.points; | |
listener.lineStart(); | |
do { | |
current.visited = current.other.visited = true; | |
if (current.entry) { | |
if (current.subject) { | |
for (var i = 0; i < points.length; i++) listener.point((point = points[i])[0], point[1]); | |
} else { | |
interpolate(current.point, current.next.point, 1, listener); | |
} | |
current = current.next; | |
} else { | |
if (current.subject) { | |
points = current.prev.points; | |
for (var i = points.length; --i >= 0; ) listener.point((point = points[i])[0], point[1]); | |
} else { | |
interpolate(current.point, current.prev.point, -1, listener); | |
} | |
current = current.prev; | |
} | |
current = current.other; | |
points = current.points; | |
} while (!current.visited); | |
listener.lineEnd(); | |
} | |
} | |
function d3_geo_clipLinkCircular(array) { | |
if (!(n = array.length)) return; | |
var n, i = 0, a = array[0], b; | |
while (++i < n) { | |
a.next = b = array[i]; | |
b.prev = a; | |
a = b; | |
} | |
a.next = b = array[0]; | |
b.prev = a; | |
} | |
function d3_geo_clipSort(a, b) { | |
return ((a = a.point)[0] < 0 ? a[1] - π / 2 - ε : π / 2 - a[1]) - ((b = b.point)[0] < 0 ? b[1] - π / 2 - ε : π / 2 - b[1]); | |
} | |
function d3_geo_clipSegmentLength1(segment) { | |
return segment.length > 1; | |
} | |
function d3_geo_clipBufferListener() { | |
var lines = [], line; | |
return { | |
lineStart: function() { | |
lines.push(line = []); | |
}, | |
point: function(λ, φ) { | |
line.push([ λ, φ ]); | |
}, | |
lineEnd: d3_noop, | |
buffer: function() { | |
var buffer = lines; | |
lines = []; | |
line = null; | |
return buffer; | |
} | |
}; | |
} | |
function d3_geo_clipAreaRing(ring, invisible) { | |
if (!(n = ring.length)) return 0; | |
var n, i = 0, area = 0, p = ring[0], λ = p[0], φ = p[1], cosφ = Math.cos(φ), x0 = Math.atan2(invisible * Math.sin(λ) * cosφ, Math.sin(φ)), y0 = 1 - invisible * Math.cos(λ) * cosφ, x1 = x0, x, y; | |
while (++i < n) { | |
p = ring[i]; | |
cosφ = Math.cos(φ = p[1]); | |
x = Math.atan2(invisible * Math.sin(λ = p[0]) * cosφ, Math.sin(φ)); | |
y = 1 - invisible * Math.cos(λ) * cosφ; | |
if (Math.abs(y0 - 2) < ε && Math.abs(y - 2) < ε) continue; | |
if (Math.abs(y) < ε || Math.abs(y0) < ε) {} else if (Math.abs(Math.abs(x - x0) - π) < ε) { | |
if (y + y0 > 2) area += 4 * (x - x0); | |
} else if (Math.abs(y0 - 2) < ε) area += 4 * (x - x1); else area += ((3 * π + x - x0) % (2 * π) - π) * (y0 + y); | |
x1 = x0, x0 = x, y0 = y; | |
} | |
return area; | |
} | |
var d3_geo_clipAntimeridian = d3_geo_clip(d3_true, d3_geo_clipAntimeridianLine, d3_geo_clipAntimeridianInterpolate); | |
function d3_geo_clipAntimeridianLine(listener) { | |
var λ0 = NaN, φ0 = NaN, sλ0 = NaN, clean; | |
return { | |
lineStart: function() { | |
listener.lineStart(); | |
clean = 1; | |
}, | |
point: function(λ1, φ1) { | |
var sλ1 = λ1 > 0 ? π : -π, dλ = Math.abs(λ1 - λ0); | |
if (Math.abs(dλ - π) < ε) { | |
listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? π / 2 : -π / 2); | |
listener.point(sλ0, φ0); | |
listener.lineEnd(); | |
listener.lineStart(); | |
listener.point(sλ1, φ0); | |
listener.point(λ1, φ0); | |
clean = 0; | |
} else if (sλ0 !== sλ1 && dλ >= π) { | |
if (Math.abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε; | |
if (Math.abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε; | |
φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1); | |
listener.point(sλ0, φ0); | |
listener.lineEnd(); | |
listener.lineStart(); | |
listener.point(sλ1, φ0); | |
clean = 0; | |
} | |
listener.point(λ0 = λ1, φ0 = φ1); | |
sλ0 = sλ1; | |
}, | |
lineEnd: function() { | |
listener.lineEnd(); | |
λ0 = φ0 = NaN; | |
}, | |
clean: function() { | |
return 2 - clean; | |
} | |
}; | |
} | |
function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) { | |
var cosφ0, cosφ1, sinλ0_λ1 = Math.sin(λ0 - λ1); | |
return Math.abs(sinλ0_λ1) > ε ? Math.atan((Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1) - Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0)) / (cosφ0 * cosφ1 * sinλ0_λ1)) : (φ0 + φ1) / 2; | |
} | |
function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) { | |
var φ; | |
if (from == null) { | |
φ = direction * π / 2; | |
listener.point(-π, φ); | |
listener.point(0, φ); | |
listener.point(π, φ); | |
listener.point(π, 0); | |
listener.point(π, -φ); | |
listener.point(0, -φ); | |
listener.point(-π, -φ); | |
listener.point(-π, 0); | |
listener.point(-π, φ); | |
} else if (Math.abs(from[0] - to[0]) > ε) { | |
var s = (from[0] < to[0] ? 1 : -1) * π; | |
φ = direction * s / 2; | |
listener.point(-s, φ); | |
listener.point(0, φ); | |
listener.point(s, φ); | |
} else { | |
listener.point(to[0], to[1]); | |
} | |
} | |
function d3_geo_clipCircle(degrees) { | |
var radians = degrees * d3_radians, cr = Math.cos(radians), interpolate = d3_geo_circleInterpolate(radians, 6 * d3_radians); | |
return d3_geo_clip(visible, clipLine, interpolate); | |
function visible(λ, φ) { | |
return Math.cos(λ) * Math.cos(φ) > cr; | |
} | |
function clipLine(listener) { | |
var point0, v0, v00, clean; | |
return { | |
lineStart: function() { | |
v00 = v0 = false; | |
clean = 1; | |
}, | |
point: function(λ, φ) { | |
var point1 = [ λ, φ ], point2, v = visible(λ, φ); | |
if (!point0 && (v00 = v0 = v)) listener.lineStart(); | |
if (v !== v0) { | |
point2 = intersect(point0, point1); | |
if (d3_geo_sphericalEqual(point0, point2) || d3_geo_sphericalEqual(point1, point2)) { | |
point1[0] += ε; | |
point1[1] += ε; | |
v = visible(point1[0], point1[1]); | |
} | |
} | |
if (v !== v0) { | |
clean = 0; | |
if (v0 = v) { | |
listener.lineStart(); | |
point2 = intersect(point1, point0); | |
listener.point(point2[0], point2[1]); | |
} else { | |
point2 = intersect(point0, point1); | |
listener.point(point2[0], point2[1]); | |
listener.lineEnd(); | |
} | |
point0 = point2; | |
} | |
if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) listener.point(point1[0], point1[1]); | |
point0 = point1; | |
}, | |
lineEnd: function() { | |
if (v0) listener.lineEnd(); | |
point0 = null; | |
}, | |
clean: function() { | |
return clean | (v00 && v0) << 1; | |
} | |
}; | |
} | |
function intersect(a, b) { | |
var pa = d3_geo_cartesian(a, 0), pb = d3_geo_cartesian(b, 0); | |
var n1 = [ 1, 0, 0 ], n2 = d3_geo_cartesianCross(pa, pb), n2n2 = d3_geo_cartesianDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2; | |
if (!determinant) return a; | |
var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = d3_geo_cartesianCross(n1, n2), A = d3_geo_cartesianScale(n1, c1), B = d3_geo_cartesianScale(n2, c2); | |
d3_geo_cartesianAdd(A, B); | |
var u = n1xn2, w = d3_geo_cartesianDot(A, u), uu = d3_geo_cartesianDot(u, u), t = Math.sqrt(w * w - uu * (d3_geo_cartesianDot(A, A) - 1)), q = d3_geo_cartesianScale(u, (-w - t) / uu); | |
d3_geo_cartesianAdd(q, A); | |
return d3_geo_spherical(q); | |
} | |
} | |
function d3_geo_compose(a, b) { | |
function compose(x, y) { | |
return x = a(x, y), b(x[0], x[1]); | |
} | |
if (a.invert && b.invert) compose.invert = function(x, y) { | |
return x = b.invert(x, y), x && a.invert(x[0], x[1]); | |
}; | |
return compose; | |
} | |
function d3_geo_equirectangular(λ, φ) { | |
return [ λ, φ ]; | |
} | |
(d3.geo.equirectangular = function() { | |
return d3_geo_projection(d3_geo_equirectangular).scale(250 / π); | |
}).raw = d3_geo_equirectangular.invert = d3_geo_equirectangular; | |
var d3_geo_gnomonic = d3_geo_azimuthal(function(cosλcosφ) { | |
return 1 / cosλcosφ; | |
}, Math.atan); | |
(d3.geo.gnomonic = function() { | |
return d3_geo_projection(d3_geo_gnomonic); | |
}).raw = d3_geo_gnomonic; | |
d3.geo.graticule = function() { | |
var x1, x0, y1, y0, dx = 22.5, dy = dx, x, y, precision = 2.5; | |
function graticule() { | |
return { | |
type: "MultiLineString", | |
coordinates: lines() | |
}; | |
} | |
function lines() { | |
return d3.range(Math.ceil(x0 / dx) * dx, x1, dx).map(x).concat(d3.range(Math.ceil(y0 / dy) * dy, y1, dy).map(y)); | |
} | |
graticule.lines = function() { | |
return lines().map(function(coordinates) { | |
return { | |
type: "LineString", | |
coordinates: coordinates | |
}; | |
}); | |
}; | |
graticule.outline = function() { | |
return { | |
type: "Polygon", | |
coordinates: [ x(x0).concat(y(y1).slice(1), x(x1).reverse().slice(1), y(y0).reverse().slice(1)) ] | |
}; | |
}; | |
graticule.extent = function(_) { | |
if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ]; | |
x0 = +_[0][0], x1 = +_[1][0]; | |
y0 = +_[0][1], y1 = +_[1][1]; | |
if (x0 > x1) _ = x0, x0 = x1, x1 = _; | |
if (y0 > y1) _ = y0, y0 = y1, y1 = _; | |
return graticule.precision(precision); | |
}; | |
graticule.step = function(_) { | |
if (!arguments.length) return [ dx, dy ]; | |
dx = +_[0], dy = +_[1]; | |
return graticule; | |
}; | |
graticule.precision = function(_) { | |
if (!arguments.length) return precision; | |
precision = +_; | |
x = d3_geo_graticuleX(y0, y1, precision); | |
y = d3_geo_graticuleY(x0, x1, precision); | |
return graticule; | |
}; | |
return graticule.extent([ [ -180 + ε, -90 + ε ], [ 180 - ε, 90 - ε ] ]); | |
}; | |
function d3_geo_graticuleX(y0, y1, dy) { | |
var y = d3.range(y0, y1 - ε, dy).concat(y1); | |
return function(x) { | |
return y.map(function(y) { | |
return [ x, y ]; | |
}); | |
}; | |
} | |
function d3_geo_graticuleY(x0, x1, dx) { | |
var x = d3.range(x0, x1 - ε, dx).concat(x1); | |
return function(y) { | |
return x.map(function(x) { | |
return [ x, y ]; | |
}); | |
}; | |
} | |
d3.geo.interpolate = function(source, target) { | |
return d3_geo_interpolate(source[0] * d3_radians, source[1] * d3_radians, target[0] * d3_radians, target[1] * d3_radians); | |
}; | |
function d3_geo_interpolate(x0, y0, x1, y1) { | |
var cy0 = Math.cos(y0), sy0 = Math.sin(y0), cy1 = Math.cos(y1), sy1 = Math.sin(y1), kx0 = cy0 * Math.cos(x0), ky0 = cy0 * Math.sin(x0), kx1 = cy1 * Math.cos(x1), ky1 = cy1 * Math.sin(x1), d = Math.acos(Math.max(-1, Math.min(1, sy0 * sy1 + cy0 * cy1 * Math.cos(x1 - x0)))), k = 1 / Math.sin(d); | |
function interpolate(t) { | |
var B = Math.sin(t *= d) * k, A = Math.sin(d - t) * k, x = A * kx0 + B * kx1, y = A * ky0 + B * ky1, z = A * sy0 + B * sy1; | |
return [ Math.atan2(y, x) / d3_radians, Math.atan2(z, Math.sqrt(x * x + y * y)) / d3_radians ]; | |
} | |
interpolate.distance = d; | |
return interpolate; | |
} | |
d3.geo.greatArc = function() { | |
var source = d3_source, source_, target = d3_target, target_, precision = 6 * d3_radians, interpolate; | |
function greatArc() { | |
var p0 = source_ || source.apply(this, arguments), p1 = target_ || target.apply(this, arguments), i = interpolate || d3.geo.interpolate(p0, p1), t = 0, dt = precision / i.distance, coordinates = [ p0 ]; | |
while ((t += dt) < 1) coordinates.push(i(t)); | |
coordinates.push(p1); | |
return { | |
type: "LineString", | |
coordinates: coordinates | |
}; | |
} | |
greatArc.distance = function() { | |
return (interpolate || d3.geo.interpolate(source_ || source.apply(this, arguments), target_ || target.apply(this, arguments))).distance; | |
}; | |
greatArc.source = function(_) { | |
if (!arguments.length) return source; | |
source = _, source_ = typeof _ === "function" ? null : _; | |
interpolate = source_ && target_ ? d3.geo.interpolate(source_, target_) : null; | |
return greatArc; | |
}; | |
greatArc.target = function(_) { | |
if (!arguments.length) return target; | |
target = _, target_ = typeof _ === "function" ? null : _; | |
interpolate = source_ && target_ ? d3.geo.interpolate(source_, target_) : null; | |
return greatArc; | |
}; | |
greatArc.precision = function(_) { | |
if (!arguments.length) return precision / d3_radians; | |
precision = _ * d3_radians; | |
return greatArc; | |
}; | |
return greatArc; | |
}; | |
function d3_geo_mercator(λ, φ) { | |
return [ λ / (2 * π), Math.max(-.5, Math.min(+.5, Math.log(Math.tan(π / 4 + φ / 2)) / (2 * π))) ]; | |
} | |
d3_geo_mercator.invert = function(x, y) { | |
return [ 2 * π * x, 2 * Math.atan(Math.exp(2 * π * y)) - π / 2 ]; | |
}; | |
(d3.geo.mercator = function() { | |
return d3_geo_projection(d3_geo_mercator).scale(500); | |
}).raw = d3_geo_mercator; | |
var d3_geo_orthographic = d3_geo_azimuthal(function() { | |
return 1; | |
}, Math.asin); | |
(d3.geo.orthographic = function() { | |
return d3_geo_projection(d3_geo_orthographic); | |
}).raw = d3_geo_orthographic; | |
d3.geo.path = function() { | |
var pointRadius = 4.5, projection, context, projectStream, contextStream; | |
function path(object) { | |
if (object) d3.geo.stream(object, projectStream(contextStream.pointRadius(typeof pointRadius === "function" ? +pointRadius.apply(this, arguments) : pointRadius))); | |
return contextStream.result(); | |
} | |
path.area = function(object) { | |
d3_geo_pathAreaSum = 0; | |
d3.geo.stream(object, projectStream(d3_geo_pathArea)); | |
return d3_geo_pathAreaSum; | |
}; | |
path.centroid = function(object) { | |
d3_geo_centroidDimension = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0; | |
d3.geo.stream(object, projectStream(d3_geo_pathCentroid)); | |
return d3_geo_centroidZ ? [ d3_geo_centroidX / d3_geo_centroidZ, d3_geo_centroidY / d3_geo_centroidZ ] : undefined; | |
}; | |
path.bounds = function(object) { | |
return d3_geo_bounds(projectStream)(object); | |
}; | |
path.projection = function(_) { | |
if (!arguments.length) return projection; | |
projectStream = (projection = _) ? _.stream || d3_geo_pathProjectStream(_) : d3_identity; | |
return path; | |
}; | |
path.context = function(_) { | |
if (!arguments.length) return context; | |
contextStream = (context = _) == null ? new d3_geo_pathBuffer() : new d3_geo_pathContext(_); | |
return path; | |
}; | |
path.pointRadius = function(_) { | |
if (!arguments.length) return pointRadius; | |
pointRadius = typeof _ === "function" ? _ : +_; | |
return path; | |
}; | |
return path.projection(d3.geo.albersUsa()).context(null); | |
}; | |
function d3_geo_pathCircle(radius) { | |
return "m0," + radius + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius + "a" + radius + "," + radius + " 0 1,1 0," + +2 * radius + "z"; | |
} | |
function d3_geo_pathProjectStream(project) { | |
var resample = d3_geo_resample(function(λ, φ) { | |
return project([ λ * d3_degrees, φ * d3_degrees ]); | |
}); | |
return function(stream) { | |
stream = resample(stream); | |
return { | |
point: function(λ, φ) { | |
stream.point(λ * d3_radians, φ * d3_radians); | |
}, | |
sphere: function() { | |
stream.sphere(); | |
}, | |
lineStart: function() { | |
stream.lineStart(); | |
}, | |
lineEnd: function() { | |
stream.lineEnd(); | |
}, | |
polygonStart: function() { | |
stream.polygonStart(); | |
}, | |
polygonEnd: function() { | |
stream.polygonEnd(); | |
} | |
}; | |
}; | |
} | |
function d3_geo_pathBuffer() { | |
var pointCircle = d3_geo_pathCircle(4.5), buffer = []; | |
var stream = { | |
point: point, | |
lineStart: function() { | |
stream.point = pointLineStart; | |
}, | |
lineEnd: lineEnd, | |
polygonStart: function() { | |
stream.lineEnd = lineEndPolygon; | |
}, | |
polygonEnd: function() { | |
stream.lineEnd = lineEnd; | |
stream.point = point; | |
}, | |
pointRadius: function(_) { | |
pointCircle = d3_geo_pathCircle(_); | |
return stream; | |
}, | |
result: function() { | |
if (buffer.length) { | |
var result = buffer.join(""); | |
buffer = []; | |
return result; | |
} | |
} | |
}; | |
function point(x, y) { | |
buffer.push("M", x, ",", y, pointCircle); | |
} | |
function pointLineStart(x, y) { | |
buffer.push("M", x, ",", y); | |
stream.point = pointLine; | |
} | |
function pointLine(x, y) { | |
buffer.push("L", x, ",", y); | |
} | |
function lineEnd() { | |
stream.point = point; | |
} | |
function lineEndPolygon() { | |
buffer.push("Z"); | |
} | |
return stream; | |
} | |
function d3_geo_pathContext(context) { | |
var pointRadius = 4.5; | |
var stream = { | |
point: point, | |
lineStart: function() { | |
stream.point = pointLineStart; | |
}, | |
lineEnd: lineEnd, | |
polygonStart: function() { | |
stream.lineEnd = lineEndPolygon; | |
}, | |
polygonEnd: function() { | |
stream.lineEnd = lineEnd; | |
stream.point = point; | |
}, | |
pointRadius: function(_) { | |
pointRadius = _; | |
return stream; | |
}, | |
result: d3_noop | |
}; | |
function point(x, y) { | |
context.moveTo(x, y); | |
context.arc(x, y, pointRadius, 0, 2 * π); | |
} | |
function pointLineStart(x, y) { | |
context.moveTo(x, y); | |
stream.point = pointLine; | |
} | |
function pointLine(x, y) { | |
context.lineTo(x, y); | |
} | |
function lineEnd() { | |
stream.point = point; | |
} | |
function lineEndPolygon() { | |
context.closePath(); | |
} | |
return stream; | |
} | |
var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = { | |
point: d3_noop, | |
lineStart: d3_noop, | |
lineEnd: d3_noop, | |
polygonStart: function() { | |
d3_geo_pathAreaPolygon = 0; | |
d3_geo_pathArea.lineStart = d3_geo_pathAreaRingStart; | |
}, | |
polygonEnd: function() { | |
d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop; | |
d3_geo_pathAreaSum += Math.abs(d3_geo_pathAreaPolygon / 2); | |
} | |
}; | |
function d3_geo_pathAreaRingStart() { | |
var x00, y00, x0, y0; | |
d3_geo_pathArea.point = function(x, y) { | |
d3_geo_pathArea.point = nextPoint; | |
x00 = x0 = x, y00 = y0 = y; | |
}; | |
function nextPoint(x, y) { | |
d3_geo_pathAreaPolygon += y0 * x - x0 * y; | |
x0 = x, y0 = y; | |
} | |
d3_geo_pathArea.lineEnd = function() { | |
nextPoint(x00, y00); | |
}; | |
} | |
var d3_geo_pathCentroid = { | |
point: d3_geo_pathCentroidPoint, | |
lineStart: d3_geo_pathCentroidLineStart, | |
lineEnd: d3_geo_pathCentroidLineEnd, | |
polygonStart: function() { | |
d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart; | |
}, | |
polygonEnd: function() { | |
d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint; | |
d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart; | |
d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd; | |
} | |
}; | |
function d3_geo_pathCentroidPoint(x, y) { | |
if (d3_geo_centroidDimension) return; | |
d3_geo_centroidX += x; | |
d3_geo_centroidY += y; | |
++d3_geo_centroidZ; | |
} | |
function d3_geo_pathCentroidLineStart() { | |
var x0, y0; | |
if (d3_geo_centroidDimension !== 1) { | |
if (d3_geo_centroidDimension < 1) { | |
d3_geo_centroidDimension = 1; | |
d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0; | |
} else return; | |
} | |
d3_geo_pathCentroid.point = function(x, y) { | |
d3_geo_pathCentroid.point = nextPoint; | |
x0 = x, y0 = y; | |
}; | |
function nextPoint(x, y) { | |
var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy); | |
d3_geo_centroidX += z * (x0 + x) / 2; | |
d3_geo_centroidY += z * (y0 + y) / 2; | |
d3_geo_centroidZ += z; | |
x0 = x, y0 = y; | |
} | |
} | |
function d3_geo_pathCentroidLineEnd() { | |
d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint; | |
} | |
function d3_geo_pathCentroidRingStart() { | |
var x00, y00, x0, y0; | |
if (d3_geo_centroidDimension < 2) { | |
d3_geo_centroidDimension = 2; | |
d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0; | |
} | |
d3_geo_pathCentroid.point = function(x, y) { | |
d3_geo_pathCentroid.point = nextPoint; | |
x00 = x0 = x, y00 = y0 = y; | |
}; | |
function nextPoint(x, y) { | |
var z = y0 * x - x0 * y; | |
d3_geo_centroidX += z * (x0 + x); | |
d3_geo_centroidY += z * (y0 + y); | |
d3_geo_centroidZ += z * 3; | |
x0 = x, y0 = y; | |
} | |
d3_geo_pathCentroid.lineEnd = function() { | |
nextPoint(x00, y00); | |
}; | |
} | |
d3.geo.area = function(object) { | |
d3_geo_areaSum = 0; | |
d3.geo.stream(object, d3_geo_area); | |
return d3_geo_areaSum; | |
}; | |
var d3_geo_areaSum, d3_geo_areaRingU, d3_geo_areaRingV; | |
var d3_geo_area = { | |
sphere: function() { | |
d3_geo_areaSum += 4 * π; | |
}, | |
point: d3_noop, | |
lineStart: d3_noop, | |
lineEnd: d3_noop, | |
polygonStart: function() { | |
d3_geo_areaRingU = 1, d3_geo_areaRingV = 0; | |
d3_geo_area.lineStart = d3_geo_areaRingStart; | |
}, | |
polygonEnd: function() { | |
var area = 2 * Math.atan2(d3_geo_areaRingV, d3_geo_areaRingU); | |
d3_geo_areaSum += area < 0 ? 4 * π + area : area; | |
d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop; | |
} | |
}; | |
function d3_geo_areaRingStart() { | |
var λ00, φ00, λ0, cosφ0, sinφ0; | |
d3_geo_area.point = function(λ, φ) { | |
d3_geo_area.point = nextPoint; | |
λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4), | |
sinφ0 = Math.sin(φ); | |
}; | |
function nextPoint(λ, φ) { | |
λ *= d3_radians; | |
φ = φ * d3_radians / 2 + π / 4; | |
var dλ = λ - λ0, cosφ = Math.cos(φ), sinφ = Math.sin(φ), k = sinφ0 * sinφ, u0 = d3_geo_areaRingU, v0 = d3_geo_areaRingV, u = cosφ0 * cosφ + k * Math.cos(dλ), v = k * Math.sin(dλ); | |
d3_geo_areaRingU = u0 * u - v0 * v; | |
d3_geo_areaRingV = v0 * u + u0 * v; | |
λ0 = λ, cosφ0 = cosφ, sinφ0 = sinφ; | |
} | |
d3_geo_area.lineEnd = function() { | |
nextPoint(λ00, φ00); | |
}; | |
} | |
d3.geo.projection = d3_geo_projection; | |
d3.geo.projectionMutator = d3_geo_projectionMutator; | |
function d3_geo_projection(project) { | |
return d3_geo_projectionMutator(function() { | |
return project; | |
})(); | |
} | |
function d3_geo_projectionMutator(projectAt) { | |
var project, rotate, projectRotate, projectResample = d3_geo_resample(function(x, y) { | |
x = project(x, y); | |
return [ x[0] * k + δx, δy - x[1] * k ]; | |
}), k = 150, x = 480, y = 250, λ = 0, φ = 0, δλ = 0, δφ = 0, δγ = 0, δx, δy, clip = d3_geo_clipAntimeridian, clipAngle = null; | |
function projection(point) { | |
point = projectRotate(point[0] * d3_radians, point[1] * d3_radians); | |
return [ point[0] * k + δx, δy - point[1] * k ]; | |
} | |
function invert(point) { | |
point = projectRotate.invert((point[0] - δx) / k, (δy - point[1]) / k); | |
return point && [ point[0] * d3_degrees, point[1] * d3_degrees ]; | |
} | |
projection.stream = function(stream) { | |
return d3_geo_projectionRadiansRotate(rotate, clip(projectResample(stream))); | |
}; | |
projection.clipAngle = function(_) { | |
if (!arguments.length) return clipAngle; | |
clip = _ == null ? (clipAngle = _, d3_geo_clipAntimeridian) : d3_geo_clipCircle(clipAngle = +_); | |
return projection; | |
}; | |
projection.scale = function(_) { | |
if (!arguments.length) return k; | |
k = +_; | |
return reset(); | |
}; | |
projection.translate = function(_) { | |
if (!arguments.length) return [ x, y ]; | |
x = +_[0]; | |
y = +_[1]; | |
return reset(); | |
}; | |
projection.center = function(_) { | |
if (!arguments.length) return [ λ * d3_degrees, φ * d3_degrees ]; | |
λ = _[0] % 360 * d3_radians; | |
φ = _[1] % 360 * d3_radians; | |
return reset(); | |
}; | |
projection.rotate = function(_) { | |
if (!arguments.length) return [ δλ * d3_degrees, δφ * d3_degrees, δγ * d3_degrees ]; | |
δλ = _[0] % 360 * d3_radians; | |
δφ = _[1] % 360 * d3_radians; | |
δγ = _.length > 2 ? _[2] % 360 * d3_radians : 0; | |
return reset(); | |
}; | |
d3.rebind(projection, projectResample, "precision"); | |
function reset() { | |
projectRotate = d3_geo_compose(rotate = d3_geo_rotation(δλ, δφ, δγ), project); | |
var center = project(λ, φ); | |
δx = x - center[0] * k; | |
δy = y + center[1] * k; | |
return projection; | |
} | |
return function() { | |
project = projectAt.apply(this, arguments); | |
projection.invert = project.invert && invert; | |
return reset(); | |
}; | |
} | |
function d3_geo_projectionRadiansRotate(rotate, stream) { | |
return { | |
point: function(x, y) { | |
y = rotate(x * d3_radians, y * d3_radians), x = y[0]; | |
stream.point(x > π ? x - 2 * π : x < -π ? x + 2 * π : x, y[1]); | |
}, | |
sphere: function() { | |
stream.sphere(); | |
}, | |
lineStart: function() { | |
stream.lineStart(); | |
}, | |
lineEnd: function() { | |
stream.lineEnd(); | |
}, | |
polygonStart: function() { | |
stream.polygonStart(); | |
}, | |
polygonEnd: function() { | |
stream.polygonEnd(); | |
} | |
}; | |
} | |
function d3_geo_rotation(δλ, δφ, δγ) { | |
return δλ ? δφ || δγ ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ)) : d3_geo_rotationλ(δλ) : δφ || δγ ? d3_geo_rotationφγ(δφ, δγ) : d3_geo_equirectangular; | |
} | |
function d3_geo_forwardRotationλ(δλ) { | |
return function(λ, φ) { | |
return λ += δλ, [ λ > π ? λ - 2 * π : λ < -π ? λ + 2 * π : λ, φ ]; | |
}; | |
} | |
function d3_geo_rotationλ(δλ) { | |
var rotation = d3_geo_forwardRotationλ(δλ); | |
rotation.invert = d3_geo_forwardRotationλ(-δλ); | |
return rotation; | |
} | |
function d3_geo_rotationφγ(δφ, δγ) { | |
var cosδφ = Math.cos(δφ), sinδφ = Math.sin(δφ), cosδγ = Math.cos(δγ), sinδγ = Math.sin(δγ); | |
function rotation(λ, φ) { | |
var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδφ + x * sinδφ; | |
return [ Math.atan2(y * cosδγ - k * sinδγ, x * cosδφ - z * sinδφ), Math.asin(Math.max(-1, Math.min(1, k * cosδγ + y * sinδγ))) ]; | |
} | |
rotation.invert = function(λ, φ) { | |
var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδγ - y * sinδγ; | |
return [ Math.atan2(y * cosδγ + z * sinδγ, x * cosδφ + k * sinδφ), Math.asin(Math.max(-1, Math.min(1, k * cosδφ - x * sinδφ))) ]; | |
}; | |
return rotation; | |
} | |
var d3_geo_stereographic = d3_geo_azimuthal(function(cosλcosφ) { | |
return 1 / (1 + cosλcosφ); | |
}, function(ρ) { | |
return 2 * Math.atan(ρ); | |
}); | |
(d3.geo.stereographic = function() { | |
return d3_geo_projection(d3_geo_stereographic); | |
}).raw = d3_geo_stereographic; | |
function d3_geo_azimuthal(scale, angle) { | |
function azimuthal(λ, φ) { | |
var cosλ = Math.cos(λ), cosφ = Math.cos(φ), k = scale(cosλ * cosφ); | |
return [ k * cosφ * Math.sin(λ), k * Math.sin(φ) ]; | |
} | |
azimuthal.invert = function(x, y) { | |
var ρ = Math.sqrt(x * x + y * y), c = angle(ρ), sinc = Math.sin(c), cosc = Math.cos(c); | |
return [ Math.atan2(x * sinc, ρ * cosc), Math.asin(ρ && y * sinc / ρ) ]; | |
}; | |
return azimuthal; | |
} | |
d3.geom = {}; | |
d3.geom.hull = function(vertices) { | |
if (vertices.length < 3) return []; | |
var len = vertices.length, plen = len - 1, points = [], stack = [], i, j, h = 0, x1, y1, x2, y2, u, v, a, sp; | |
for (i = 1; i < len; ++i) { | |
if (vertices[i][1] < vertices[h][1]) { | |
h = i; | |
} else if (vertices[i][1] == vertices[h][1]) { | |
h = vertices[i][0] < vertices[h][0] ? i : h; | |
} | |
} | |
for (i = 0; i < len; ++i) { | |
if (i === h) continue; | |
y1 = vertices[i][1] - vertices[h][1]; | |
x1 = vertices[i][0] - vertices[h][0]; | |
points.push({ | |
angle: Math.atan2(y1, x1), | |
index: i | |
}); | |
} | |
points.sort(function(a, b) { | |
return a.angle - b.angle; | |
}); | |
a = points[0].angle; | |
v = points[0].index; | |
u = 0; | |
for (i = 1; i < plen; ++i) { | |
j = points[i].index; | |
if (a == points[i].angle) { | |
x1 = vertices[v][0] - vertices[h][0]; | |
y1 = vertices[v][1] - vertices[h][1]; | |
x2 = vertices[j][0] - vertices[h][0]; | |
y2 = vertices[j][1] - vertices[h][1]; | |
if (x1 * x1 + y1 * y1 >= x2 * x2 + y2 * y2) { | |
points[i].index = -1; | |
} else { | |
points[u].index = -1; | |
a = points[i].angle; | |
u = i; | |
v = j; | |
} | |
} else { | |
a = points[i].angle; | |
u = i; | |
v = j; | |
} | |
} | |
stack.push(h); | |
for (i = 0, j = 0; i < 2; ++j) { | |
if (points[j].index !== -1) { | |
stack.push(points[j].index); | |
i++; | |
} | |
} | |
sp = stack.length; | |
for (;j < plen; ++j) { | |
if (points[j].index === -1) continue; | |
while (!d3_geom_hullCCW(stack[sp - 2], stack[sp - 1], points[j].index, vertices)) { | |
--sp; | |
} | |
stack[sp++] = points[j].index; | |
} | |
var poly = []; | |
for (i = 0; i < sp; ++i) { | |
poly.push(vertices[stack[i]]); | |
} | |
return poly; | |
}; | |
function d3_geom_hullCCW(i1, i2, i3, v) { | |
var t, a, b, c, d, e, f; | |
t = v[i1]; | |
a = t[0]; | |
b = t[1]; | |
t = v[i2]; | |
c = t[0]; | |
d = t[1]; | |
t = v[i3]; | |
e = t[0]; | |
f = t[1]; | |
return (f - b) * (c - a) - (d - b) * (e - a) > 0; | |
} | |
d3.geom.polygon = function(coordinates) { | |
coordinates.area = function() { | |
var i = 0, n = coordinates.length, area = coordinates[n - 1][1] * coordinates[0][0] - coordinates[n - 1][0] * coordinates[0][1]; | |
while (++i < n) { | |
area += coordinates[i - 1][1] * coordinates[i][0] - coordinates[i - 1][0] * coordinates[i][1]; | |
} | |
return area * .5; | |
}; | |
coordinates.centroid = function(k) { | |
var i = -1, n = coordinates.length, x = 0, y = 0, a, b = coordinates[n - 1], c; | |
if (!arguments.length) k = -1 / (6 * coordinates.area()); | |
while (++i < n) { | |
a = b; | |
b = coordinates[i]; | |
c = a[0] * b[1] - b[0] * a[1]; | |
x += (a[0] + b[0]) * c; | |
y += (a[1] + b[1]) * c; | |
} | |
return [ x * k, y * k ]; | |
}; | |
coordinates.clip = function(subject) { | |
var input, i = -1, n = coordinates.length, j, m, a = coordinates[n - 1], b, c, d; | |
while (++i < n) { | |
input = subject.slice(); | |
subject.length = 0; | |
b = coordinates[i]; | |
c = input[(m = input.length) - 1]; | |
j = -1; | |
while (++j < m) { | |
d = input[j]; | |
if (d3_geom_polygonInside(d, a, b)) { | |
if (!d3_geom_polygonInside(c, a, b)) { | |
subject.push(d3_geom_polygonIntersect(c, d, a, b)); | |
} | |
subject.push(d); | |
} else if (d3_geom_polygonInside(c, a, b)) { | |
subject.push(d3_geom_polygonIntersect(c, d, a, b)); | |
} | |
c = d; | |
} | |
a = b; | |
} | |
return subject; | |
}; | |
return coordinates; | |
}; | |
function d3_geom_polygonInside(p, a, b) { | |
return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]); | |
} | |
function d3_geom_polygonIntersect(c, d, a, b) { | |
var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21); | |
return [ x1 + ua * x21, y1 + ua * y21 ]; | |
} | |
d3.geom.voronoi = function(vertices) { | |
var polygons = vertices.map(function() { | |
return []; | |
}), Z = 1e6; | |
d3_voronoi_tessellate(vertices, function(e) { | |
var s1, s2, x1, x2, y1, y2; | |
if (e.a === 1 && e.b >= 0) { | |
s1 = e.ep.r; | |
s2 = e.ep.l; | |
} else { | |
s1 = e.ep.l; | |
s2 = e.ep.r; | |
} | |
if (e.a === 1) { | |
y1 = s1 ? s1.y : -Z; | |
x1 = e.c - e.b * y1; | |
y2 = s2 ? s2.y : Z; | |
x2 = e.c - e.b * y2; | |
} else { | |
x1 = s1 ? s1.x : -Z; | |
y1 = e.c - e.a * x1; | |
x2 = s2 ? s2.x : Z; | |
y2 = e.c - e.a * x2; | |
} | |
var v1 = [ x1, y1 ], v2 = [ x2, y2 ]; | |
polygons[e.region.l.index].push(v1, v2); | |
polygons[e.region.r.index].push(v1, v2); | |
}); | |
polygons = polygons.map(function(polygon, i) { | |
var cx = vertices[i][0], cy = vertices[i][1], angle = polygon.map(function(v) { | |
return Math.atan2(v[0] - cx, v[1] - cy); | |
}), order = d3.range(polygon.length).sort(function(a, b) { | |
return angle[a] - angle[b]; | |
}); | |
return order.filter(function(d, i) { | |
return !i || angle[d] - angle[order[i - 1]] > ε; | |
}).map(function(d) { | |
return polygon[d]; | |
}); | |
}); | |
polygons.forEach(function(polygon, i) { | |
var n = polygon.length; | |
if (!n) return polygon.push([ -Z, -Z ], [ -Z, Z ], [ Z, Z ], [ Z, -Z ]); | |
if (n > 2) return; | |
var p0 = vertices[i], p1 = polygon[0], p2 = polygon[1], x0 = p0[0], y0 = p0[1], x1 = p1[0], y1 = p1[1], x2 = p2[0], y2 = p2[1], dx = Math.abs(x2 - x1), dy = y2 - y1; | |
if (Math.abs(dy) < ε) { | |
var y = y0 < y1 ? -Z : Z; | |
polygon.push([ -Z, y ], [ Z, y ]); | |
} else if (dx < ε) { | |
var x = x0 < x1 ? -Z : Z; | |
polygon.push([ x, -Z ], [ x, Z ]); | |
} else { | |
var y = (x2 - x1) * (y1 - y0) < (x1 - x0) * (y2 - y1) ? Z : -Z, z = Math.abs(dy) - dx; | |
if (Math.abs(z) < ε) { | |
polygon.push([ dy < 0 ? y : -y, y ]); | |
} else { | |
if (z > 0) y *= -1; | |
polygon.push([ -Z, y ], [ Z, y ]); | |
} | |
} | |
}); | |
return polygons; | |
}; | |
var d3_voronoi_opposite = { | |
l: "r", | |
r: "l" | |
}; | |
function d3_voronoi_tessellate(vertices, callback) { | |
var Sites = { | |
list: vertices.map(function(v, i) { | |
return { | |
index: i, | |
x: v[0], | |
y: v[1] | |
}; | |
}).sort(function(a, b) { | |
return a.y < b.y ? -1 : a.y > b.y ? 1 : a.x < b.x ? -1 : a.x > b.x ? 1 : 0; | |
}), | |
bottomSite: null | |
}; | |
var EdgeList = { | |
list: [], | |
leftEnd: null, | |
rightEnd: null, | |
init: function() { | |
EdgeList.leftEnd = EdgeList.createHalfEdge(null, "l"); | |
EdgeList.rightEnd = EdgeList.createHalfEdge(null, "l"); | |
EdgeList.leftEnd.r = EdgeList.rightEnd; | |
EdgeList.rightEnd.l = EdgeList.leftEnd; | |
EdgeList.list.unshift(EdgeList.leftEnd, EdgeList.rightEnd); | |
}, | |
createHalfEdge: function(edge, side) { | |
return { | |
edge: edge, | |
side: side, | |
vertex: null, | |
l: null, | |
r: null | |
}; | |
}, | |
insert: function(lb, he) { | |
he.l = lb; | |
he.r = lb.r; | |
lb.r.l = he; | |
lb.r = he; | |
}, | |
leftBound: function(p) { | |
var he = EdgeList.leftEnd; | |
do { | |
he = he.r; | |
} while (he != EdgeList.rightEnd && Geom.rightOf(he, p)); | |
he = he.l; | |
return he; | |
}, | |
del: function(he) { | |
he.l.r = he.r; | |
he.r.l = he.l; | |
he.edge = null; | |
}, | |
right: function(he) { | |
return he.r; | |
}, | |
left: function(he) { | |
return he.l; | |
}, | |
leftRegion: function(he) { | |
return he.edge == null ? Sites.bottomSite : he.edge.region[he.side]; | |
}, | |
rightRegion: function(he) { | |
return he.edge == null ? Sites.bottomSite : he.edge.region[d3_voronoi_opposite[he.side]]; | |
} | |
}; | |
var Geom = { | |
bisect: function(s1, s2) { | |
var newEdge = { | |
region: { | |
l: s1, | |
r: s2 | |
}, | |
ep: { | |
l: null, | |
r: null | |
} | |
}; | |
var dx = s2.x - s1.x, dy = s2.y - s1.y, adx = dx > 0 ? dx : -dx, ady = dy > 0 ? dy : -dy; | |
newEdge.c = s1.x * dx + s1.y * dy + (dx * dx + dy * dy) * .5; | |
if (adx > ady) { | |
newEdge.a = 1; | |
newEdge.b = dy / dx; | |
newEdge.c /= dx; | |
} else { | |
newEdge.b = 1; | |
newEdge.a = dx / dy; | |
newEdge.c /= dy; | |
} | |
return newEdge; | |
}, | |
intersect: function(el1, el2) { | |
var e1 = el1.edge, e2 = el2.edge; | |
if (!e1 || !e2 || e1.region.r == e2.region.r) { | |
return null; | |
} | |
var d = e1.a * e2.b - e1.b * e2.a; | |
if (Math.abs(d) < 1e-10) { | |
return null; | |
} | |
var xint = (e1.c * e2.b - e2.c * e1.b) / d, yint = (e2.c * e1.a - e1.c * e2.a) / d, e1r = e1.region.r, e2r = e2.region.r, el, e; | |
if (e1r.y < e2r.y || e1r.y == e2r.y && e1r.x < e2r.x) { | |
el = el1; | |
e = e1; | |
} else { | |
el = el2; | |
e = e2; | |
} | |
var rightOfSite = xint >= e.region.r.x; | |
if (rightOfSite && el.side === "l" || !rightOfSite && el.side === "r") { | |
return null; | |
} | |
return { | |
x: xint, | |
y: yint | |
}; | |
}, | |
rightOf: function(he, p) { | |
var e = he.edge, topsite = e.region.r, rightOfSite = p.x > topsite.x; | |
if (rightOfSite && he.side === "l") { | |
return 1; | |
} | |
if (!rightOfSite && he.side === "r") { | |
return 0; | |
} | |
if (e.a === 1) { | |
var dyp = p.y - topsite.y, dxp = p.x - topsite.x, fast = 0, above = 0; | |
if (!rightOfSite && e.b < 0 || rightOfSite && e.b >= 0) { | |
above = fast = dyp >= e.b * dxp; | |
} else { | |
above = p.x + p.y * e.b > e.c; | |
if (e.b < 0) { | |
above = !above; | |
} | |
if (!above) { | |
fast = 1; | |
} | |
} | |
if (!fast) { | |
var dxs = topsite.x - e.region.l.x; | |
above = e.b * (dxp * dxp - dyp * dyp) < dxs * dyp * (1 + 2 * dxp / dxs + e.b * e.b); | |
if (e.b < 0) { | |
above = !above; | |
} | |
} | |
} else { | |
var yl = e.c - e.a * p.x, t1 = p.y - yl, t2 = p.x - topsite.x, t3 = yl - topsite.y; | |
above = t1 * t1 > t2 * t2 + t3 * t3; | |
} | |
return he.side === "l" ? above : !above; | |
}, | |
endPoint: function(edge, side, site) { | |
edge.ep[side] = site; | |
if (!edge.ep[d3_voronoi_opposite[side]]) return; | |
callback(edge); | |
}, | |
distance: function(s, t) { | |
var dx = s.x - t.x, dy = s.y - t.y; | |
return Math.sqrt(dx * dx + dy * dy); | |
} | |
}; | |
var EventQueue = { | |
list: [], | |
insert: function(he, site, offset) { | |
he.vertex = site; | |
he.ystar = site.y + offset; | |
for (var i = 0, list = EventQueue.list, l = list.length; i < l; i++) { | |
var next = list[i]; | |
if (he.ystar > next.ystar || he.ystar == next.ystar && site.x > next.vertex.x) { | |
continue; | |
} else { | |
break; | |
} | |
} | |
list.splice(i, 0, he); | |
}, | |
del: function(he) { | |
for (var i = 0, ls = EventQueue.list, l = ls.length; i < l && ls[i] != he; ++i) {} | |
ls.splice(i, 1); | |
}, | |
empty: function() { | |
return EventQueue.list.length === 0; | |
}, | |
nextEvent: function(he) { | |
for (var i = 0, ls = EventQueue.list, l = ls.length; i < l; ++i) { | |
if (ls[i] == he) return ls[i + 1]; | |
} | |
return null; | |
}, | |
min: function() { | |
var elem = EventQueue.list[0]; | |
return { | |
x: elem.vertex.x, | |
y: elem.ystar | |
}; | |
}, | |
extractMin: function() { | |
return EventQueue.list.shift(); | |
} | |
}; | |
EdgeList.init(); | |
Sites.bottomSite = Sites.list.shift(); | |
var newSite = Sites.list.shift(), newIntStar; | |
var lbnd, rbnd, llbnd, rrbnd, bisector; | |
var bot, top, temp, p, v; | |
var e, pm; | |
while (true) { | |
if (!EventQueue.empty()) { | |
newIntStar = EventQueue.min(); | |
} | |
if (newSite && (EventQueue.empty() || newSite.y < newIntStar.y || newSite.y == newIntStar.y && newSite.x < newIntStar.x)) { | |
lbnd = EdgeList.leftBound(newSite); | |
rbnd = EdgeList.right(lbnd); | |
bot = EdgeList.rightRegion(lbnd); | |
e = Geom.bisect(bot, newSite); | |
bisector = EdgeList.createHalfEdge(e, "l"); | |
EdgeList.insert(lbnd, bisector); | |
p = Geom.intersect(lbnd, bisector); | |
if (p) { | |
EventQueue.del(lbnd); | |
EventQueue.insert(lbnd, p, Geom.distance(p, newSite)); | |
} | |
lbnd = bisector; | |
bisector = EdgeList.createHalfEdge(e, "r"); | |
EdgeList.insert(lbnd, bisector); | |
p = Geom.intersect(bisector, rbnd); | |
if (p) { | |
EventQueue.insert(bisector, p, Geom.distance(p, newSite)); | |
} | |
newSite = Sites.list.shift(); | |
} else if (!EventQueue.empty()) { | |
lbnd = EventQueue.extractMin(); | |
llbnd = EdgeList.left(lbnd); | |
rbnd = EdgeList.right(lbnd); | |
rrbnd = EdgeList.right(rbnd); | |
bot = EdgeList.leftRegion(lbnd); | |
top = EdgeList.rightRegion(rbnd); | |
v = lbnd.vertex; | |
Geom.endPoint(lbnd.edge, lbnd.side, v); | |
Geom.endPoint(rbnd.edge, rbnd.side, v); | |
EdgeList.del(lbnd); | |
EventQueue.del(rbnd); | |
EdgeList.del(rbnd); | |
pm = "l"; | |
if (bot.y > top.y) { | |
temp = bot; | |
bot = top; | |
top = temp; | |
pm = "r"; | |
} | |
e = Geom.bisect(bot, top); | |
bisector = EdgeList.createHalfEdge(e, pm); | |
EdgeList.insert(llbnd, bisector); | |
Geom.endPoint(e, d3_voronoi_opposite[pm], v); | |
p = Geom.intersect(llbnd, bisector); | |
if (p) { | |
EventQueue.del(llbnd); | |
EventQueue.insert(llbnd, p, Geom.distance(p, bot)); | |
} | |
p = Geom.intersect(bisector, rrbnd); | |
if (p) { | |
EventQueue.insert(bisector, p, Geom.distance(p, bot)); | |
} | |
} else { | |
break; | |
} | |
} | |
for (lbnd = EdgeList.right(EdgeList.leftEnd); lbnd != EdgeList.rightEnd; lbnd = EdgeList.right(lbnd)) { | |
callback(lbnd.edge); | |
} | |
} | |
d3.geom.delaunay = function(vertices) { | |
var edges = vertices.map(function() { | |
return []; | |
}), triangles = []; | |
d3_voronoi_tessellate(vertices, function(e) { | |
edges[e.region.l.index].push(vertices[e.region.r.index]); | |
}); | |
edges.forEach(function(edge, i) { | |
var v = vertices[i], cx = v[0], cy = v[1]; | |
edge.forEach(function(v) { | |
v.angle = Math.atan2(v[0] - cx, v[1] - cy); | |
}); | |
edge.sort(function(a, b) { | |
return a.angle - b.angle; | |
}); | |
for (var j = 0, m = edge.length - 1; j < m; j++) { | |
triangles.push([ v, edge[j], edge[j + 1] ]); | |
} | |
}); | |
return triangles; | |
}; | |
d3.geom.quadtree = function(points, x1, y1, x2, y2) { | |
var p, i = -1, n = points.length; | |
if (arguments.length < 5) { | |
if (arguments.length === 3) { | |
y2 = y1; | |
x2 = x1; | |
y1 = x1 = 0; | |
} else { | |
x1 = y1 = Infinity; | |
x2 = y2 = -Infinity; | |
while (++i < n) { | |
p = points[i]; | |
if (p.x < x1) x1 = p.x; | |
if (p.y < y1) y1 = p.y; | |
if (p.x > x2) x2 = p.x; | |
if (p.y > y2) y2 = p.y; | |
} | |
} | |
} | |
var dx = x2 - x1, dy = y2 - y1; | |
if (dx > dy) y2 = y1 + dx; else x2 = x1 + dy; | |
function insert(n, p, x1, y1, x2, y2) { | |
if (isNaN(p.x) || isNaN(p.y)) return; | |
if (n.leaf) { | |
var v = n.point; | |
if (v) { | |
if (Math.abs(v.x - p.x) + Math.abs(v.y - p.y) < .01) { | |
insertChild(n, p, x1, y1, x2, y2); | |
} else { | |
n.point = null; | |
insertChild(n, v, x1, y1, x2, y2); | |
insertChild(n, p, x1, y1, x2, y2); | |
} | |
} else { | |
n.point = p; | |
} | |
} else { | |
insertChild(n, p, x1, y1, x2, y2); | |
} | |
} | |
function insertChild(n, p, x1, y1, x2, y2) { | |
var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, right = p.x >= sx, bottom = p.y >= sy, i = (bottom << 1) + right; | |
n.leaf = false; | |
n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode()); | |
if (right) x1 = sx; else x2 = sx; | |
if (bottom) y1 = sy; else y2 = sy; | |
insert(n, p, x1, y1, x2, y2); | |
} | |
var root = d3_geom_quadtreeNode(); | |
root.add = function(p) { | |
insert(root, p, x1, y1, x2, y2); | |
}; | |
root.visit = function(f) { | |
d3_geom_quadtreeVisit(f, root, x1, y1, x2, y2); | |
}; | |
points.forEach(root.add); | |
return root; | |
}; | |
function d3_geom_quadtreeNode() { | |
return { | |
leaf: true, | |
nodes: [], | |
point: null | |
}; | |
} | |
function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) { | |
if (!f(node, x1, y1, x2, y2)) { | |
var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, children = node.nodes; | |
if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy); | |
if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy); | |
if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2); | |
if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2); | |
} | |
} | |
d3.time = {}; | |
var d3_time = Date, d3_time_daySymbols = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ]; | |
function d3_time_utc() { | |
this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]); | |
} | |
d3_time_utc.prototype = { | |
getDate: function() { | |
return this._.getUTCDate(); | |
}, | |
getDay: function() { | |
return this._.getUTCDay(); | |
}, | |
getFullYear: function() { | |
return this._.getUTCFullYear(); | |
}, | |
getHours: function() { | |
return this._.getUTCHours(); | |
}, | |
getMilliseconds: function() { | |
return this._.getUTCMilliseconds(); | |
}, | |
getMinutes: function() { | |
return this._.getUTCMinutes(); | |
}, | |
getMonth: function() { | |
return this._.getUTCMonth(); | |
}, | |
getSeconds: function() { | |
return this._.getUTCSeconds(); | |
}, | |
getTime: function() { | |
return this._.getTime(); | |
}, | |
getTimezoneOffset: function() { | |
return 0; | |
}, | |
valueOf: function() { | |
return this._.valueOf(); | |
}, | |
setDate: function() { | |
d3_time_prototype.setUTCDate.apply(this._, arguments); | |
}, | |
setDay: function() { | |
d3_time_prototype.setUTCDay.apply(this._, arguments); | |
}, | |
setFullYear: function() { | |
d3_time_prototype.setUTCFullYear.apply(this._, arguments); | |
}, | |
setHours: function() { | |
d3_time_prototype.setUTCHours.apply(this._, arguments); | |
}, | |
setMilliseconds: function() { | |
d3_time_prototype.setUTCMilliseconds.apply(this._, arguments); | |
}, | |
setMinutes: function() { | |
d3_time_prototype.setUTCMinutes.apply(this._, arguments); | |
}, | |
setMonth: function() { | |
d3_time_prototype.setUTCMonth.apply(this._, arguments); | |
}, | |
setSeconds: function() { | |
d3_time_prototype.setUTCSeconds.apply(this._, arguments); | |
}, | |
setTime: function() { | |
d3_time_prototype.setTime.apply(this._, arguments); | |
} | |
}; | |
var d3_time_prototype = Date.prototype; | |
var d3_time_formatDateTime = "%a %b %e %X %Y", d3_time_formatDate = "%m/%d/%Y", d3_time_formatTime = "%H:%M:%S"; | |
var d3_time_days = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], d3_time_dayAbbreviations = [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ], d3_time_months = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ], d3_time_monthAbbreviations = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]; | |
d3.time.format = function(template) { | |
var n = template.length; | |
function format(date) { | |
var string = [], i = -1, j = 0, c, p, f; | |
while (++i < n) { | |
if (template.charCodeAt(i) === 37) { | |
string.push(template.substring(j, i)); | |
if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i); | |
if (f = d3_time_formats[c]) c = f(date, p == null ? c === "e" ? " " : "0" : p); | |
string.push(c); | |
j = i + 1; | |
} | |
} | |
string.push(template.substring(j, i)); | |
return string.join(""); | |
} | |
format.parse = function(string) { | |
var d = { | |
y: 1900, | |
m: 0, | |
d: 1, | |
H: 0, | |
M: 0, | |
S: 0, | |
L: 0 | |
}, i = d3_time_parse(d, template, string, 0); | |
if (i != string.length) return null; | |
if ("p" in d) d.H = d.H % 12 + d.p * 12; | |
var date = new d3_time(); | |
date.setFullYear(d.y, d.m, d.d); | |
date.setHours(d.H, d.M, d.S, d.L); | |
return date; | |
}; | |
format.toString = function() { | |
return template; | |
}; | |
return format; | |
}; | |
function d3_time_parse(date, template, string, j) { | |
var c, p, i = 0, n = template.length, m = string.length; | |
while (i < n) { | |
if (j >= m) return -1; | |
c = template.charCodeAt(i++); | |
if (c === 37) { | |
p = d3_time_parsers[template.charAt(i++)]; | |
if (!p || (j = p(date, string, j)) < 0) return -1; | |
} else if (c != string.charCodeAt(j++)) { | |
return -1; | |
} | |
} | |
return j; | |
} | |
function d3_time_formatRe(names) { | |
return new RegExp("^(?:" + names.map(d3.requote).join("|") + ")", "i"); | |
} | |
function d3_time_formatLookup(names) { | |
var map = new d3_Map(), i = -1, n = names.length; | |
while (++i < n) map.set(names[i].toLowerCase(), i); | |
return map; | |
} | |
function d3_time_formatPad(value, fill, width) { | |
value += ""; | |
var length = value.length; | |
return length < width ? new Array(width - length + 1).join(fill) + value : value; | |
} | |
var d3_time_dayRe = d3_time_formatRe(d3_time_days), d3_time_dayAbbrevRe = d3_time_formatRe(d3_time_dayAbbreviations), d3_time_monthRe = d3_time_formatRe(d3_time_months), d3_time_monthLookup = d3_time_formatLookup(d3_time_months), d3_time_monthAbbrevRe = d3_time_formatRe(d3_time_monthAbbreviations), d3_time_monthAbbrevLookup = d3_time_formatLookup(d3_time_monthAbbreviations); | |
var d3_time_formatPads = { | |
"-": "", | |
_: " ", | |
"0": "0" | |
}; | |
var d3_time_formats = { | |
a: function(d) { | |
return d3_time_dayAbbreviations[d.getDay()]; | |
}, | |
A: function(d) { | |
return d3_time_days[d.getDay()]; | |
}, | |
b: function(d) { | |
return d3_time_monthAbbreviations[d.getMonth()]; | |
}, | |
B: function(d) { | |
return d3_time_months[d.getMonth()]; | |
}, | |
c: d3.time.format(d3_time_formatDateTime), | |
d: function(d, p) { | |
return d3_time_formatPad(d.getDate(), p, 2); | |
}, | |
e: function(d, p) { | |
return d3_time_formatPad(d.getDate(), p, 2); | |
}, | |
H: function(d, p) { | |
return d3_time_formatPad(d.getHours(), p, 2); | |
}, | |
I: function(d, p) { | |
return d3_time_formatPad(d.getHours() % 12 || 12, p, 2); | |
}, | |
j: function(d, p) { | |
return d3_time_formatPad(1 + d3.time.dayOfYear(d), p, 3); | |
}, | |
L: function(d, p) { | |
return d3_time_formatPad(d.getMilliseconds(), p, 3); | |
}, | |
m: function(d, p) { | |
return d3_time_formatPad(d.getMonth() + 1, p, 2); | |
}, | |
M: function(d, p) { | |
return d3_time_formatPad(d.getMinutes(), p, 2); | |
}, | |
p: function(d) { | |
return d.getHours() >= 12 ? "PM" : "AM"; | |
}, | |
S: function(d, p) { | |
return d3_time_formatPad(d.getSeconds(), p, 2); | |
}, | |
U: function(d, p) { | |
return d3_time_formatPad(d3.time.sundayOfYear(d), p, 2); | |
}, | |
w: function(d) { | |
return d.getDay(); | |
}, | |
W: function(d, p) { | |
return d3_time_formatPad(d3.time.mondayOfYear(d), p, 2); | |
}, | |
x: d3.time.format(d3_time_formatDate), | |
X: d3.time.format(d3_time_formatTime), | |
y: function(d, p) { | |
return d3_time_formatPad(d.getFullYear() % 100, p, 2); | |
}, | |
Y: function(d, p) { | |
return d3_time_formatPad(d.getFullYear() % 1e4, p, 4); | |
}, | |
Z: d3_time_zone, | |
"%": function() { | |
return "%"; | |
} | |
}; | |
var d3_time_parsers = { | |
a: d3_time_parseWeekdayAbbrev, | |
A: d3_time_parseWeekday, | |
b: d3_time_parseMonthAbbrev, | |
B: d3_time_parseMonth, | |
c: d3_time_parseLocaleFull, | |
d: d3_time_parseDay, | |
e: d3_time_parseDay, | |
H: d3_time_parseHour24, | |
I: d3_time_parseHour24, | |
L: d3_time_parseMilliseconds, | |
m: d3_time_parseMonthNumber, | |
M: d3_time_parseMinutes, | |
p: d3_time_parseAmPm, | |
S: d3_time_parseSeconds, | |
x: d3_time_parseLocaleDate, | |
X: d3_time_parseLocaleTime, | |
y: d3_time_parseYear, | |
Y: d3_time_parseFullYear | |
}; | |
function d3_time_parseWeekdayAbbrev(date, string, i) { | |
d3_time_dayAbbrevRe.lastIndex = 0; | |
var n = d3_time_dayAbbrevRe.exec(string.substring(i)); | |
return n ? i += n[0].length : -1; | |
} | |
function d3_time_parseWeekday(date, string, i) { | |
d3_time_dayRe.lastIndex = 0; | |
var n = d3_time_dayRe.exec(string.substring(i)); | |
return n ? i += n[0].length : -1; | |
} | |
function d3_time_parseMonthAbbrev(date, string, i) { | |
d3_time_monthAbbrevRe.lastIndex = 0; | |
var n = d3_time_monthAbbrevRe.exec(string.substring(i)); | |
return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i += n[0].length) : -1; | |
} | |
function d3_time_parseMonth(date, string, i) { | |
d3_time_monthRe.lastIndex = 0; | |
var n = d3_time_monthRe.exec(string.substring(i)); | |
return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i += n[0].length) : -1; | |
} | |
function d3_time_parseLocaleFull(date, string, i) { | |
return d3_time_parse(date, d3_time_formats.c.toString(), string, i); | |
} | |
function d3_time_parseLocaleDate(date, string, i) { | |
return d3_time_parse(date, d3_time_formats.x.toString(), string, i); | |
} | |
function d3_time_parseLocaleTime(date, string, i) { | |
return d3_time_parse(date, d3_time_formats.X.toString(), string, i); | |
} | |
function d3_time_parseFullYear(date, string, i) { | |
d3_time_numberRe.lastIndex = 0; | |
var n = d3_time_numberRe.exec(string.substring(i, i + 4)); | |
return n ? (date.y = +n[0], i += n[0].length) : -1; | |
} | |
function d3_time_parseYear(date, string, i) { | |
d3_time_numberRe.lastIndex = 0; | |
var n = d3_time_numberRe.exec(string.substring(i, i + 2)); | |
return n ? (date.y = d3_time_expandYear(+n[0]), i += n[0].length) : -1; | |
} | |
function d3_time_expandYear(d) { | |
return d + (d > 68 ? 1900 : 2e3); | |
} | |
function d3_time_parseMonthNumber(date, string, i) { | |
d3_time_numberRe.lastIndex = 0; | |
var n = d3_time_numberRe.exec(string.substring(i, i + 2)); | |
return n ? (date.m = n[0] - 1, i += n[0].length) : -1; | |
} | |
function d3_time_parseDay(date, string, i) { | |
d3_time_numberRe.lastIndex = 0; | |
var n = d3_time_numberRe.exec(string.substring(i, i + 2)); | |
return n ? (date.d = +n[0], i += n[0].length) : -1; | |
} | |
function d3_time_parseHour24(date, string, i) { | |
d3_time_numberRe.lastIndex = 0; | |
var n = d3_time_numberRe.exec(string.substring(i, i + 2)); | |
return n ? (date.H = +n[0], i += n[0].length) : -1; | |
} | |
function d3_time_parseMinutes(date, string, i) { | |
d3_time_numberRe.lastIndex = 0; | |
var n = d3_time_numberRe.exec(string.substring(i, i + 2)); | |
return n ? (date.M = +n[0], i += n[0].length) : -1; | |
} | |
function d3_time_parseSeconds(date, string, i) { | |
d3_time_numberRe.lastIndex = 0; | |
var n = d3_time_numberRe.exec(string.substring(i, i + 2)); | |
return n ? (date.S = +n[0], i += n[0].length) : -1; | |
} | |
function d3_time_parseMilliseconds(date, string, i) { | |
d3_time_numberRe.lastIndex = 0; | |
var n = d3_time_numberRe.exec(string.substring(i, i + 3)); | |
return n ? (date.L = +n[0], i += n[0].length) : -1; | |
} | |
var d3_time_numberRe = /^\s*\d+/; | |
function d3_time_parseAmPm(date, string, i) { | |
var n = d3_time_amPmLookup.get(string.substring(i, i += 2).toLowerCase()); | |
return n == null ? -1 : (date.p = n, i); | |
} | |
var d3_time_amPmLookup = d3.map({ | |
am: 0, | |
pm: 1 | |
}); | |
function d3_time_zone(d) { | |
var z = d.getTimezoneOffset(), zs = z > 0 ? "-" : "+", zh = ~~(Math.abs(z) / 60), zm = Math.abs(z) % 60; | |
return zs + d3_time_formatPad(zh, "0", 2) + d3_time_formatPad(zm, "0", 2); | |
} | |
d3.time.format.utc = function(template) { | |
var local = d3.time.format(template); | |
function format(date) { | |
try { | |
d3_time = d3_time_utc; | |
var utc = new d3_time(); | |
utc._ = date; | |
return local(utc); | |
} finally { | |
d3_time = Date; | |
} | |
} | |
format.parse = function(string) { | |
try { | |
d3_time = d3_time_utc; | |
var date = local.parse(string); | |
return date && date._; | |
} finally { | |
d3_time = Date; | |
} | |
}; | |
format.toString = local.toString; | |
return format; | |
}; | |
var d3_time_formatIso = d3.time.format.utc("%Y-%m-%dT%H:%M:%S.%LZ"); | |
d3.time.format.iso = Date.prototype.toISOString ? d3_time_formatIsoNative : d3_time_formatIso; | |
function d3_time_formatIsoNative(date) { | |
return date.toISOString(); | |
} | |
d3_time_formatIsoNative.parse = function(string) { | |
var date = new Date(string); | |
return isNaN(date) ? null : date; | |
}; | |
d3_time_formatIsoNative.toString = d3_time_formatIso.toString; | |
function d3_time_interval(local, step, number) { | |
function round(date) { | |
var d0 = local(date), d1 = offset(d0, 1); | |
return date - d0 < d1 - date ? d0 : d1; | |
} | |
function ceil(date) { | |
step(date = local(new d3_time(date - 1)), 1); | |
return date; | |
} | |
function offset(date, k) { | |
step(date = new d3_time(+date), k); | |
return date; | |
} | |
function range(t0, t1, dt) { | |
var time = ceil(t0), times = []; | |
if (dt > 1) { | |
while (time < t1) { | |
if (!(number(time) % dt)) times.push(new Date(+time)); | |
step(time, 1); | |
} | |
} else { | |
while (time < t1) times.push(new Date(+time)), step(time, 1); | |
} | |
return times; | |
} | |
function range_utc(t0, t1, dt) { | |
try { | |
d3_time = d3_time_utc; | |
var utc = new d3_time_utc(); | |
utc._ = t0; | |
return range(utc, t1, dt); | |
} finally { | |
d3_time = Date; | |
} | |
} | |
local.floor = local; | |
local.round = round; | |
local.ceil = ceil; | |
local.offset = offset; | |
local.range = range; | |
var utc = local.utc = d3_time_interval_utc(local); | |
utc.floor = utc; | |
utc.round = d3_time_interval_utc(round); | |
utc.ceil = d3_time_interval_utc(ceil); | |
utc.offset = d3_time_interval_utc(offset); | |
utc.range = range_utc; | |
return local; | |
} | |
function d3_time_interval_utc(method) { | |
return function(date, k) { | |
try { | |
d3_time = d3_time_utc; | |
var utc = new d3_time_utc(); | |
utc._ = date; | |
return method(utc, k)._; | |
} finally { | |
d3_time = Date; | |
} | |
}; | |
} | |
d3.time.second = d3_time_interval(function(date) { | |
return new d3_time(Math.floor(date / 1e3) * 1e3); | |
}, function(date, offset) { | |
date.setTime(date.getTime() + Math.floor(offset) * 1e3); | |
}, function(date) { | |
return date.getSeconds(); | |
}); | |
d3.time.seconds = d3.time.second.range; | |
d3.time.seconds.utc = d3.time.second.utc.range; | |
d3.time.minute = d3_time_interval(function(date) { | |
return new d3_time(Math.floor(date / 6e4) * 6e4); | |
}, function(date, offset) { | |
date.setTime(date.getTime() + Math.floor(offset) * 6e4); | |
}, function(date) { | |
return date.getMinutes(); | |
}); | |
d3.time.minutes = d3.time.minute.range; | |
d3.time.minutes.utc = d3.time.minute.utc.range; | |
d3.time.hour = d3_time_interval(function(date) { | |
var timezone = date.getTimezoneOffset() / 60; | |
return new d3_time((Math.floor(date / 36e5 - timezone) + timezone) * 36e5); | |
}, function(date, offset) { | |
date.setTime(date.getTime() + Math.floor(offset) * 36e5); | |
}, function(date) { | |
return date.getHours(); | |
}); | |
d3.time.hours = d3.time.hour.range; | |
d3.time.hours.utc = d3.time.hour.utc.range; | |
d3.time.day = d3_time_interval(function(date) { | |
var day = new d3_time(1970, 0); | |
day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate()); | |
return day; | |
}, function(date, offset) { | |
date.setDate(date.getDate() + offset); | |
}, function(date) { | |
return date.getDate() - 1; | |
}); | |
d3.time.days = d3.time.day.range; | |
d3.time.days.utc = d3.time.day.utc.range; | |
d3.time.dayOfYear = function(date) { | |
var year = d3.time.year(date); | |
return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5); | |
}; | |
d3_time_daySymbols.forEach(function(day, i) { | |
day = day.toLowerCase(); | |
i = 7 - i; | |
var interval = d3.time[day] = d3_time_interval(function(date) { | |
(date = d3.time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7); | |
return date; | |
}, function(date, offset) { | |
date.setDate(date.getDate() + Math.floor(offset) * 7); | |
}, function(date) { | |
var day = d3.time.year(date).getDay(); | |
return Math.floor((d3.time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i); | |
}); | |
d3.time[day + "s"] = interval.range; | |
d3.time[day + "s"].utc = interval.utc.range; | |
d3.time[day + "OfYear"] = function(date) { | |
var day = d3.time.year(date).getDay(); | |
return Math.floor((d3.time.dayOfYear(date) + (day + i) % 7) / 7); | |
}; | |
}); | |
d3.time.week = d3.time.sunday; | |
d3.time.weeks = d3.time.sunday.range; | |
d3.time.weeks.utc = d3.time.sunday.utc.range; | |
d3.time.weekOfYear = d3.time.sundayOfYear; | |
d3.time.month = d3_time_interval(function(date) { | |
date = d3.time.day(date); | |
date.setDate(1); | |
return date; | |
}, function(date, offset) { | |
date.setMonth(date.getMonth() + offset); | |
}, function(date) { | |
return date.getMonth(); | |
}); | |
d3.time.months = d3.time.month.range; | |
d3.time.months.utc = d3.time.month.utc.range; | |
d3.time.year = d3_time_interval(function(date) { | |
date = d3.time.day(date); | |
date.setMonth(0, 1); | |
return date; | |
}, function(date, offset) { | |
date.setFullYear(date.getFullYear() + offset); | |
}, function(date) { | |
return date.getFullYear(); | |
}); | |
d3.time.years = d3.time.year.range; | |
d3.time.years.utc = d3.time.year.utc.range; | |
function d3_time_scale(linear, methods, format) { | |
function scale(x) { | |
return linear(x); | |
} | |
scale.invert = function(x) { | |
return d3_time_scaleDate(linear.invert(x)); | |
}; | |
scale.domain = function(x) { | |
if (!arguments.length) return linear.domain().map(d3_time_scaleDate); | |
linear.domain(x); | |
return scale; | |
}; | |
scale.nice = function(m) { | |
return scale.domain(d3_scale_nice(scale.domain(), function() { | |
return m; | |
})); | |
}; | |
scale.ticks = function(m, k) { | |
var extent = d3_time_scaleExtent(scale.domain()); | |
if (typeof m !== "function") { | |
var span = extent[1] - extent[0], target = span / m, i = d3.bisect(d3_time_scaleSteps, target); | |
if (i == d3_time_scaleSteps.length) return methods.year(extent, m); | |
if (!i) return linear.ticks(m).map(d3_time_scaleDate); | |
if (Math.log(target / d3_time_scaleSteps[i - 1]) < Math.log(d3_time_scaleSteps[i] / target)) --i; | |
m = methods[i]; | |
k = m[1]; | |
m = m[0].range; | |
} | |
return m(extent[0], new Date(+extent[1] + 1), k); | |
}; | |
scale.tickFormat = function() { | |
return format; | |
}; | |
scale.copy = function() { | |
return d3_time_scale(linear.copy(), methods, format); | |
}; | |
return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp"); | |
} | |
function d3_time_scaleExtent(domain) { | |
var start = domain[0], stop = domain[domain.length - 1]; | |
return start < stop ? [ start, stop ] : [ stop, start ]; | |
} | |
function d3_time_scaleDate(t) { | |
return new Date(t); | |
} | |
function d3_time_scaleFormat(formats) { | |
return function(date) { | |
var i = formats.length - 1, f = formats[i]; | |
while (!f[1](date)) f = formats[--i]; | |
return f[0](date); | |
}; | |
} | |
function d3_time_scaleSetYear(y) { | |
var d = new Date(y, 0, 1); | |
d.setFullYear(y); | |
return d; | |
} | |
function d3_time_scaleGetYear(d) { | |
var y = d.getFullYear(), d0 = d3_time_scaleSetYear(y), d1 = d3_time_scaleSetYear(y + 1); | |
return y + (d - d0) / (d1 - d0); | |
} | |
var d3_time_scaleSteps = [ 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6 ]; | |
var d3_time_scaleLocalMethods = [ [ d3.time.second, 1 ], [ d3.time.second, 5 ], [ d3.time.second, 15 ], [ d3.time.second, 30 ], [ d3.time.minute, 1 ], [ d3.time.minute, 5 ], [ d3.time.minute, 15 ], [ d3.time.minute, 30 ], [ d3.time.hour, 1 ], [ d3.time.hour, 3 ], [ d3.time.hour, 6 ], [ d3.time.hour, 12 ], [ d3.time.day, 1 ], [ d3.time.day, 2 ], [ d3.time.week, 1 ], [ d3.time.month, 1 ], [ d3.time.month, 3 ], [ d3.time.year, 1 ] ]; | |
var d3_time_scaleLocalFormats = [ [ d3.time.format("%Y"), d3_true ], [ d3.time.format("%B"), function(d) { | |
return d.getMonth(); | |
} ], [ d3.time.format("%b %d"), function(d) { | |
return d.getDate() != 1; | |
} ], [ d3.time.format("%a %d"), function(d) { | |
return d.getDay() && d.getDate() != 1; | |
} ], [ d3.time.format("%I %p"), function(d) { | |
return d.getHours(); | |
} ], [ d3.time.format("%I:%M"), function(d) { | |
return d.getMinutes(); | |
} ], [ d3.time.format(":%S"), function(d) { | |
return d.getSeconds(); | |
} ], [ d3.time.format(".%L"), function(d) { | |
return d.getMilliseconds(); | |
} ] ]; | |
var d3_time_scaleLinear = d3.scale.linear(), d3_time_scaleLocalFormat = d3_time_scaleFormat(d3_time_scaleLocalFormats); | |
d3_time_scaleLocalMethods.year = function(extent, m) { | |
return d3_time_scaleLinear.domain(extent.map(d3_time_scaleGetYear)).ticks(m).map(d3_time_scaleSetYear); | |
}; | |
d3.time.scale = function() { | |
return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat); | |
}; | |
var d3_time_scaleUTCMethods = d3_time_scaleLocalMethods.map(function(m) { | |
return [ m[0].utc, m[1] ]; | |
}); | |
var d3_time_scaleUTCFormats = [ [ d3.time.format.utc("%Y"), d3_true ], [ d3.time.format.utc("%B"), function(d) { | |
return d.getUTCMonth(); | |
} ], [ d3.time.format.utc("%b %d"), function(d) { | |
return d.getUTCDate() != 1; | |
} ], [ d3.time.format.utc("%a %d"), function(d) { | |
return d.getUTCDay() && d.getUTCDate() != 1; | |
} ], [ d3.time.format.utc("%I %p"), function(d) { | |
return d.getUTCHours(); | |
} ], [ d3.time.format.utc("%I:%M"), function(d) { | |
return d.getUTCMinutes(); | |
} ], [ d3.time.format.utc(":%S"), function(d) { | |
return d.getUTCSeconds(); | |
} ], [ d3.time.format.utc(".%L"), function(d) { | |
return d.getUTCMilliseconds(); | |
} ] ]; | |
var d3_time_scaleUTCFormat = d3_time_scaleFormat(d3_time_scaleUTCFormats); | |
function d3_time_scaleUTCSetYear(y) { | |
var d = new Date(Date.UTC(y, 0, 1)); | |
d.setUTCFullYear(y); | |
return d; | |
} | |
function d3_time_scaleUTCGetYear(d) { | |
var y = d.getUTCFullYear(), d0 = d3_time_scaleUTCSetYear(y), d1 = d3_time_scaleUTCSetYear(y + 1); | |
return y + (d - d0) / (d1 - d0); | |
} | |
d3_time_scaleUTCMethods.year = function(extent, m) { | |
return d3_time_scaleLinear.domain(extent.map(d3_time_scaleUTCGetYear)).ticks(m).map(d3_time_scaleUTCSetYear); | |
}; | |
d3.time.scale.utc = function() { | |
return d3_time_scale(d3.scale.linear(), d3_time_scaleUTCMethods, d3_time_scaleUTCFormat); | |
}; | |
return d3; | |
}(); |
group | size | x | y | |
---|---|---|---|---|
2 | 1.13654379997914 | 68.6840487804878 | 5.423 | |
3 | 1.49377985111696 | 39.2041219512195 | 7.742 | |
5 | 1.22467519269876 | 69.6740487804878 | 4.037 | |
6 | 1.239103296736 | 70.6800975609756 | 2.385 | |
7 | 1.37578886571743 | 40.1618048780488 | 7.2 | |
8 | 1.72134520939447 | 69.4696097560976 | 3.325 | |
10 | 1.37362263859957 | 72.4236585365854 | 1.62 | |
11 | 1.5213408793359 | 74.3336585365854 | 1.891 | |
12 | 1.03119361352345 | 72.2201463414634 | 2.392 | |
13 | 1.33756567188016 | 64.6813170731707 | 3.286 | |
14 | 1.27522028399879 | 70.2735853658537 | 2.092 | |
15 | 1.0668242863953 | 71.9743658536586 | 2.004 | |
16 | 2.23565044084979 | 55.2358536585366 | 6.374 | |
17 | 1.42702031042521 | 73.2070731707317 | 1.672 | |
18 | 1.35516939439045 | 46.3316097560976 | 7.069 | |
19 | 1.40482057004483 | 71.1575609756098 | 2.05 | |
20 | 1.08076000644451 | 69.8744878048781 | 4.917 | |
21 | 1.27611445890189 | 46.8593170731707 | 6.651 | |
22 | 1.26206482179741 | 45.2471219512195 | 7.025 | |
24 | 1.05859932557246 | 70.7172195121951 | 4.246 | |
25 | 1.31501461337507 | 51.9635609756098 | 5.521 | |
26 | 2.50105489569261 | 62.4965853658537 | 4.073 | |
27 | 1.06131757165131 | 67.6973658536586 | 2.989 | |
28 | 1.08660401052403 | 46.3592195121951 | 6.553 | |
29 | 1.13536679277731 | 60.4592195121951 | 6.217 | |
30 | 1.42230782877107 | 70.3346585365854 | 2.03 | |
31 | 1.05028740728298 | 70.147 | 5.849 | |
32 | 1.67457752824227 | 75.0780487804878 | 1.74 | |
33 | 1.69836409898163 | 45.8246829268293 | 6.585 | |
34 | 1.20482198055284 | 48.8095365853659 | 5.954 | |
35 | 1.18196339118625 | 56.2368292682927 | 6.178 | |
36 | 1.34179998396367 | 75.459268292683 | 1.55 | |
37 | 1.39095848074938 | 51.404243902439 | 7.608 | |
38 | 1.45499625788383 | 69.1917317073171 | 2.675 | |
39 | 1.40643102337947 | 51.1865365853659 | 6.431 | |
40 | 5.26164645700289 | 66.9938048780488 | 2.632 | |
41 | 1.70597136418032 | 65.4611463414634 | 3.993 | |
42 | 1.20815372364707 | 72.5508292682927 | 3.618 | |
43 | 1.426496449408 | 73.5623414634146 | 1.892 | |
44 | 1.07377597795234 | 59.8433414634146 | 6.375 | |
46 | 1.11201322434164 | 74.7484878048781 | 2.354 | |
47 | 1.43655696641545 | 70.2780487804878 | 2.07 | |
48 | 2.2037072933049 | 72.8186341463415 | 1.44 | |
49 | 1.08068491299522 | 47.9128536585366 | 6.686 | |
50 | 1.30770651914399 | 74.1017073170732 | 1.546 | |
52 | 1.32816066098718 | 63.0011951219512 | 4.422 | |
53 | 1.60027417054755 | 59.6036829268293 | 6.909 | |
54 | 1.38243578679482 | 62.9199268292683 | 5.059 | |
55 | 1.16493241898128 | 69.0330487804878 | 2.02 | |
56 | 1.91187211057085 | 56.1501951219512 | 5.366 | |
57 | 1.21107734317603 | 43.9783658536585 | 6.513 | |
58 | 1.83236007668677 | 75.3492682926829 | 2.217 | |
59 | 1.80755404251018 | 43.914243902439 | 6.837 | |
60 | 1.29719619205756 | 73.44 | 1.63 | |
61 | 1.10779021948561 | 63.0091463414634 | 3.907 | |
62 | 1.03480333403293 | 65.1835853658537 | 6.223 | |
64 | 2.01094968637066 | 74.0512195121951 | 1.85 | |
65 | 1.11535477308798 | 54.8438292682927 | 5.17 | |
66 | 2.02087500534745 | 73.6756097560976 | 1.89 | |
67 | 1.03883429390623 | 65.0093170731707 | 4.251 | |
68 | 1.28732175966735 | 69.3627804878049 | 2.315 | |
69 | 1.44699568227378 | 53.1104390243902 | 6.539 | |
71 | 1.10510508114015 | 47.5411707317073 | 6.337 | |
72 | 1.28821512394557 | 38.8347317073171 | 6.942 | |
73 | 1.06279825934657 | 42.8141707317073 | 5.728 | |
74 | 1.42229698109309 | 74.4152926829268 | 2.226 | |
75 | 1.35978430778349 | 57.312 | 6.18 | |
76 | 1.04228580650778 | 69.3905365853659 | 3.247 | |
77 | 1.12250036588503 | 40.0567317073171 | 6.322 | |
78 | 1.11933538084681 | 59.5235853658537 | 3.567 | |
79 | 1.30589885176547 | 74.6731707317073 | 2.047 | |
80 | 1.25914711406851 | 59.4186829268293 | 6.313 | |
81 | 1.2911708046119 | 70.1753658536586 | 2.004 | |
82 | 1.32436612650113 | 50.8797317073171 | 6.058 | |
83 | 1.44509984453438 | 69.0617073170732 | 1.91 | |
84 | 2.64098478133466 | 57.5911219512195 | 4.43 | |
85 | 1.25105487735139 | 72.5493658536585 | 3.229 | |
86 | 1.26765459359961 | 73.8756097560976 | 3.242 | |
88 | 4.5968151891142 | 55.3470731707317 | 4.68 | |
89 | 1.50256540983562 | 57.2847073170732 | 6.564 | |
90 | 1.84833393125988 | 52.344243902439 | 6.479 | |
91 | 1.06390106821892 | 76.8465853658537 | 2.48 | |
92 | 2.02195924780166 | 73.9431707317073 | 1.64 | |
93 | 1.04726336221702 | 73.3449512195122 | 1.454 | |
94 | 1.19834468559701 | 70.4855365853659 | 3.733 | |
95 | 1.20057180949831 | 67.0367804878049 | 7.232 | |
96 | 2.47016652462627 | 76.0917073170732 | 1.75 | |
97 | 1.54860268234533 | 57.7401707317073 | 7.455 | |
98 | 1.25848696651144 | 62.870243902439 | 4.035 | |
99 | 1.35193491674607 | 38.6240731707317 | 5.862 | |
101 | 1.07526708179335 | 51.9551707317073 | 7.129 | |
103 | 1.56692492015672 | 67.6986341463415 | 2.705 | |
104 | 1.83994129443894 | 65.8019512195122 | 2.83 | |
106 | 1.15888936081606 | 70.4567073170732 | 5.549 | |
108 | 1.52499079535322 | 66.6243902439025 | 2.9 | |
109 | 1.24501504752584 | 48.7622195121951 | 6.277 | |
110 | 1.21927687484753 | 66.5743902439024 | 4.111 | |
111 | 1.04521610218089 | 68.9843902439025 | 4.703 | |
113 | 1.52231629553185 | 68.2219268292683 | 3.408 | |
114 | 1.18678788562851 | 43.8481707317073 | 6.972 | |
115 | 1.15511145252779 | 53.6587317073171 | 5.589 | |
116 | 1.2510696956968 | 70.4821951219512 | 2.03 | |
117 | 1.0812453399753 | 71.9602682926829 | 1.5 | |
118 | 1.21529056251471 | 68.8085365853659 | 1.86 | |
119 | 1.23840391554295 | 60.0124634146342 | 7.38 | |
120 | 1.60524107005532 | 57.631243902439 | 5.649 | |
122 | 1.25047177041248 | 64.7687073170732 | 2.481 | |
123 | 1.10285481362007 | 73.6019756097561 | 2.286 | |
125 | 1.40218254135555 | 48.2081219512195 | 6.514 | |
127 | 1.18694626580056 | 69.6565853658537 | 2.429 | |
128 | 1.35287962782553 | 39.6098292682927 | 7.046 | |
129 | 1.79872220656412 | 55.0355853658537 | 4.565 | |
130 | 1.17644849443521 | 57.3329024390244 | 6.205 | |
131 | 1.06647047527621 | 73.2440487804878 | 1.665 | |
133 | 1.16809603629778 | 52.9948048780488 | 6.427 | |
134 | 1.0756408012111 | 72.9324390243903 | 1.99 | |
135 | 1.13319347900789 | 66.9879756097561 | 2.672 | |
136 | 1.05212454566634 | 52.6288292682927 | 7.071 | |
137 | 1.33955658454325 | 44.3361951219512 | 7.432 | |
138 | 2.1410658065608 | 66.5718536585366 | 4.705 | |
139 | 1.50587615070868 | 67.4028536585366 | 3.789 | |
140 | 1.47391812015528 | 42.8059024390244 | 6.49 | |
141 | 1.13640383625443 | 57.8029024390244 | 6.451 | |
142 | 1.05007513719679 | 66.569512195122 | 3.256 | |
143 | 1.32840121423276 | 39.5295853658537 | 7.7 | |
144 | 2.16788085117856 | 45.4882682926829 | 6.787 | |
145 | 1.24499789873771 | 58.4604390243903 | 6.131 | |
146 | 1.51162552934519 | 75.7431707317073 | 1.602 | |
147 | 1.27473958460694 | 75.6717073170732 | 1.72 | |
148 | 1.51585996520301 | 48.1546097560976 | 5.834 | |
149 | 1.23974501969993 | 72.8292682926829 | 2.03 | |
150 | 1.14569541252808 | 60.7683902439024 | 8.299 | |
151 | 1.19155928998285 | 69.9607073170732 | 3.742 | |
152 | 1.56621225116556 | 60.0161951219512 | 5.009 | |
153 | 1.05165835355479 | 64.4997073170732 | 3.971 | |
154 | 1.24367271646904 | 52.8837073170732 | 5.694 | |
155 | 1.93656964605139 | 63.1697317073171 | 5.183 | |
156 | 2.21667477393718 | 57.9148292682927 | 6.535 | |
157 | 1.81136056564587 | 70.0975609756098 | 2.276 | |
158 | 1.2433122911468 | 73.7759268292683 | 2.607 | |
160 | 1.4250015241258 | 71.2146341463415 | 2.19 | |
162 | 1.24304010778149 | 66.7257317073171 | 5.219 | |
163 | 1.0632626717576 | 71.2498780487805 | 5.804 | |
164 | 1.64152322682702 | 69.0909756097561 | 2.43 | |
166 | 2.60399804484787 | 67.0339024390244 | 1.89 | |
167 | 1.30824017406096 | 48.2001463414634 | 8.292 | |
168 | 1.42667391030836 | 62.2977073170732 | 7.206 | |
169 | 1.06425865726597 | 58.8907317073171 | 6.748 | |
171 | 1.51645521303941 | 49.2990487804878 | 6.442 | |
172 | 1.39202182297448 | 75.7409756097561 | 1.68 | |
173 | 1.21104897398264 | 71.681756097561 | 1.737 | |
174 | 1.18722268855053 | 71.1048780487805 | 2.055 | |
175 | 1.30336871576746 | 70.4085365853659 | 2.32 | |
176 | 1.24233039690026 | 43.0436585365854 | 5.558 | |
178 | 1.32083664814101 | 47.3332682926829 | 7.425 | |
179 | 1.33552298264271 | 42.9156341463415 | 6.843 | |
180 | 1.08141215878445 | 65.9350731707317 | 3.922 | |
182 | 1.04022701799863 | 59.4880243902439 | 6.409 | |
183 | 1.29346785719271 | 56.8276097560976 | 5.137 | |
185 | 1.40697793897699 | 66.2019512195122 | 7.094 | |
186 | 1.10501717005676 | 54.2261951219512 | 6.658 | |
188 | 1.28876941716147 | 47.8966829268293 | 6.759 | |
189 | 1.2241003401981 | 49.6226829268293 | 7.21 | |
190 | 1.93628012796775 | 65.4977804878049 | 3.392 | |
191 | 1.26902178152907 | 62.2442682926829 | 5.663 | |
192 | 1.10300244956028 | 34.6581463414634 | 4.767 | |
193 | 1.2298156521231 | 60.8361951219512 | 5.012 | |
194 | 1.34354441978932 | 62.1231707317073 | 5.325 | |
195 | 1.03977680583219 | 67.55 | 5.553 | |
196 | 1.90139728562965 | 56.5696097560976 | 4.454 | |
197 | 1.14124017031296 | 67.2882926829268 | 3.338 | |
199 | 1.58799369468856 | 50.4534390243902 | 6.653 | |
200 | 1.96168062872552 | 68.827512195122 | 1.95 | |
201 | 1.48181505257918 | 50.0716097560976 | 7.1 | |
202 | 3.050753364273 | 73.6585365853659 | 1.8395 | |
203 | 1.23200932990405 | 70.2482195121951 | 2.724 | |
204 | 1.54452040533352 | 65.266512195122 | 5.127 | |
205 | 1.04148486434986 | 65.6770243902439 | 3.985 | |
206 | 1.52847136340614 | 68.2224878048781 | 4.199 | |
207 | 1.04069522195908 | 71.4251951219512 | 4.013 | |
208 | 1.99689468332857 | 55.6710731707317 | 5.39 | |
209 | 1.0447325332173 | 58.5427073170732 | 5.575 | |
210 | 1.05234388711182 | 59.969512195122 | 4.81 | |
211 | 1.38237637374479 | 48.8352682926829 | 8.993 | |
212 | 1.7143300818477 | 56.9700243902439 | 4.786 | |
213 | 1.32876716100312 | 52.0180243902439 | 7.182 | |
214 | 1.36711684053085 | 59.1740487804878 | 7.095 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.17736209850883 | 71.861243902439 | 4.566 | |
3 | 1.45546259426116 | 42.0211951219512 | 7.937 | |
5 | 1.25074533521886 | 71.7542195121951 | 3.38 | |
6 | 1.25579924314968 | 67.9126097560976 | 2.565 | |
7 | 1.43115898908396 | 41.091243902439 | 7.182 | |
8 | 1.77156060810129 | 71.2921707317073 | 3.016 | |
10 | 1.37535582158528 | 75.2480487804878 | 1.45 | |
11 | 1.55774547179743 | 76.7136585365854 | 1.838 | |
12 | 1.03147008159565 | 73.3444878048781 | 2.272 | |
13 | 1.36242294189039 | 65.0892682926829 | 2.8 | |
14 | 1.29106697985312 | 68.8140243902439 | 1.775 | |
15 | 1.06814884137602 | 74.2505365853659 | 1.758 | |
16 | 2.3925628722891 | 58.9580731707317 | 4.728 | |
17 | 1.42871724528155 | 75.6326829268293 | 1.58 | |
18 | 1.39832837880434 | 48.3846341463415 | 6.889 | |
19 | 1.40517331945606 | 71.7224390243903 | 1.9 | |
20 | 1.09362809977926 | 72.3097073170732 | 3.852 | |
21 | 1.31736893524303 | 46.8498048780488 | 6.508 | |
22 | 1.29895674384157 | 48.1980487804878 | 6.805 | |
24 | 1.06695696731757 | 73.3810975609756 | 3.608 | |
25 | 1.3502580900965 | 58.2189268292683 | 4.952 | |
26 | 2.64989493215846 | 65.9543658536585 | 2.917 | |
27 | 1.06724934757592 | 69.4268048780488 | 2.654 | |
28 | 1.09829361859835 | 51.8628780487805 | 5.907 | |
29 | 1.15724685970586 | 64.0963902439024 | 4.863 | |
30 | 1.4337028870295 | 71.5878048780488 | 2.03 | |
31 | 1.05704992926245 | 72.3260487804878 | 4.584 | |
32 | 1.71177326061357 | 77.0656097560976 | 1.77 | |
33 | 1.7900212954096 | 46.7759024390244 | 7.047 | |
34 | 1.2294369685198 | 49.1595609756098 | 5.826 | |
35 | 1.2069078227633 | 56.573512195122 | 5.431 | |
36 | 1.35055531804543 | 77.4212195121951 | 1.56 | |
37 | 1.46542778179448 | 52.8558536585366 | 6.399 | |
38 | 1.4900284142242 | 73.2819024390244 | 2.64 | |
39 | 1.46554408841677 | 53.3008780487805 | 6.004 | |
40 | 5.5502810385794 | 69.2469268292683 | 2.444 | |
41 | 1.77737865399493 | 68.1778292682927 | 3.155 | |
42 | 1.23539357415568 | 75.5396585365854 | 3.254 | |
43 | 1.44077017064487 | 74.4300487804878 | 1.785 | |
44 | 1.07917533474112 | 64.6254878048781 | 5.441 | |
46 | 1.11731120064475 | 76.344268292683 | 2.43 | |
47 | 1.43776099596298 | 71.6756097560976 | 1.874 | |
48 | 2.20725951428008 | 75.1228780487805 | 1.42 | |
49 | 1.10113410031445 | 51.1088048780488 | 6.267 | |
50 | 1.30799412074878 | 74.799756097561 | 1.62 | |
52 | 1.36229404275594 | 67.2051463414634 | 3.537 | |
53 | 1.68793917709583 | 66.6150731707317 | 4.954 | |
54 | 1.42761856916984 | 68.3415365853659 | 3.793 | |
55 | 1.16995705777596 | 70.0390243902439 | 2.21 | |
56 | 2.01079024234032 | 61.368512195122 | 4.522 | |
57 | 1.24344940914331 | 47.4790243902439 | 6.26 | |
58 | 1.84726365311627 | 76.8136585365854 | 1.36 | |
59 | 1.92700402638614 | 46.5579024390244 | 7.083 | |
60 | 1.30289721569391 | 74.7921951219512 | 1.71 | |
61 | 1.11518625390258 | 65.3438536585366 | 3.427 | |
62 | 1.04002821678457 | 66.0845853658537 | 5.052 | |
64 | 2.03705889390321 | 76.3487804878049 | 1.79 | |
65 | 1.13005154948466 | 61.0672682926829 | 5.187 | |
66 | 2.0277640134584 | 75.5829268292683 | 1.8 | |
67 | 1.04066587534174 | 68.2620731707317 | 3.966 | |
68 | 1.29793530366021 | 70.1985609756098 | 2.217 | |
69 | 1.51312839510637 | 56.3380487804878 | 5.725 | |
71 | 1.12716104858948 | 52.9915609756098 | 6.114 | |
72 | 1.32604284960268 | 43.2059268292683 | 6.797 | |
73 | 1.08104061602607 | 46.3684634146341 | 5.897 | |
74 | 1.43198168389218 | 76.6878048780488 | 1.41 | |
75 | 1.40083932026607 | 61.7563658536585 | 5.636 | |
76 | 1.04712845374207 | 71.8435365853659 | 3.13 | |
77 | 1.13518084506401 | 42.6596829268293 | 6.68 | |
78 | 1.11550934683114 | 60.9543414634146 | 2.624 | |
79 | 1.32420228765203 | 77.0292682926829 | 1.296 | |
80 | 1.29680438547798 | 65.8643902439024 | 5.236 | |
81 | 1.29680560151989 | 71.8446341463415 | 1.63 | |
82 | 1.3588651496295 | 54.6443902439024 | 5.549 | |
83 | 1.44030424726332 | 69.4617073170732 | 1.78 | |
84 | 2.80207589460458 | 61.7008048780488 | 3.229 | |
85 | 1.25464938827712 | 74.5156097560976 | 2.08 | |
86 | 1.28893736510347 | 76.3073170731707 | 2.886 | |
88 | 4.96963904464843 | 58.0993902439024 | 3.994 | |
89 | 1.56202821752099 | 65.9364146341464 | 6.053 | |
90 | 2.00832442849611 | 59.8407073170732 | 5.151 | |
91 | 1.06738531176969 | 78.1409756097561 | 2.2 | |
92 | 2.02411131248426 | 76.8048780487805 | 1.28 | |
93 | 1.04942930097229 | 75.1985853658537 | 1.457 | |
94 | 1.20932740834729 | 70.755512195122 | 3.005 | |
95 | 1.23753843285447 | 70.1832682926829 | 6.058 | |
96 | 2.50951190945209 | 78.8180487804878 | 1.57 | |
97 | 1.64761187919303 | 59.5526829268293 | 6.231 | |
98 | 1.28211458113728 | 67.9073170731707 | 3.875 | |
99 | 1.4026918622986 | 55.1478536585366 | 5.896 | |
101 | 1.08552461846727 | 55.3461951219512 | 5.735 | |
103 | 1.60671778539442 | 70.5028292682927 | 2.434 | |
104 | 1.8855936300766 | 70.859512195122 | 1.58 | |
105 | 1.18351248422567 | 67.5785365853659 | 3.9223 | |
106 | 1.19487188213303 | 72.5280975609756 | 2.844 | |
108 | 1.54829209798422 | 68.290243902439 | 2.82 | |
109 | 1.27598703113088 | 53.5602682926829 | 6.222 | |
110 | 1.22226658511812 | 68.4069268292683 | 3.206 | |
111 | 1.04875555657012 | 70.766 | 3.495 | |
113 | 1.55792132751459 | 69.5780487804878 | 2.548 | |
114 | 1.19853207257264 | 42.4556341463415 | 6.602 | |
115 | 1.17005531570818 | 58.7561463414634 | 5.004 | |
116 | 1.26086957903215 | 71.4253658536585 | 1.98 | |
117 | 1.08270730331236 | 74.5916829268293 | 1.52 | |
118 | 1.22186400569341 | 70.1553658536586 | 2.05 | |
119 | 1.27727022220395 | 67.5221951219512 | 5.154 | |
120 | 1.66932627143813 | 63.598243902439 | 4.201 | |
122 | 1.26075407986628 | 67.3992926829268 | 2.506 | |
123 | 1.10575482205261 | 75.2006829268293 | 1.902 | |
125 | 1.45526393266728 | 50.1998048780488 | 6.268 | |
127 | 1.1923307712634 | 71.0867317073171 | 2.149 | |
128 | 1.38042041444417 | 43.8281951219512 | 7.076 | |
129 | 1.87577285307087 | 56.7567073170732 | 3.581 | |
130 | 1.19871835142618 | 60.316756097561 | 4.402 | |
131 | 1.07943882654731 | 75.8756341463415 | 1.798 | |
133 | 1.19055336062575 | 55.7361951219512 | 5.99 | |
134 | 1.079701098912 | 74.9603414634146 | 2.11 | |
135 | 1.13883549619895 | 69.1300731707317 | 2.23 | |
136 | 1.0611490552224 | 60.1373414634146 | 6.427 | |
137 | 1.41035831981762 | 46.961243902439 | 6.848 | |
138 | 2.24927000153286 | 70.3959512195122 | 3.489 | |
139 | 1.57236562811341 | 69.8294146341464 | 3.546 | |
140 | 1.49777871770792 | 42.9466829268293 | 6.277 | |
141 | 1.15827233599382 | 60.6428780487805 | 5.358 | |
142 | 1.05385083226362 | 70.3439024388537 | 3.1433333333 | |
143 | 1.37288399226368 | 41.0353902439024 | 7.817 | |
144 | 2.31321496965025 | 45.7198048780488 | 6.464 | |
145 | 1.27338897410082 | 63.4078780487805 | 4.865 | |
146 | 1.52411880209717 | 76.7341463414634 | 1.55 | |
147 | 1.27945808721318 | 76.500487804878 | 1.88 | |
148 | 1.57192035628693 | 53.3614390243903 | 5.279 | |
149 | 1.24683176149877 | 74.8243902439024 | 2.12 | |
150 | 1.17922372221764 | 69.8407073170732 | 7.462 | |
151 | 1.21196625685094 | 72.1544634146342 | 3.081 | |
152 | 1.62815594972444 | 65.0643902439025 | 3.933 | |
153 | 1.0587885351839 | 68.9900731707317 | 3.421 | |
154 | 1.27378961422343 | 55.4220243902439 | 4.861 | |
155 | 2.05735667124239 | 64.9779512195122 | 4.397 | |
156 | 2.41292302960946 | 60.4990731707317 | 6.138 | |
157 | 1.83814926311823 | 71.0439024390244 | 2.078 | |
158 | 1.25445454076758 | 74.4636829268293 | 2.236 | |
160 | 1.43016763463046 | 74.2658536585366 | 1.48 | |
162 | 1.27654140437086 | 67.8011707317073 | 4.637 | |
163 | 1.09182533050636 | 73.8801463414634 | 4.345 | |
164 | 1.65464364175639 | 69.5307317073171 | 2.2 | |
166 | 2.65349400858506 | 69.1717073170732 | 2.01 | |
167 | 1.36546773810617 | 36.9656097560976 | 7.326 | |
168 | 1.5383374886387 | 68.292 | 6.004 | |
169 | 1.07398479290196 | 56.3777317073171 | 5.961 | |
171 | 1.59749695156988 | 52.1844390243903 | 6.005 | |
172 | 1.39630515898676 | 77.7268292682927 | 2.02 | |
173 | 1.23261743371073 | 75.0827317073171 | 1.754 | |
174 | 1.19186288141325 | 72.7048780487805 | 1.52 | |
175 | 1.31227170840434 | 71.0263414634146 | 2.07 | |
176 | 1.27160232566733 | 39.4623414634146 | 5.662 | |
178 | 1.36701939588687 | 52.9438536585366 | 6.752 | |
179 | 1.34087946302801 | 44.9679512195122 | 6.632 | |
180 | 1.08525844258327 | 67.4158780487805 | 2.823 | |
182 | 1.04452786827719 | 60.764 | 5.501 | |
183 | 1.31207711576426 | 64.9131707317073 | 4.047 | |
185 | 1.47286874872525 | 70.6399512195122 | 5.55 | |
186 | 1.12366632583731 | 59.1685365853659 | 5.905 | |
188 | 1.32643346946467 | 50.6838048780488 | 6.682 | |
189 | 1.26088827408756 | 52.7132682926829 | 6.417 | |
190 | 2.01650619589677 | 72.3136341463415 | 2.179 | |
191 | 1.30882775057728 | 63.0904146341463 | 5.27 | |
192 | 1.11565155145699 | 44.8200487804878 | 5.273 | |
193 | 1.25680441765098 | 62.6523170731707 | 4.44 | |
194 | 1.38362603321612 | 68.0709024390244 | 3.833 | |
195 | 1.04022678793999 | 69.4576829268293 | 4.691 | |
196 | 1.99098968784691 | 62.5041463414634 | 3.139 | |
197 | 1.14941156912397 | 68.8501463414634 | 2.585 | |
199 | 1.67584933147257 | 50.8364390243902 | 6.273 | |
200 | 1.97884216682994 | 70.5390243902439 | 1.92 | |
201 | 1.55953872395259 | 47.986756097561 | 7.097 | |
202 | 3.1373480128496 | 75.0170731707317 | 2.014 | |
203 | 1.2388198839459 | 72.3098048780488 | 2.523 | |
204 | 1.60947675143158 | 66.8472926829268 | 4.179 | |
205 | 1.04292657983312 | 68.9592195121951 | 3.01 | |
206 | 1.5968860219209 | 70.8501951219512 | 3.524 | |
207 | 1.04203755045081 | 74.4644390243903 | 3.097 | |
208 | 2.09488296397535 | 64.5360975609756 | 3.752 | |
209 | 1.05004777736846 | 62.7580243902439 | 4.971 | |
210 | 1.05347158722277 | 64.5194146341463 | 4.783 | |
211 | 1.456580879832 | 55.7256585365854 | 8.797 | |
212 | 1.79890518569126 | 61.4186097560976 | 3.791 | |
213 | 1.3760293943765 | 48.3896097560976 | 6.534 | |
214 | 1.43364723278646 | 61.1514634146342 | 5.376 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.18247563794473 | 72.1435365853659 | 4.388 | |
3 | 1.46582664215686 | 42.3293658536585 | 7.96 | |
5 | 1.25230810202471 | 71.6454390243903 | 3.219 | |
6 | 1.25587068658699 | 67.757243902439 | 2.538 | |
7 | 1.4371850844213 | 41.1414146341463 | 7.165 | |
8 | 1.77699262796517 | 71.4982926829268 | 2.989 | |
10 | 1.3767900718722 | 75.53 | 1.45 | |
11 | 1.56188988325932 | 76.9946341463415 | 1.902 | |
12 | 1.03179657502549 | 73.3899756097561 | 2.249 | |
13 | 1.36382319248844 | 64.7463658536585 | 2.74 | |
14 | 1.2892098405015 | 67.4668536585366 | 1.708 | |
15 | 1.06827000220364 | 74.4172682926829 | 1.748 | |
16 | 2.40977847232449 | 59.4711463414634 | 4.538 | |
17 | 1.42935750057298 | 76.0519512195122 | 1.62 | |
18 | 1.40366439986708 | 48.4530487804878 | 6.844 | |
19 | 1.40153248984976 | 71.6414634146342 | 1.81 | |
20 | 1.09507992775496 | 72.4649512195122 | 3.709 | |
21 | 1.32190113918822 | 46.2271463414634 | 6.505 | |
22 | 1.30402254653956 | 48.6485365853659 | 6.744 | |
24 | 1.06794293056817 | 73.6536585365854 | 3.532 | |
25 | 1.35441832329851 | 58.7780731707317 | 4.913 | |
26 | 2.66424630692449 | 66.3407317073171 | 2.809 | |
27 | 1.0678623823651 | 69.4370487804878 | 2.639 | |
28 | 1.09887741656272 | 52.5896341463415 | 5.753 | |
29 | 1.15961101120096 | 64.0171707317073 | 4.698 | |
30 | 1.43410812821632 | 70.8365853658537 | 1.91 | |
31 | 1.05772466087979 | 72.4868048780488 | 4.508 | |
32 | 1.71711011763426 | 77.3770731707317 | 1.83 | |
33 | 1.80375623934548 | 46.8400731707317 | 7.084 | |
34 | 1.23189318487828 | 48.8288780487805 | 5.78 | |
35 | 1.20969770053928 | 56.2465609756098 | 5.358 | |
36 | 1.35236186562804 | 77.2424390243902 | 1.59 | |
37 | 1.47340606069619 | 52.6441463414634 | 6.257 | |
38 | 1.49440729917073 | 73.6035609756098 | 2.624 | |
39 | 1.47251678865126 | 53.2530975609756 | 5.923 | |
40 | 5.58378723128858 | 69.4597317073171 | 2.336 | |
41 | 1.78507450945923 | 68.3055365853658 | 3.104 | |
42 | 1.23841540562162 | 75.747 | 3.175 | |
43 | 1.44280093758555 | 74.4598048780488 | 1.752 | |
44 | 1.07984472070734 | 65.0802195121951 | 5.307 | |
46 | 1.1185326677298 | 76.5047073170732 | 2.411 | |
47 | 1.43717473290895 | 71.3839024390244 | 1.893 | |
48 | 2.21247434401367 | 75.3161219512195 | 1.45 | |
49 | 1.10382522437181 | 51.3663170731707 | 6.166 | |
50 | 1.30824476767068 | 74.8053658536585 | 1.67 | |
52 | 1.36600744260143 | 67.7041951219512 | 3.466 | |
53 | 1.6968026356273 | 67.0717804878049 | 4.713 | |
54 | 1.43271150058893 | 68.8568780487805 | 3.67 | |
55 | 1.17001384200056 | 69.4756097560976 | 2.04 | |
56 | 2.02107802993048 | 62.0128292682927 | 4.35 | |
57 | 1.24583102281058 | 48.2335365853659 | 6.215 | |
58 | 1.84790744248975 | 76.8375609756098 | 1.33 | |
59 | 1.94291491460871 | 47.0453902439024 | 7.078 | |
60 | 1.30357047594464 | 74.8131707317073 | 1.78 | |
61 | 1.11550590164299 | 65.5708536585366 | 3.398 | |
62 | 1.04054279846194 | 66.1975853658537 | 4.958 | |
64 | 2.03969325626036 | 76.6 | 1.77 | |
65 | 1.13184586790594 | 61.2891219512195 | 5.178 | |
66 | 2.02930151491935 | 75.8804878048781 | 1.83 | |
67 | 1.04053252518587 | 68.9273658536586 | 3.842 | |
68 | 1.29789491997395 | 70.2478780487805 | 2.18 | |
69 | 1.52021587569041 | 56.8430243902439 | 5.616 | |
71 | 1.12973071755709 | 53.1250487804878 | 6.09 | |
72 | 1.33359788678556 | 43.6706829268293 | 6.745 | |
73 | 1.08234295342201 | 46.7654390243902 | 5.9 | |
74 | 1.43342330592444 | 76.9390243902439 | 1.4 | |
75 | 1.40547829134661 | 62.2866829268293 | 5.58 | |
76 | 1.04770558185292 | 72.0855365853659 | 3.131 | |
77 | 1.13671719932274 | 42.8241463414634 | 6.649 | |
78 | 1.11524151744944 | 61.1014634146342 | 2.586 | |
79 | 1.32472425181916 | 77.3804878048781 | 1.272 | |
80 | 1.3010376173224 | 66.3393902439024 | 5.142 | |
81 | 1.29721067158117 | 72.1704878048781 | 1.63 | |
82 | 1.36257760120212 | 55.0904146341463 | 5.43 | |
83 | 1.43803404784013 | 69.3156097560976 | 1.84 | |
84 | 2.81829588925611 | 62.1038536585366 | 3.122 | |
85 | 1.25475712043133 | 74.7413170731707 | 2.12 | |
86 | 1.29345032313768 | 76.6073170731707 | 2.824 | |
88 | 5.01026675361427 | 58.3528536585366 | 3.917 | |
89 | 1.56929266923403 | 67.5341951219512 | 5.989 | |
90 | 2.02130689405275 | 61.9104634146342 | 4.818 | |
91 | 1.06765587329826 | 78.0363414634146 | 2.31 | |
92 | 2.02454009360288 | 76.8590243902439 | 1.26 | |
93 | 1.04964246840808 | 75.418243902439 | 1.46 | |
94 | 1.20999393131398 | 70.6456341463415 | 2.948 | |
95 | 1.24193913217475 | 70.434512195122 | 5.808 | |
96 | 2.51209078196484 | 78.8368292682927 | 1.54 | |
97 | 1.65866003181124 | 59.3399512195122 | 6.037 | |
98 | 1.2848470606639 | 68.2975609756098 | 3.69 | |
99 | 1.40927234009194 | 55.3972926829268 | 5.741 | |
101 | 1.08660881911231 | 55.5994146341463 | 5.573 | |
103 | 1.61126101100424 | 70.4662682926829 | 2.406 | |
104 | 1.89068907261576 | 71.2948780487805 | 1.59 | |
105 | 1.18526912888924 | 67.7587804878049 | 3.9028 | |
106 | 1.19489809507886 | 72.6818536585366 | 2.588 | |
108 | 1.54995215279692 | 68.3365853658537 | 2.72 | |
109 | 1.28004095096478 | 54.3082195121951 | 6.152 | |
110 | 1.22336326678733 | 68.6720243902439 | 3.137 | |
111 | 1.04917627006325 | 70.9086585365854 | 3.398 | |
113 | 1.56106410984233 | 69.6786829268293 | 2.488 | |
114 | 1.19693416386731 | 42.2768048780488 | 6.519 | |
115 | 1.17155064659572 | 59.3268536585366 | 4.919 | |
116 | 1.26135100205229 | 71.1607317073171 | 2.03 | |
117 | 1.08323710838707 | 74.8532926829268 | 1.62 | |
118 | 1.22170527380467 | 69.2731707317073 | 2.02 | |
119 | 1.28054581935455 | 68.0800243902439 | 4.826 | |
120 | 1.6757011957912 | 64.146 | 4.034 | |
122 | 1.26128590961038 | 67.4436829268293 | 2.413 | |
123 | 1.10600200989697 | 75.4203170731707 | 1.869 | |
125 | 1.46212841409406 | 50.7423902439024 | 6.258 | |
127 | 1.19250617713909 | 71.2797804878049 | 2.125 | |
128 | 1.38375559514455 | 44.1622195121951 | 7.063 | |
129 | 1.88290389979624 | 57.2737073170732 | 3.446 | |
130 | 1.20071751540413 | 60.5382682926829 | 4.095 | |
131 | 1.08074086711448 | 76.1404390243903 | 1.694 | |
133 | 1.19319974160667 | 55.9369756097561 | 5.937 | |
134 | 1.08010046516855 | 75.1757804878049 | 2.05 | |
135 | 1.13949080237495 | 69.4048780487805 | 2.32 | |
136 | 1.06209728953327 | 60.8846341463415 | 6.129 | |
137 | 1.41799329736808 | 47.0942682926829 | 6.75 | |
138 | 2.26216797044597 | 70.7910975609756 | 3.4 | |
139 | 1.58045810002499 | 70.0653658536585 | 3.514 | |
140 | 1.50099035233799 | 43.1762682926829 | 6.237 | |
141 | 1.16142911491511 | 60.7774146341464 | 5.227 | |
142 | 1.0544999696205 | 70.4853658536586 | 3.19 | |
143 | 1.37865354130493 | 41.4328536585366 | 7.813 | |
144 | 2.33028235211901 | 45.6373414634146 | 6.399 | |
145 | 1.2764912687775 | 64.1580243902439 | 4.754 | |
146 | 1.52592737823213 | 76.8780487804878 | 1.62 | |
147 | 1.27994023828504 | 76.5373170731707 | 1.93 | |
148 | 1.57886319888879 | 53.9567317073171 | 5.194 | |
149 | 1.24797640357174 | 75.3780487804878 | 2.18 | |
150 | 1.18265837983341 | 70.6329512195122 | 7.165 | |
151 | 1.21421644933691 | 72.3481707317073 | 3.017 | |
152 | 1.63469783224774 | 65.5495121951219 | 3.828 | |
153 | 1.05943372646108 | 69.3337804878049 | 3.324 | |
154 | 1.27716372799226 | 55.7093414634146 | 4.802 | |
155 | 2.07073560808773 | 65.1593902439025 | 4.32 | |
156 | 2.43389404163704 | 60.7671951219512 | 6.024 | |
157 | 1.8397956447335 | 70.890243902439 | 2.04 | |
158 | 1.25559221581333 | 74.3985853658537 | 2.219 | |
159 | 1.1909876832542 | 68.0477317073171 | 6.528 | |
160 | 1.42969876520799 | 73.9658536585366 | 1.43 | |
161 | 1.01183227699791 | 69.0692682926829 | 2.7572 | |
162 | 1.28021363501091 | 67.9726097560976 | 4.541 | |
163 | 1.09316982619633 | 74.1287804878049 | 4.234 | |
164 | 1.65521419347987 | 69.7412195121951 | 1.84 | |
166 | 2.65668679251456 | 68.9024390243902 | 1.89 | |
167 | 1.36523718024395 | 32.8269756097561 | 7.04 | |
168 | 1.54755869354668 | 68.7704878048781 | 5.844 | |
169 | 1.0750517234855 | 56.704756097561 | 5.851 | |
171 | 1.60844517568661 | 52.5306585365854 | 5.95 | |
172 | 1.39784040958681 | 77.5368292682927 | 2.13 | |
173 | 1.2371875318109 | 75.5821951219512 | 1.865 | |
174 | 1.19195016728934 | 73.2048780487805 | 1.46 | |
175 | 1.31295984364615 | 70.9326829268293 | 2.09 | |
176 | 1.27328926411626 | 38.7214634146341 | 5.705 | |
178 | 1.37274666917947 | 53.2483414634146 | 6.646 | |
179 | 1.34185973527995 | 44.5211707317073 | 6.599 | |
180 | 1.08596250202272 | 67.4989268292683 | 2.733 | |
182 | 1.04509538824197 | 60.915756097561 | 5.396 | |
183 | 1.31428887153651 | 65.9908536585366 | 3.951 | |
185 | 1.47992438112895 | 71.064756097561 | 5.335 | |
186 | 1.12581348021858 | 59.3440487804878 | 5.744 | |
188 | 1.33169105406562 | 50.6799268292683 | 6.671 | |
189 | 1.264510484654 | 52.9919756097561 | 6.299 | |
190 | 2.02330623622011 | 72.4709268292683 | 2.113 | |
191 | 1.31290362405916 | 62.8568536585366 | 5.175 | |
192 | 1.11734598547329 | 45.7858048780488 | 5.34 | |
193 | 1.26029228178869 | 62.6627073170732 | 4.345 | |
194 | 1.38831851166189 | 70.3073170731707 | 3.633 | |
195 | 1.04027576075959 | 69.5823170731707 | 4.644 | |
196 | 1.9996258704999 | 63.0604634146342 | 3.049 | |
197 | 1.14992349305059 | 68.9447804878049 | 2.446 | |
199 | 1.68670336377186 | 50.5971463414634 | 6.213 | |
200 | 1.97996661658626 | 70.1365853658537 | 1.848 | |
201 | 1.5695741248644 | 47.3567317073171 | 7.091 | |
202 | 3.14945482032537 | 75.2146341463415 | 2.081 | |
203 | 1.23963077027988 | 72.4846829268293 | 2.518 | |
204 | 1.61602127817034 | 66.6821219512195 | 4.072 | |
205 | 1.04301875344481 | 69.2184146341463 | 2.956 | |
206 | 1.60435483099437 | 71.0623658536585 | 3.448 | |
207 | 1.04224902252597 | 74.788 | 3.086 | |
208 | 2.10533703212773 | 65.4783658536585 | 3.598 | |
209 | 1.05074212155505 | 63.1968536585366 | 4.926 | |
210 | 1.0536209147294 | 65.0404146341463 | 4.762 | |
211 | 1.46699842990686 | 56.0690243902439 | 8.659 | |
212 | 1.80708165036991 | 61.5496097560976 | 3.658 | |
213 | 1.38086164777311 | 47.4806341463415 | 6.464 | |
214 | 1.43988500130408 | 60.5289268292683 | 5.187 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.18755294029298 | 72.4153170731707 | 4.193 | |
3 | 1.483009518596 | 42.636 | 7.984 | |
5 | 1.25278012970445 | 71.5314878048781 | 3.058 | |
6 | 1.2546822032668 | 67.7360731707317 | 2.482 | |
7 | 1.44388403116426 | 41.2088780487805 | 7.144 | |
8 | 1.78233788010195 | 71.7179268292683 | 2.956 | |
10 | 1.37867759016109 | 75.5678048780488 | 1.5 | |
11 | 1.56548375869913 | 77.2756097560976 | 1.849 | |
12 | 1.0325089555102 | 73.4331219512195 | 2.221 | |
13 | 1.36666106120111 | 64.4241463414634 | 2.87 | |
14 | 1.28427841367031 | 66.3856829268293 | 1.645 | |
15 | 1.0683836408058 | 74.5583658536585 | 1.739 | |
16 | 2.42641167342471 | 59.9897073170732 | 4.356 | |
17 | 1.43015657638794 | 76.1921951219512 | 1.57 | |
18 | 1.4091083914437 | 48.5274146341463 | 6.794 | |
19 | 1.39954724642005 | 71.5609756097561 | 1.65 | |
20 | 1.09640428281037 | 72.6096829268293 | 3.567 | |
21 | 1.32601199424717 | 45.6215365853659 | 6.492 | |
22 | 1.30949080105088 | 49.1231219512195 | 6.677 | |
24 | 1.06894392380177 | 73.9232195121951 | 3.435 | |
25 | 1.35864131415554 | 59.3024146341464 | 4.866 | |
26 | 2.67811939763316 | 66.734243902439 | 2.717 | |
27 | 1.06850897940421 | 69.4571219512195 | 2.631 | |
28 | 1.09879942019922 | 53.3589512195122 | 5.573 | |
29 | 1.1619480243128 | 63.648 | 4.542 | |
30 | 1.43421470777502 | 70.3780487804878 | 1.8 | |
31 | 1.05833324242938 | 72.6361707317073 | 4.436 | |
32 | 1.72200623173104 | 77.5534146341464 | 1.7 | |
33 | 1.81906735251197 | 46.8238292682927 | 7.112 | |
34 | 1.23454251272138 | 48.4149756097561 | 5.734 | |
35 | 1.21249197553746 | 55.8807804878049 | 5.293 | |
36 | 1.35457318543428 | 77.5146341463415 | 1.58 | |
37 | 1.48143649347757 | 52.3796341463415 | 6.117 | |
38 | 1.498926732024 | 73.9164146341464 | 2.597 | |
39 | 1.47951539999441 | 53.1279024390244 | 5.832 | |
40 | 5.61516572682228 | 69.6640243902439 | 2.219 | |
41 | 1.79270377913003 | 68.4601219512195 | 3.057 | |
42 | 1.24140221143444 | 75.9568536585366 | 3.09 | |
43 | 1.4445528641705 | 74.5215853658537 | 1.715 | |
44 | 1.08073020671815 | 65.519512195122 | 5.164 | |
46 | 1.11981608029838 | 76.6621219512195 | 2.381 | |
47 | 1.43664991388798 | 71.8982926829268 | 1.86 | |
48 | 2.21689989570912 | 75.319512195122 | 1.33 | |
49 | 1.10582620567332 | 51.6243658536585 | 6.048 | |
50 | 1.30864558925872 | 75.1578048780488 | 1.68 | |
52 | 1.36971223144945 | 68.1671463414634 | 3.397 | |
53 | 1.70543463686369 | 67.4289756097561 | 4.468 | |
54 | 1.43775173626588 | 69.3557317073171 | 3.557 | |
55 | 1.16958545044115 | 69.3731707317073 | 1.77 | |
56 | 2.03055952625424 | 62.6876585365854 | 4.179 | |
57 | 1.24730069514466 | 49.0215853658537 | 6.164 | |
58 | 1.8488740753438 | 76.9712195121951 | 1.31 | |
59 | 1.9594659308369 | 47.5029024390244 | 7.059 | |
60 | 1.30440187036909 | 75.2275609756098 | 1.8 | |
61 | 1.11605503342302 | 65.7933170731707 | 3.374 | |
62 | 1.04110252373736 | 66.3101219512195 | 4.882 | |
64 | 2.04100864870829 | 76.8487804878049 | 1.75 | |
65 | 1.13364704938352 | 61.3965365853659 | 5.15 | |
66 | 2.03089450206728 | 76.0829268292683 | 1.82 | |
67 | 1.04057109358459 | 69.5831951219512 | 3.701 | |
68 | 1.29894621856909 | 70.2768292682927 | 2.132 | |
69 | 1.52753576662498 | 57.2862926829268 | 5.505 | |
71 | 1.13204057757317 | 53.209 | 6.066 | |
72 | 1.34267482430459 | 44.1099512195122 | 6.685 | |
73 | 1.08374345197784 | 47.1348536585366 | 5.901 | |
74 | 1.43554033207639 | 77.1365853658537 | 1.38 | |
75 | 1.41020457416526 | 62.8184634146342 | 5.525 | |
76 | 1.04829766002952 | 72.3200487804878 | 3.124 | |
77 | 1.13828755094729 | 42.984756097561 | 6.608 | |
78 | 1.11509816298384 | 61.2744390243902 | 2.56 | |
79 | 1.32607517788677 | 77.8829268292683 | 1.281 | |
80 | 1.30525319352821 | 66.7858536585366 | 5.048 | |
81 | 1.28868101463287 | 72.1853658536586 | 1.53 | |
82 | 1.36625805888209 | 55.5348048780488 | 5.318 | |
83 | 1.43802162471797 | 69.3770731707317 | 1.86 | |
84 | 2.83427390995073 | 62.4969024390244 | 3.024 | |
85 | 1.25549208039077 | 74.9505365853659 | 2.09 | |
86 | 1.30242721439651 | 76.7585365853659 | 2.762 | |
88 | 5.05035447852413 | 58.6156829268293 | 3.838 | |
89 | 1.57724083716874 | 68.7992682926829 | 5.917 | |
90 | 2.03131989768513 | 63.7254878048781 | 4.478 | |
91 | 1.0680610586669 | 77.9919512195122 | 2.19 | |
92 | 2.02489485269434 | 76.8780487804878 | 1.27 | |
93 | 1.0498097816116 | 75.6369268292683 | 1.461 | |
94 | 1.21069972432143 | 70.5388048780488 | 2.899 | |
95 | 1.25588171784604 | 70.6672195121951 | 5.554 | |
96 | 2.51443917824052 | 79.1007317073171 | 1.53 | |
97 | 1.66967651969741 | 58.9795853658537 | 5.847 | |
98 | 1.28718966955187 | 68.5512195121951 | 3.671 | |
99 | 1.41646418428952 | 55.5814634146342 | 5.605 | |
101 | 1.08768974629343 | 55.829243902439 | 5.447 | |
103 | 1.61602450812739 | 70.1393170731707 | 2.391 | |
104 | 1.89482520760086 | 71.730243902439 | 1.74 | |
105 | 1.18705875404539 | 67.9290243902439 | 3.5844 | |
106 | 1.19202199163346 | 72.8225365853659 | 2.418 | |
108 | 1.55167431732113 | 67.9829268292683 | 2.61 | |
109 | 1.28415549379359 | 55.0806097560976 | 6.057 | |
110 | 1.22540296722067 | 68.9362195121951 | 3.078 | |
111 | 1.04954730095829 | 71.4414634146341 | 3.2 | |
113 | 1.56520547305614 | 69.7313902439024 | 2.435 | |
114 | 1.19519635146066 | 42.1279512195122 | 6.437 | |
115 | 1.17318103667392 | 59.642 | 4.837 | |
116 | 1.26157385099213 | 70.3641463414634 | 1.97 | |
117 | 1.08380774451834 | 75.4634146341463 | 1.6 | |
118 | 1.22117994740622 | 69.0324390243903 | 1.86 | |
119 | 1.28381576305632 | 68.605 | 4.521 | |
120 | 1.68187857490265 | 64.6802682926829 | 3.876 | |
122 | 1.26163986219662 | 67.3723902439024 | 2.305 | |
123 | 1.10613785733609 | 75.6126341463415 | 1.843 | |
125 | 1.46913414791086 | 51.4204146341463 | 6.225 | |
127 | 1.19227061452184 | 71.4514146341463 | 2.098 | |
128 | 1.38774785548429 | 44.4742682926829 | 7.046 | |
129 | 1.88978868053646 | 57.8447073170732 | 3.31 | |
130 | 1.20226893268898 | 60.6984146341463 | 3.786 | |
131 | 1.08185067360391 | 76.4002682926829 | 1.589 | |
133 | 1.19592134882985 | 56.1267317073171 | 5.878 | |
134 | 1.08051038047224 | 75.3901951219512 | 2.04 | |
135 | 1.14025110314759 | 69.9560975609756 | 2.3 | |
136 | 1.06300041960694 | 61.6763414634146 | 5.797 | |
137 | 1.42262585965906 | 47.1501463414634 | 6.652 | |
138 | 2.27539273830769 | 71.1863414634146 | 3.308 | |
139 | 1.58835802284017 | 70.2958292682927 | 3.478 | |
140 | 1.50696908503078 | 43.4966829268293 | 6.194 | |
141 | 1.16431026352456 | 60.8552195121951 | 5.098 | |
142 | 1.05520302599399 | 70.3585365853659 | 3.02 | |
143 | 1.38471882258264 | 41.9133170731707 | 7.803 | |
144 | 2.34734257092631 | 45.5345365853659 | 6.334 | |
145 | 1.27979742000009 | 64.8876829268293 | 4.642 | |
146 | 1.52800474501574 | 77 | 1.61 | |
147 | 1.28060918146925 | 76.9807317073171 | 1.92 | |
148 | 1.58614358507063 | 54.5807073170732 | 5.104 | |
149 | 1.25407056065278 | 76.0317073170732 | 2.16 | |
150 | 1.18641626963388 | 71.3212926829268 | 6.834 | |
151 | 1.21646685036958 | 72.5410975609756 | 2.957 | |
152 | 1.64110049539065 | 66.0281707317073 | 3.722 | |
153 | 1.05999938358234 | 69.6715365853659 | 3.219 | |
154 | 1.28061132517396 | 56.0470731707317 | 4.757 | |
155 | 2.08385986767544 | 65.3373658536585 | 4.246 | |
156 | 2.4540079365101 | 61.0333414634146 | 5.899 | |
157 | 1.84128655028872 | 70.5878048780488 | 2.05 | |
158 | 1.25649979358266 | 74.3151463414634 | 2.201 | |
159 | 1.19532834778234 | 68.3919756097561 | 6.54 | |
160 | 1.42936825608754 | 74.0146341463415 | 1.42 | |
162 | 1.28384324991901 | 68.1505365853659 | 4.448 | |
163 | 1.09402136364574 | 74.3713902439025 | 4.129 | |
164 | 1.65237353913798 | 69.7843902439024 | 1.57 | |
165 | 1.37476532883253 | 71.4878048780488 | 1.8 | |
166 | 2.65854036651098 | 68.4743902439024 | 1.732 | |
167 | 1.3590778664084 | 29.4400487804878 | 6.763 | |
168 | 1.55650785380034 | 69.2054878048781 | 5.685 | |
169 | 1.07614308741872 | 57.2138536585366 | 5.728 | |
171 | 1.62097140500076 | 52.8822926829268 | 5.895 | |
172 | 1.39919984193456 | 77.6668292682927 | 2.11 | |
173 | 1.24060044957161 | 76.0513414634146 | 1.77 | |
174 | 1.19201129199151 | 73.3536585365854 | 1.42 | |
175 | 1.31308126833093 | 70.8829268292683 | 2.05 | |
176 | 1.27364727218695 | 38.1223902439024 | 5.749 | |
178 | 1.37854840738544 | 53.5018048780488 | 6.534 | |
179 | 1.34180331428469 | 44.1238536585366 | 6.564 | |
180 | 1.08661886285772 | 67.5770487804878 | 2.672 | |
182 | 1.04565808392935 | 61.0669756097561 | 5.3 | |
183 | 1.31666697239939 | 66.8924634146342 | 3.862 | |
185 | 1.48694544053095 | 71.4674146341463 | 5.121 | |
186 | 1.12760436812061 | 59.2925853658537 | 5.571 | |
188 | 1.3369775896883 | 50.6070975609756 | 6.662 | |
189 | 1.26799032785144 | 53.2468048780488 | 6.179 | |
190 | 2.02873256309794 | 72.4997804878049 | 2.054 | |
191 | 1.31644072041755 | 62.6176341463415 | 5.066 | |
192 | 1.11932335987747 | 46.8501951219512 | 5.469 | |
193 | 1.26397631675296 | 62.6730487804878 | 4.222 | |
194 | 1.39220282497956 | 70.5073170731707 | 3.428 | |
195 | 1.0403115904333 | 69.6930487804878 | 4.612 | |
196 | 2.0080763035658 | 63.6228292682927 | 2.977 | |
197 | 1.15041663315654 | 69.0125609756098 | 2.309 | |
199 | 1.69809896064338 | 50.329243902439 | 6.148 | |
200 | 1.98099044138906 | 68.8780487804878 | 1.81 | |
201 | 1.57958051102073 | 46.7023658536585 | 7.082 | |
202 | 3.1638644963799 | 75.3658536585366 | 2.0625 | |
203 | 1.24047871748664 | 72.6637073170732 | 2.506 | |
204 | 1.62262607898769 | 66.5067317073171 | 4.199 | |
205 | 1.04308367317223 | 69.4427317073171 | 2.907 | |
206 | 1.61163110443661 | 71.2493658536585 | 3.37 | |
207 | 1.04243349595351 | 75.0990243902439 | 3.074 | |
208 | 2.11555212778361 | 66.4110975609756 | 3.436 | |
209 | 1.0514927334603 | 63.6477804878049 | 4.884 | |
210 | 1.05382900222633 | 65.5589512195122 | 4.741 | |
211 | 1.47863073074321 | 56.3539024390244 | 8.498 | |
212 | 1.81544463337349 | 61.5315365853659 | 3.53 | |
213 | 1.38554010975213 | 46.5600975609756 | 6.398 | |
214 | 1.44555549819996 | 59.5817073170732 | 5.009 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.1926631709573 | 72.6785853658537 | 3.989 | |
3 | 1.50547602866704 | 42.9397317073171 | 8.01 | |
4 | 1.03216869404973 | 74.2463414634146 | 1.7 | |
5 | 1.25230722171409 | 71.4652195121951 | 2.91 | |
6 | 1.25240400081087 | 67.8285365853659 | 2.399 | |
7 | 1.45112280969989 | 41.3145365853659 | 7.12 | |
8 | 1.78759150391289 | 71.9440731707317 | 2.918 | |
10 | 1.3807691303502 | 75.8553658536585 | 1.49 | |
11 | 1.56892644512418 | 77.3780487804878 | 1.888 | |
12 | 1.03352144137776 | 73.471756097561 | 2.187 | |
13 | 1.3694520850081 | 64.207243902439 | 2.74 | |
14 | 1.27666794125971 | 65.829 | 1.592 | |
15 | 1.06849019999306 | 74.6783414634146 | 1.73 | |
16 | 2.44251722848758 | 60.5147317073171 | 4.184 | |
17 | 1.43103072052653 | 76.3512195121951 | 1.56 | |
18 | 1.41465877916769 | 48.6117317073171 | 6.739 | |
19 | 1.39740584825342 | 71.4943902439024 | 1.54 | |
20 | 1.09765431847174 | 72.7473902439024 | 3.43 | |
21 | 1.32976320502666 | 45.1109512195122 | 6.468 | |
22 | 1.31528844560411 | 49.6033902439024 | 6.603 | |
24 | 1.06995705298799 | 74.1887804878049 | 3.321 | |
25 | 1.36291380480793 | 59.7934634146342 | 4.81 | |
26 | 2.6915463904072 | 67.1334146341463 | 2.643 | |
27 | 1.06918043927451 | 69.515 | 2.621 | |
28 | 1.09817915720377 | 54.1637804878049 | 5.372 | |
29 | 1.16424942276654 | 62.966 | 4.394 | |
30 | 1.43468334738371 | 70.0219512195122 | 1.75 | |
31 | 1.05888998415699 | 72.7738536585366 | 4.363 | |
32 | 1.72645206105792 | 77.3207317073171 | 1.71 | |
33 | 1.83560018834514 | 46.7076341463415 | 7.131 | |
34 | 1.23733532438235 | 47.9173902439024 | 5.691 | |
35 | 1.21529563483932 | 55.5086097560976 | 5.235 | |
36 | 1.35653537034769 | 77.8060975609756 | 1.58 | |
37 | 1.48946081469573 | 52.0708292682927 | 5.977 | |
38 | 1.50354277250653 | 74.2139512195122 | 2.559 | |
39 | 1.48653720651096 | 52.9293170731707 | 5.731 | |
40 | 5.64353299921224 | 69.8618292682927 | 2.106 | |
41 | 1.80026656334098 | 68.649 | 3.012 | |
42 | 1.24435860880501 | 76.1692195121951 | 3.002 | |
43 | 1.44607120885793 | 74.6253170731707 | 1.68 | |
44 | 1.08178156096353 | 65.9453170731707 | 5.016 | |
46 | 1.12116191408386 | 76.8160487804878 | 2.337 | |
47 | 1.43687335199503 | 72.2717073170732 | 1.72 | |
48 | 2.22153546663617 | 75.819512195122 | 1.29 | |
49 | 1.1072839336668 | 51.8804146341463 | 5.918 | |
50 | 1.30915705879607 | 75.1941463414634 | 1.76 | |
51 | 1.03427035853273 | 73.9512195121951 | 2.5 | |
52 | 1.37339934671687 | 68.5885365853659 | 3.33 | |
53 | 1.71380066397788 | 67.7191951219512 | 4.216 | |
54 | 1.44274506831949 | 69.8420975609756 | 3.456 | |
55 | 1.16803821848449 | 68.8634146341464 | 1.69 | |
56 | 2.039350591536 | 63.3895853658537 | 4.018 | |
57 | 1.24805543531076 | 49.8426585365854 | 6.107 | |
58 | 1.85027597991186 | 77.41 | 1.32 | |
59 | 1.97650085074196 | 47.9489512195122 | 7.024 | |
60 | 1.30525959047633 | 75.4553658536585 | 1.85 | |
61 | 1.11678089445797 | 66.011243902439 | 3.352 | |
62 | 1.04168648711903 | 66.4226585365854 | 4.82 | |
64 | 2.04360253597588 | 77.1 | 1.74 | |
65 | 1.13545488845962 | 61.4129756097561 | 5.097 | |
66 | 2.03228955767716 | 76.4341463414634 | 1.79 | |
67 | 1.04074090595431 | 70.2019268292683 | 3.551 | |
68 | 1.30010795306204 | 70.3020487804878 | 2.076 | |
69 | 1.53500257913599 | 57.6300487804878 | 5.392 | |
70 | 1.02973670988757 | 65.3414634146341 | 2.53 | |
71 | 1.13413965899116 | 53.2834634146341 | 6.039 | |
72 | 1.35285326992375 | 44.521756097561 | 6.619 | |
73 | 1.08519046507414 | 47.4722926829268 | 5.902 | |
74 | 1.43794695179455 | 77.3829268292683 | 1.38 | |
75 | 1.41501123876362 | 63.3537073170732 | 5.465 | |
76 | 1.04889619661507 | 72.5460487804878 | 3.114 | |
77 | 1.13988274997656 | 43.1449756097561 | 6.554 | |
78 | 1.11507797938758 | 61.4771707317073 | 2.544 | |
79 | 1.32744879392236 | 77.6780487804878 | 1.347 | |
80 | 1.30944172716945 | 67.2273414634146 | 4.95 | |
81 | 1.28739583241949 | 71.2414634146342 | 1.48 | |
82 | 1.36989924646426 | 55.9715365853659 | 5.21 | |
83 | 1.43793585753207 | 69.1170731707317 | 1.77 | |
84 | 2.85000103887257 | 62.8804634146341 | 2.934 | |
85 | 1.2563669843134 | 75.136243902439 | 2.02 | |
86 | 1.30770570709397 | 76.5048780487805 | 2.7 | |
88 | 5.08992013628133 | 58.892512195122 | 3.758 | |
89 | 1.58578983915387 | 69.7719268292683 | 5.839 | |
90 | 2.03878720604976 | 65.2640487804878 | 4.138 | |
91 | 1.06850290030228 | 78.760243902439 | 2.21 | |
92 | 2.02524303497144 | 77.2378048780488 | 1.3 | |
93 | 1.04993781751659 | 75.8496829268293 | 1.457 | |
94 | 1.21144516643575 | 70.4415853658537 | 2.855 | |
95 | 1.26259315109023 | 70.8804146341463 | 5.308 | |
96 | 2.51632015920569 | 79.1539024390244 | 1.502 | |
97 | 1.68064071787971 | 58.4631219512195 | 5.668 | |
98 | 1.28885407615491 | 68.1024390243903 | 3.617 | |
99 | 1.42403060742975 | 55.7143902439024 | 5.464 | |
100 | 1.03492729314173 | 58.1951219512195 | 3.8 | |
101 | 1.08877189823818 | 56.0481219512195 | 5.355 | |
102 | 1.02502509059789 | 67.9512195121951 | 2.6 | |
103 | 1.62093064303466 | 69.4963414634146 | 2.38 | |
104 | 1.8989011313081 | 72.2060975609756 | 1.78 | |
105 | 1.18873337443277 | 68.0892682926829 | 2.9581 | |
108 | 1.55148296379565 | 67.7317073170732 | 2.5 | |
109 | 1.2882905080317 | 55.866487804878 | 5.934 | |
110 | 1.22823438859221 | 69.1904390243902 | 3.027 | |
111 | 1.04987773724027 | 71.5780487804878 | 3 | |
113 | 1.56780293460775 | 69.6991219512195 | 2.385 | |
114 | 1.19341560861763 | 42.0236097560976 | 6.357 | |
115 | 1.17490705137329 | 59.5982682926829 | 4.759 | |
116 | 1.26143158372556 | 70.2343902439025 | 1.89 | |
117 | 1.08437726350852 | 75.7707317073171 | 1.67 | |
118 | 1.21965824382299 | 68.3960975609756 | 1.73 | |
119 | 1.287048298054 | 69.1180243902439 | 4.241 | |
120 | 1.68784589068546 | 65.1965853658537 | 3.722 | |
122 | 1.26174595463745 | 67.2274878048781 | 2.191 | |
123 | 1.1061790047597 | 75.7574390243903 | 1.825 | |
125 | 1.47629231088042 | 52.1973902439024 | 6.179 | |
127 | 1.19170503911272 | 71.6113414634146 | 2.065 | |
128 | 1.39231000845141 | 44.7753170731707 | 7.026 | |
129 | 1.89642087314839 | 58.4377317073171 | 3.181 | |
130 | 1.20343630895478 | 60.8246341463415 | 3.492 | |
131 | 1.08278548107708 | 76.6550975609756 | 1.487 | |
133 | 1.19871560370806 | 56.296 | 5.814 | |
134 | 1.08091547434899 | 75.8334146341463 | 2.12 | |
135 | 1.14118335003271 | 70.0585365853659 | 2.37 | |
136 | 1.06386122860518 | 62.5114146341463 | 5.441 | |
137 | 1.42485172703904 | 47.1224146341464 | 6.558 | |
138 | 2.28887483019522 | 71.5817073170732 | 3.211 | |
139 | 1.59609556440032 | 70.5208292682927 | 3.438 | |
140 | 1.5152423685576 | 43.9004634146341 | 6.147 | |
141 | 1.16696625242944 | 60.8613170731707 | 4.97 | |
142 | 1.05596177280425 | 71.5121951219512 | 2.85 | |
143 | 1.39106969698196 | 42.468756097561 | 7.787 | |
144 | 2.36445295804784 | 45.4153658536585 | 6.27 | |
145 | 1.28325448804413 | 65.5775609756098 | 4.519 | |
146 | 1.53000552704651 | 77.2170731707317 | 1.59 | |
147 | 1.28142159394482 | 77.1843902439025 | 1.88 | |
148 | 1.5936962261689 | 55.2424878048781 | 5.01 | |
149 | 1.25540023999952 | 76.1243902439025 | 2.12 | |
150 | 1.19037314154069 | 71.9016585365854 | 6.478 | |
151 | 1.21872003457687 | 72.731756097561 | 2.906 | |
152 | 1.64736735514699 | 66.5088048780488 | 3.617 | |
153 | 1.06049844686605 | 69.9952682926829 | 3.11 | |
154 | 1.28412771142007 | 56.3991951219512 | 4.724 | |
155 | 2.09676210161775 | 65.5123658536585 | 4.177 | |
156 | 2.47336930386215 | 61.2950243902439 | 5.767 | |
157 | 1.84257782838149 | 71.090243902439 | 1.93 | |
158 | 1.25733067218187 | 74.2374878048781 | 2.179 | |
159 | 1.19976692911123 | 68.7226829268293 | 6.526 | |
160 | 1.42941297803338 | 74.3121951219512 | 1.48 | |
162 | 1.28742590694802 | 68.3314634146341 | 4.356 | |
163 | 1.09446100799203 | 74.6084878048781 | 4.02 | |
164 | 1.64943224435117 | 69.7843902439024 | 1.52 | |
166 | 2.6589030225987 | 66.8731707317073 | 1.552 | |
167 | 1.34785713050059 | 27.3345853658537 | 6.516 | |
168 | 1.56515001236383 | 69.5909512195122 | 5.522 | |
169 | 1.07725557325209 | 57.8211219512195 | 5.596 | |
170 | 1.03445322836461 | 70.6707317073171 | 2.696 | |
171 | 1.63469412865598 | 53.2303658536585 | 5.84 | |
172 | 1.40037329673643 | 77.9987804878049 | 2.09 | |
173 | 1.24424996544234 | 76.478756097561 | 1.76 | |
174 | 1.19186997185818 | 73.3048780487805 | 1.33 | |
175 | 1.31313216576669 | 71.7951219512195 | 1.93 | |
176 | 1.27291827408908 | 37.663243902439 | 5.789 | |
178 | 1.38440380906394 | 53.724243902439 | 6.417 | |
179 | 1.34111180668349 | 43.8934634146341 | 6.532 | |
180 | 1.08723804380699 | 67.6476585365854 | 2.64 | |
182 | 1.04621713276473 | 61.2176341463415 | 5.212 | |
183 | 1.31916592000329 | 67.622512195122 | 3.777 | |
185 | 1.49392094137604 | 71.8469268292683 | 4.913 | |
186 | 1.12909684147224 | 58.9767804878049 | 5.392 | |
188 | 1.3423282599877 | 50.4757804878049 | 6.654 | |
189 | 1.27134146702775 | 53.4782682926829 | 6.056 | |
190 | 2.03301188050802 | 72.4528780487805 | 2.001 | |
191 | 1.31951568151527 | 62.4198048780488 | 4.947 | |
192 | 1.12147795107134 | 47.9631463414634 | 5.651 | |
193 | 1.26779193061255 | 62.7055365853659 | 4.071 | |
194 | 1.39623360177902 | 70.7560975609756 | 3.223 | |
195 | 1.04033958889974 | 69.7972195121951 | 4.583 | |
196 | 2.01634097639332 | 64.200756097561 | 2.915 | |
197 | 1.15088228012127 | 69.0518536585366 | 2.179 | |
199 | 1.70991281622117 | 50.0647073170732 | 6.081 | |
200 | 1.98240258249051 | 68.8780487804878 | 1.72 | |
201 | 1.58959113046806 | 46.0791463414634 | 7.071 | |
202 | 3.17892225286502 | 75.6421951219512 | 2.046 | |
203 | 1.24135152509271 | 72.85 | 2.487 | |
204 | 1.62997004168766 | 66.3602195121951 | 4.004 | |
205 | 1.04312446662475 | 69.6311219512195 | 2.86 | |
206 | 1.6187440709278 | 71.415756097561 | 3.292 | |
207 | 1.04263019820326 | 75.400512195122 | 3.047 | |
208 | 2.12552653515558 | 67.292756097561 | 3.261 | |
209 | 1.05228869553717 | 64.1034146341463 | 4.844 | |
210 | 1.05408541924233 | 66.0700243902439 | 4.724 | |
211 | 1.49115880031104 | 56.6032926829268 | 8.312 | |
212 | 1.82399818731373 | 61.3569268292683 | 3.408 | |
213 | 1.39010374158269 | 45.6693902439024 | 6.341 | |
214 | 1.45068171752943 | 58.3153414634146 | 4.839 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.19779067720612 | 72.9353414634146 | 3.784 | |
3 | 1.52985112985556 | 43.2420975609756 | 8.034 | |
5 | 1.25121996771409 | 71.487 | 2.784 | |
6 | 1.24946003646064 | 68.012756097561 | 2.295 | |
7 | 1.45863821400236 | 41.4781951219512 | 7.093 | |
8 | 1.79275819284899 | 72.171756097561 | 2.875 | |
10 | 1.38234384391188 | 76.1063414634146 | 1.48 | |
11 | 1.57171746863843 | 77.8780487804878 | 1.859 | |
12 | 1.03467839810634 | 73.5053170731707 | 2.149 | |
13 | 1.37227190414859 | 64.1540243902439 | 2.7 | |
14 | 1.2678118011396 | 65.9418536585366 | 1.556 | |
15 | 1.06859160170081 | 74.782243902439 | 1.719 | |
16 | 2.45825581445368 | 61.0467317073171 | 4.021 | |
17 | 1.43187406039784 | 76.3453658536585 | 1.61 | |
18 | 1.42031931859632 | 48.7100243902439 | 6.681 | |
19 | 1.39582262158868 | 71.3468292682927 | 1.45 | |
20 | 1.09887488943411 | 72.8810975609756 | 3.303 | |
21 | 1.3331423635052 | 44.753756097561 | 6.432 | |
22 | 1.32122616589264 | 50.0734634146341 | 6.526 | |
24 | 1.07097058498377 | 74.4508292682927 | 3.197 | |
25 | 1.36720949610132 | 60.2537804878049 | 4.742 | |
26 | 2.70469772525152 | 67.5368048780488 | 2.583 | |
27 | 1.06984716684039 | 69.6311707317073 | 2.601 | |
28 | 1.09730351904113 | 54.9941219512195 | 5.155 | |
29 | 1.16650078737647 | 61.9767073170732 | 4.252 | |
30 | 1.43517274918151 | 68.9707317073171 | 1.61 | |
31 | 1.05944151155293 | 72.901 | 4.286 | |
32 | 1.73043890302505 | 77.6851219512195 | 1.7 | |
33 | 1.85233656619418 | 46.492512195122 | 7.14 | |
34 | 1.24021719298337 | 47.3506097560976 | 5.653 | |
35 | 1.21813988290947 | 55.1599268292683 | 5.183 | |
36 | 1.35816436277724 | 78.0853658536586 | 1.51 | |
37 | 1.49741989895154 | 51.7321951219512 | 5.84 | |
38 | 1.50815119274687 | 74.4951951219512 | 2.51 | |
39 | 1.49357019325899 | 52.6668780487805 | 5.62 | |
40 | 5.67030151024517 | 70.0546341463415 | 2.007 | |
41 | 1.80777458247103 | 68.8749024390244 | 2.966 | |
42 | 1.24732269844411 | 76.3815853658537 | 2.917 | |
43 | 1.44739000014325 | 74.7769024390244 | 1.65 | |
44 | 1.08293079167035 | 66.3601219512195 | 4.863 | |
46 | 1.1225407013918 | 76.9679756097561 | 2.278 | |
47 | 1.43710063517312 | 72.7678048780488 | 1.67 | |
48 | 2.22555758088074 | 75.8707317073171 | 1.28 | |
49 | 1.10835915203715 | 52.1314878048781 | 5.779 | |
50 | 1.30967324219134 | 75.1168292682927 | 1.75 | |
52 | 1.37704409998958 | 68.9648780487805 | 3.262 | |
53 | 1.72182519623481 | 67.976 | 3.957 | |
54 | 1.44769554675625 | 70.3200243902439 | 3.368 | |
55 | 1.16587848891114 | 67.909756097561 | 1.45 | |
56 | 2.04766115409794 | 64.1127073170732 | 3.876 | |
57 | 1.2485290979749 | 50.692243902439 | 6.042 | |
58 | 1.85159906394735 | 77.5465853658537 | 1.27 | |
59 | 1.99371345877767 | 48.398 | 6.97 | |
60 | 1.30600009386516 | 75.7051219512195 | 1.81 | |
61 | 1.11761657638669 | 66.2241463414634 | 3.33 | |
62 | 1.04224332690478 | 66.5357073170732 | 4.766 | |
64 | 2.04586902053869 | 77.3 | 1.73 | |
65 | 1.13726939176779 | 61.3609512195122 | 5.015 | |
66 | 2.03352789495105 | 76.3853658536585 | 1.82 | |
67 | 1.040990241879 | 70.7642926829268 | 3.401 | |
68 | 1.30126520772472 | 70.3386097560976 | 2.013 | |
69 | 1.54248480650757 | 57.8559512195122 | 5.278 | |
71 | 1.13609689178654 | 53.3804390243902 | 6.009 | |
72 | 1.36324047441773 | 44.9085853658537 | 6.547 | |
73 | 1.08667258780324 | 47.7722926829268 | 5.902 | |
74 | 1.43996380468673 | 77.390243902439 | 1.34 | |
75 | 1.41988042693932 | 63.8934634146341 | 5.397 | |
76 | 1.04948394133197 | 72.7625609756098 | 3.101 | |
77 | 1.14149724703324 | 43.310243902439 | 6.486 | |
78 | 1.11515885327416 | 61.7111219512195 | 2.534 | |
79 | 1.3302769693471 | 78.0317073170732 | 1.342 | |
80 | 1.31357000899398 | 67.6783658536585 | 4.846 | |
81 | 1.2928189035751 | 71.5224390243903 | 1.52 | |
82 | 1.3735123720862 | 56.3900731707317 | 5.103 | |
83 | 1.43768604598736 | 69.1012195121951 | 1.69 | |
84 | 2.86545624687952 | 63.2545365853659 | 2.849 | |
85 | 1.25700985639088 | 75.2964390243903 | 1.93 | |
86 | 1.31182856989561 | 77.1536585365854 | 2.8 | |
88 | 5.12901025287974 | 59.1864878048781 | 3.676 | |
89 | 1.59483412088558 | 70.4960975609756 | 5.758 | |
90 | 2.04478322987968 | 66.5198536585366 | 3.808 | |
91 | 1.06886239619541 | 78.9346341463415 | 2.22 | |
92 | 2.02555651993999 | 77.51 | 1.25 | |
93 | 1.05004222963393 | 76.053 | 1.45 | |
94 | 1.21223065892632 | 70.3590975609756 | 2.815 | |
95 | 1.26862098964365 | 71.0741219512195 | 5.081 | |
96 | 2.51819271396764 | 79.2936585365854 | 1.458 | |
97 | 1.6914619400993 | 57.7995853658537 | 5.506 | |
98 | 1.28889572363073 | 67.1926829268293 | 3.3 | |
99 | 1.43172251070378 | 55.8160487804878 | 5.301 | |
101 | 1.0898633668509 | 56.2645365853659 | 5.293 | |
103 | 1.62580235321358 | 68.5706097560976 | 2.363 | |
104 | 1.90293815812057 | 72.6819512195122 | 1.67 | |
105 | 1.19034465238512 | 68.249512195122 | 2.8396 | |
108 | 1.54965622172343 | 66.7268292682927 | 2.3 | |
109 | 1.2923716987431 | 56.6543658536585 | 5.782 | |
110 | 1.23141530507577 | 69.427512195122 | 2.977 | |
111 | 1.05018442734848 | 71.6317073170732 | 2.8 | |
113 | 1.57137743479658 | 69.5779756097561 | 2.337 | |
114 | 1.19234453248105 | 41.9878048780488 | 6.282 | |
115 | 1.17664967898961 | 59.1357804878049 | 4.686 | |
116 | 1.26081132132983 | 68.9104878048781 | 1.67 | |
117 | 1.08495658179175 | 75.7121951219512 | 1.69 | |
118 | 1.21749687791619 | 66.7226829268293 | 1.51 | |
119 | 1.29021639057996 | 69.6310487804878 | 3.988 | |
120 | 1.69361626350966 | 65.6904390243903 | 3.573 | |
122 | 1.26160448848851 | 67.0511219512195 | 2.079 | |
123 | 1.10614866879721 | 75.8410243902439 | 1.815 | |
125 | 1.48361883017579 | 53.0399268292683 | 6.126 | |
127 | 1.19102407042988 | 71.7686829268293 | 2.028 | |
128 | 1.39729344739565 | 45.0768780487805 | 7.004 | |
129 | 1.90290443706652 | 59.020756097561 | 3.06 | |
130 | 1.20433047355414 | 60.9470243902439 | 3.227 | |
131 | 1.08359114024939 | 76.9054390243902 | 1.394 | |
133 | 1.20158279068616 | 56.439243902439 | 5.746 | |
134 | 1.08130842087501 | 76.6024390243903 | 2.01 | |
135 | 1.14202857608727 | 70.1073170731707 | 2.21 | |
136 | 1.06468884590986 | 63.3861219512195 | 5.073 | |
137 | 1.42574826259897 | 47.0175853658537 | 6.47 | |
138 | 2.30241694640997 | 71.9741951219512 | 3.111 | |
139 | 1.60375156124258 | 70.7398536585366 | 3.395 | |
140 | 1.52490063357629 | 44.3696341463415 | 6.098 | |
141 | 1.16948533660729 | 60.786243902439 | 4.842 | |
142 | 1.05677805232186 | 71.6560975609756 | 2.7633333333 | |
143 | 1.39770027814103 | 43.0881951219512 | 7.766 | |
144 | 2.38165714415842 | 45.2902682926829 | 6.209 | |
145 | 1.28676305464073 | 66.2114634146342 | 4.381 | |
146 | 1.53185671133084 | 76.9165853658537 | 1.57 | |
147 | 1.28226186640535 | 77.1517073170732 | 1.86 | |
148 | 1.60144929094735 | 55.9456829268293 | 4.912 | |
149 | 1.2568635841369 | 76.4341463414634 | 2.05 | |
150 | 1.19414344241629 | 72.3749756097561 | 6.108 | |
151 | 1.22098492091235 | 72.9176097560976 | 2.864 | |
152 | 1.65351564424738 | 66.9933902439025 | 3.514 | |
153 | 1.06096777902665 | 70.2994390243903 | 3.003 | |
154 | 1.28772548224135 | 56.7384634146342 | 4.701 | |
155 | 2.10951864655844 | 65.6843902439025 | 4.113 | |
156 | 2.49237538507755 | 61.5517317073171 | 5.634 | |
157 | 1.84365069438278 | 71.5951219512195 | 1.85 | |
158 | 1.25841882488014 | 74.1916585365854 | 2.153 | |
159 | 1.20430565200192 | 69.0443658536585 | 6.474 | |
160 | 1.42968526111562 | 74.5121951219512 | 1.53 | |
162 | 1.29096063712132 | 68.5123658536586 | 4.266 | |
163 | 1.0946948718938 | 74.8385853658537 | 3.902 | |
164 | 1.64899028042465 | 69.5634146341464 | 1.44 | |
166 | 2.65795995177242 | 64.9358536585366 | 1.385 | |
167 | 1.33487585349227 | 26.8187073170732 | 6.316 | |
168 | 1.57319016763748 | 69.9278780487805 | 5.352 | |
169 | 1.07838603852691 | 58.4545853658537 | 5.461 | |
171 | 1.64873654692977 | 53.5743658536585 | 5.784 | |
172 | 1.40153875887419 | 78.0604878048781 | 2 | |
173 | 1.24736733517897 | 76.857 | 1.778 | |
174 | 1.19164062954195 | 73.2536585365854 | 1.33 | |
175 | 1.31373122927799 | 72.4487804878049 | 1.87 | |
176 | 1.27154841543062 | 37.3456341463415 | 5.822 | |
178 | 1.39022485393083 | 53.9326829268293 | 6.298 | |
179 | 1.34043903844831 | 43.9059512195122 | 6.508 | |
180 | 1.08783284376655 | 67.7091951219512 | 2.635 | |
182 | 1.0467544586411 | 61.3667317073171 | 5.129 | |
183 | 1.32165520694836 | 68.1965609756098 | 3.695 | |
185 | 1.50089397201195 | 72.2017804878049 | 4.711 | |
186 | 1.13040047994417 | 58.3847317073171 | 5.211 | |
188 | 1.34778579666505 | 50.2989512195122 | 6.647 | |
189 | 1.27463183950662 | 53.6878780487805 | 5.932 | |
190 | 2.03666608136068 | 72.3788536585366 | 1.952 | |
191 | 1.32221504735485 | 62.3032682926829 | 4.825 | |
192 | 1.12353649411794 | 49.0801219512195 | 5.874 | |
193 | 1.27156487588562 | 62.7733658536585 | 3.898 | |
194 | 1.40012665525465 | 70.7536585365854 | 3.025 | |
195 | 1.04036642164563 | 69.9007317073171 | 4.547 | |
196 | 2.02448438632498 | 64.8002195121951 | 2.856 | |
197 | 1.15130637598617 | 69.0621463414634 | 2.06 | |
199 | 1.72181872158284 | 49.8359756097561 | 6.013 | |
200 | 1.98267520609525 | 67.8780487804878 | 1.6 | |
201 | 1.59958396199481 | 45.5394878048781 | 7.057 | |
202 | 3.19333664663493 | 75.419512195122 | 2.0195 | |
203 | 1.24223987019396 | 73.0470975609756 | 2.463 | |
204 | 1.6371712770053 | 66.2741707317073 | 3.8 | |
205 | 1.0431450633861 | 69.7876341463415 | 2.811 | |
206 | 1.62571397215363 | 71.769512195122 | 3.218 | |
207 | 1.04281778454486 | 75.6949024390244 | 2.996 | |
208 | 2.13530491144013 | 68.0933414634146 | 3.071 | |
209 | 1.05309172490958 | 64.5593414634146 | 4.804 | |
210 | 1.05436497465138 | 66.5691463414634 | 4.709 | |
211 | 1.50391649676512 | 56.8416585365854 | 8.1 | |
212 | 1.83274647954388 | 61.0248536585366 | 3.296 | |
213 | 1.39466933297237 | 44.8484146341463 | 6.294 | |
214 | 1.45537072277646 | 56.7708048780488 | 4.674 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.2029185980901 | 73.1870975609756 | 3.584 | |
3 | 1.55225306632163 | 43.5426585365854 | 8.052 | |
5 | 1.25000456476337 | 71.6177317073171 | 2.683 | |
6 | 1.24648444131688 | 68.2789268292683 | 2.176 | |
7 | 1.46606973011725 | 41.7162195121951 | 7.063 | |
8 | 1.79784795264655 | 72.3984390243903 | 2.827 | |
10 | 1.38308101581182 | 76.4570731707317 | 1.44 | |
11 | 1.57475261932243 | 77.8780487804878 | 1.842 | |
12 | 1.03578220931876 | 73.535756097561 | 2.108 | |
13 | 1.37479901026779 | 64.2815853658537 | 2.52 | |
14 | 1.2599866541601 | 66.730243902439 | 1.534 | |
15 | 1.06868962028171 | 74.8740731707317 | 1.705 | |
16 | 2.47386008635754 | 61.5832195121951 | 3.867 | |
17 | 1.43254058201443 | 76.6917073170732 | 1.55 | |
18 | 1.42609485052912 | 48.8308292682927 | 6.62 | |
19 | 1.39515051511301 | 71.2087804878049 | 1.37 | |
20 | 1.10012670793755 | 73.0138048780488 | 3.188 | |
21 | 1.33614967748456 | 44.5784634146342 | 6.381 | |
22 | 1.32706119765794 | 50.5224146341464 | 6.446 | |
24 | 1.0719699736849 | 74.7098780487805 | 3.064 | |
25 | 1.37149480100447 | 60.6863902439024 | 4.663 | |
26 | 2.71779487964833 | 67.9408780487805 | 2.537 | |
27 | 1.07046912152719 | 69.8130975609756 | 2.566 | |
28 | 1.09659062538235 | 55.8469756097561 | 4.929 | |
29 | 1.16868541410463 | 60.7116341463415 | 4.117 | |
30 | 1.43491747782192 | 68.7682926829268 | 1.51 | |
31 | 1.06004995431092 | 73.0197317073171 | 4.201 | |
32 | 1.7339589226959 | 77.8619512195122 | 1.6695 | |
33 | 1.86798588983041 | 46.1999024390244 | 7.138 | |
34 | 1.24310806798897 | 46.7385853658537 | 5.622 | |
35 | 1.2210642666777 | 54.8562195121951 | 5.137 | |
36 | 1.35959633020133 | 78.35 | 1.49 | |
37 | 1.50523770467133 | 51.3852195121951 | 5.706 | |
38 | 1.51261809636049 | 74.7656829268293 | 2.453 | |
39 | 1.50060207608848 | 52.3505609756098 | 5.502 | |
40 | 5.69676968739724 | 70.2429268292683 | 1.927 | |
41 | 1.81524402773537 | 69.1393414634147 | 2.92 | |
42 | 1.25034518994832 | 76.5954390243902 | 2.835 | |
43 | 1.44857314342113 | 74.9738536585366 | 1.628 | |
44 | 1.08408379635792 | 66.7704390243903 | 4.708 | |
46 | 1.12391893467555 | 77.1159024390244 | 2.206 | |
47 | 1.43717964408647 | 72.9726829268293 | 1.44 | |
48 | 2.22768508609714 | 76.2707317073171 | 1.24 | |
49 | 1.10928552227786 | 52.3790731707317 | 5.633 | |
50 | 1.31019733804222 | 75.3751219512195 | 1.806 | |
52 | 1.38061476309717 | 69.2971219512195 | 3.195 | |
53 | 1.72941622029806 | 68.2178780487805 | 3.697 | |
54 | 1.45261167290679 | 70.7894878048781 | 3.292 | |
55 | 1.16410523032316 | 66.5 | 1.37 | |
56 | 2.05579253997134 | 64.8499756097561 | 3.757 | |
57 | 1.24932125016406 | 51.5528780487805 | 5.97 | |
58 | 1.85274551604203 | 77.9014634146342 | 1.2 | |
59 | 2.0107233939723 | 48.8530487804878 | 6.898 | |
60 | 1.30666129109075 | 76.3956097560976 | 1.85 | |
61 | 1.11845870676372 | 66.4335365853659 | 3.305 | |
62 | 1.04270524493554 | 66.648243902439 | 4.716 | |
64 | 2.04782027806062 | 77.6487804878049 | 1.73 | |
65 | 1.13909196188968 | 61.2554878048781 | 4.906 | |
66 | 2.03484451537149 | 76.8853658536585 | 1.74 | |
67 | 1.04123807028244 | 71.2583170731707 | 3.254 | |
68 | 1.29974076346932 | 70.396512195122 | 1.946 | |
69 | 1.54980536015702 | 57.9690731707317 | 5.166 | |
71 | 1.13801041493137 | 53.5204634146342 | 5.974 | |
72 | 1.37274525398198 | 45.2789512195122 | 6.471 | |
73 | 1.08816695431039 | 48.0313902439024 | 5.901 | |
74 | 1.44180066164485 | 77.6390243902439 | 1.36 | |
75 | 1.42478558869376 | 64.4368292682927 | 5.32 | |
76 | 1.05003927059069 | 72.9715609756098 | 3.086 | |
77 | 1.14312392311785 | 43.4850243902439 | 6.404 | |
78 | 1.11530542303823 | 61.9812195121951 | 2.526 | |
79 | 1.33402170374315 | 78.5292682926829 | 1.355 | |
80 | 1.31759776044051 | 68.1419268292683 | 4.735 | |
81 | 1.29313478336811 | 71.8034146341464 | 1.47 | |
82 | 1.3771129424226 | 56.7854146341463 | 4.997 | |
83 | 1.43738637155649 | 69.469756097561 | 1.64 | |
84 | 2.88060713575435 | 63.6206097560976 | 2.771 | |
85 | 1.25751797455665 | 75.4376341463415 | 1.86 | |
86 | 1.3158976287155 | 77.4024390243903 | 2.9 | |
87 | 1.03447176055087 | 76.5292682926829 | 1.8 | |
88 | 5.16770514569797 | 59.4991707317073 | 3.594 | |
89 | 1.60421618558915 | 70.9761707317073 | 5.676 | |
90 | 2.05079527563131 | 67.4774878048781 | 3.496 | |
91 | 1.06917027170071 | 79.2470731707317 | 2.14 | |
92 | 2.02566100266049 | 77.749756097561 | 1.22 | |
93 | 1.05014679345019 | 76.2473902439024 | 1.441 | |
94 | 1.21305662562785 | 70.2983902439024 | 2.778 | |
95 | 1.27390900949394 | 71.2508292682927 | 4.877 | |
96 | 2.5207812075514 | 79.6870731707317 | 1.5 | |
97 | 1.7020285590919 | 57.0174634146342 | 5.366 | |
98 | 1.28884446434617 | 66.0390243902439 | 3.14 | |
99 | 1.4392214917528 | 55.9238536585366 | 5.113 | |
101 | 1.09097337970337 | 56.4844390243903 | 5.257 | |
103 | 1.63040402452581 | 67.4401707317073 | 2.338 | |
104 | 1.90699803047476 | 73.0381707317073 | 1.67 | |
105 | 1.19189418351141 | 68.4 | 2.7064 | |
108 | 1.54568145653104 | 65.6731707317073 | 2.28 | |
109 | 1.29631072862424 | 57.430756097561 | 5.603 | |
110 | 1.23434747032019 | 69.6444146341463 | 2.926 | |
111 | 1.05049145406398 | 72.1878048780488 | 2.8 | |
113 | 1.57533199177834 | 69.3952682926829 | 2.289 | |
114 | 1.19295936633348 | 42.0485853658537 | 6.213 | |
115 | 1.17830055653402 | 58.2461219512195 | 4.617 | |
116 | 1.25990601617867 | 68.530243902439 | 1.57 | |
117 | 1.0855482048101 | 76.3707317073171 | 1.72 | |
118 | 1.21567885157594 | 65.6643902439025 | 1.39 | |
119 | 1.29327628182977 | 70.1460731707317 | 3.764 | |
120 | 1.69921039952443 | 66.1623414634146 | 3.427 | |
122 | 1.26121506153944 | 66.8693902439024 | 1.975 | |
123 | 1.10608230044497 | 75.8576341463415 | 1.813 | |
125 | 1.49113617022407 | 53.9310243902439 | 6.066 | |
127 | 1.19053179579404 | 71.9269512195122 | 1.985 | |
128 | 1.40247986919407 | 45.3839512195122 | 6.98 | |
129 | 1.90937326234404 | 59.5732926829268 | 2.951 | |
130 | 1.2051123038366 | 61.0843902439024 | 2.999 | |
131 | 1.0843342577649 | 77.1502682926829 | 1.312 | |
133 | 1.20452101895653 | 56.5569756097561 | 5.673 | |
134 | 1.08167602609712 | 76.9 | 1.89 | |
135 | 1.14303317486254 | 70.1585365853659 | 2.25 | |
136 | 1.06549640015311 | 64.2990731707317 | 4.704 | |
137 | 1.42685762822418 | 46.8521707317073 | 6.393 | |
138 | 2.31576231173861 | 72.3622195121951 | 3.007 | |
139 | 1.61144546516539 | 70.9538780487805 | 3.349 | |
140 | 1.53468712384802 | 44.884756097561 | 6.046 | |
141 | 1.17199749638935 | 60.6280243902439 | 4.715 | |
142 | 1.05765391542387 | 70.6731707317073 | 2.6766666667 | |
143 | 1.40459711204514 | 43.7621219512195 | 7.738 | |
144 | 2.39901717226919 | 45.1797317073171 | 6.152 | |
145 | 1.29018781713572 | 66.7857073170732 | 4.225 | |
146 | 1.53346330446554 | 77.3751219512195 | 1.57 | |
147 | 1.28306799909714 | 77.689756097561 | 1.87 | |
148 | 1.60930559907014 | 56.6893658536585 | 4.809 | |
149 | 1.25858003692844 | 76.8829268292683 | 2 | |
150 | 1.19723323581744 | 72.7477317073171 | 5.734 | |
151 | 1.22327226200723 | 73.1011219512195 | 2.833 | |
152 | 1.6595715498032 | 67.4853902439025 | 3.413 | |
153 | 1.06145687101606 | 70.5870243902439 | 2.901 | |
154 | 1.29141737513162 | 57.0559268292683 | 4.685 | |
155 | 2.12223857984579 | 65.8529512195122 | 4.056 | |
156 | 2.51156392878418 | 61.8019756097561 | 5.499 | |
157 | 1.84454144177708 | 71.6951219512195 | 1.798 | |
158 | 1.25962431675025 | 74.1976829268293 | 2.123 | |
159 | 1.20894676036725 | 69.3604878048781 | 6.38 | |
160 | 1.43014786298104 | 74.9146341463415 | 1.44 | |
162 | 1.29444819213261 | 68.693756097561 | 4.177 | |
163 | 1.09499832652215 | 75.0631463414634 | 3.774 | |
164 | 1.64851854783917 | 69.509756097561 | 1.41 | |
166 | 2.65693256609353 | 64.4670731707317 | 1.4 | |
167 | 1.32540650212094 | 27.9363414634146 | 6.167 | |
168 | 1.58023347611246 | 70.2197804878049 | 5.174 | |
169 | 1.07952999297737 | 59.0837317073171 | 5.326 | |
171 | 1.66197845316735 | 53.9213658536585 | 5.727 | |
172 | 1.40296940865685 | 78.650243902439 | 1.88 | |
173 | 1.25128332180652 | 76.2975609756098 | 1.75 | |
174 | 1.19152938273332 | 73.4048780487805 | 1.32 | |
175 | 1.31435084923111 | 72.3 | 1.67 | |
176 | 1.27018551812733 | 37.1876097560976 | 5.847 | |
178 | 1.39590334636024 | 54.1421219512195 | 6.177 | |
179 | 1.3407017262959 | 44.1848536585366 | 6.492 | |
180 | 1.08842531733872 | 67.7620975609756 | 2.653 | |
182 | 1.04724808672114 | 61.5152682926829 | 5.052 | |
183 | 1.32396078762694 | 68.6201219512195 | 3.614 | |
185 | 1.50791926220496 | 72.5319756097561 | 4.52 | |
186 | 1.13167167627624 | 57.523512195122 | 5.035 | |
188 | 1.35341142703257 | 50.0880975609756 | 6.641 | |
189 | 1.27794988668422 | 53.8771707317073 | 5.809 | |
190 | 2.04042239389374 | 72.3063902439025 | 1.906 | |
191 | 1.32467041140664 | 62.2857073170732 | 4.702 | |
192 | 1.12514882284379 | 50.1846341463415 | 6.125 | |
193 | 1.27507259277744 | 62.8820975609756 | 3.707 | |
194 | 1.40376450677207 | 70.9536585365854 | 2.9 | |
195 | 1.04040125466615 | 70.0064634146342 | 4.501 | |
196 | 2.0325857120892 | 65.4236585365854 | 2.797 | |
197 | 1.15166718206962 | 69.0458780487805 | 1.957 | |
199 | 1.73339667774374 | 49.6660243902439 | 5.946 | |
200 | 1.98024083653788 | 67.8731707317073 | 1.5 | |
201 | 1.60954460679422 | 45.1223658536585 | 7.039 | |
202 | 3.20682675045236 | 75.5743902439025 | 2.0015 | |
203 | 1.24313098361845 | 73.2565365853659 | 2.432 | |
204 | 1.64345838378795 | 66.2601219512195 | 3.537 | |
205 | 1.04315192678855 | 69.9158292682927 | 2.76 | |
206 | 1.63257378849644 | 72.1231707317073 | 3.147 | |
207 | 1.04297742898432 | 75.9821951219512 | 2.92 | |
208 | 2.14488338777474 | 68.8048292682927 | 2.87 | |
209 | 1.05385237893837 | 65.0121463414634 | 4.761 | |
210 | 1.05463327590106 | 67.0518048780488 | 4.698 | |
211 | 1.51607261844152 | 57.0915365853659 | 7.868 | |
212 | 1.84169379547615 | 60.5388292682927 | 3.196 | |
213 | 1.39938762433447 | 44.1265609756098 | 6.257 | |
214 | 1.45977685520802 | 55.0080243902439 | 4.516 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.2080593578115 | 73.4348536585366 | 3.394 | |
3 | 1.57040597698696 | 43.8409024390244 | 8.058 | |
5 | 1.24902133414213 | 71.8702926829268 | 2.604 | |
6 | 1.24396460332611 | 68.6204634146342 | 2.053 | |
7 | 1.47319382985113 | 42.0509268292683 | 7.03 | |
8 | 1.80286428665406 | 72.6236341463415 | 2.774 | |
10 | 1.38337466693236 | 76.7156097560976 | 1.4 | |
11 | 1.57823615122607 | 77.8292682926829 | 1.822 | |
12 | 1.03670804373311 | 73.5636097560976 | 2.064 | |
13 | 1.37696564601557 | 64.5758292682927 | 2.29 | |
14 | 1.25501208061785 | 68.0681951219512 | 1.524 | |
15 | 1.06878709557562 | 74.9593658536585 | 1.688 | |
16 | 2.48947574932904 | 62.1226829268293 | 3.723 | |
17 | 1.43299410611731 | 76.8407317073171 | 1.57 | |
18 | 1.43198978188779 | 48.979756097561 | 6.558 | |
19 | 1.39427071206318 | 71.0534146341464 | 1.23 | |
20 | 1.1014635404248 | 73.1470243902439 | 3.085 | |
21 | 1.33882260992687 | 44.588512195122 | 6.316 | |
22 | 1.33264067591132 | 50.9412682926829 | 6.364 | |
24 | 1.07294489028419 | 74.9674146341464 | 2.929 | |
25 | 1.37574505175832 | 61.0958780487805 | 4.575 | |
26 | 2.73098609978039 | 68.3406341463415 | 2.502 | |
27 | 1.07102246512144 | 70.0563658536585 | 2.514 | |
28 | 1.09635243034816 | 56.7233902439024 | 4.7 | |
29 | 1.17078933751789 | 59.1978048780488 | 3.989 | |
30 | 1.43421470777502 | 68.4609756097561 | 1.386 | |
31 | 1.06075687588695 | 73.1276097560976 | 4.108 | |
32 | 1.73700517845519 | 77.9775609756098 | 1.639 | |
33 | 1.8817451050032 | 45.8788048780488 | 7.125 | |
34 | 1.24594890171571 | 46.1062926829268 | 5.596 | |
35 | 1.22409187426779 | 54.6093902439024 | 5.096 | |
36 | 1.36080112122906 | 78.4170731707317 | 1.47 | |
37 | 1.51284739663265 | 51.0513658536585 | 5.581 | |
38 | 1.51685000482137 | 75.0414634146342 | 2.388 | |
39 | 1.50762635598074 | 51.9919024390244 | 5.384 | |
40 | 5.72235469723087 | 70.4247317073171 | 1.868 | |
41 | 1.82268483673933 | 69.4366829268293 | 2.872 | |
42 | 1.25345411930476 | 76.8088048780488 | 2.758 | |
43 | 1.44966917133809 | 75.206756097561 | 1.614 | |
44 | 1.08517438578466 | 67.1823170731707 | 4.55 | |
46 | 1.12527247731112 | 77.2623170731707 | 2.124 | |
47 | 1.43704554065787 | 73.0748780487805 | 1.278 | |
48 | 2.2294906895658 | 76.4219512195122 | 1.25 | |
49 | 1.11023038725763 | 52.6241951219512 | 5.486 | |
50 | 1.31100756629484 | 75.2126829268293 | 1.807 | |
52 | 1.38409065752311 | 69.5917317073171 | 3.13 | |
53 | 1.73652111181917 | 68.4658780487805 | 3.446 | |
54 | 1.4574996315866 | 71.252 | 3.226 | |
55 | 1.16263920589537 | 67.5439024390244 | 1.32 | |
56 | 2.06397004835295 | 65.5934634146342 | 3.659 | |
57 | 1.25087093910289 | 52.4046097560976 | 5.889 | |
58 | 1.853743917773 | 77.9807317073171 | 1.18 | |
59 | 2.02728493208494 | 49.3136341463415 | 6.805 | |
60 | 1.30724791109895 | 76.409512195122 | 1.81 | |
61 | 1.11923141757658 | 66.6389024390244 | 3.276 | |
62 | 1.04302886328168 | 66.759756097561 | 4.664 | |
64 | 2.04971675815445 | 77.7512195121951 | 1.74 | |
65 | 1.14092327090324 | 61.0976097560976 | 4.774 | |
66 | 2.03621442631576 | 76.8365853658537 | 1.71 | |
67 | 1.0414283860368 | 71.6853658536585 | 3.116 | |
68 | 1.29577485529833 | 70.4902682926829 | 1.88 | |
69 | 1.55685748273231 | 57.9929268292683 | 5.058 | |
71 | 1.1399525306454 | 53.7135365853659 | 5.933 | |
72 | 1.38068317860792 | 45.6518536585366 | 6.393 | |
73 | 1.08965808997379 | 48.2426097560976 | 5.897 | |
74 | 1.44350145359405 | 77.5853658536585 | 1.32 | |
75 | 1.42971261346163 | 64.9863902439024 | 5.237 | |
76 | 1.05054641096433 | 73.1750731707317 | 3.067 | |
77 | 1.14475814827791 | 43.6752926829268 | 6.312 | |
78 | 1.11548963576224 | 62.2924878048781 | 2.518 | |
79 | 1.33734929389084 | 78.6829268292683 | 1.295 | |
80 | 1.32150017678589 | 68.607 | 4.617 | |
81 | 1.29373401911597 | 72.0843902439024 | 1.58 | |
82 | 1.38070914119086 | 57.1460731707317 | 4.889 | |
83 | 1.43708179117418 | 69.7917073170732 | 1.57 | |
84 | 2.8954440265538 | 63.9777073170732 | 2.699 | |
85 | 1.25818034884526 | 75.5708536585366 | 1.87 | |
86 | 1.32014627812374 | 77.4512195121951 | 2.9 | |
88 | 5.20605900491191 | 59.8315609756098 | 3.512 | |
89 | 1.61381099106492 | 71.2347073170732 | 5.595 | |
90 | 2.05786344384754 | 68.1544634146342 | 3.21 | |
91 | 1.06936360100677 | 77.9843902439024 | 2.08 | |
92 | 2.0256691504035 | 78.0143902439025 | 1.18 | |
93 | 1.05026881650545 | 76.4373414634146 | 1.43 | |
94 | 1.21392351332378 | 70.2634634146341 | 2.744 | |
95 | 1.27839964787182 | 71.4124878048781 | 4.695 | |
96 | 2.52368724732607 | 79.5363414634147 | 1.422 | |
97 | 1.7122811624275 | 56.1492195121951 | 5.251 | |
98 | 1.29029224325385 | 65.790243902439 | 3.31 | |
99 | 1.44630573118187 | 56.0652682926829 | 4.903 | |
100 | 1.03569883157481 | 59.4390243902439 | 4.5 | |
101 | 1.09210870169699 | 56.7098048780488 | 5.246 | |
103 | 1.63457596690257 | 66.2719024390244 | 2.306 | |
104 | 1.91350492432338 | 73.3943902439024 | 1.65 | |
105 | 1.19343130211889 | 68.5451219512195 | 2.7014 | |
106 | 1.17093395533929 | 73.2942195121951 | 2.525 | |
108 | 1.54091923389499 | 64.919512195122 | 2.26 | |
109 | 1.3000454083145 | 58.1821463414634 | 5.4 | |
110 | 1.2366565288286 | 69.8400731707317 | 2.868 | |
111 | 1.05081629758977 | 71.4341463414634 | 2.9 | |
113 | 1.57925955195623 | 69.2288536585366 | 2.245 | |
114 | 1.19585241933843 | 42.247 | 6.149 | |
115 | 1.17978434437435 | 56.9378780487805 | 4.548 | |
116 | 1.25890559140699 | 69.0063414634147 | 1.55 | |
117 | 1.08616262052629 | 76.5121951219512 | 1.68 | |
118 | 1.21414212926621 | 66.3912195121951 | 1.25 | |
119 | 1.29620067583215 | 70.6531219512195 | 3.575 | |
120 | 1.70463957533478 | 66.6133170731707 | 3.286 | |
122 | 1.26054456050646 | 66.7158780487805 | 1.882 | |
123 | 1.10600794649702 | 75.8041219512195 | 1.815 | |
125 | 1.49885345845354 | 54.8547317073171 | 5.999 | |
127 | 1.19044249918463 | 72.087512195122 | 1.937 | |
128 | 1.40772078022297 | 45.697512195122 | 6.955 | |
129 | 1.91590138526681 | 60.0783414634146 | 2.852 | |
130 | 1.20590235722691 | 61.2615609756098 | 2.808 | |
131 | 1.08506370399404 | 77.3910975609756 | 1.242 | |
133 | 1.20752860890112 | 56.6527073170732 | 5.597 | |
134 | 1.08195790321018 | 77.1439024390244 | 1.83 | |
135 | 1.14365368078629 | 70.3258536585366 | 2.14 | |
136 | 1.066293280401 | 65.2537317073171 | 4.345 | |
137 | 1.42928606332409 | 46.6426829268293 | 6.325 | |
138 | 2.32871821228192 | 72.7376341463415 | 2.906 | |
139 | 1.61924840939663 | 71.1634390243903 | 3.301 | |
140 | 1.5437509558163 | 45.4109512195122 | 5.993 | |
141 | 1.17458155611326 | 60.3607317073171 | 4.59 | |
142 | 1.05859158652907 | 72.009756097561 | 2.59 | |
143 | 1.41174630261103 | 44.477512195122 | 7.706 | |
144 | 2.41658247850469 | 45.1157073170732 | 6.099 | |
145 | 1.29343322957913 | 67.3041951219512 | 4.055 | |
146 | 1.53478303806489 | 77.4046341463415 | 1.53 | |
147 | 1.28380496974063 | 77.7365853658537 | 1.87 | |
148 | 1.61717932664838 | 57.4686341463415 | 4.701 | |
149 | 1.26048420501176 | 76.7341463414634 | 1.99 | |
150 | 1.19934997043381 | 73.0430243902439 | 5.361 | |
151 | 1.22558892333616 | 73.2832195121951 | 2.812 | |
152 | 1.66554843978757 | 67.9847804878049 | 3.317 | |
153 | 1.06199899898495 | 70.867512195122 | 2.805 | |
154 | 1.29520888741421 | 57.3519512195122 | 4.671 | |
155 | 2.13499542653845 | 66.0185365853659 | 4.006 | |
156 | 2.53126414232772 | 62.0457317073171 | 5.359 | |
157 | 1.84511485838178 | 71.8926829268293 | 1.61 | |
158 | 1.2608287077554 | 74.2885853658537 | 2.087 | |
159 | 1.21369263452697 | 69.6675609756098 | 6.244 | |
160 | 1.43071322318436 | 75.3121951219512 | 1.38 | |
161 | 1.01341989099251 | 71.8446341463415 | 2.8605 | |
162 | 1.29788976289369 | 68.8802195121951 | 4.09 | |
163 | 1.09558569472508 | 75.2827317073171 | 3.642 | |
164 | 1.64786262483101 | 69.4560975609756 | 1.343 | |
166 | 2.65584306486427 | 65.2212195121951 | 1.34 | |
167 | 1.32356332144206 | 30.4731707317073 | 6.068 | |
168 | 1.58611039592052 | 70.4726829268293 | 4.989 | |
169 | 1.08068365128713 | 59.6959512195122 | 5.197 | |
171 | 1.67370885642595 | 54.2909756097561 | 5.668 | |
172 | 1.4040289016299 | 78.7404878048781 | 1.73 | |
173 | 1.25513921126061 | 76.3951219512195 | 1.71 | |
174 | 1.19155011054832 | 73.9585365853659 | 1.29 | |
175 | 1.3148117800852 | 72.2536585365854 | 1.52 | |
176 | 1.26934711894414 | 37.2087073170732 | 5.86 | |
178 | 1.40137663164118 | 54.3630731707317 | 6.059 | |
179 | 1.34253111805757 | 44.7121707317073 | 6.486 | |
180 | 1.0890311044423 | 67.8058536585366 | 2.684 | |
182 | 1.04768540231832 | 61.661243902439 | 4.977 | |
183 | 1.32596200066934 | 68.9138048780488 | 3.529 | |
185 | 1.51502284973609 | 72.8355365853659 | 4.342 | |
186 | 1.13301465131029 | 56.3937317073171 | 4.867 | |
188 | 1.35925016972697 | 49.8497317073171 | 6.636 | |
189 | 1.28135897395586 | 54.0500975609756 | 5.686 | |
190 | 2.04479672917532 | 72.2611707317073 | 1.862 | |
191 | 1.32699146870898 | 62.3746097560976 | 4.581 | |
192 | 1.12610531282165 | 51.2641707317073 | 6.384 | |
193 | 1.27816718961003 | 63.0307317073171 | 3.512 | |
194 | 1.40700849995407 | 71.3536585365854 | 2.67 | |
195 | 1.04045070262273 | 70.1192682926829 | 4.447 | |
196 | 2.04069965825295 | 66.0730975609756 | 2.734 | |
197 | 1.15195278614536 | 68.9970975609756 | 1.87 | |
199 | 1.7443806738807 | 49.573756097561 | 5.883 | |
200 | 1.97637423216133 | 67.1170731707317 | 1.4 | |
201 | 1.61947779954974 | 44.8652926829268 | 7.018 | |
202 | 3.22000562329043 | 75.6219512195122 | 1.978 | |
203 | 1.24401049911534 | 73.4762682926829 | 2.6 | |
204 | 1.64929993191452 | 66.3176097560976 | 3.596 | |
205 | 1.04315042551255 | 70.0184146341464 | 2.703 | |
206 | 1.63934831312055 | 72.169512195122 | 3.082 | |
207 | 1.04308496197711 | 76.2629024390244 | 2.82 | |
208 | 2.15431023534779 | 69.4316829268293 | 2.666 | |
209 | 1.05454002965316 | 65.4593414634146 | 4.716 | |
210 | 1.05486519216395 | 67.5150243902439 | 4.688 | |
211 | 1.52709960831991 | 57.3789024390244 | 7.622 | |
212 | 1.85084454200891 | 59.8874146341464 | 3.11 | |
213 | 1.40435858564079 | 43.5152682926829 | 6.23 | |
214 | 1.46399869509307 | 53.0983902439024 | 4.369 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.21352557455425 | 73.6800975609756 | 3.217 | |
3 | 1.58370484643589 | 44.1368048780488 | 8.043 | |
5 | 1.24839564098477 | 72.2410731707317 | 2.54 | |
6 | 1.24207010827603 | 69.0294390243903 | 1.938 | |
7 | 1.47993221010236 | 42.5016097560976 | 6.997 | |
8 | 1.80781598644005 | 72.8462926829268 | 2.717 | |
10 | 1.38363381549926 | 76.9836585365854 | 1.42 | |
11 | 1.58204872630738 | 78.0780487804878 | 1.796 | |
12 | 1.03742436455493 | 73.5894390243902 | 2.021 | |
13 | 1.37887571514259 | 64.994 | 2.06 | |
14 | 1.25372337432767 | 69.7141951219512 | 1.518 | |
15 | 1.06888376118905 | 75.0426341463415 | 1.667 | |
16 | 2.50512135005254 | 62.6621219512195 | 3.589 | |
17 | 1.43341764755123 | 77.1873170731707 | 1.55 | |
18 | 1.43800391904718 | 49.1594390243902 | 6.495 | |
19 | 1.39325442489975 | 70.8973170731707 | 1.24 | |
20 | 1.10290959489968 | 73.280243902439 | 2.994 | |
21 | 1.34112442214988 | 44.7584146341463 | 6.233 | |
22 | 1.33790348167723 | 51.324512195122 | 6.282 | |
24 | 1.0738912937248 | 75.2239268292683 | 2.798 | |
25 | 1.37994780916141 | 61.4872926829268 | 4.482 | |
26 | 2.74430942039567 | 68.7315609756098 | 2.474 | |
27 | 1.07149364685825 | 70.3480487804878 | 2.443 | |
28 | 1.0966869642674 | 57.6294390243903 | 4.474 | |
29 | 1.17281132810723 | 57.4776585365854 | 3.866 | |
30 | 1.43348945003124 | 68.6121951219512 | 1.31 | |
31 | 1.06157586936127 | 73.2211463414634 | 4.008 | |
32 | 1.74098628443014 | 78.2304878048781 | 1.592 | |
33 | 1.89332018255179 | 45.5966829268293 | 7.102 | |
34 | 1.24874025533563 | 45.4801707317073 | 5.573 | |
35 | 1.22724708846128 | 54.4214634146341 | 5.06 | |
36 | 1.36159956850535 | 78.8960975609756 | 1.5 | |
37 | 1.52028165828329 | 50.7471219512195 | 5.469 | |
38 | 1.52081380369161 | 75.3396341463415 | 2.321 | |
39 | 1.51464012538144 | 51.5999024390244 | 5.273 | |
40 | 5.74716829502175 | 70.5990243902439 | 1.828 | |
41 | 1.83010095693573 | 69.7576097560976 | 2.823 | |
42 | 1.25666192253758 | 77.0216585365854 | 2.686 | |
43 | 1.45067126532204 | 75.457243902439 | 1.609 | |
44 | 1.08618034100821 | 67.6031951219512 | 4.388 | |
46 | 1.12658479547005 | 77.405756097561 | 2.035 | |
47 | 1.43679110955307 | 73.7146341463415 | 1.185 | |
48 | 2.23127167544534 | 76.6731707317073 | 1.3 | |
49 | 1.11122431572341 | 52.8653902439024 | 5.339 | |
50 | 1.31189011664669 | 75.5914634146342 | 1.747 | |
52 | 1.38746365726281 | 69.8596097560976 | 3.069 | |
53 | 1.74314766203753 | 68.7344878048781 | 3.214 | |
54 | 1.46235603271793 | 71.7094634146342 | 3.167 | |
55 | 1.16143754203697 | 69.6121951219512 | 1.335 | |
56 | 2.07224626687044 | 66.3355853658537 | 3.58 | |
57 | 1.25327886600475 | 53.227 | 5.803 | |
58 | 1.85473161438438 | 78.1204878048781 | 1.15 | |
59 | 2.04330013278184 | 49.7752682926829 | 6.693 | |
60 | 1.30775301295257 | 76.6934146341464 | 1.76 | |
61 | 1.11993257822338 | 66.840243902439 | 3.244 | |
62 | 1.04319758352454 | 66.8677073170732 | 4.608 | |
64 | 2.05157805714514 | 77.9536585365854 | 1.75 | |
65 | 1.14276453829213 | 60.8794390243903 | 4.625 | |
66 | 2.03753467524307 | 77.0878048780488 | 1.72 | |
67 | 1.04154950790415 | 72.0596829268293 | 2.988 | |
68 | 1.29206256687531 | 70.6292926829268 | 1.815 | |
69 | 1.5636010384466 | 57.9684878048781 | 4.957 | |
71 | 1.14193445422159 | 53.9596341463415 | 5.885 | |
72 | 1.3868943235754 | 46.0488292682927 | 6.313 | |
73 | 1.0911485901749 | 48.4 | 5.888 | |
74 | 1.44505931894794 | 77.6853658536585 | 1.3 | |
75 | 1.43465402962786 | 65.5438048780488 | 5.148 | |
76 | 1.05100171933891 | 73.3745609756098 | 3.042 | |
77 | 1.14639815255791 | 43.885512195122 | 6.214 | |
78 | 1.11570811243432 | 62.6478780487805 | 2.509 | |
79 | 1.34492895885167 | 79.6268292682927 | 1.191 | |
80 | 1.32526925038986 | 69.0545365853659 | 4.493 | |
81 | 1.28816762955355 | 72.3653658536585 | 1.67 | |
82 | 1.38430484781083 | 57.4610731707317 | 4.779 | |
83 | 1.43670628743537 | 70.3287804878049 | 1.46 | |
84 | 2.90996435221111 | 64.3278048780488 | 2.635 | |
85 | 1.25920596003023 | 75.7853658536585 | 1.91 | |
86 | 1.32436780983604 | 78.1048780487805 | 2.9 | |
88 | 5.24404755635221 | 60.1786097560976 | 3.43 | |
89 | 1.62359307585825 | 71.3117804878049 | 5.517 | |
90 | 2.06633756687358 | 68.6031951219512 | 2.954 | |
91 | 1.06955652601443 | 78.7778048780488 | 2.12 | |
92 | 2.02581330873427 | 78.3319512195122 | 1.21 | |
93 | 1.05041257802903 | 76.6299024390244 | 1.42 | |
94 | 1.21521413756854 | 70.2552682926829 | 2.712 | |
95 | 1.28268807193904 | 71.5610975609756 | 4.532 | |
96 | 2.52564175204698 | 80.200243902439 | 1.425 | |
97 | 1.72219260489103 | 55.2363170731707 | 5.165 | |
98 | 1.29245205557986 | 66.5439024390244 | 2.99 | |
99 | 1.45292148190728 | 56.2572682926829 | 4.678 | |
101 | 1.09327217906894 | 56.9421463414634 | 5.253 | |
103 | 1.63825269041959 | 65.2720731707317 | 2.266 | |
104 | 1.91787100123639 | 73.8210975609756 | 1.58 | |
105 | 1.19486133897579 | 68.6856097560976 | 2.6981 | |
106 | 1.17088635871609 | 73.3956585365854 | 2.64 | |
108 | 1.53683648497301 | 64.109756097561 | 2.13 | |
109 | 1.3035753840963 | 58.8955853658537 | 5.175 | |
110 | 1.23812149699573 | 70.015487804878 | 2.797 | |
111 | 1.05116513048309 | 71.5487804878049 | 2.5 | |
113 | 1.58244608945327 | 69.178243902439 | 2.208 | |
114 | 1.20134552896902 | 42.6270731707317 | 6.089 | |
115 | 1.18108573024161 | 55.2516097560976 | 4.475 | |
116 | 1.25792112904167 | 70.1080487804878 | 1.49 | |
117 | 1.08676201989574 | 76.519512195122 | 1.76 | |
118 | 1.21293583407668 | 68.7765853658537 | 1.16 | |
119 | 1.2989912269915 | 71.1337804878049 | 3.423 | |
120 | 1.70992651710705 | 67.0483658536585 | 3.151 | |
122 | 1.26028332191545 | 66.6181219512195 | 1.801 | |
123 | 1.10592978373593 | 75.6843170731707 | 1.821 | |
125 | 1.50677007021327 | 55.8030731707317 | 5.924 | |
127 | 1.19084027091574 | 72.2501951219512 | 1.884 | |
128 | 1.41298242098615 | 46.0130487804878 | 6.928 | |
129 | 1.92256584466749 | 60.5264146341463 | 2.761 | |
130 | 1.20673375812657 | 61.4990731707317 | 2.649 | |
131 | 1.0857973036554 | 77.6284390243902 | 1.178 | |
133 | 1.21060144637836 | 56.7314634146341 | 5.52 | |
134 | 1.08221202706468 | 77.290243902439 | 2.1 | |
135 | 1.14439513990027 | 70.3229268292683 | 2.12 | |
136 | 1.06708345400688 | 66.2518536585366 | 4.007 | |
137 | 1.43334670877038 | 46.4121463414634 | 6.267 | |
138 | 2.34125796427505 | 73.0942926829268 | 2.811 | |
139 | 1.62718490640532 | 71.368512195122 | 3.253 | |
140 | 1.55189111328867 | 45.9108292682927 | 5.937 | |
141 | 1.17726940468791 | 59.9579024390244 | 4.469 | |
142 | 1.05922001674882 | 71.9975609756098 | 2.645 | |
143 | 1.41915366020115 | 45.2253414634146 | 7.669 | |
144 | 2.43438015571955 | 45.1332195121951 | 6.051 | |
145 | 1.29648211465272 | 67.7819024390244 | 3.878 | |
146 | 1.53601879619466 | 77.4356097560976 | 1.53 | |
147 | 1.28452640347806 | 78.1504878048781 | 1.89 | |
148 | 1.62504818402109 | 58.273512195122 | 4.589 | |
149 | 1.26255790581614 | 76.7878048780488 | 1.96 | |
150 | 1.20034088020813 | 73.2905365853659 | 4.992 | |
151 | 1.22793644699048 | 73.4658536585366 | 2.797 | |
152 | 1.67145588081196 | 68.4920975609756 | 3.226 | |
153 | 1.06260535114903 | 71.1503902439024 | 2.718 | |
154 | 1.29910467758392 | 57.6308536585366 | 4.654 | |
155 | 2.14779147933812 | 66.1806341463415 | 3.962 | |
156 | 2.55164171496391 | 62.282 | 5.208 | |
157 | 1.8454364393231 | 72.2463414634146 | 1.58 | |
158 | 1.26229888413594 | 74.4918292682927 | 1.94 | |
159 | 1.21854563839715 | 69.9606097560976 | 6.076 | |
160 | 1.43130337703891 | 75.2609756097561 | 1.43 | |
162 | 1.30128366923926 | 69.0798048780488 | 4.005 | |
163 | 1.09667566905007 | 75.4958048780488 | 3.514 | |
164 | 1.64692964547428 | 69.1048780487805 | 1.3 | |
166 | 2.65359475086839 | 66.1941463414634 | 1.277 | |
167 | 1.33107668871683 | 33.9758048780488 | 6.005 | |
168 | 1.59053076201355 | 70.6956097560976 | 4.795 | |
169 | 1.08184558546576 | 60.2965853658537 | 5.077 | |
171 | 1.68370777571006 | 54.7103414634146 | 5.608 | |
172 | 1.40435080399305 | 78.9590243902439 | 1.6 | |
173 | 1.26038826108273 | 76.7463414634146 | 1.696 | |
174 | 1.19148999853638 | 74.4585365853658 | 1.28 | |
175 | 1.31514561268457 | 72.6536585365854 | 1.47 | |
176 | 1.26909284405773 | 37.4188780487805 | 5.858 | |
178 | 1.40661717329474 | 54.6045365853659 | 5.943 | |
179 | 1.34614852043778 | 45.4279268292683 | 6.487 | |
180 | 1.08964828349678 | 67.8359756097561 | 2.718 | |
182 | 1.04806139594329 | 61.8036341463415 | 4.902 | |
183 | 1.32762538740465 | 69.1112926829268 | 3.432 | |
185 | 1.52230399890066 | 73.1129512195122 | 4.176 | |
186 | 1.13447316507046 | 55.008 | 4.712 | |
188 | 1.36527835291538 | 49.5858536585366 | 6.632 | |
189 | 1.28487880116404 | 54.2111707317073 | 5.565 | |
190 | 2.04990562893358 | 72.2539268292683 | 1.821 | |
191 | 1.32919210882388 | 62.5613170731707 | 4.463 | |
192 | 1.12627575006242 | 52.314756097561 | 6.627 | |
193 | 1.28080560874125 | 63.207756097561 | 3.325 | |
194 | 1.40999441152728 | 71.5536585365854 | 2.51 | |
195 | 1.04051699618214 | 70.238512195122 | 4.391 | |
196 | 2.04885056745101 | 66.7459756097561 | 2.667 | |
197 | 1.15215752957369 | 68.9129024390244 | 1.801 | |
199 | 1.7547045675052 | 49.5676341463415 | 5.828 | |
200 | 1.97205091167591 | 67.3107317073171 | 1.3 | |
201 | 1.62936293052746 | 44.791756097561 | 6.994 | |
202 | 3.23295752333636 | 75.9965853658537 | 1.976 | |
203 | 1.24488889654858 | 73.5280487804878 | 2.5 | |
204 | 1.65554130493456 | 66.4326341463415 | 3.32 | |
205 | 1.04314098772426 | 70.1001951219512 | 2.641 | |
206 | 1.64603972782029 | 72.379512195122 | 3.022 | |
207 | 1.04314420538402 | 76.5365609756098 | 2.704 | |
208 | 2.16358277666181 | 69.9898536585366 | 2.473 | |
209 | 1.0551418013849 | 65.8994878048781 | 4.667 | |
210 | 1.05505345109154 | 67.9542682926829 | 4.677 | |
211 | 1.5368493407149 | 57.7237804878049 | 7.373 | |
212 | 1.86036562421949 | 59.0627073170732 | 3.04 | |
213 | 1.40963334287711 | 43.0084878048781 | 6.209 | |
214 | 1.4681041230067 | 51.1242682926829 | 4.235 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.21943293503407 | 73.9208292682927 | 3.055 | |
3 | 1.59323381464176 | 44.4298048780488 | 8.004 | |
4 | 1.03460733847757 | 74.7317073170732 | 1.7 | |
5 | 1.24803301196082 | 72.6960731707317 | 2.478 | |
6 | 1.24069859064654 | 69.4916341463415 | 1.838 | |
7 | 1.48643366282222 | 43.0616341463415 | 6.963 | |
8 | 1.81268975997974 | 73.0673902439025 | 2.657 | |
10 | 1.38385144320317 | 77.3875609756098 | 1.36 | |
11 | 1.58531495191949 | 78.4804878048781 | 1.778 | |
12 | 1.03797717129577 | 73.6148048780488 | 1.979 | |
13 | 1.38070935996915 | 65.4623902439024 | 2.07 | |
14 | 1.25555593257298 | 71.3479512195122 | 1.508 | |
15 | 1.06898069382551 | 75.1273902439024 | 1.641 | |
16 | 2.52068575521665 | 63.1965609756098 | 3.463 | |
17 | 1.43394277153534 | 77.3707317073171 | 1.6 | |
18 | 1.44413946239503 | 49.3699756097561 | 6.432 | |
19 | 1.3920581055967 | 70.3512195121951 | 1.09 | |
20 | 1.10448947887052 | 73.4134634146341 | 2.913 | |
21 | 1.34315555901751 | 45.0267073170732 | 6.136 | |
22 | 1.34293239926823 | 51.6740731707317 | 6.2 | |
24 | 1.07481150320898 | 75.4809024390244 | 2.677 | |
25 | 1.38410402984492 | 61.8657317073171 | 4.39 | |
26 | 2.75769721960094 | 69.1090975609756 | 2.451 | |
27 | 1.07190243277119 | 70.6627073170732 | 2.357 | |
28 | 1.09750209650064 | 58.5621463414634 | 4.256 | |
29 | 1.17474766304954 | 55.6515365853659 | 3.746 | |
30 | 1.43257047089718 | 68.4609756097561 | 1.23 | |
31 | 1.06248727659557 | 73.3007073170732 | 3.905 | |
32 | 1.74491381428711 | 78.4804878048781 | 1.55 | |
33 | 1.90316768406792 | 45.4100243902439 | 7.068 | |
34 | 1.25149437458502 | 44.8916341463415 | 5.55 | |
35 | 1.23051258548851 | 54.2834146341463 | 5.026 | |
36 | 1.36203582561998 | 79.079512195122 | 1.48 | |
37 | 1.52751990753771 | 50.4899268292683 | 5.371 | |
38 | 1.5245344853863 | 75.6698048780488 | 2.254 | |
39 | 1.52165012404887 | 51.1915365853659 | 5.175 | |
40 | 5.77152315411568 | 70.7663170731707 | 1.799 | |
41 | 1.83748461277488 | 70.085243902439 | 2.775 | |
42 | 1.25993720628505 | 77.229512195122 | 2.616 | |
43 | 1.45156347100688 | 75.7064146341463 | 1.61 | |
44 | 1.08711723675319 | 68.0370487804878 | 4.221 | |
46 | 1.12785686900725 | 77.5471707317073 | 1.945 | |
47 | 1.43655565207898 | 73.8248780487805 | 1.17 | |
48 | 2.2321728447586 | 77.0731707317073 | 1.35 | |
49 | 1.11221884234793 | 53.1036585365854 | 5.196 | |
50 | 1.31253977131195 | 75.9451219512195 | 1.752 | |
51 | 1.03421035596614 | 75.9512195121951 | 1.9 | |
52 | 1.39074412452592 | 70.1156097560976 | 3.014 | |
53 | 1.74935156595885 | 69.0256585365854 | 3.012 | |
54 | 1.46717754198548 | 72.1573902439024 | 3.113 | |
55 | 1.16051430607739 | 69.809756097561 | 1.24 | |
56 | 2.08058998042792 | 67.0653170731707 | 3.512 | |
57 | 1.25643639295479 | 54.0065365853659 | 5.713 | |
58 | 1.85585938088999 | 78.6041463414634 | 1.15 | |
59 | 2.05887707425887 | 50.2389512195122 | 6.561 | |
60 | 1.30821162008878 | 76.8785365853659 | 1.75 | |
61 | 1.1205829327214 | 67.0375609756098 | 3.209 | |
62 | 1.04323270421337 | 66.9716097560976 | 4.544 | |
64 | 2.05344013493793 | 78.3048780487805 | 1.77 | |
65 | 1.14461391180755 | 60.6049512195122 | 4.472 | |
66 | 2.03887181129736 | 77.2109756097561 | 1.72 | |
67 | 1.04162272334498 | 72.4058780487805 | 2.87 | |
68 | 1.2893726397171 | 70.8139512195122 | 1.756 | |
69 | 1.57012015964855 | 57.9551219512195 | 4.866 | |
70 | 1.02995376904483 | 65.2853658536585 | 2.683 | |
71 | 1.14394515512982 | 54.2402682926829 | 5.831 | |
72 | 1.39168993018104 | 46.4883414634146 | 6.232 | |
73 | 1.09264897444926 | 48.5115365853659 | 5.872 | |
74 | 1.44645720188923 | 78.1365853658537 | 1.31 | |
75 | 1.43962939270425 | 66.1061463414634 | 5.058 | |
76 | 1.05140765310978 | 73.5725365853659 | 3.01 | |
77 | 1.14804555674149 | 44.1151951219512 | 6.115 | |
78 | 1.11596329301096 | 63.0444390243902 | 2.5 | |
79 | 1.34636942107289 | 80.1268292682927 | 1.127 | |
80 | 1.3289213264067 | 69.464 | 4.366 | |
81 | 1.29066181718862 | 72.4951219512195 | 1.69 | |
82 | 1.38788862392688 | 57.7314878048781 | 4.665 | |
83 | 1.43626629572889 | 70.7024390243902 | 1.38 | |
84 | 2.92421749774398 | 64.6694390243903 | 2.579 | |
85 | 1.26051159584798 | 75.969756097561 | 1.92 | |
86 | 1.32845058295027 | 78 | 2.94 | |
88 | 5.28163278802557 | 60.5357317073171 | 3.349 | |
89 | 1.63355309329874 | 71.264243902439 | 5.443 | |
90 | 2.07585604878273 | 68.9196585365854 | 2.727 | |
91 | 1.06985021420702 | 78.8853658536585 | 2.04 | |
92 | 2.02608474381594 | 78.6285365853659 | 1.22 | |
93 | 1.05057331804456 | 76.8315365853659 | 1.411 | |
94 | 1.21624992875051 | 70.2712926829268 | 2.683 | |
95 | 1.28704139852957 | 71.6986097560976 | 4.377 | |
96 | 2.52764222128655 | 80.4241463414634 | 1.388 | |
97 | 1.73183425121873 | 54.3371219512195 | 5.102 | |
98 | 1.29459603380293 | 66.8926829268293 | 2.79 | |
99 | 1.45911824704895 | 56.4922682926829 | 4.45 | |
100 | 1.03630216821243 | 60.4390243902439 | 4.2 | |
101 | 1.09446306538443 | 57.1764634146341 | 5.27 | |
102 | 1.0259420627378 | 70.0363414634146 | 2.4 | |
103 | 1.64149697116152 | 64.6018048780488 | 2.224 | |
104 | 1.92218630209926 | 74.2478048780488 | 1.54 | |
105 | 1.19613945787797 | 68.8209756097561 | 2.4573 | |
106 | 1.17361329617033 | 73.4910487804878 | 2.722 | |
108 | 1.53261022678032 | 64.4634146341463 | 2 | |
109 | 1.30691441356225 | 59.5695609756098 | 4.938 | |
110 | 1.2389646918633 | 70.1771951219512 | 2.711 | |
111 | 1.0515313599102 | 71.76 | 2.6 | |
113 | 1.5861207697055 | 69.316243902439 | 2.184 | |
114 | 1.20890210985601 | 43.1993414634146 | 6.031 | |
115 | 1.18223107068907 | 53.3281707317073 | 4.394 | |
116 | 1.25696937961867 | 70.9090243902439 | 1.47 | |
117 | 1.08731757043671 | 76.880487804878 | 1.71 | |
118 | 1.21187398219231 | 69.3492682926829 | 1.11 | |
119 | 1.30167186700042 | 71.5680975609756 | 3.302 | |
120 | 1.71505937967115 | 67.47 | 3.024 | |
122 | 1.25999541068685 | 66.5851463414634 | 1.73 | |
123 | 1.10584570532118 | 75.5166829268293 | 1.826 | |
125 | 1.51486108359905 | 56.7700487804878 | 5.841 | |
127 | 1.19163778034289 | 72.414756097561 | 1.829 | |
128 | 1.41832821414293 | 46.3265365853659 | 6.901 | |
129 | 1.92928868141185 | 60.9234878048781 | 2.675 | |
130 | 1.20758813345541 | 61.8036097560976 | 2.514 | |
131 | 1.08652767849937 | 77.8612926829268 | 1.116 | |
133 | 1.21373853580856 | 56.800756097561 | 5.443 | |
134 | 1.08249846708862 | 77.4365853658537 | 1.95 | |
135 | 1.14530799821987 | 70.4048780487805 | 2.04 | |
136 | 1.06786360970435 | 67.2816097560976 | 3.692 | |
137 | 1.43867313095222 | 46.1964634146342 | 6.216 | |
138 | 2.35339534381995 | 73.4260487804878 | 2.73 | |
139 | 1.63519047977844 | 71.5690975609756 | 3.204 | |
140 | 1.55940606063678 | 46.3554878048781 | 5.879 | |
141 | 1.17999758518471 | 59.4344878048781 | 4.351 | |
142 | 1.05994105098455 | 71.7390243902439 | 2.7 | |
143 | 1.42681174952492 | 45.9906097560976 | 7.629 | |
144 | 2.4524178205704 | 45.2537073170732 | 6.006 | |
145 | 1.29935989241626 | 68.2414878048781 | 3.702 | |
146 | 1.53740086591933 | 77.7943902439024 | 1.53 | |
147 | 1.28530015664025 | 78.1426829268293 | 1.86 | |
148 | 1.63287652752989 | 59.09 | 4.472 | |
149 | 1.2642899017901 | 77.3341463414634 | 1.95 | |
150 | 1.20042054901601 | 73.5148292682927 | 4.629 | |
151 | 1.23030995135847 | 73.6514634146342 | 2.786 | |
152 | 1.67727280256854 | 69.0008780487805 | 3.142 | |
153 | 1.06326003852541 | 71.444756097561 | 2.64 | |
154 | 1.30309428226665 | 57.9062926829268 | 4.631 | |
155 | 2.16059022883785 | 66.339756097561 | 3.923 | |
156 | 2.57245957477324 | 62.5123170731707 | 5.042 | |
157 | 1.84571323029478 | 72.6463414634146 | 1.513 | |
158 | 1.26352297494858 | 74.8102195121951 | 1.9 | |
159 | 1.22350819283884 | 70.2336097560976 | 5.892 | |
160 | 1.43201643136236 | 75.4121951219512 | 1.46 | |
162 | 1.3046307447765 | 69.2955609756098 | 3.921 | |
163 | 1.09829098230538 | 75.7043902439025 | 3.398 | |
164 | 1.64599875689999 | 69.0048780487805 | 1.32 | |
165 | 1.37609632486368 | 72.0390243902439 | 1.6 | |
166 | 2.65115842506801 | 66.9507317073171 | 1.23 | |
167 | 1.34587016938599 | 37.7641951219512 | 5.958 | |
168 | 1.59385163393969 | 70.8991219512195 | 4.594 | |
169 | 1.08301567097117 | 60.9086097560976 | 4.968 | |
170 | 1.03594194808658 | 71.4146341463415 | 2.1 | |
171 | 1.69232563418874 | 55.192512195122 | 5.546 | |
172 | 1.40446668927916 | 79.1975609756098 | 1.52 | |
173 | 1.26480414621821 | 77.0487804878049 | 1.635 | |
174 | 1.19136081950897 | 74.7073170731707 | 1.25 | |
175 | 1.31543708166157 | 72.7048780487805 | 1.43 | |
176 | 1.26938862163754 | 37.7990243902439 | 5.843 | |
178 | 1.41167823865301 | 54.8635365853659 | 5.834 | |
179 | 1.35125004987332 | 46.2216829268293 | 6.492 | |
180 | 1.09026934212657 | 67.8555121951219 | 2.745 | |
182 | 1.04838878271421 | 61.9429756097561 | 4.827 | |
183 | 1.32899185591915 | 69.2559512195122 | 3.323 | |
185 | 1.52973231066178 | 73.3662682926829 | 4.023 | |
186 | 1.13599607890755 | 53.4418048780488 | 4.57 | |
188 | 1.37148418849227 | 49.304512195122 | 6.629 | |
189 | 1.28849793725069 | 54.3658536585366 | 5.446 | |
190 | 2.05557405488006 | 72.2792926829268 | 1.785 | |
191 | 1.3312891183486 | 62.8129512195122 | 4.348 | |
192 | 1.12580568286393 | 53.3393902439025 | 6.832 | |
193 | 1.28304766287156 | 63.3954878048781 | 3.159 | |
194 | 1.41282200821353 | 71.9024390243902 | 2.38 | |
195 | 1.04059822923119 | 70.3636829268293 | 4.34 | |
196 | 2.05702380387669 | 67.4328048780488 | 2.596 | |
197 | 1.15229808544047 | 68.7973658536585 | 1.745 | |
199 | 1.76451922824334 | 49.6445365853659 | 5.78 | |
200 | 1.96763201208398 | 67.2953658536585 | 1.3 | |
201 | 1.63923804777971 | 44.8901951219512 | 6.967 | |
202 | 3.24644040011507 | 76.4292682926829 | 1.971 | |
203 | 1.24575519213828 | 73.6634146341463 | 2.4 | |
204 | 1.66175178243226 | 66.5741951219512 | 3.082 | |
205 | 1.04312446662475 | 70.168243902439 | 2.576 | |
206 | 1.65264342798872 | 72.5695121951219 | 2.98 | |
207 | 1.04320036852352 | 76.8025609756098 | 2.584 | |
208 | 2.17269520201843 | 70.5063170731707 | 2.302 | |
209 | 1.05567660528038 | 66.3300975609756 | 4.616 | |
210 | 1.05520704934266 | 68.3705365853659 | 4.661 | |
211 | 1.54555967398243 | 58.1306829268293 | 7.128 | |
212 | 1.87026721372706 | 58.0911219512195 | 2.983 | |
213 | 1.41517118461283 | 42.5896097560976 | 6.19 | |
214 | 1.47203579457721 | 49.1889024390244 | 4.118 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.22544504752187 | 74.1570487804878 | 2.906 | |
3 | 1.6006075828067 | 44.7213414634146 | 7.939 | |
5 | 1.24781423128761 | 73.1978048780488 | 2.409 | |
6 | 1.23974725858352 | 69.9855365853659 | 1.762 | |
7 | 1.49297535930534 | 43.7143170731707 | 6.925 | |
8 | 1.81744228294779 | 73.2864634146342 | 2.596 | |
10 | 1.38406229702243 | 77.5731707317073 | 1.37 | |
11 | 1.58837433405084 | 78.6317073170732 | 1.762 | |
12 | 1.03842028982979 | 73.6422926829268 | 1.94 | |
13 | 1.3825221189225 | 65.9233658536585 | 2 | |
14 | 1.25932414720172 | 72.7164878048781 | 1.487 | |
15 | 1.06908311709564 | 75.2156341463415 | 1.614 | |
16 | 2.53602492392601 | 63.7219756097561 | 3.344 | |
17 | 1.43440665551681 | 77.4731707317073 | 1.6 | |
18 | 1.45040583354135 | 49.6103414634146 | 6.372 | |
19 | 1.39075099294625 | 71.0609756097561 | 1.11 | |
20 | 1.10625802933921 | 73.5431707317073 | 2.84 | |
21 | 1.34525538277295 | 45.3384390243903 | 6.026 | |
22 | 1.34789418852082 | 51.9958292682927 | 6.12 | |
24 | 1.07571038556062 | 75.7363658536586 | 2.569 | |
25 | 1.38821873658581 | 62.235756097561 | 4.302 | |
26 | 2.7710562214386 | 69.471243902439 | 2.427 | |
27 | 1.07229790006456 | 70.9828536585366 | 2.263 | |
28 | 1.09868995293927 | 59.5100487804878 | 4.048 | |
29 | 1.17658098330878 | 53.8417073170732 | 3.631 | |
30 | 1.43154232217867 | 68.4073170731707 | 1.27 | |
31 | 1.06345708187906 | 73.3726341463415 | 3.8 | |
32 | 1.74814564841597 | 78.6624390243902 | 1.53 | |
33 | 1.91216607833182 | 45.3557804878049 | 7.026 | |
34 | 1.25418126884753 | 44.3725609756098 | 5.522 | |
35 | 1.23382204985924 | 54.188243902439 | 4.995 | |
36 | 1.36257466589351 | 79.3243902439025 | 1.47 | |
37 | 1.53439290497119 | 50.2942195121951 | 5.289 | |
38 | 1.52805050705475 | 76.0330243902439 | 2.192 | |
39 | 1.52867230946963 | 50.786756097561 | 5.094 | |
40 | 5.79447088347224 | 70.9270975609756 | 1.776 | |
41 | 1.84481977478976 | 70.4051951219512 | 2.727 | |
42 | 1.26321216802941 | 77.4303658536586 | 2.548 | |
43 | 1.45237571447448 | 75.9403414634147 | 1.615 | |
44 | 1.08800189797596 | 68.4878048780488 | 4.05 | |
46 | 1.12910350817755 | 77.6860975609756 | 1.86 | |
47 | 1.43634874313242 | 74.5146341463415 | 1.16 | |
48 | 2.2322661548266 | 77.4756097560976 | 1.36 | |
49 | 1.11320618543368 | 53.343512195122 | 5.058 | |
50 | 1.31310860973577 | 76.1390243902439 | 1.72 | |
52 | 1.39395292972147 | 70.3715609756098 | 2.966 | |
53 | 1.75519468666491 | 69.3383658536585 | 2.845 | |
54 | 1.47196993476171 | 72.5912682926829 | 3.06 | |
55 | 1.1597410695505 | 69.3585365853659 | 1.28 | |
56 | 2.08903885615112 | 67.7735853658537 | 3.447 | |
57 | 1.26030472554545 | 54.735756097561 | 5.62 | |
58 | 1.85735780074711 | 78.6658536585366 | 1.16 | |
59 | 2.07423257555103 | 50.7086829268293 | 6.414 | |
60 | 1.30862160082294 | 77.0907317073171 | 1.7 | |
61 | 1.12115855324481 | 67.2308536585366 | 3.171 | |
62 | 1.04317486836701 | 67.0729024390244 | 4.471 | |
64 | 2.05538323463394 | 78.4560975609756 | 1.78 | |
65 | 1.14646514503758 | 60.2926829268293 | 4.322 | |
66 | 2.04038677774541 | 77.190243902439 | 1.71 | |
67 | 1.04166205957585 | 72.7436829268293 | 2.762 | |
68 | 1.28795237765966 | 71.0381219512195 | 1.703 | |
69 | 1.57658257298214 | 58.001243902439 | 4.786 | |
70 | 1.02998464922731 | 65.3365853658537 | 2.39 | |
71 | 1.14600607436245 | 54.5374146341464 | 5.772 | |
72 | 1.39546960506564 | 46.9789024390244 | 6.15 | |
73 | 1.09416034287385 | 48.5871951219512 | 5.847 | |
74 | 1.44766563407067 | 77.8390243902439 | 1.26 | |
75 | 1.44468314275996 | 66.6674146341464 | 4.97 | |
76 | 1.05176090418688 | 73.77 | 2.972 | |
77 | 1.14970308388574 | 44.3603170731707 | 6.02 | |
78 | 1.11623965051198 | 63.4786341463415 | 2.49 | |
79 | 1.34781988228104 | 80.1317073170732 | 1.017 | |
80 | 1.3324874557108 | 69.8213658536585 | 4.239 | |
81 | 1.28839234797937 | 72.3170731707317 | 1.45 | |
82 | 1.39143495667946 | 57.9648780487805 | 4.547 | |
83 | 1.43575866867154 | 70.5578048780488 | 1.32 | |
84 | 2.93830816930575 | 65.0035609756098 | 2.53 | |
85 | 1.26187660143005 | 76.1953658536585 | 1.94 | |
86 | 1.33223261878766 | 78.1487804878049 | 2.98 | |
88 | 5.31883495613375 | 60.8953414634146 | 3.27 | |
89 | 1.6436047667039 | 71.1406585365854 | 5.374 | |
90 | 2.08588116537218 | 69.1880243902439 | 2.525 | |
91 | 1.07023589158715 | 79.6024390243903 | 2.05 | |
92 | 2.02623239685821 | 78.4268292682927 | 1.21 | |
93 | 1.05074868695103 | 77.0472195121951 | 1.405 | |
94 | 1.21721970135136 | 70.3109512195122 | 2.655 | |
95 | 1.29145671941945 | 71.8290243902439 | 4.226 | |
96 | 2.52957352124811 | 80.5014634146342 | 1.384 | |
97 | 1.74136519384698 | 53.5119756097561 | 5.059 | |
98 | 1.29686795596604 | 67.0512195121951 | 2.648 | |
99 | 1.4649146319832 | 56.7671463414634 | 4.227 | |
101 | 1.09567995031664 | 57.4112926829268 | 5.289 | |
103 | 1.64443555179931 | 64.3568292682927 | 2.182 | |
104 | 1.92552207090195 | 74.8106097560976 | 1.47 | |
105 | 1.19039326612185 | 68.9512195121951 | 2.5677 | |
106 | 1.17814945130396 | 73.5823902439025 | 2.749 | |
108 | 1.52803107269525 | 64.5609756097561 | 1.8 | |
109 | 1.31003971277822 | 60.2065609756098 | 4.696 | |
110 | 1.23978801805021 | 70.331756097561 | 2.613 | |
111 | 1.05190213767037 | 71.4536585365854 | 2.1 | |
113 | 1.589521433668 | 69.6771463414634 | 2.173 | |
114 | 1.21727529098948 | 43.958756097561 | 5.971 | |
115 | 1.18324041406488 | 51.3218292682927 | 4.302 | |
116 | 1.25603831043291 | 71.219512195122 | 1.46 | |
117 | 1.08787224160607 | 77.0170731707317 | 1.68 | |
118 | 1.21087433395307 | 69.0121951219512 | 1.09 | |
119 | 1.30426502882519 | 71.9441219512195 | 3.207 | |
120 | 1.71997692134137 | 67.8811707317073 | 2.906 | |
122 | 1.25975025886891 | 66.6219268292683 | 1.667 | |
123 | 1.10577004760115 | 75.3196585365854 | 1.828 | |
125 | 1.52308196136176 | 57.7461219512195 | 5.749 | |
127 | 1.1926698957189 | 72.5796097560976 | 1.774 | |
128 | 1.42382518267881 | 46.6339756097561 | 6.872 | |
129 | 1.93580622015228 | 61.2765853658537 | 2.59 | |
130 | 1.208473191455 | 62.175756097561 | 2.394 | |
131 | 1.08724971224877 | 78.0901707317073 | 1.053 | |
133 | 1.21694374466603 | 56.8660731707317 | 5.366 | |
134 | 1.082753838605 | 77.1804878048781 | 1.88 | |
135 | 1.14607894854362 | 70.6073170731707 | 1.97 | |
136 | 1.06862653771649 | 68.3257317073171 | 3.404 | |
137 | 1.44487227954734 | 46.0350243902439 | 6.17 | |
138 | 2.36504037482447 | 73.7318780487805 | 2.664 | |
139 | 1.64314271094427 | 71.7647073170732 | 3.157 | |
140 | 1.56657493741414 | 46.7275365853659 | 5.82 | |
141 | 1.18263892310151 | 58.8318536585366 | 4.24 | |
142 | 1.06045728349178 | 74.3756097560976 | 2.6766666667 | |
143 | 1.43467921704249 | 46.7603414634146 | 7.587 | |
144 | 2.47070382807164 | 45.4861463414634 | 5.963 | |
145 | 1.30206958437115 | 68.7016585365854 | 3.535 | |
146 | 1.53906113771584 | 77.8829268292683 | 1.63 | |
147 | 1.28615222886913 | 78.3292682926829 | 1.81 | |
148 | 1.64055275529289 | 59.9060975609756 | 4.35 | |
149 | 1.2654673400253 | 78.0853658536585 | 1.92 | |
150 | 1.20011611270367 | 73.7308048780488 | 4.277 | |
151 | 1.23270096596561 | 73.84 | 2.776 | |
152 | 1.68294658466612 | 69.5046341463415 | 3.064 | |
153 | 1.06393610654403 | 71.7561219512195 | 2.571 | |
154 | 1.30714927983703 | 58.189512195122 | 4.599 | |
155 | 2.17337563916052 | 66.4953902439025 | 3.888 | |
156 | 2.59316809616331 | 62.7351707317073 | 4.861 | |
157 | 1.84586445845009 | 72.9975609756098 | 1.44 | |
158 | 1.26428293338528 | 75.229512195122 | 1.9 | |
159 | 1.22639009303884 | 70.4820975609756 | 5.709 | |
160 | 1.43283332709528 | 75.7121951219512 | 1.48 | |
162 | 1.30793789617865 | 69.5309756097561 | 3.839 | |
163 | 1.1002372836157 | 75.9079756097561 | 3.3 | |
164 | 1.64533033469412 | 69.8073170731708 | 1.32 | |
166 | 2.64888688576102 | 66.7839024390244 | 1.24 | |
167 | 1.36409419839511 | 41.2739268292683 | 5.909 | |
168 | 1.5973030305548 | 71.0942682926829 | 4.39 | |
169 | 1.08419257866862 | 61.5436341463415 | 4.872 | |
171 | 1.70013554601899 | 55.7400243902439 | 5.481 | |
172 | 1.40457906446199 | 79.3390243902439 | 1.5 | |
173 | 1.26935038304658 | 77.4 | 1.494 | |
174 | 1.19115144362002 | 74.8073170731708 | 1.23 | |
175 | 1.31564898334007 | 72.5512195121951 | 1.37 | |
176 | 1.27053894468316 | 38.3254878048781 | 5.816 | |
178 | 1.41667741367864 | 55.1385609756098 | 5.73 | |
179 | 1.3573032305859 | 46.9949756097561 | 6.499 | |
180 | 1.09089756069564 | 67.8710487804878 | 2.757 | |
182 | 1.048697818557 | 62.0802682926829 | 4.748 | |
183 | 1.33010930778633 | 69.3890487804878 | 3.201 | |
185 | 1.53706686537892 | 73.6000243902439 | 3.881 | |
186 | 1.13748058743928 | 51.7945365853659 | 4.441 | |
188 | 1.37792962542482 | 49.0171707317073 | 6.624 | |
189 | 1.29220860680038 | 54.5170731707317 | 5.329 | |
190 | 2.06165944795711 | 72.3302926829268 | 1.755 | |
191 | 1.33339864243953 | 63.1042682926829 | 4.237 | |
192 | 1.12510096912518 | 54.334512195122 | 6.986 | |
193 | 1.28498000927476 | 63.577243902439 | 3.021 | |
194 | 1.41546556555216 | 72.0512195121951 | 2.23 | |
195 | 1.04069317520742 | 70.4928536585366 | 4.3 | |
196 | 2.06518541322535 | 68.1190487804878 | 2.524 | |
197 | 1.15241149335053 | 68.6610487804878 | 1.7 | |
199 | 1.77405057562869 | 49.8008536585366 | 5.741 | |
200 | 1.96331695123002 | 67.9682926829268 | 1.2 | |
201 | 1.64923509125774 | 45.1448780487805 | 6.937 | |
202 | 3.25957253510043 | 76.5804878048781 | 1.999 | |
203 | 1.24654953777779 | 73.9541463414634 | 2.38 | |
204 | 1.66710037718401 | 66.714756097561 | 2.815 | |
205 | 1.04310772450988 | 70.2315853658537 | 2.509 | |
206 | 1.65916932249952 | 72.7292682926829 | 2.9 | |
207 | 1.04323891161091 | 77.0592926829268 | 2.472 | |
208 | 2.18173109811656 | 71.0015609756098 | 2.162 | |
209 | 1.05618458232341 | 66.7511951219512 | 4.562 | |
210 | 1.05533898682082 | 68.7648048780488 | 4.638 | |
211 | 1.55357897727119 | 58.5965853658537 | 6.896 | |
212 | 1.88055995907043 | 57.0176097560976 | 2.937 | |
213 | 1.42086962589329 | 42.2550731707317 | 6.171 | |
214 | 1.47562345517853 | 47.3995609756098 | 4.017 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.14159041766806 | 69.0996097560976 | 5.344 | |
3 | 1.4897026403324 | 39.5269512195122 | 7.763 | |
5 | 1.22731928170725 | 70.0004634146341 | 3.985 | |
6 | 1.24101493086811 | 70.6587317073171 | 2.373 | |
7 | 1.38225275049449 | 40.2902195121951 | 7.201 | |
8 | 1.72684083468735 | 69.7417804878049 | 3.27 | |
10 | 1.37409982071448 | 72.7580487804878 | 1.67 | |
11 | 1.52549590798245 | 74.6634146341463 | 1.935 | |
12 | 1.03133303859223 | 72.4623414634146 | 2.377 | |
13 | 1.34024048186982 | 64.7164390243903 | 3.179 | |
14 | 1.27650371985339 | 70.5480731707317 | 2.05 | |
15 | 1.06695047083477 | 72.2553902439025 | 1.96 | |
16 | 2.25250473087001 | 55.8089268292683 | 6.232 | |
17 | 1.42701467556921 | 73.6217073170732 | 1.67 | |
18 | 1.3593739802192 | 46.7850487804878 | 7.074 | |
19 | 1.40549627608475 | 71.5719512195122 | 2.01 | |
20 | 1.08237374259873 | 70.2622926829268 | 4.803 | |
21 | 1.27988475977292 | 47.225512195122 | 6.597 | |
22 | 1.26571843207386 | 45.5922682926829 | 7.025 | |
24 | 1.05955163921753 | 71.035756097561 | 4.103 | |
25 | 1.31875896215487 | 52.738243902439 | 5.423 | |
26 | 2.51864854782302 | 62.8944390243903 | 3.966 | |
27 | 1.06202944244545 | 67.9644634146342 | 2.994 | |
28 | 1.08780713083482 | 46.9834878048781 | 6.501 | |
29 | 1.13785905162835 | 60.9659512195122 | 6.125 | |
30 | 1.42377353795151 | 70.3248048780488 | 2.02 | |
31 | 1.05091200137114 | 70.4672926829268 | 5.684 | |
32 | 1.67877620254418 | 75.4785365853659 | 1.7 | |
33 | 1.70761805205085 | 45.9631951219512 | 6.638 | |
34 | 1.20778081352558 | 49.1763414634146 | 5.955 | |
35 | 1.18466722971707 | 56.4593414634146 | 6.112 | |
36 | 1.34273731231547 | 75.6931707317073 | 1.55 | |
37 | 1.39949644764508 | 51.9206585365854 | 7.501 | |
38 | 1.45845784493203 | 69.8580731707317 | 2.656 | |
39 | 1.4125113155926 | 51.5930731707317 | 6.425 | |
40 | 5.28902909177642 | 67.2629268292683 | 2.589 | |
41 | 1.71399538722616 | 66.0129756097561 | 3.867 | |
42 | 1.2110854542228 | 73.0736829268293 | 3.577 | |
43 | 1.42760476131302 | 73.7679024390244 | 1.843 | |
44 | 1.0741314997545 | 60.4391951219512 | 6.274 | |
46 | 1.11232402316733 | 74.9424878048781 | 2.385 | |
47 | 1.43648060114181 | 70.7221951219512 | 2 | |
48 | 2.2046244047521 | 73.0891951219512 | 1.43 | |
49 | 1.08247658939875 | 48.4219024390244 | 6.65 | |
50 | 1.30766275561642 | 74.2304878048781 | 1.437 | |
52 | 1.33198366337853 | 63.3813414634146 | 4.302 | |
53 | 1.60989035596562 | 60.3363170731707 | 6.757 | |
54 | 1.38733537389504 | 63.5484146341463 | 4.917 | |
55 | 1.16551757406662 | 68.9780487804878 | 2.07 | |
56 | 1.92210255253902 | 56.733512195122 | 5.31 | |
57 | 1.2145173117377 | 43.9432926829268 | 6.509 | |
58 | 1.83570579600279 | 75.5285365853659 | 2.031 | |
59 | 1.81727337366545 | 43.7784634146342 | 6.873 | |
60 | 1.29783166190496 | 73.7465853658537 | 1.65 | |
61 | 1.10913069809523 | 63.2964634146341 | 3.864 | |
62 | 1.03546057312959 | 65.2895853658537 | 6.129 | |
64 | 2.01351524012194 | 74.3 | 1.85 | |
65 | 1.11680339846424 | 55.6982682926829 | 5.185 | |
66 | 2.02105278775531 | 74.0268292682927 | 1.81 | |
67 | 1.03920688929506 | 65.1253170731707 | 4.244 | |
68 | 1.28850464155421 | 69.3865609756098 | 2.296 | |
69 | 1.45348346995203 | 53.4090731707317 | 6.468 | |
71 | 1.10694178984383 | 48.3959756097561 | 6.324 | |
72 | 1.29069607454417 | 39.3296829268293 | 6.948 | |
73 | 1.06455953124233 | 43.1603902439024 | 5.751 | |
74 | 1.42419590098941 | 74.6970487804878 | 2.091 | |
75 | 1.36426816846275 | 57.7413170731707 | 6.152 | |
76 | 1.04279811147555 | 69.6865365853659 | 3.173 | |
77 | 1.12354308632671 | 40.4640487804878 | 6.423 | |
78 | 1.11923723881108 | 59.768243902439 | 3.432 | |
79 | 1.30951696462623 | 75.3243902439025 | 1.933 | |
80 | 1.26322148527119 | 60.2024878048781 | 6.19 | |
81 | 1.29180579041038 | 70.3443902439025 | 1.993 | |
82 | 1.3280551430825 | 51.2982682926829 | 6.122 | |
83 | 1.44511493932017 | 69.1392682926829 | 1.877 | |
84 | 2.65992581565737 | 58.0936097560976 | 4.301 | |
85 | 1.25253240777746 | 72.7777804878049 | 3.07 | |
86 | 1.27033810446152 | 74.2609756097561 | 3.186 | |
88 | 4.63810510175308 | 55.7375853658537 | 4.598 | |
89 | 1.50973449797914 | 56.3282195121951 | 6.481 | |
90 | 1.86508334639644 | 51.1549024390244 | 6.516 | |
91 | 1.06427896091046 | 76.5214634146341 | 2.33 | |
92 | 2.02257296688087 | 74.3539024390244 | 1.617 | |
93 | 1.04741487061125 | 73.5739268292683 | 1.441 | |
94 | 1.19970711236096 | 70.6883414634146 | 3.643 | |
95 | 1.20451257515927 | 67.4825609756098 | 7.167 | |
96 | 2.47560783564361 | 76.4143902439025 | 1.74 | |
97 | 1.5591833239441 | 58.2286585365854 | 7.366 | |
98 | 1.26092438332397 | 63.2290487804878 | 4.046 | |
99 | 1.35357146780009 | 41.9405853658537 | 6.255 | |
101 | 1.07653514335391 | 52.3626585365854 | 7.102 | |
103 | 1.57101027875138 | 68.0829024390244 | 2.756 | |
104 | 1.84651540137875 | 66.3092682926829 | 2.66 | |
105 | 1.16907640672115 | 65.9326829268293 | 4.5758 | |
106 | 1.1628056737626 | 70.7508292682927 | 5.362 | |
108 | 1.52801940508627 | 66.7060975609756 | 2.95 | |
109 | 1.24745056323501 | 49.1267073170732 | 6.315 | |
110 | 1.21971785190535 | 66.7488536585366 | 4.021 | |
111 | 1.04554423154433 | 69.4666097560976 | 4.512 | |
113 | 1.52408512845868 | 68.6451219512195 | 3.319 | |
114 | 1.19018876162581 | 43.7965365853659 | 6.973 | |
115 | 1.15708516453872 | 54.2439756097561 | 5.542 | |
116 | 1.25179645378216 | 70.4607317073171 | 1.98 | |
117 | 1.08136769962711 | 72.2386585365854 | 1.55 | |
118 | 1.215622161443 | 68.7863414634146 | 1.88 | |
119 | 1.2433527957659 | 60.9770487804878 | 7.308 | |
120 | 1.61247824316876 | 58.4294390243902 | 5.537 | |
122 | 1.2516513436234 | 64.8414634146342 | 2.51 | |
123 | 1.10317319860399 | 73.7939024390244 | 2.245 | |
125 | 1.40759912217348 | 48.5883902439024 | 6.359 | |
127 | 1.18772526783375 | 69.6719024390244 | 2.387 | |
128 | 1.35627965527342 | 40.1114390243902 | 7.059 | |
129 | 1.8080976695682 | 55.1745853658537 | 4.449 | |
130 | 1.17873389708776 | 57.4783658536585 | 6.031 | |
131 | 1.06730368371119 | 73.5617073170732 | 1.777 | |
133 | 1.17052996457601 | 53.4715609756098 | 6.37 | |
134 | 1.07592619151548 | 73.1668292682927 | 1.87 | |
135 | 1.13410288447981 | 67.4235853658537 | 2.532 | |
136 | 1.05302980789974 | 53.6889024390244 | 7.146 | |
137 | 1.34408099137694 | 44.7113902439025 | 7.39 | |
138 | 2.15367493151039 | 67.0399512195122 | 4.509 | |
139 | 1.51217319163541 | 67.7011219512195 | 3.753 | |
140 | 1.47967527210266 | 42.8267317073171 | 6.474 | |
141 | 1.13786724130557 | 58.2871707317073 | 6.362 | |
142 | 1.05025961060545 | 66.7024390243903 | 3.198 | |
143 | 1.333003937005 | 39.6613902439024 | 7.725 | |
144 | 2.1838692673257 | 45.6439024390244 | 6.782 | |
145 | 1.2484885060298 | 58.8390975609756 | 6.018 | |
146 | 1.51338447191387 | 75.9343902439025 | 1.563 | |
147 | 1.27521352509769 | 75.8690243902439 | 1.7 | |
148 | 1.52180625614898 | 48.7263170731707 | 5.791 | |
149 | 1.2402077925175 | 73.6219512195122 | 2.01 | |
150 | 1.1498375423955 | 61.8253902439024 | 8.338 | |
151 | 1.19386490564205 | 70.3029512195122 | 3.64 | |
152 | 1.57332451626255 | 60.618 | 4.866 | |
153 | 1.0524650336484 | 65.2317804878049 | 3.897 | |
154 | 1.24701870746998 | 53.5312926829268 | 5.609 | |
155 | 1.94950381847643 | 63.387 | 5.078 | |
156 | 2.23740655628552 | 58.2423658536585 | 6.508 | |
157 | 1.81505276029808 | 71.0512195121951 | 2.235 | |
158 | 1.24469862154912 | 73.877 | 2.548 | |
160 | 1.42684949790684 | 71.6146341463415 | 2.144 | |
162 | 1.24655997263602 | 66.8340731707317 | 5.213 | |
163 | 1.06672630158743 | 71.5961463414634 | 5.659 | |
164 | 1.64400711582653 | 69.3682926829268 | 2.36 | |
166 | 2.60936064739935 | 67.2639024390244 | 1.91 | |
167 | 1.31338673566625 | 49.0020975609756 | 8.293 | |
168 | 1.44036786574685 | 63.1418292682927 | 7.14 | |
169 | 1.06538283896704 | 58.8833658536585 | 6.632 | |
171 | 1.52563734108294 | 49.6753658536585 | 6.404 | |
172 | 1.39225716355852 | 76.0260975609756 | 1.63 | |
173 | 1.2162041893172 | 71.9121463414634 | 1.723 | |
174 | 1.18748034173437 | 71.2048780487805 | 1.992 | |
175 | 1.30447376354784 | 70.6292682926829 | 2.29 | |
176 | 1.24520228405533 | 43.5598292682927 | 5.538 | |
178 | 1.32527129892425 | 48.1312195121951 | 7.378 | |
179 | 1.33996260183432 | 43.3615609756098 | 6.791 | |
180 | 1.08152813858926 | 66.2125853658537 | 3.815 | |
182 | 1.04069317520742 | 59.644 | 6.348 | |
183 | 1.29579006143871 | 56.9774390243903 | 5.004 | |
185 | 1.41421583356192 | 66.7373414634147 | 6.976 | |
186 | 1.10658647964477 | 54.9031707317073 | 6.618 | |
188 | 1.2918982876639 | 48.365756097561 | 6.759 | |
189 | 1.22783597690164 | 49.9946829268293 | 7.16 | |
190 | 1.9456278441848 | 66.3608536585366 | 3.202 | |
191 | 1.27286313152688 | 62.4504146341463 | 5.601 | |
192 | 1.10325703323296 | 36.2978292682927 | 4.956 | |
193 | 1.23263107936182 | 61.1438536585366 | 4.915 | |
194 | 1.34812532065783 | 62.948756097561 | 5.173 | |
195 | 1.03987997391517 | 67.7997317073171 | 5.532 | |
196 | 1.91192148388667 | 57.3119756097561 | 4.328 | |
197 | 1.14236622352061 | 67.4997073170732 | 3.3 | |
199 | 1.5972914100255 | 50.6406097560976 | 6.618 | |
200 | 1.96405698759475 | 68.9320243902439 | 1.93 | |
201 | 1.4890771986188 | 49.9922195121951 | 7.101 | |
202 | 3.06084163349415 | 74.0073170731707 | 1.812 | |
203 | 1.23277592057924 | 70.5219024390244 | 2.665 | |
204 | 1.55173899939563 | 65.5867317073171 | 4.968 | |
205 | 1.04167893831619 | 66.1064390243902 | 3.832 | |
206 | 1.53634720320445 | 68.535 | 4.104 | |
207 | 1.04092200121246 | 71.7264634146341 | 3.878 | |
208 | 2.00634067259159 | 56.9382926829268 | 5.194 | |
209 | 1.04533751534475 | 59.1205609756098 | 5.503 | |
210 | 1.05249941931917 | 60.468512195122 | 4.807 | |
211 | 1.38990092585105 | 49.8860731707317 | 9.108 | |
212 | 1.72306897786184 | 57.5596097560976 | 4.695 | |
213 | 1.33412062872913 | 52.0375853658537 | 7.098 | |
214 | 1.37418439097235 | 59.710487804878 | 6.967 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.23112662941964 | 74.3887317073171 | 2.77 | |
3 | 1.60811452350652 | 45.0098536585366 | 7.847 | |
5 | 1.24753342682407 | 73.7218292682927 | 2.33 | |
6 | 1.2390073659487 | 70.4924878048781 | 1.712 | |
7 | 1.49992996131419 | 44.4390975609756 | 6.882 | |
8 | 1.82201707193547 | 73.5034634146342 | 2.535 | |
10 | 1.38443645346518 | 77.7756097560976 | 1.34 | |
11 | 1.59174640848141 | 78.9317073170732 | 1.755 | |
12 | 1.03883429390623 | 73.6753902439025 | 1.905 | |
13 | 1.38420590924286 | 66.3554878048781 | 2.07 | |
14 | 1.26326205537756 | 73.714 | 1.454 | |
15 | 1.06919689152444 | 75.3094146341464 | 1.585 | |
16 | 2.55094446204926 | 64.2339024390244 | 3.231 | |
17 | 1.43490511463075 | 77.619512195122 | 1.62 | |
18 | 1.4568142204806 | 49.8854878048781 | 6.314 | |
19 | 1.38965615835047 | 71.4121951219512 | 1.23 | |
20 | 1.10827482327616 | 73.6713658536585 | 2.775 | |
21 | 1.34786173303941 | 45.6705609756098 | 5.904 | |
22 | 1.35301712907114 | 52.291756097561 | 6.041 | |
24 | 1.07659594141957 | 75.9883414634146 | 2.477 | |
25 | 1.39230210576164 | 62.6008780487805 | 4.219 | |
26 | 2.78424842962754 | 69.8144634146341 | 2.399 | |
27 | 1.07274657603285 | 71.3034390243903 | 2.165 | |
28 | 1.10007391743279 | 60.4560975609756 | 3.855 | |
29 | 1.17829048683626 | 52.1589512195122 | 3.519 | |
30 | 1.43081256559157 | 67.9073170731707 | 1.31 | |
31 | 1.0644378566017 | 73.4443170731708 | 3.696 | |
32 | 1.75124779287406 | 78.8829268292683 | 1.51 | |
33 | 1.92153477180629 | 45.4424146341463 | 6.974 | |
34 | 1.25676711630166 | 43.9533414634146 | 5.488 | |
35 | 1.2370877812225 | 54.1409024390244 | 4.964 | |
36 | 1.36344120902373 | 79.580487804878 | 1.48 | |
37 | 1.54069029571362 | 50.1789024390244 | 5.22 | |
38 | 1.53142444767992 | 76.4228292682927 | 2.135 | |
39 | 1.53572788260785 | 50.406512195122 | 5.03 | |
40 | 5.81527250071622 | 71.0833902439025 | 1.755 | |
41 | 1.85208485481585 | 70.7118292682927 | 2.682 | |
42 | 1.26639769276519 | 77.6227317073171 | 2.481 | |
43 | 1.45314555610034 | 76.158 | 1.621 | |
44 | 1.08886379992313 | 68.9563902439024 | 3.876 | |
46 | 1.13034844841634 | 77.823512195122 | 1.781 | |
47 | 1.43612571529231 | 74.6682926829268 | 1.13 | |
48 | 2.23266449072451 | 77.7268292682927 | 1.36 | |
49 | 1.11416107953486 | 53.5894146341464 | 4.926 | |
50 | 1.31362779109073 | 76.3414634146341 | 1.73 | |
52 | 1.39711970618128 | 70.6308292682927 | 2.926 | |
53 | 1.76076052071065 | 69.6730487804878 | 2.715 | |
54 | 1.47674086400708 | 73.0061463414634 | 3.007 | |
55 | 1.15913147648137 | 70.0634146341463 | 1.32 | |
56 | 2.09761629150922 | 68.4493658536585 | 3.382 | |
57 | 1.26478261697685 | 55.4075853658537 | 5.526 | |
58 | 1.85956949923105 | 78.7170731707317 | 1.19 | |
59 | 2.0896712903997 | 51.1929268292683 | 6.253 | |
60 | 1.308980512964 | 77.2912195121951 | 1.73 | |
61 | 1.12163433015961 | 67.4201219512195 | 3.132 | |
62 | 1.04308302875533 | 67.1726341463415 | 4.39 | |
64 | 2.0581006546691 | 78.6073170731707 | 1.81 | |
65 | 1.14831080536694 | 59.9720487804878 | 4.181 | |
66 | 2.04212280268924 | 77.390243902439 | 1.68 | |
67 | 1.04169292472374 | 73.0774634146342 | 2.666 | |
68 | 1.2868317544585 | 71.2931951219512 | 1.659 | |
69 | 1.58321305997578 | 58.1348048780488 | 4.716 | |
70 | 1.02998464922731 | 65.4390243902439 | 2.34 | |
71 | 1.14813748258495 | 54.8450731707317 | 5.708 | |
72 | 1.39881797865004 | 47.522 | 6.07 | |
73 | 1.09568391591801 | 48.6409512195122 | 5.814 | |
74 | 1.44865064767686 | 77.9878048780488 | 1.24 | |
75 | 1.44987287501242 | 67.2181219512195 | 4.884 | |
76 | 1.05205970074829 | 73.9679512195122 | 2.927 | |
77 | 1.151374864486 | 44.6193658536585 | 5.93 | |
78 | 1.11651956212704 | 63.9464390243903 | 2.479 | |
79 | 1.34948682599816 | 80.3829268292683 | 0.982 | |
80 | 1.33601023143106 | 70.1256829268293 | 4.116 | |
81 | 1.29008813884503 | 72.6419512195122 | 1.38 | |
82 | 1.3949103371315 | 58.1718536585366 | 4.426 | |
83 | 1.43514148648868 | 70.6770731707317 | 1.28 | |
84 | 2.95237029110356 | 65.3307073170732 | 2.489 | |
85 | 1.26335983387404 | 76.0736585365854 | 1.9 | |
86 | 1.33649504201161 | 78.6585365853659 | 2.965 | |
88 | 5.35568057414936 | 61.2558780487805 | 3.194 | |
89 | 1.65365261089666 | 70.9688780487805 | 5.31 | |
90 | 2.09559911667818 | 69.4518292682927 | 2.352 | |
91 | 1.07067382671742 | 79.3512195121951 | 1.99 | |
92 | 2.02631872238014 | 78.8268292682927 | 1.23 | |
93 | 1.05093308294611 | 77.2779268292683 | 1.402 | |
94 | 1.2179644011191 | 70.3762682926829 | 2.629 | |
95 | 1.29411185474447 | 71.9533170731707 | 4.076 | |
96 | 2.53102493095559 | 80.5707317073171 | 1.342 | |
97 | 1.75099394368825 | 52.8132195121951 | 5.03 | |
98 | 1.29908549365518 | 67.0024390243903 | 2.629 | |
99 | 1.47035955854704 | 57.0888292682927 | 4.017 | |
101 | 1.0969196584365 | 57.6450975609756 | 5.306 | |
103 | 1.64725501006769 | 64.5495609756098 | 2.144 | |
104 | 1.92881596906759 | 75.3734146341463 | 1.42 | |
105 | 1.18020471921108 | 66.9512195121951 | 2.8781 | |
106 | 1.18307852471796 | 73.6697073170732 | 2.714 | |
108 | 1.52552101820146 | 65.519512195122 | 1.7 | |
109 | 1.31292905868467 | 60.8110731707317 | 4.457 | |
110 | 1.24143008055336 | 70.4836829268293 | 2.503 | |
111 | 1.05225877576325 | 71.3048780487805 | 2.1 | |
113 | 1.59377604703467 | 70.2517073170732 | 2.176 | |
114 | 1.22496247948005 | 44.888756097561 | 5.91 | |
115 | 1.1841473595729 | 49.3578292682927 | 4.2 | |
116 | 1.25512970767894 | 71.5707317073171 | 1.46 | |
117 | 1.08847836377653 | 77.7707317073171 | 1.74 | |
118 | 1.21001517224118 | 69.7429268292683 | 1.16 | |
119 | 1.30680026130286 | 72.2628536585366 | 3.135 | |
120 | 1.72459746020808 | 68.2839024390244 | 2.798 | |
122 | 1.25954452893107 | 66.7269756097561 | 1.613 | |
123 | 1.10571928724527 | 75.1070487804878 | 1.825 | |
125 | 1.53137709526119 | 58.7162926829268 | 5.651 | |
126 | 1.02871582489355 | 67.5048780487805 | 5.71 | |
127 | 1.19369364479079 | 72.7442195121951 | 1.72 | |
128 | 1.42957146097247 | 46.9383902439024 | 6.841 | |
129 | 1.94176465142922 | 61.5871463414634 | 2.507 | |
130 | 1.20938474199169 | 62.616512195122 | 2.29 | |
131 | 1.08795098434009 | 78.3155609756098 | 0.991 | |
133 | 1.22022212521409 | 56.9314146341464 | 5.291 | |
134 | 1.08295980093535 | 77.1487804878049 | 1.77 | |
135 | 1.14701647935286 | 70.9609756097561 | 2.05 | |
136 | 1.06936199993881 | 69.3642195121951 | 3.146 | |
137 | 1.45132686203807 | 45.9636829268293 | 6.13 | |
138 | 2.37610011530606 | 74.013243902439 | 2.615 | |
139 | 1.65088078734617 | 71.9563414634146 | 3.11 | |
140 | 1.57383572827789 | 47.0209756097561 | 5.758 | |
141 | 1.1850266535112 | 58.2058536585366 | 4.134 | |
142 | 1.0610989398012 | 73.8756097560976 | 2.6533333333 | |
143 | 1.44270514245231 | 47.5220243902439 | 7.545 | |
144 | 2.48924150847435 | 45.8295365853659 | 5.922 | |
145 | 1.3046249118461 | 69.1685365853659 | 3.384 | |
146 | 1.54085869259295 | 77.8365853658537 | 1.65 | |
147 | 1.28713530165678 | 78.2829268292683 | 1.85 | |
148 | 1.64794672789676 | 60.7158048780488 | 4.224 | |
149 | 1.26616713055539 | 77.890243902439 | 1.94 | |
150 | 1.20016938087202 | 73.9382682926829 | 3.943 | |
151 | 1.23509809220144 | 74.0309024390244 | 2.764 | |
152 | 1.68840832330775 | 69.9989268292683 | 2.993 | |
153 | 1.06459507202006 | 72.0825365853659 | 2.509 | |
154 | 1.31123268322586 | 58.4848780487805 | 4.557 | |
155 | 2.18612185580215 | 66.6480243902439 | 3.852 | |
156 | 2.61303328248418 | 62.9525365853659 | 4.669 | |
157 | 1.84582933732565 | 73.0439024390244 | 1.37 | |
158 | 1.26494673325524 | 75.731 | 1.97425 | |
159 | 1.22930894699438 | 70.7060487804878 | 5.535 | |
160 | 1.43374447367068 | 75.9634146341463 | 1.5 | |
162 | 1.31121424689488 | 69.7825365853659 | 3.758 | |
163 | 1.1022291012555 | 76.1070731707317 | 3.219 | |
164 | 1.64482384870558 | 70.5121951219512 | 1.3 | |
166 | 2.64557211850572 | 66.0436585365854 | 1.17 | |
167 | 1.38106810877492 | 44.2348048780488 | 5.852 | |
168 | 1.6025130129212 | 71.2890731707317 | 4.187 | |
169 | 1.08537472564729 | 62.1908780487805 | 4.789 | |
171 | 1.70794640187658 | 56.3422682926829 | 5.413 | |
172 | 1.40473686778225 | 79.4414634146342 | 1.5 | |
173 | 1.27043051838646 | 77.5512195121951 | 1.475 | |
174 | 1.19121998659558 | 75.009756097561 | 1.21 | |
175 | 1.31581031447869 | 72.9024390243902 | 1.33 | |
176 | 1.27287462895835 | 38.9746829268293 | 5.776 | |
178 | 1.42177199296112 | 55.4311219512195 | 5.634 | |
179 | 1.3635698541728 | 47.6993414634146 | 6.504 | |
180 | 1.09153622933264 | 67.8926341463415 | 2.751 | |
182 | 1.04902850608037 | 62.2175365853659 | 4.665 | |
183 | 1.33105527611943 | 69.533243902439 | 3.07 | |
185 | 1.54399239651927 | 73.8162195121951 | 3.75 | |
186 | 1.13878416099783 | 50.1620731707317 | 4.326 | |
188 | 1.38469094142007 | 48.7388292682927 | 6.617 | |
189 | 1.2959929854589 | 54.6672926829268 | 5.215 | |
190 | 2.0679181615497 | 72.4094634146341 | 1.73 | |
191 | 1.33565959829544 | 63.4207073170732 | 4.13 | |
192 | 1.12474248264064 | 55.2896585365854 | 7.079 | |
193 | 1.28673258782906 | 63.7454634146342 | 2.914 | |
194 | 1.41818757866934 | 72.5 | 2.09 | |
195 | 1.04079901648042 | 70.6250731707317 | 4.27 | |
196 | 2.0732830983343 | 68.7947317073171 | 2.452 | |
197 | 1.15254726528599 | 68.5199756097561 | 1.664 | |
199 | 1.78361321534347 | 50.0409756097561 | 5.711 | |
200 | 1.95878536202208 | 68.1939024390244 | 1.2 | |
201 | 1.6595216250868 | 45.5481463414634 | 6.903 | |
202 | 3.27258399437049 | 76.5829268292683 | 2.0075 | |
203 | 1.24719458032198 | 74.1539024390244 | 2.25 | |
204 | 1.6707065739296 | 66.8443170731707 | 2.72 | |
205 | 1.04309827737081 | 70.2980731707317 | 2.442 | |
206 | 1.66562826442858 | 72.8641463414634 | 2.85 | |
207 | 1.04325196564279 | 77.3061707317073 | 2.372 | |
208 | 2.19062847179045 | 71.4826097560976 | 2.055 | |
209 | 1.05672097533485 | 67.1598292682927 | 4.507 | |
210 | 1.05546910893237 | 69.1370487804878 | 4.607 | |
211 | 1.56140265900706 | 59.1194878048781 | 6.682 | |
212 | 1.8912550046889 | 55.8925365853659 | 2.899 | |
213 | 1.42658527586416 | 42.0212195121951 | 6.152 | |
214 | 1.47863428845506 | 45.8474878048781 | 3.932 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.23638051843509 | 74.6159024390244 | 2.645 | |
3 | 1.6173023176139 | 45.2928536585366 | 7.73 | |
5 | 1.24704717920019 | 74.2387317073171 | 2.241 | |
6 | 1.23832016874942 | 70.9894390243903 | 1.688 | |
7 | 1.50754166582617 | 45.2049268292683 | 6.826 | |
8 | 1.82637946231752 | 73.7179756097561 | 2.477 | |
10 | 1.38489938778741 | 78.0268292682927 | 1.36 | |
11 | 1.59528596157371 | 79.2341463414634 | 1.756 | |
12 | 1.03927363290423 | 73.7200975609756 | 1.874 | |
13 | 1.38578880811508 | 66.7572195121951 | 2 | |
14 | 1.26614153883918 | 74.3081219512195 | 1.412 | |
15 | 1.06932650010487 | 75.4082682926829 | 1.558 | |
16 | 2.56529705612375 | 64.7303414634146 | 3.121 | |
17 | 1.4354331843333 | 77.7219512195122 | 1.67 | |
18 | 1.46337159316048 | 50.2012926829268 | 6.259 | |
19 | 1.38869421389193 | 71.6634146341463 | 1.26 | |
20 | 1.11058578945329 | 73.7960731707317 | 2.72 | |
21 | 1.35127723939919 | 46.0050487804878 | 5.772 | |
22 | 1.35845108481394 | 52.5653414634146 | 5.966 | |
23 | 1.03170476019586 | 77.8648780487805 | 1.74 | |
24 | 1.07747292830641 | 76.2323414634146 | 2.401 | |
25 | 1.39635902855482 | 62.9636829268293 | 4.14 | |
26 | 2.79716112067118 | 70.1382682926829 | 2.364 | |
27 | 1.07329371104467 | 71.6282926829268 | 2.071 | |
28 | 1.10152007522236 | 61.3742195121951 | 3.676 | |
29 | 1.17986416565079 | 50.765487804878 | 3.414 | |
30 | 1.43016763463046 | 68.9121951219512 | 1.31 | |
31 | 1.06539670880478 | 73.5311219512195 | 3.594 | |
32 | 1.75457269758247 | 79.2365853658537 | 1.49 | |
33 | 1.93212050694523 | 45.6519024390244 | 6.911 | |
34 | 1.25923473541194 | 43.6633658536585 | 5.446 | |
35 | 1.2402580268031 | 54.1458536585366 | 4.932 | |
36 | 1.36446490913265 | 79.6804878048781 | 1.5 | |
37 | 1.54629391559679 | 50.1608780487805 | 5.162 | |
38 | 1.53470335882435 | 76.8217317073171 | 2.087 | |
39 | 1.54283352809483 | 50.0712682926829 | 4.983 | |
40 | 5.83428116343401 | 71.2417073170732 | 1.737 | |
41 | 1.85926492586616 | 71.0009756097561 | 2.64 | |
42 | 1.26943241928407 | 77.8040731707317 | 2.414 | |
43 | 1.45389723061593 | 76.3658048780488 | 1.626 | |
44 | 1.08971969140735 | 69.4482682926829 | 3.701 | |
46 | 1.13160587305439 | 77.9569268292683 | 1.714 | |
47 | 1.43588081126032 | 74.9682926829268 | 1.14 | |
48 | 2.23349955854003 | 77.9268292682927 | 1.38 | |
49 | 1.11506824818204 | 53.8503414634146 | 4.801 | |
50 | 1.31415309620194 | 76.5926829268293 | 1.77 | |
52 | 1.40026589099476 | 70.8937073170732 | 2.892 | |
53 | 1.76613246142045 | 70.0241707317073 | 2.622 | |
54 | 1.48149433134006 | 73.3920487804878 | 2.953 | |
55 | 1.15877405167601 | 70.4170731707317 | 1.38 | |
56 | 2.10634036794507 | 69.0826585365854 | 3.315 | |
57 | 1.26976745042407 | 56.0249756097561 | 5.43 | |
58 | 1.86318962334724 | 78.9658536585366 | 1.23 | |
59 | 2.10539981648309 | 51.7101219512195 | 6.08 | |
60 | 1.30930187924444 | 77.4658536585366 | 1.73 | |
61 | 1.12199823289103 | 67.6073170731707 | 3.09 | |
62 | 1.04300175495958 | 67.2737317073171 | 4.3 | |
64 | 2.06172931287427 | 78.9585365853659 | 1.89 | |
65 | 1.15014696870796 | 59.6909512195122 | 4.051 | |
66 | 2.0439864624781 | 77.7414634146342 | 1.64 | |
67 | 1.04173263830211 | 73.4077073170732 | 2.582 | |
68 | 1.28572617028789 | 71.5630975609756 | 1.625 | |
69 | 1.59016525047943 | 58.382243902439 | 4.656 | |
70 | 1.03001549764002 | 65.9268292682927 | 2.308 | |
71 | 1.15035244775599 | 55.156756097561 | 5.64 | |
72 | 1.40217361306176 | 48.1101463414634 | 5.991 | |
73 | 1.09722007170993 | 48.6902682926829 | 5.773 | |
74 | 1.44937001237561 | 77.8878048780488 | 1.26 | |
75 | 1.45523618427781 | 67.7441707317073 | 4.801 | |
76 | 1.05230391441347 | 74.1653902439025 | 2.878 | |
77 | 1.15306393833316 | 44.8848780487805 | 5.846 | |
78 | 1.11679127536583 | 64.4482682926829 | 2.466 | |
79 | 1.35103251057833 | 80.8780487804878 | 1.035 | |
80 | 1.3395221599871 | 70.3820243902439 | 3.997 | |
81 | 1.28597546119026 | 72.8078048780488 | 1.39 | |
82 | 1.39829141265414 | 58.3720731707317 | 4.303 | |
83 | 1.43457626518753 | 71.2463414634146 | 1.32 | |
84 | 2.96650108007444 | 65.6463658536586 | 2.453 | |
85 | 1.26512457123574 | 76.5407317073171 | 1.89 | |
86 | 1.34097566561211 | 78.9536585365854 | 2.95 | |
88 | 5.39217263547185 | 61.6138780487805 | 3.122 | |
89 | 1.66362529142881 | 70.7434878048781 | 5.252 | |
90 | 2.10445212931236 | 69.7396585365854 | 2.206 | |
91 | 1.07117280768851 | 79.6536585365854 | 2.08 | |
92 | 2.02655125927733 | 79.4268292682927 | 1.26 | |
93 | 1.05112224488739 | 77.5241219512195 | 1.402 | |
94 | 1.21860455717155 | 70.4722926829268 | 2.603 | |
95 | 1.29773954705684 | 72.0750243902439 | 3.931 | |
96 | 2.5323541821828 | 81.0760975609756 | 1.359 | |
97 | 1.76086701662024 | 52.2996341463415 | 5.012 | |
98 | 1.30087482431263 | 68.5585365853659 | 2.4 | |
99 | 1.47549445247963 | 57.4641463414634 | 3.822 | |
101 | 1.09817991129547 | 57.8764390243903 | 5.315 | |
103 | 1.65008658364982 | 65.110512195122 | 2.11 | |
104 | 1.93270368270544 | 75.8554878048781 | 1.47 | |
105 | 1.17699202542492 | 67.9512195121951 | 2.9543 | |
106 | 1.18746553232249 | 73.7524878048781 | 2.626 | |
108 | 1.52473148934418 | 65.5170731707317 | 1.8 | |
109 | 1.31558344833168 | 61.3946097560976 | 4.227 | |
110 | 1.2444272246979 | 70.6370243902439 | 2.387 | |
111 | 1.05258994868431 | 71.1056097560976 | 2 | |
113 | 1.59449256707472 | 70.9842926829268 | 2.191 | |
114 | 1.23105935071049 | 45.9643170731707 | 5.849 | |
115 | 1.18498043168855 | 47.5863658536585 | 4.089 | |
116 | 1.25423209106381 | 72.0195121951219 | 1.39 | |
117 | 1.08908555619692 | 77.8731707317073 | 1.76 | |
118 | 1.20924272740629 | 70.3146341463415 | 1.24 | |
119 | 1.30930116114543 | 72.530756097561 | 3.079 | |
120 | 1.72887519771117 | 68.6751463414634 | 2.703 | |
122 | 1.25928014117999 | 66.8882682926829 | 1.568 | |
123 | 1.10570431703935 | 74.8900243902439 | 1.818 | |
125 | 1.53970629893305 | 59.6745609756098 | 5.548 | |
127 | 1.19453474098445 | 72.9102195121951 | 1.67 | |
128 | 1.43563137206638 | 47.2432682926829 | 6.808 | |
129 | 1.94693283765132 | 61.8557073170732 | 2.427 | |
130 | 1.21032301262629 | 63.1213414634146 | 2.207 | |
131 | 1.08862801970965 | 78.5369756097561 | 0.933 | |
133 | 1.22357348032726 | 56.9947804878049 | 5.219 | |
134 | 1.08318294467246 | 78.2 | 1.7 | |
135 | 1.14774525959877 | 71.6634146341463 | 1.99 | |
136 | 1.07006412511436 | 70.3741219512195 | 2.919 | |
137 | 1.45761483880577 | 46.0297317073171 | 6.095 | |
138 | 2.38653054941531 | 74.274243902439 | 2.581 | |
139 | 1.65829900191804 | 72.1424878048781 | 3.065 | |
140 | 1.58148588208988 | 47.2378536585366 | 5.693 | |
141 | 1.18705642875252 | 57.6577317073171 | 4.033 | |
142 | 1.06170423779656 | 74.919512195122 | 2.63 | |
143 | 1.45085721269785 | 48.2666829268293 | 7.503 | |
144 | 2.50804425617553 | 46.2723170731707 | 5.883 | |
145 | 1.30704091161637 | 69.6457317073171 | 3.251 | |
146 | 1.54279601990013 | 77.9878048780488 | 1.72 | |
147 | 1.28807020783768 | 78.6341463414634 | 1.85 | |
148 | 1.65496473628314 | 61.5216341463415 | 4.091 | |
149 | 1.266951768843 | 78.6365853658537 | 2 | |
150 | 1.201103339486 | 74.1102926829268 | 3.636 | |
151 | 1.23749214361859 | 74.2231463414634 | 2.749 | |
152 | 1.69361272774905 | 70.4762682926829 | 2.929 | |
153 | 1.06520978476362 | 72.4210731707317 | 2.455 | |
154 | 1.31531779687228 | 58.7957804878049 | 4.507 | |
155 | 2.1988018978253 | 66.7951463414634 | 3.814 | |
156 | 2.63158230964068 | 63.1619512195122 | 4.474 | |
157 | 1.84356676147328 | 73.7487804878049 | 1.35 | |
158 | 1.26531408020808 | 76.6892682926829 | 2.0485 | |
159 | 1.23226519438129 | 70.9079512195122 | 5.376 | |
160 | 1.43489270852799 | 76.3146341463415 | 1.55 | |
161 | 1.01468374691936 | 70.4936585365854 | 1.535 | |
162 | 1.31446629243021 | 70.0451951219512 | 3.677 | |
163 | 1.10416063549694 | 76.3031951219512 | 3.149 | |
164 | 1.64440651380706 | 71.1634146341463 | 1.31 | |
165 | 1.37280218040697 | 72.1365853658537 | 1.48 | |
166 | 2.64553837471078 | 65.3414634146341 | 1.21 | |
167 | 1.39402440788094 | 46.5102195121951 | 5.786 | |
168 | 1.61050691761431 | 71.4920975609756 | 3.99 | |
169 | 1.08656029355216 | 62.834243902439 | 4.72 | |
171 | 1.71631984986293 | 56.9740975609756 | 5.34 | |
172 | 1.40506222865148 | 79.6439024390244 | 1.54 | |
174 | 1.19150435175229 | 75.4121951219512 | 1.26 | |
175 | 1.31559632183013 | 73.0512195121951 | 1.3 | |
176 | 1.27655716608719 | 39.7315853658537 | 5.726 | |
178 | 1.42707312274963 | 55.739243902439 | 5.546 | |
179 | 1.36953764379059 | 48.2957804878049 | 6.507 | |
180 | 1.09218633552292 | 67.9352926829268 | 2.726 | |
182 | 1.0494105746305 | 62.3577804878049 | 4.577 | |
183 | 1.33189243889874 | 69.7016097560976 | 2.934 | |
185 | 1.550342556409 | 74.0188780487805 | 3.633 | |
186 | 1.13981816357792 | 48.6702195121951 | 4.222 | |
188 | 1.39180032465085 | 48.4889756097561 | 6.605 | |
189 | 1.29983809707106 | 54.8094878048781 | 5.102 | |
190 | 2.07414157112847 | 72.5152195121951 | 1.71 | |
191 | 1.33817270935058 | 63.7553414634146 | 4.03 | |
192 | 1.12513913523759 | 56.190243902439 | 7.112 | |
193 | 1.28840579342828 | 63.895512195122 | 2.837 | |
194 | 1.42056203983843 | 72.6 | 2.08 | |
195 | 1.04091340657659 | 70.7609268292683 | 4.25 | |
196 | 2.08127845442348 | 69.4468780487805 | 2.383 | |
197 | 1.15274121491769 | 68.3956097560976 | 1.638 | |
199 | 1.79344157778433 | 50.3732926829268 | 5.688 | |
200 | 1.95397120146002 | 67.8634146341464 | 1.1 | |
201 | 1.67020953021045 | 46.0916829268293 | 6.865 | |
202 | 3.2852638812284 | 76.6365853658537 | 2.056 | |
203 | 1.24764182555614 | 74.8868292682927 | 2.19 | |
204 | 1.67536454122487 | 66.9508780487805 | 2.58 | |
205 | 1.04310214235979 | 70.3769512195122 | 2.379 | |
206 | 1.67202856029492 | 73.269512195122 | 2.83 | |
207 | 1.04326116529823 | 77.5756585367561 | 2.0553 | |
208 | 2.19864017192431 | 71.945512195122 | 1.983 | |
209 | 1.05732342275117 | 67.555 | 4.45 | |
210 | 1.05561174182943 | 69.4878048780488 | 4.564 | |
211 | 1.56937420459112 | 59.6898536585366 | 6.489 | |
212 | 1.90236401091015 | 54.7763170731707 | 2.866 | |
213 | 1.43222761958544 | 41.9298780487805 | 6.134 | |
214 | 1.48092824408855 | 44.6179756097561 | 3.862 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.24048518268623 | 74.8370731707317 | 2.527 | |
3 | 1.62848134423809 | 45.5672682926829 | 7.595 | |
5 | 1.24633950804055 | 74.7236585365854 | 2.142 | |
6 | 1.23769266520231 | 71.4580487804878 | 1.684 | |
7 | 1.51586748202343 | 45.9733170731707 | 6.751 | |
8 | 1.83051599731685 | 73.929512195122 | 2.425 | |
10 | 1.38563748212242 | 78.5268292682927 | 1.33 | |
11 | 1.59931439179254 | 79.6341463414634 | 1.739 | |
12 | 1.03975050634533 | 73.7823902439024 | 1.848 | |
13 | 1.38728758524454 | 67.1476829268293 | 1.8 | |
14 | 1.2677013714528 | 74.5531707317073 | 1.363 | |
15 | 1.06947398558868 | 75.5086829268293 | 1.534 | |
16 | 2.5791078529023 | 65.2083170731707 | 3.013 | |
17 | 1.43618321744547 | 77.9731707317073 | 1.6632 | |
18 | 1.47007640229703 | 50.5655609756098 | 6.208 | |
19 | 1.38510889884959 | 71.7682926829268 | 1.21 | |
20 | 1.1131102526495 | 73.9182926829268 | 2.677 | |
21 | 1.35560000713223 | 46.3363902439024 | 5.632 | |
22 | 1.3642276946776 | 52.8190975609756 | 5.895 | |
24 | 1.07834163399495 | 76.4649024390244 | 2.341 | |
25 | 1.40039638775024 | 63.3241707317073 | 4.063 | |
26 | 2.8098015559284 | 70.4396341463415 | 2.319 | |
27 | 1.07395313908303 | 71.9696829268293 | 1.989 | |
28 | 1.10301664453913 | 62.2373170731707 | 3.51 | |
29 | 1.18129779770036 | 49.8115609756098 | 3.316 | |
30 | 1.42850786892147 | 68.5073170731707 | 1.27 | |
31 | 1.06632579924116 | 73.6489268292683 | 3.493 | |
32 | 1.75839204554833 | 79.4878048780488 | 1.505 | |
33 | 1.9441340113312 | 45.9421951219512 | 6.835 | |
34 | 1.26157070213153 | 43.5235365853659 | 5.392 | |
35 | 1.24329844576832 | 54.2130487804878 | 4.899 | |
36 | 1.36562105883449 | 80.1804878048781 | 1.38 | |
37 | 1.55116533556667 | 50.2505609756098 | 5.109 | |
38 | 1.53789383023362 | 77.2072195121951 | 2.047 | |
39 | 1.54999321136968 | 49.7929756097561 | 4.947 | |
40 | 5.85187083170949 | 71.4055365853659 | 1.72 | |
41 | 1.86635125913115 | 71.2736585365854 | 2.603 | |
42 | 1.27229899276063 | 77.9749268292683 | 2.345 | |
43 | 1.45465199806548 | 76.5796341463415 | 1.626 | |
44 | 1.09058057341161 | 69.9698536585366 | 3.528 | |
46 | 1.1328791189738 | 78.0853414634146 | 1.658 | |
47 | 1.43511938857746 | 75.1731707317073 | 1.14 | |
48 | 2.23453761953014 | 78.3292682926829 | 1.35 | |
49 | 1.11593719356857 | 54.134756097561 | 4.681 | |
50 | 1.31471722488217 | 76.7926829268293 | 1.74 | |
52 | 1.40339526957373 | 71.1545365853659 | 2.863 | |
53 | 1.77131817151843 | 70.3811219512195 | 2.56 | |
54 | 1.48623349450451 | 73.7380731707317 | 2.898 | |
55 | 1.1584581687906 | 70.2585365853659 | 1.34 | |
56 | 2.11523508681014 | 69.6674390243902 | 3.247 | |
57 | 1.27527764391051 | 56.5942926829268 | 5.334 | |
58 | 1.86807830393476 | 79.3682926829268 | 1.24 | |
59 | 2.12146362731698 | 52.2822195121951 | 5.894 | |
60 | 1.30965471301383 | 77.9658536585366 | 1.73 | |
61 | 1.12222960807129 | 67.7929024390244 | 3.047 | |
62 | 1.04294576306739 | 67.3792682926829 | 4.204 | |
64 | 2.06559820530695 | 79.0585365853659 | 1.9 | |
65 | 1.15197093448101 | 59.4977804878049 | 3.933 | |
66 | 2.04589456632773 | 77.9926829268293 | 1.63 | |
67 | 1.04178339002447 | 73.727 | 2.512 | |
68 | 1.28469106821743 | 71.8267317073171 | 1.601 | |
69 | 1.59746456348639 | 58.7555365853659 | 4.607 | |
70 | 1.03006171090471 | 66.9268292682927 | 2.451 | |
71 | 1.15266309479943 | 55.4654878048781 | 5.57 | |
72 | 1.4055929417979 | 48.7298292682927 | 5.915 | |
73 | 1.09877009712263 | 48.7555609756098 | 5.726 | |
74 | 1.45003832149663 | 78.3878048780488 | 1.25 | |
75 | 1.46078878103017 | 68.2289512195122 | 4.717 | |
76 | 1.05249624620082 | 74.3608048780488 | 2.825 | |
77 | 1.15477368569863 | 45.1468536585366 | 5.768 | |
78 | 1.11704346189201 | 64.9855609756098 | 2.451 | |
79 | 1.35232984796152 | 81.4243902439025 | 0.932 | |
80 | 1.34303328696549 | 70.6009756097561 | 3.883 | |
81 | 1.28642816150662 | 74.5129268292683 | 1.38 | |
82 | 1.40157761542311 | 58.5897073170732 | 4.182 | |
83 | 1.43407776957032 | 72.2487804878049 | 1.31 | |
84 | 2.98071704572799 | 65.9490731707317 | 2.419 | |
85 | 1.26724776906336 | 77.139756097561 | 1.94 | |
86 | 1.34502285211239 | 79.4073170731707 | 2.92 | |
88 | 5.42834744787088 | 61.9687804878049 | 3.054 | |
89 | 1.67353190429984 | 70.4345853658537 | 5.198 | |
90 | 2.1123554715376 | 70.0585365853659 | 2.088 | |
91 | 1.07166043727872 | 80.690243902439 | 1.95 | |
92 | 2.02686772452333 | 79.8292682926829 | 1.25 | |
93 | 1.05131630041359 | 77.7852682926829 | 1.404 | |
94 | 1.21925554428605 | 70.6056097560976 | 2.578 | |
95 | 1.30144639495892 | 72.1926585365854 | 3.796 | |
96 | 2.53403825786119 | 81.4170731707317 | 1.33 | |
97 | 1.77103199374301 | 52.0180731707317 | 4.998 | |
98 | 1.30230784730997 | 68.7073170731707 | 2.4 | |
99 | 1.4803300661847 | 57.8964634146341 | 3.643 | |
101 | 1.09945955573921 | 58.0998048780488 | 5.313 | |
103 | 1.65297324458509 | 65.8982682926829 | 2.084 | |
104 | 1.93616015358824 | 76.3375609756098 | 1.3 | |
105 | 1.17705235541292 | 67.9475609756098 | 2.799 | |
106 | 1.19110181207346 | 73.8307804878049 | 2.508 | |
108 | 1.52428524911537 | 65.7682926829268 | 1.9 | |
109 | 1.31797576238311 | 61.9781707317073 | 4.011 | |
110 | 1.2490117457309 | 70.7953170731707 | 2.272 | |
111 | 1.05288843606782 | 73.9543902439025 | 2.2 | |
113 | 1.58972547762677 | 71.7838048780488 | 2.216 | |
114 | 1.23529817613897 | 47.1488292682927 | 5.788 | |
115 | 1.18574306582549 | 46.1355853658537 | 3.975 | |
116 | 1.25356710400835 | 71.6585365853659 | 1.3 | |
117 | 1.0896267054705 | 77.8243902439025 | 1.66 | |
118 | 1.20844624375608 | 70.7609756097561 | 1.21 | |
119 | 1.31175961954726 | 72.7628048780488 | 3.034 | |
120 | 1.73281375024022 | 69.0548780487805 | 2.623 | |
122 | 1.25898986409306 | 67.0808292682927 | 1.535 | |
123 | 1.10573311748138 | 74.6751707317073 | 1.806 | |
125 | 1.54806025155878 | 60.6209268292683 | 5.443 | |
127 | 1.19515073629416 | 73.0763170731707 | 1.625 | |
128 | 1.44200449503524 | 47.5526585365854 | 6.773 | |
129 | 1.95123502161784 | 62.0837804878049 | 2.353 | |
130 | 1.21129741471908 | 63.6819756097561 | 2.154 | |
131 | 1.08927027785516 | 78.7523902439025 | 0.887 | |
133 | 1.22699571938654 | 57.0501707317073 | 5.148 | |
134 | 1.08447076922498 | 78.4414634146342 | 1.48 | |
135 | 1.14855782717446 | 71.7658536585366 | 1.91 | |
136 | 1.07073194342125 | 71.3306829268293 | 2.722 | |
137 | 1.46367551020161 | 46.2764878048781 | 6.066 | |
138 | 2.39628302724009 | 74.5204634146342 | 2.559 | |
139 | 1.66536042959909 | 72.3211219512195 | 3.02 | |
140 | 1.5895484186093 | 47.3956585365854 | 5.625 | |
141 | 1.18869816399757 | 57.3012195121951 | 3.938 | |
142 | 1.0623152404194 | 74.8317073170732 | 2.47 | |
143 | 1.45912784178433 | 48.9908292682927 | 7.462 | |
144 | 2.527121090874 | 46.7914634146342 | 5.845 | |
145 | 1.30931612119704 | 70.1309024390244 | 3.139 | |
146 | 1.54484948007365 | 78.190243902439 | 1.71 | |
147 | 1.2888012392928 | 78.7853658536585 | 1.78 | |
148 | 1.66158560672004 | 62.3326097560976 | 3.949 | |
149 | 1.26774102077811 | 78.6926829268293 | 1.97 | |
150 | 1.20323149579467 | 74.2058536585366 | 3.367 | |
151 | 1.2398804345461 | 74.4137317073171 | 2.731 | |
152 | 1.6985621977998 | 70.9307073170732 | 2.872 | |
153 | 1.06577627978603 | 72.7642926829268 | 2.406 | |
154 | 1.3193929651957 | 59.124756097561 | 4.451 | |
155 | 2.21144139534807 | 66.934243902439 | 3.767 | |
156 | 2.64865159429394 | 63.3623902439024 | 4.29 | |
157 | 1.84130726391651 | 74.2 | 1.31 | |
158 | 1.26559887412571 | 77.0668292682927 | 1.9346 | |
159 | 1.23525939243459 | 71.0903170731707 | 5.236 | |
160 | 1.43631960091148 | 76.8146341463415 | 1.45 | |
162 | 1.31769775045439 | 70.3093414634146 | 3.595 | |
163 | 1.10575788483906 | 76.4963902439024 | 3.08 | |
164 | 1.63992453353915 | 71.1609756097561 | 1.27 | |
165 | 1.37248148651863 | 72.1853658536586 | 1.58 | |
166 | 2.64354953233052 | 65.4878048780488 | 1.25 | |
167 | 1.40249276851592 | 48.1367073170732 | 5.715 | |
168 | 1.621727572147 | 71.7079512195122 | 3.805 | |
169 | 1.08774882732578 | 63.4531463414634 | 4.665 | |
171 | 1.72537111876298 | 57.6002682926829 | 5.259 | |
172 | 1.40560679167845 | 79.7951219512195 | 1.57 | |
173 | 1.27649836462065 | 78.3512195121951 | 1.41 | |
174 | 1.19165579236333 | 75.7585365853659 | 1.21 | |
175 | 1.31530726008138 | 73.4024390243903 | 1.2 | |
176 | 1.28172614148064 | 40.5776829268293 | 5.669 | |
178 | 1.43261578167127 | 56.0584390243903 | 5.466 | |
179 | 1.37510173569654 | 48.7663658536585 | 6.506 | |
180 | 1.09285092821614 | 68.0176097560976 | 2.686 | |
182 | 1.04984971212732 | 62.5045365853659 | 4.484 | |
183 | 1.33263068786024 | 69.8956829268293 | 2.803 | |
185 | 1.55586039976445 | 74.2120243902439 | 3.529 | |
186 | 1.14054739523326 | 47.439756097561 | 4.128 | |
188 | 1.39928194675911 | 48.2825853658537 | 6.585 | |
189 | 1.30374705850381 | 54.9340975609756 | 4.992 | |
190 | 2.08037585912817 | 72.6414390243902 | 1.695 | |
191 | 1.34098489355281 | 64.1048536585366 | 3.935 | |
192 | 1.1264463235182 | 57.0217804878049 | 7.092 | |
193 | 1.29001673218727 | 64.0257804878049 | 2.783 | |
194 | 1.4229778723351 | 72.8487804878049 | 2.05 | |
195 | 1.04103582296082 | 70.8990487804878 | 4.236 | |
196 | 2.08917357357141 | 70.064 | 2.321 | |
197 | 1.15300558141249 | 68.3143902439025 | 1.62 | |
199 | 1.80358128626657 | 50.8047317073171 | 5.671 | |
200 | 1.94918643740316 | 68.2870731707317 | 1.1 | |
201 | 1.68133505224083 | 46.7667317073171 | 6.822 | |
202 | 3.29660131293339 | 76.7365853658537 | 2.034 | |
203 | 1.24786299865862 | 74.8721951219512 | 2.14 | |
204 | 1.67965435640472 | 67.0289268292683 | 2.46 | |
205 | 1.04312189133785 | 70.4773658536585 | 2.321 | |
206 | 1.67837307056092 | 73.4292682926829 | 2.79 | |
207 | 1.0432070089505 | 77.8451463412927 | 1.8997 | |
208 | 2.20626038427241 | 72.3813170731707 | 1.94 | |
209 | 1.05800183386534 | 67.9357073170732 | 4.39 | |
210 | 1.05577010843516 | 69.8200731707317 | 4.509 | |
211 | 1.57756338273948 | 60.2931463414634 | 6.318 | |
212 | 1.91164644099219 | 53.7273170731707 | 2.835 | |
213 | 1.43778359472101 | 42.0308292682927 | 6.119 | |
214 | 1.4825249062846 | 43.7684390243902 | 3.803 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.24399479689953 | 75.0522195121951 | 2.413 | |
3 | 1.64094814043914 | 45.8331463414634 | 7.447 | |
4 | 1.03663334250656 | 75.280487804878 | 1.7 | |
5 | 1.24549321933559 | 75.1612195121951 | 2.04 | |
6 | 1.23718760984658 | 71.8896097560976 | 1.692 | |
7 | 1.52478347984224 | 46.7119268292683 | 6.654 | |
8 | 1.83445338178418 | 74.1386097560976 | 2.379 | |
10 | 1.38658816883069 | 78.6780487804878 | 1.39 | |
11 | 1.60298450060114 | 79.9365853658537 | 1.756 | |
12 | 1.04023667927358 | 73.8641951219512 | 1.825 | |
13 | 1.38873654456496 | 67.5548536585366 | 1.8 | |
14 | 1.26833071200579 | 74.6153658536585 | 1.315 | |
15 | 1.06963737387136 | 75.6081951219512 | 1.516 | |
16 | 2.59239526175895 | 65.6683170731707 | 2.907 | |
17 | 1.43716266641954 | 78.0756097560976 | 1.6599 | |
18 | 1.47692338055937 | 50.9776341463415 | 6.161 | |
19 | 1.38144321273082 | 71.8658536585366 | 1.21 | |
20 | 1.11584208442043 | 74.0375365853659 | 2.647 | |
21 | 1.36072518925778 | 46.6730731707317 | 5.484 | |
22 | 1.37027139351546 | 53.061512195122 | 5.828 | |
24 | 1.07919847493335 | 76.6810487804878 | 2.292 | |
25 | 1.40440463162086 | 63.6788048780488 | 3.983 | |
26 | 2.82216262798519 | 70.7240975609756 | 2.264 | |
27 | 1.07470442187046 | 72.3384878048781 | 1.925 | |
28 | 1.10458287760278 | 63.0268048780488 | 3.352 | |
29 | 1.18260127046554 | 49.3375365853659 | 3.228 | |
30 | 1.42714508176117 | 68.0560975609756 | 1.22 | |
31 | 1.06723599755616 | 73.8086341463415 | 3.396 | |
32 | 1.76180239674202 | 79.590243902439 | 1.52 | |
33 | 1.95727463851331 | 46.2538048780488 | 6.746 | |
34 | 1.26379738894521 | 43.5288292682927 | 5.329 | |
35 | 1.2462506430791 | 54.3414878048781 | 4.864 | |
36 | 1.36700802355841 | 80.3853658536585 | 1.39 | |
37 | 1.55542740582121 | 50.4438780487805 | 5.055 | |
38 | 1.54098587962185 | 77.5552195121951 | 2.014 | |
39 | 1.55720833724878 | 49.5780975609756 | 4.917 | |
40 | 5.86815194012901 | 71.5794390243902 | 1.705 | |
41 | 1.87334822391813 | 71.5340243902439 | 2.57 | |
42 | 1.2750163342311 | 78.134756097561 | 2.275 | |
43 | 1.45539760944905 | 76.8153414634146 | 1.621 | |
44 | 1.09142747948803 | 70.5136585365854 | 3.358 | |
46 | 1.13415421548678 | 78.2092682926829 | 1.613 | |
47 | 1.43444595939399 | 75.2219512195122 | 1.17 | |
48 | 2.2355759543804 | 78.2292682926829 | 1.34 | |
49 | 1.11678834344719 | 54.4471219512195 | 4.562 | |
50 | 1.31522107411018 | 76.8951219512195 | 1.72 | |
51 | 1.03395239044666 | 76.5975609756098 | 1.9 | |
52 | 1.4065025157574 | 71.4053170731707 | 2.836 | |
53 | 1.77637425093585 | 70.7299024390244 | 2.519 | |
54 | 1.49095311271312 | 74.0408048780488 | 2.844 | |
55 | 1.15813913853417 | 70.9048780487805 | 1.37 | |
56 | 2.12431565940651 | 70.203243902439 | 3.18 | |
57 | 1.28126287910962 | 57.1324634146342 | 5.235 | |
58 | 1.87438257348757 | 79.5682926829268 | 1.26 | |
59 | 2.13777902897426 | 52.9186829268293 | 5.699 | |
60 | 1.31003075778335 | 78.119512195122 | 1.72 | |
61 | 1.12234592582142 | 67.9773658536586 | 3.001 | |
62 | 1.04290544679947 | 67.4937317073171 | 4.106 | |
64 | 2.06947764271997 | 79.2609756097561 | 1.88 | |
65 | 1.15378813149208 | 59.4239024390244 | 3.823 | |
66 | 2.04782041937563 | 78.1439024390244 | 1.64 | |
67 | 1.04183872554429 | 74.026512195122 | 2.455 | |
68 | 1.28373374312991 | 72.0686341463415 | 1.586 | |
69 | 1.6050514971188 | 59.2321951219512 | 4.564 | |
70 | 1.03014133901452 | 68.8634146341464 | 2.489 | |
71 | 1.15506753371638 | 55.768756097561 | 5.498 | |
72 | 1.40901015814785 | 49.3570243902439 | 5.841 | |
73 | 1.10033251920769 | 48.8517804878049 | 5.675 | |
74 | 1.45081057394712 | 78.6414634146341 | 1.27 | |
75 | 1.46651244051853 | 68.6623170731707 | 4.633 | |
76 | 1.05264130847305 | 74.5532195121951 | 2.772 | |
77 | 1.15650407949386 | 45.3988048780488 | 5.692 | |
78 | 1.11727822046683 | 65.551756097561 | 2.435 | |
79 | 1.35311172840056 | 81.4780487804878 | 0.939 | |
80 | 1.34654307591919 | 70.8026097560976 | 3.776 | |
81 | 1.28642816150662 | 74.7173170731707 | 1.34 | |
82 | 1.40477713207992 | 58.8432926829268 | 4.065 | |
83 | 1.43345973126811 | 72.3487804878049 | 1.3 | |
84 | 2.99499982971877 | 66.2378048780488 | 2.386 | |
85 | 1.2695134347514 | 77.6365853658537 | 1.97 | |
86 | 1.34851895164276 | 79.4512195121951 | 2.89 | |
87 | 1.03620337550503 | 77.9658536585366 | 1.65 | |
88 | 5.4641580403251 | 62.3211219512195 | 2.991 | |
89 | 1.68337262783924 | 70.0258780487805 | 5.147 | |
90 | 2.11956738418461 | 70.3867804878049 | 1.996 | |
91 | 1.0719896451125 | 80.5024390243903 | 1.93 | |
92 | 2.02849037847442 | 79.9780487804878 | 1.27 | |
93 | 1.05151591280568 | 78.0538536585366 | 1.406 | |
94 | 1.21979122239092 | 70.776243902439 | 2.552 | |
95 | 1.30513854112318 | 72.3077804878049 | 3.676 | |
96 | 2.53582292862503 | 81.5634146341463 | 1.32 | |
97 | 1.78145408353466 | 51.9659512195122 | 4.983 | |
98 | 1.30370059134449 | 68.1073170731707 | 2.5 | |
99 | 1.48487008593354 | 58.3752195121951 | 3.479 | |
100 | 1.03806285249874 | 62.8243902439024 | 3.6 | |
101 | 1.10075858773204 | 58.3172195121951 | 5.303 | |
102 | 1.02700786632536 | 71.3365853658537 | 2.107 | |
103 | 1.65586675754247 | 66.7150731707317 | 2.065 | |
104 | 1.93877619419858 | 76.8239024390244 | 1.17 | |
105 | 1.17711276935528 | 67.9387804878049 | 2.6645 | |
106 | 1.19434926167784 | 73.9035609756098 | 2.392 | |
108 | 1.52429606951982 | 65.9682926829268 | 2 | |
109 | 1.3201533603201 | 62.575243902439 | 3.811 | |
110 | 1.2548163264627 | 70.9590731707317 | 2.165 | |
111 | 1.05316192639782 | 73.7073170731707 | 2.1 | |
113 | 1.59166820641807 | 72.5439024390244 | 2.247 | |
114 | 1.23810940973339 | 48.3872195121951 | 5.729 | |
115 | 1.18643865796858 | 45.0547804878049 | 3.862 | |
116 | 1.25312063942187 | 71.7609756097561 | 1.24 | |
117 | 1.09010556928204 | 77.9658536585366 | 1.63 | |
118 | 1.20771742351114 | 70.9609756097561 | 1.23 | |
119 | 1.31417586696324 | 72.9769268292683 | 2.994 | |
120 | 1.73647059792076 | 69.4195853658537 | 2.557 | |
122 | 1.25868949498038 | 67.2790731707317 | 1.511 | |
123 | 1.10580311624276 | 74.4695853658537 | 1.79 | |
125 | 1.55644355975083 | 61.5513658536586 | 5.337 | |
127 | 1.19559330339109 | 73.2426829268293 | 1.585 | |
128 | 1.44865233912963 | 47.8730975609756 | 6.735 | |
129 | 1.95479994734992 | 62.2828292682927 | 2.287 | |
130 | 1.21232689117181 | 64.2769268292683 | 2.138 | |
131 | 1.08989734535818 | 78.9612926829268 | 0.858 | |
133 | 1.23047636943246 | 57.0950487804878 | 5.079 | |
134 | 1.08479237050454 | 78.0926829268293 | 1.45 | |
135 | 1.14919902582931 | 71.9658536585366 | 1.94 | |
136 | 1.07137251249044 | 72.2180731707317 | 2.549 | |
137 | 1.46969624384776 | 46.7073170731707 | 6.042 | |
138 | 2.40542480368598 | 74.7620731707317 | 2.542 | |
139 | 1.67211451376247 | 72.4922682926829 | 2.973 | |
140 | 1.59787493056903 | 47.5267804878049 | 5.554 | |
141 | 1.19001876564232 | 57.2016585365854 | 3.848 | |
142 | 1.06293089916482 | 75.1024390243903 | 2.37 | |
143 | 1.46753413509727 | 49.6960243902439 | 7.421 | |
144 | 2.54650949196864 | 47.3504878048781 | 5.809 | |
145 | 1.31145965796812 | 70.6141707317073 | 3.046 | |
146 | 1.54659193803645 | 78.2926829268293 | 1.73 | |
147 | 1.28958232984317 | 78.9878048780488 | 1.75 | |
148 | 1.66781946049573 | 63.1536585365854 | 3.798 | |
149 | 1.27008123320001 | 78.8463414634146 | 1.89 | |
150 | 1.20636684759693 | 74.1956585365854 | 3.138 | |
151 | 1.24226214213691 | 74.5996585365854 | 2.71 | |
152 | 1.70328307876889 | 71.359243902439 | 2.821 | |
153 | 1.06630263294585 | 73.1012195121951 | 2.363 | |
154 | 1.32346116770294 | 59.4689024390244 | 4.392 | |
155 | 2.22402589323774 | 67.0638048780488 | 3.71 | |
156 | 2.66449843133381 | 63.5533658536585 | 4.126 | |
157 | 1.84111240584397 | 74.4975609756098 | 1.25 | |
158 | 1.26577049542365 | 77.7604878048781 | 1.8317 | |
159 | 1.23829201358916 | 71.2606341463415 | 5.113 | |
160 | 1.43791603508341 | 77.0658536585366 | 1.47 | |
162 | 1.32090768561419 | 70.5663902439024 | 3.513 | |
163 | 1.1073160184017 | 76.6876341463415 | 3.004 | |
164 | 1.63515105289662 | 71.009756097561 | 1.25 | |
165 | 1.37239695200816 | 72.2853658536585 | 1.57 | |
166 | 2.63988602960246 | 65.0853658536585 | 1.3 | |
167 | 1.40769059043842 | 49.3775853658537 | 5.646 | |
168 | 1.63547280731784 | 71.9351219512195 | 3.635 | |
169 | 1.08893791885887 | 64.0339268292683 | 4.619 | |
170 | 1.03754903666237 | 72.9536585365854 | 2.04 | |
171 | 1.73489795811356 | 58.1875853658537 | 5.17 | |
172 | 1.40626788715402 | 79.8463414634146 | 1.65 | |
173 | 1.27776733279743 | 78.6951219512195 | 1.37 | |
174 | 1.1917750249797 | 76.0073170731707 | 1.21 | |
175 | 1.31531280734945 | 73.6048780487805 | 1.19 | |
176 | 1.28813702219074 | 41.4894390243903 | 5.606 | |
178 | 1.4383732657427 | 56.3826585365854 | 5.393 | |
179 | 1.38040961303391 | 49.1375365853659 | 6.5 | |
180 | 1.09352494899408 | 68.1495853658537 | 2.638 | |
182 | 1.05034185160235 | 62.6613170731707 | 4.387 | |
183 | 1.33327023603331 | 70.0988292682927 | 2.683 | |
185 | 1.56072877271312 | 74.3976585365854 | 3.438 | |
186 | 1.14103526082017 | 46.5279756097561 | 4.04 | |
188 | 1.40706452245295 | 48.1295853658537 | 6.555 | |
189 | 1.30772597762756 | 55.0386341463415 | 4.882 | |
190 | 2.08660061069087 | 72.7769268292683 | 1.683 | |
191 | 1.34408594028242 | 64.4699024390244 | 3.847 | |
192 | 1.12848029600188 | 57.7802195121951 | 7.037 | |
193 | 1.29155738993969 | 64.141243902439 | 2.741 | |
194 | 1.42534082245878 | 73 | 2 | |
195 | 1.04116619402958 | 71.0391219512195 | 4.221 | |
196 | 2.09697972295711 | 70.6391463414634 | 2.268 | |
197 | 1.153330404118 | 68.2902195121951 | 1.61 | |
199 | 1.81400644942236 | 51.3282682926829 | 5.658 | |
200 | 1.9444814827419 | 68.2756097560976 | 1.1 | |
201 | 1.69285660823923 | 47.5431219512195 | 6.772 | |
202 | 3.30728024881353 | 76.8365853658537 | 2.013 | |
203 | 1.24789055208827 | 74.8363414634146 | 2.15 | |
204 | 1.68382727303605 | 67.0859756097561 | 2.52 | |
205 | 1.04315643030321 | 70.6014390243903 | 2.271 | |
206 | 1.68466275131386 | 73.6292682926829 | 2.76 | |
207 | 1.04316886614108 | 78.1146341463415 | 2.1127 | |
208 | 2.21328063911481 | 72.7770975609756 | 1.918 | |
209 | 1.05874144746498 | 68.3014634146342 | 4.33 | |
210 | 1.05593993935577 | 70.1358292682927 | 4.443 | |
211 | 1.58585336110549 | 60.9068536585366 | 6.162 | |
212 | 1.91795460253179 | 52.7924146341463 | 2.801 | |
213 | 1.44331440406235 | 42.3425365853659 | 6.111 | |
214 | 1.48356252868599 | 43.2847804878049 | 3.752 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.24944449178325 | 75.2608780487805 | 2.301 | |
3 | 1.65400270613864 | 46.0924390243902 | 7.294 | |
5 | 1.24457881570307 | 75.5420243902439 | 1.941 | |
6 | 1.23675919731923 | 72.2783902439025 | 1.704 | |
7 | 1.53412622983507 | 47.3933658536585 | 6.533 | |
8 | 1.83824732927047 | 74.3442926829268 | 2.341 | |
10 | 1.38753179500734 | 78.6317073170732 | 1.38 | |
11 | 1.6067178311548 | 80.2390243902439 | 1.748 | |
12 | 1.04069863298309 | 73.966 | 1.805 | |
13 | 1.3902133278172 | 67.9943170731707 | 1.9 | |
14 | 1.2682686240287 | 74.6348780487805 | 1.273 | |
15 | 1.06981257653441 | 75.7052926829268 | 1.504 | |
16 | 2.60501310558666 | 66.1098536585366 | 2.802 | |
17 | 1.43807936389604 | 78.1292682926829 | 1.66 | |
18 | 1.48391003121784 | 51.4323658536585 | 6.117 | |
19 | 1.38035202466352 | 72.0658536585366 | 1.23 | |
20 | 1.11895718703952 | 74.1552926829268 | 2.629 | |
21 | 1.36649292386373 | 47.0215609756098 | 5.333 | |
22 | 1.37649106378444 | 53.3014878048781 | 5.764 | |
24 | 1.08004024789317 | 76.8808048780488 | 2.25 | |
25 | 1.4083543407724 | 64.0275121951219 | 3.899 | |
26 | 2.83410549866194 | 70.9961463414634 | 2.203 | |
27 | 1.07551577996665 | 72.7371707317073 | 1.881 | |
28 | 1.106157474093 | 63.7316097560976 | 3.199 | |
29 | 1.18379477632755 | 49.3273414634146 | 3.149 | |
30 | 1.42566924078822 | 68.5536585365854 | 1.21 | |
31 | 1.06813566759693 | 74.0136585365854 | 3.301 | |
32 | 1.76560743652557 | 79.8390243902439 | 1.53 | |
33 | 1.97124259717177 | 46.541243902439 | 6.644 | |
34 | 1.26597708116358 | 43.6721951219512 | 5.256 | |
35 | 1.24922787848602 | 54.5296585365854 | 4.827 | |
36 | 1.36837341194738 | 80.5365853658537 | 1.39 | |
37 | 1.55932619935559 | 50.7328292682927 | 4.997 | |
38 | 1.54399066126479 | 77.8511707317073 | 1.985 | |
39 | 1.56448910857717 | 49.4355609756098 | 4.886 | |
40 | 5.88333656997512 | 71.7648780487805 | 1.692 | |
41 | 1.88026950554097 | 71.7882195121951 | 2.542 | |
42 | 1.27760552862507 | 78.2855853658537 | 2.204 | |
43 | 1.45608399285897 | 77.0808292682927 | 1.61 | |
44 | 1.09221353708284 | 71.0676341463415 | 3.195 | |
46 | 1.13540835319625 | 78.3301951219512 | 1.577 | |
47 | 1.43449940270147 | 75.1707317073171 | 1.18 | |
48 | 2.23591806076187 | 78.3804878048781 | 1.34 | |
49 | 1.11762932250924 | 54.7893902439024 | 4.445 | |
50 | 1.31565068384372 | 77.1439024390244 | 1.76 | |
52 | 1.4095883140111 | 71.6406097560976 | 2.809 | |
53 | 1.78148863984461 | 71.059 | 2.49 | |
54 | 1.49563886296318 | 74.299243902439 | 2.791 | |
55 | 1.15784115870258 | 71.3170731707317 | 1.37 | |
56 | 2.13357526813567 | 70.6915609756098 | 3.114 | |
57 | 1.28747738697938 | 57.6539268292683 | 5.135 | |
58 | 1.88166111428113 | 79.619512195122 | 1.31 | |
59 | 2.15426346099168 | 53.618 | 5.498 | |
60 | 1.31040115925942 | 78.3682926829268 | 1.76 | |
61 | 1.12242056216105 | 68.1602682926829 | 2.954 | |
62 | 1.04286941038248 | 67.6171463414634 | 4.008 | |
64 | 2.07327184571468 | 79.2634146341464 | 1.89 | |
65 | 1.15561283282721 | 59.483756097561 | 3.718 | |
66 | 2.04994197109011 | 78.4463414634146 | 1.71 | |
67 | 1.04189840582006 | 74.2989512195122 | 2.41 | |
68 | 1.28281571999989 | 72.2758292682927 | 1.577 | |
69 | 1.6128837670987 | 59.7857317073171 | 4.525 | |
71 | 1.15754719716346 | 56.0655609756098 | 5.426 | |
72 | 1.41258837141413 | 49.9737317073171 | 5.769 | |
73 | 1.10190240861562 | 48.9889268292683 | 5.622 | |
74 | 1.45154840733245 | 78.8414634146341 | 1.28 | |
75 | 1.4723694032662 | 69.0421219512195 | 4.546 | |
76 | 1.05274352708952 | 74.7411219512195 | 2.721 | |
77 | 1.15825116760801 | 45.6397804878049 | 5.616 | |
78 | 1.11751337634537 | 66.1368780487805 | 2.419 | |
79 | 1.35276298246557 | 81.3292682926829 | 0.901 | |
80 | 1.35006021210536 | 71.0034634146342 | 3.676 | |
81 | 1.28642816150662 | 74.6139024390244 | 1.33 | |
82 | 1.40788816812346 | 59.1417804878049 | 3.955 | |
83 | 1.43283892896402 | 72.3 | 1.27 | |
84 | 3.00936263958095 | 66.5165365853659 | 2.353 | |
85 | 1.27172172838888 | 77.9175609756098 | 1.96 | |
86 | 1.35168309325073 | 79.6487804878049 | 2.95 | |
88 | 5.49942902458357 | 62.6709512195122 | 2.933 | |
89 | 1.6930714904583 | 69.5260975609756 | 5.098 | |
90 | 2.12629154357467 | 70.7073902439025 | 1.924 | |
91 | 1.07224603913785 | 80.9634146341464 | 1.99 | |
92 | 2.03250699147634 | 79.9317073170732 | 1.29 | |
93 | 1.05171869155644 | 78.3238292682927 | 1.408 | |
94 | 1.22013642223249 | 70.9821951219512 | 2.526 | |
95 | 1.308936360742 | 72.4203658536585 | 3.6506666667 | |
96 | 2.53746708922872 | 81.76 | 1.29 | |
97 | 1.79209325121092 | 52.127243902439 | 4.965 | |
98 | 1.30529924250043 | 68.2560975609756 | 2.5 | |
99 | 1.4891463553411 | 58.8894390243903 | 3.327 | |
101 | 1.10207835232244 | 58.5316585365854 | 5.283 | |
103 | 1.65869854328769 | 67.4055853658537 | 2.053 | |
104 | 1.94110966301457 | 77.260243902439 | 1.19 | |
105 | 1.1771731626972 | 68.189512195122 | 2.343 | |
106 | 1.19756642790338 | 73.9738292682927 | 2.305 | |
108 | 1.52517914782124 | 65.8658536585366 | 2.03 | |
109 | 1.32228029632765 | 63.1923170731707 | 3.626 | |
110 | 1.26107720697821 | 71.1293414634146 | 2.073 | |
111 | 1.05343089933066 | 73.7414634146342 | 2.101 | |
113 | 1.59559680817263 | 73.1815609756098 | 2.279 | |
114 | 1.24018166961932 | 49.6259268292683 | 5.673 | |
115 | 1.1870962021217 | 44.363756097561 | 3.755 | |
116 | 1.25257656351069 | 72.0609756097561 | 1.26 | |
117 | 1.09066410931343 | 77.7268292682927 | 1.62 | |
118 | 1.20712481806329 | 71.2658536585366 | 1.29 | |
119 | 1.31658861086659 | 73.1895609756098 | 2.955 | |
120 | 1.73992437833241 | 69.767243902439 | 2.504 | |
122 | 1.25832469327612 | 67.4624634146341 | 1.497 | |
123 | 1.10590129894408 | 74.2829024390244 | 1.773 | |
125 | 1.5648496408148 | 62.4573170731707 | 5.234 | |
127 | 1.19589706800649 | 73.4099756097561 | 1.55 | |
128 | 1.45555227351789 | 48.2075853658537 | 6.693 | |
129 | 1.95785637381744 | 62.4668292682927 | 2.229 | |
130 | 1.21342955125257 | 64.8824390243903 | 2.156 | |
131 | 1.09057025373262 | 79.1662195121951 | 0.849 | |
133 | 1.23399257507648 | 57.1329268292683 | 5.011 | |
134 | 1.08507708478561 | 78.3512195121951 | 1.48 | |
135 | 1.14997947031438 | 72.121300813 | 1.87 | |
136 | 1.07199877185774 | 73.0244146341463 | 2.394 | |
137 | 1.47580319106284 | 47.3086341463415 | 6.025 | |
138 | 2.41417291729964 | 75.0047317073171 | 2.525 | |
139 | 1.67864876567907 | 72.6579024390244 | 2.926 | |
140 | 1.60638307788246 | 47.6621219512195 | 5.479 | |
141 | 1.1911324641017 | 57.3889512195122 | 3.76 | |
142 | 1.06355209807078 | 75.2707317073171 | 2.3 | |
143 | 1.47610070810341 | 50.3822682926829 | 7.381 | |
144 | 2.5662834002337 | 47.9163658536585 | 5.772 | |
145 | 1.31351206865296 | 71.0855853658537 | 2.968 | |
146 | 1.54788351105058 | 78.4926829268293 | 1.75 | |
147 | 1.29043423438427 | 79.390243902439 | 1.8 | |
148 | 1.67365122844236 | 63.9802926829268 | 3.641 | |
149 | 1.27276462039783 | 79.1463414634146 | 1.91 | |
150 | 1.20995518973345 | 74.0730731707317 | 2.948 | |
151 | 1.24463254076816 | 74.78 | 2.687 | |
152 | 1.70778780303394 | 71.7593902439024 | 2.774 | |
153 | 1.06678993185499 | 73.4222926829268 | 2.322 | |
154 | 1.32752797608694 | 59.8253170731707 | 4.335 | |
155 | 2.23644588903628 | 67.1893658536585 | 3.643 | |
156 | 2.67958809917451 | 63.7388536585366 | 3.987 | |
157 | 1.84082855310788 | 74.5975609756098 | 1.22 | |
158 | 1.26585384519735 | 78.0712195121951 | 1.7624 | |
159 | 1.24136348833569 | 71.4238780487805 | 5.003 | |
160 | 1.43944913992964 | 77.219512195122 | 1.44 | |
162 | 1.32409236848623 | 70.8098048780488 | 3.43 | |
163 | 1.10991417368311 | 76.8763902439025 | 2.914 | |
164 | 1.63425992958085 | 71.309756097561 | 1.27 | |
165 | 1.37191352906062 | 72.4365853658537 | 1.59 | |
166 | 2.63592949640167 | 65.0075609756098 | 1.31 | |
167 | 1.41082574434036 | 50.4490975609756 | 5.586 | |
168 | 1.65025892868822 | 72.1710243902439 | 3.484 | |
169 | 1.09012200103476 | 64.5672195121951 | 4.579 | |
170 | 1.03732655851577 | 71.0292682926829 | 2.1 | |
171 | 1.74474954313386 | 58.7119268292683 | 5.075 | |
172 | 1.40702507559561 | 80.0951219512195 | 1.71 | |
173 | 1.27572075489854 | 79.0390243902439 | 1.27 | |
174 | 1.19183306973711 | 76.8585365853659 | 1.2 | |
175 | 1.31532897898671 | 73.6048780487805 | 1.2 | |
176 | 1.29510961932832 | 42.4307804878049 | 5.541 | |
178 | 1.44431764575404 | 56.7074146341463 | 5.323 | |
179 | 1.38552738736493 | 49.4362926829268 | 6.49 | |
180 | 1.09419228007286 | 68.334243902439 | 2.59 | |
182 | 1.05089182030837 | 62.8296097560976 | 4.288 | |
183 | 1.33385448133088 | 70.2999756097561 | 2.581 | |
185 | 1.5657206191945 | 74.5782682926829 | 3.36 | |
186 | 1.14141180305269 | 45.9617317073171 | 3.954 | |
188 | 1.41497375159748 | 48.0359756097561 | 6.514 | |
189 | 1.31176790151839 | 55.1265609756098 | 4.774 | |
190 | 2.09246572499903 | 72.9154634146341 | 1.673 | |
191 | 1.34744475658938 | 64.8474878048781 | 3.763 | |
192 | 1.13090657981433 | 58.4655365853659 | 6.964 | |
193 | 1.29307280302143 | 64.2479512195122 | 2.702 | |
194 | 1.42659874792457 | 73.0512195121951 | 2.06 | |
195 | 1.04130265196552 | 71.1798048780488 | 4.202 | |
196 | 2.10468013193351 | 71.1683170731708 | 2.227 | |
197 | 1.15370084971487 | 68.3330487804878 | 1.608 | |
199 | 1.82478503647774 | 51.9353902439024 | 5.645 | |
200 | 1.94065671426391 | 68.2107317073171 | 1.2 | |
201 | 1.70470964030499 | 48.385243902439 | 6.716 | |
202 | 3.31721716978724 | 76.9878048780488 | 2.042 | |
203 | 1.24781255077071 | 74.8768292682927 | 2.1 | |
204 | 1.68781881992127 | 67.131 | 2.36 | |
205 | 1.04319994007382 | 70.7479268292683 | 2.23 | |
206 | 1.69090074757069 | 72.7829268292683 | 2.72 | |
207 | 1.04314248932868 | 78.2513821138293 | 2.0065 | |
208 | 2.22035151204556 | 73.1259024390244 | 1.907 | |
209 | 1.05952428187839 | 68.654243902439 | 4.269 | |
210 | 1.05611915164149 | 70.4396097560976 | 4.368 | |
211 | 1.59417033343807 | 61.5119512195122 | 6.018 | |
212 | 1.92381556185571 | 52.0134390243903 | 2.764 | |
213 | 1.44889685198429 | 42.8585609756098 | 6.111 | |
214 | 1.48417802538829 | 43.1434878048781 | 3.704 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.25995992001186 | 75.4639756097561 | 2.191 | |
3 | 1.66665188544967 | 46.3511951219512 | 7.14 | |
5 | 1.24369983226042 | 75.8591219512195 | 1.847 | |
6 | 1.23635311110833 | 72.6164146341464 | 1.715 | |
7 | 1.54366830126084 | 48.0037073170732 | 6.391 | |
8 | 1.84197474415037 | 74.5455853658537 | 2.31 | |
10 | 1.38873692547247 | 79.1804878048781 | 1.42 | |
11 | 1.61024637336239 | 80.490243902439 | 1.768 | |
12 | 1.04108946252009 | 74.087756097561 | 1.787 | |
13 | 1.39192665070727 | 68.4571951219512 | 2.0535 | |
14 | 1.26795603425308 | 74.6596341463415 | 1.239 | |
15 | 1.06999276189619 | 75.8015365853659 | 1.5 | |
16 | 2.61678480555481 | 66.5313658536585 | 2.699 | |
17 | 1.43902905631629 | 78.8780487804878 | 1.72 | |
18 | 1.49103259741854 | 51.9222195121951 | 6.075 | |
19 | 1.37931906248117 | 72.5634146341463 | 1.29 | |
20 | 1.12266834299747 | 74.2715365853659 | 2.621 | |
21 | 1.37266375933686 | 47.3803658536585 | 5.18 | |
22 | 1.38275904501311 | 53.5489512195122 | 5.702 | |
24 | 1.08086250230542 | 77.0626341463415 | 2.213 | |
25 | 1.41220752832763 | 64.3692926829268 | 3.811 | |
26 | 2.845460416263 | 71.2617804878049 | 2.136 | |
27 | 1.07634167038842 | 73.1578292682927 | 1.858 | |
28 | 1.10767313278198 | 64.3482195121951 | 3.053 | |
29 | 1.18490607235994 | 49.7374878048781 | 3.08 | |
30 | 1.42421008159475 | 68.9560975609756 | 1.2 | |
31 | 1.06903889531983 | 74.2599268292683 | 3.209 | |
32 | 1.7694537981642 | 80.1414634146341 | 1.53 | |
33 | 1.98557237333626 | 46.7870243902439 | 6.531 | |
34 | 1.26819327131619 | 43.9461219512195 | 5.175 | |
35 | 1.25238093708892 | 54.7726097560976 | 4.788 | |
36 | 1.36964303720003 | 81.0878048780488 | 1.42 | |
37 | 1.56319323841546 | 51.1113902439024 | 4.932 | |
38 | 1.54691881877404 | 78.0895853658537 | 1.96 | |
39 | 1.57184630481109 | 49.3748536585366 | 4.85 | |
40 | 5.89786007802666 | 71.9623414634146 | 1.68 | |
41 | 1.88713496462403 | 72.0367804878049 | 2.518 | |
42 | 1.28010095810266 | 78.4284146341463 | 2.134 | |
43 | 1.45664038643666 | 77.3740975609756 | 1.592 | |
44 | 1.09287733728002 | 71.6177804878049 | 3.041 | |
46 | 1.136611221575 | 78.4500975609756 | 1.55 | |
47 | 1.43468368802865 | 75.7219512195122 | 1.23 | |
48 | 2.2357838985876 | 78.6804878048781 | 1.36 | |
49 | 1.11846745640277 | 55.1590243902439 | 4.329 | |
50 | 1.31605938927415 | 77.4926829268293 | 1.78 | |
52 | 1.41265135133563 | 71.863 | 2.781 | |
53 | 1.78689253611156 | 71.3649024390244 | 2.466 | |
54 | 1.50027184781034 | 74.5164146341463 | 2.739 | |
55 | 1.15759077727145 | 71.909756097561 | 1.47 | |
56 | 2.14299668810595 | 71.1338780487805 | 3.05 | |
57 | 1.29362441887689 | 58.1626829268293 | 5.033 | |
58 | 1.88884484489693 | 79.8707317073171 | 1.32 | |
59 | 2.17079371248134 | 54.3706585365854 | 5.294 | |
60 | 1.31085276337889 | 78.7146341463415 | 1.8 | |
61 | 1.12255437015225 | 68.3406585365854 | 2.907 | |
62 | 1.04281735226686 | 67.752512195122 | 3.914 | |
64 | 2.07722797208566 | 80.1634146341463 | 1.92 | |
65 | 1.15746358593281 | 59.6818048780488 | 3.621 | |
66 | 2.05259708086676 | 78.7463414634146 | 1.77 | |
67 | 1.04196153012989 | 74.5443414634146 | 2.374 | |
68 | 1.28246864444386 | 72.4473414634146 | 1.574 | |
69 | 1.62089224832981 | 60.3966097560976 | 4.487 | |
71 | 1.16007546607807 | 56.3548536585366 | 5.354 | |
72 | 1.41649609344313 | 50.5689512195122 | 5.698 | |
73 | 1.10347334381667 | 49.1719268292683 | 5.567 | |
74 | 1.45233037803839 | 79.0390243902439 | 1.3 | |
75 | 1.4783068875406 | 69.3678048780488 | 4.458 | |
76 | 1.05280858380341 | 74.9240487804878 | 2.673 | |
77 | 1.16000937143458 | 45.873243902439 | 5.54 | |
78 | 1.11777509657089 | 66.7268780487805 | 2.401 | |
79 | 1.35414283981982 | 81.7804878048781 | 0.927 | |
80 | 1.35359170008803 | 71.2120487804878 | 3.582 | |
81 | 1.28639584950052 | 75.520243902439 | 1.35 | |
82 | 1.41091057111834 | 59.4880731707317 | 3.851 | |
83 | 1.43235959997487 | 72.6487804878049 | 1.28 | |
84 | 3.02381031066098 | 66.791243902439 | 2.318 | |
85 | 1.27422176554882 | 78.1985365853659 | 1.94 | |
86 | 1.35480858623414 | 80.1463414634146 | 2.9 | |
88 | 5.53393235142875 | 63.0193170731707 | 2.879 | |
89 | 1.70254087125708 | 68.9787804878049 | 5.048 | |
90 | 2.13283739939726 | 71.0224634146341 | 1.868 | |
91 | 1.07257233553751 | 80.9975609756098 | 2.04 | |
92 | 2.03760924164575 | 80.7292682926829 | 1.33 | |
93 | 1.0519213913218 | 78.5901951219512 | 1.409 | |
94 | 1.2206571030937 | 71.2184390243902 | 2.499 | |
95 | 1.31268805653276 | 72.5314634146342 | 3.6253333333 | |
96 | 2.53772589932589 | 82.030243902439 | 1.29 | |
97 | 1.80288086218328 | 52.4839268292683 | 4.939 | |
98 | 1.30715482379006 | 68.1536585365854 | 2.6 | |
99 | 1.49319765467705 | 59.4286341463415 | 3.188 | |
101 | 1.10342020343917 | 58.7480731707317 | 5.254 | |
103 | 1.66136432864592 | 67.9053658536586 | 2.046 | |
104 | 1.94287805921422 | 77.8465853658537 | 1.16 | |
105 | 1.17723353545974 | 68.440243902439 | 2.533 | |
106 | 1.2012841583353 | 74.0425853658537 | 2.254 | |
108 | 1.52700800293085 | 65.8878048780488 | 2.21 | |
109 | 1.32457065906637 | 63.8258536585366 | 3.46 | |
110 | 1.2668089699461 | 71.3066585365854 | 1.997 | |
111 | 1.05372350888311 | 73.2429268292683 | 2.066 | |
113 | 1.59965401712506 | 73.6651463414634 | 2.308 | |
114 | 1.24249860272857 | 50.8233658536585 | 5.618 | |
115 | 1.18775119697658 | 44.0759024390244 | 3.655 | |
116 | 1.25189361281896 | 71.9609756097561 | 1.26 | |
117 | 1.09132164038944 | 79.1219512195122 | 1.66 | |
118 | 1.20656451991311 | 72.0268292682927 | 1.24 | |
119 | 1.31904591184496 | 73.4071951219512 | 2.913 | |
120 | 1.74327980336214 | 70.0998780487805 | 2.462 | |
122 | 1.25800439610757 | 67.6264634146342 | 1.49 | |
123 | 1.10600803379749 | 74.1264878048781 | 1.755 | |
125 | 1.57327526521309 | 63.3207804878049 | 5.134 | |
127 | 1.19612662354557 | 73.5771707317073 | 1.521 | |
128 | 1.46267187835726 | 48.5576341463415 | 6.648 | |
129 | 1.96073141783315 | 62.6517073170732 | 2.181 | |
130 | 1.21462526713969 | 65.4808780487805 | 2.204 | |
131 | 1.09136692819592 | 79.3686341463415 | 0.859 | |
133 | 1.23751602967909 | 57.173756097561 | 4.943 | |
134 | 1.08536876348665 | 78.5536585365854 | 1.4 | |
135 | 1.15063059175865 | 72.2767479674878 | 1.87 | |
136 | 1.07262727658685 | 73.7431463414634 | 2.256 | |
137 | 1.48218584850099 | 48.0629024390244 | 6.013 | |
138 | 2.4228190304202 | 75.25 | 2.507 | |
139 | 1.68508795688147 | 72.8215609756098 | 2.878 | |
140 | 1.61495110983492 | 47.8196097560976 | 5.402 | |
141 | 1.19219873863492 | 57.8535853658537 | 3.675 | |
142 | 1.06417997404863 | 75.5146341463415 | 2.18 | |
143 | 1.48486170682103 | 51.0435609756098 | 7.341 | |
144 | 2.58653190208196 | 48.4726097560976 | 5.736 | |
145 | 1.31552532043992 | 71.5397804878049 | 2.904 | |
146 | 1.54883666033053 | 79.0951219512195 | 1.72 | |
147 | 1.29129505318785 | 79.8414634146342 | 1.83 | |
148 | 1.67907486138605 | 64.7989512195122 | 3.48 | |
149 | 1.27480290472393 | 79.5487804878049 | 2 | |
150 | 1.21323025717504 | 73.8551707317073 | 2.796 | |
151 | 1.24698674778997 | 74.9542682926829 | 2.662 | |
152 | 1.71209622449387 | 72.1286829268293 | 2.731 | |
153 | 1.06724219119388 | 73.722512195122 | 2.282 | |
154 | 1.33160418655509 | 60.1925365853659 | 4.28 | |
155 | 2.24856165867695 | 67.3139512195122 | 3.568 | |
156 | 2.69457141764852 | 63.9208048780488 | 3.874 | |
157 | 1.84058254473466 | 74.8463414634146 | 1.23 | |
158 | 1.26588110054305 | 78.1758536585366 | 1.7822 | |
159 | 1.24447439641671 | 71.5855853658537 | 4.906 | |
160 | 1.44072968790306 | 77.6707317073171 | 1.4 | |
162 | 1.32724608850965 | 71.0385609756098 | 3.348 | |
163 | 1.11486668346816 | 77.0636097560976 | 2.811 | |
164 | 1.63342589413145 | 71.5942756097561 | 1.29 | |
165 | 1.37147945511442 | 72.5829268292683 | 1.57 | |
166 | 2.63168191038132 | 65.4212195121951 | 1.33 | |
167 | 1.41370385547649 | 51.3964146341463 | 5.536 | |
168 | 1.66415605179615 | 72.4151219512195 | 3.352 | |
169 | 1.09129447719611 | 65.0495365853659 | 4.541 | |
170 | 1.03725210387013 | 72.609756097561 | 2 | |
171 | 1.7546815014358 | 59.1647804878049 | 4.973 | |
172 | 1.4078269487937 | 80.4975609756098 | 1.75 | |
173 | 1.2774573059141 | 79.490243902439 | 1.26 | |
174 | 1.19189476223864 | 77.2073170731707 | 1.25 | |
175 | 1.3154120546696 | 73.9585365853659 | 1.24 | |
176 | 1.30178927772085 | 43.3686097560976 | 5.474 | |
178 | 1.45040032687729 | 57.0291707317073 | 5.257 | |
179 | 1.39058941097472 | 49.6735853658537 | 6.477 | |
180 | 1.09483140025807 | 68.5695609756098 | 2.545 | |
182 | 1.05150405490899 | 63.0109268292683 | 4.189 | |
183 | 1.33443419162657 | 70.4996341463415 | 2.498 | |
185 | 1.57186332973173 | 74.7548536585366 | 3.292 | |
186 | 1.14185801577021 | 45.7469756097561 | 3.87 | |
188 | 1.42279019206236 | 48.011243902439 | 6.463 | |
189 | 1.3158639657832 | 55.2083658536585 | 4.666 | |
190 | 2.09752879439633 | 73.0529512195122 | 1.663 | |
191 | 1.35100427382639 | 65.2295365853659 | 3.685 | |
192 | 1.133262040075 | 59.0822682926829 | 6.648 | |
193 | 1.29461098665979 | 64.3469268292683 | 2.662 | |
194 | 1.42860288582385 | 73.3024390243903 | 2.02 | |
195 | 1.04144312693014 | 71.3202682926829 | 4.177 | |
196 | 2.11225572129095 | 71.6480487804878 | 2.196 | |
197 | 1.15409238757047 | 68.4433170731707 | 1.61 | |
199 | 1.83597798206906 | 52.6116097560976 | 5.632 | |
200 | 1.93709486892094 | 68.1853658536585 | 1.2 | |
201 | 1.71680014191941 | 49.257512195122 | 6.654 | |
202 | 3.32796503225877 | 77.3390243902439 | 2.045 | |
203 | 1.24775320254401 | 75.2163414634146 | 2.08 | |
204 | 1.69179937620058 | 67.1720487804878 | 2.46 | |
205 | 1.0432446901111 | 70.9167073170732 | 2.197 | |
206 | 1.69708969479415 | 72.9778048780488 | 2.69 | |
207 | 1.04311352059307 | 78.3881300812927 | 2.0683 | |
208 | 2.22768020132815 | 73.4317804878049 | 1.902 | |
209 | 1.06032472761494 | 68.9935609756098 | 4.208 | |
210 | 1.05630305353858 | 70.7323902439024 | 4.287 | |
211 | 1.60239018254971 | 62.0954390243902 | 5.884 | |
212 | 1.92929182836907 | 51.425243902439 | 2.722 | |
213 | 1.4546354082495 | 43.5549512195122 | 6.119 | |
214 | 1.48455908372291 | 43.3369756097561 | 3.657 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.27686238476236 | 75.6604634146342 | 2.086 | |
3 | 1.67824228318307 | 46.6164146341463 | 6.989 | |
5 | 1.24293658900183 | 76.112 | 1.764 | |
6 | 1.23593240137365 | 72.9007073170732 | 1.724 | |
7 | 1.55324688159992 | 48.5384390243903 | 6.233 | |
8 | 1.84569346720534 | 74.7414634146342 | 2.287 | |
10 | 1.39006457245484 | 79.3317073170732 | 1.41 | |
11 | 1.61428817964583 | 80.8414634146341 | 1.807 | |
12 | 1.04137876449318 | 74.2249756097561 | 1.77 | |
13 | 1.39393686120565 | 68.9227317073171 | 2 | |
14 | 1.26771779189448 | 74.7236341463415 | 1.212 | |
15 | 1.0701727483538 | 75.9009512195122 | 1.501 | |
16 | 2.62762497764891 | 66.9322926829268 | 2.601 | |
17 | 1.44023904296625 | 78.9804878048781 | 1.76 | |
18 | 1.4982855108214 | 52.4351951219512 | 6.036 | |
19 | 1.37831104593711 | 72.5609756097561 | 1.32 | |
20 | 1.12704367603531 | 74.3877317073171 | 2.618 | |
21 | 1.37905623163296 | 47.7514634146342 | 5.028 | |
22 | 1.38898434127344 | 53.8137317073171 | 5.64 | |
23 | 1.03237516677606 | 78.5767073170732 | 1.752 | |
24 | 1.0816617480422 | 77.2285853658537 | 2.179 | |
25 | 1.41594218027294 | 64.7040487804878 | 3.721 | |
26 | 2.85612169730886 | 71.5295365853659 | 2.068 | |
27 | 1.07714816557274 | 73.5836585365854 | 1.854 | |
28 | 1.10908413163578 | 64.8806341463415 | 2.914 | |
29 | 1.18595743638622 | 50.4465609756098 | 3.019 | |
30 | 1.42274588596464 | 68.8512195121951 | 1.21 | |
31 | 1.0699550686253 | 74.5368780487805 | 3.124 | |
32 | 1.77325709176799 | 80.2926829268293 | 1.54 | |
33 | 1.99993502171817 | 46.9916829268293 | 6.409 | |
34 | 1.2705056926424 | 44.3475609756098 | 5.088 | |
35 | 1.25580456139915 | 55.0648536585366 | 4.748 | |
36 | 1.37083011174109 | 81.2365853658537 | 1.42 | |
37 | 1.56728103310503 | 51.5755609756098 | 4.858 | |
38 | 1.54977962280745 | 78.2749756097561 | 1.939 | |
39 | 1.57928725456347 | 49.4124146341463 | 4.807 | |
40 | 5.91228412853025 | 72.1713170731707 | 1.668 | |
41 | 1.89395630183352 | 72.2797804878049 | 2.496 | |
42 | 1.28252859454226 | 78.564243902439 | 2.067 | |
43 | 1.45701951840078 | 77.6831951219512 | 1.57 | |
44 | 1.09338155555449 | 72.1406585365854 | 2.899 | |
46 | 1.13774232941383 | 78.5739512195122 | 1.529 | |
47 | 1.43510528701385 | 75.9243902439025 | 1.28 | |
48 | 2.2354330880762 | 78.9317073170732 | 1.34 | |
49 | 1.11930885554757 | 55.5500243902439 | 4.215 | |
50 | 1.31649563917203 | 77.8439024390244 | 1.8 | |
52 | 1.41568963741316 | 72.0766829268293 | 2.752 | |
53 | 1.79274600524769 | 71.6461463414634 | 2.442 | |
54 | 1.50483949639762 | 74.6992926829268 | 2.69 | |
55 | 1.1574031560906 | 72.5682926829268 | 1.5 | |
56 | 2.15256255005424 | 71.5286829268293 | 2.989 | |
57 | 1.29950805962278 | 58.6642682926829 | 4.931 | |
58 | 1.89617017415203 | 80.1707317073171 | 1.34 | |
59 | 2.18728566182974 | 55.1566585365854 | 5.091 | |
60 | 1.31138593012859 | 78.8170731707317 | 1.8 | |
61 | 1.12281755521367 | 68.515243902439 | 2.86 | |
62 | 1.04273578976816 | 67.8998536585366 | 3.824 | |
64 | 2.08129354364635 | 80.1146341463415 | 1.94 | |
65 | 1.15935295717468 | 60.0055853658537 | 3.531 | |
66 | 2.05572629703149 | 79.0487804878049 | 1.78 | |
67 | 1.04202676174 | 74.7642682926829 | 2.345 | |
68 | 1.28387722169879 | 72.5887804878049 | 1.573 | |
69 | 1.62901493757492 | 61.0383170731707 | 4.447 | |
70 | 1.03024126786173 | 68.4853658536586 | 2.3 | |
71 | 1.16263436912712 | 56.6400731707317 | 5.281 | |
72 | 1.42084429368176 | 51.1356585365854 | 5.628 | |
73 | 1.10504140139624 | 49.4002926829268 | 5.511 | |
74 | 1.45319426209974 | 79.2390243902439 | 1.33 | |
75 | 1.48428917926525 | 69.6478536585366 | 4.369 | |
76 | 1.05284484748354 | 75.1039512195122 | 2.63 | |
77 | 1.16177661239562 | 46.1096585365854 | 5.462 | |
78 | 1.11808076172375 | 67.3033170731707 | 2.382 | |
79 | 1.3549181188046 | 81.5804878048781 | 0.966 | |
80 | 1.35714382556373 | 71.4388536585366 | 3.495 | |
81 | 1.2864927745859 | 75.2446341463415 | 1.41 | |
82 | 1.41384923479473 | 59.8734390243903 | 3.755 | |
83 | 1.43192955744568 | 72.6487804878049 | 1.31 | |
84 | 3.03833230305195 | 67.0733658536585 | 2.282 | |
85 | 1.2772308675102 | 78.479512195122 | 1.87 | |
86 | 1.35795332659415 | 80.1512195121951 | 2.84 | |
88 | 5.56752289532623 | 63.367243902439 | 2.83 | |
89 | 1.71174784105594 | 68.4636341463415 | 4.997 | |
90 | 2.1394374551049 | 71.3330975609756 | 1.825 | |
91 | 1.07316417332576 | 81.5024390243902 | 2.05 | |
92 | 2.04145279517052 | 80.5804878048781 | 1.32 | |
93 | 1.0521213497259 | 78.8448780487805 | 1.411 | |
94 | 1.22117237392766 | 71.4794146341464 | 2.471 | |
95 | 1.31624898567946 | 72.6450243902439 | 3.6 | |
96 | 2.53779811762559 | 81.9251219512195 | 1.26 | |
97 | 1.81377017594596 | 53.0095609756098 | 4.907 | |
98 | 1.30889441927364 | 67.9560975609756 | 2.5 | |
99 | 1.49706741209003 | 59.9793902439024 | 3.06 | |
100 | 1.03918162445907 | 60.9487804878049 | 3.44 | |
101 | 1.10478426409239 | 58.9784146341464 | 5.216 | |
103 | 1.66379508332665 | 68.1954878048781 | 2.043 | |
104 | 1.9438492648448 | 78.4326829268293 | 1.076 | |
105 | 1.17729399206171 | 68.6909756097561 | 2.6473 | |
106 | 1.20582373115862 | 74.1132926829268 | 2.239 | |
108 | 1.52935667230662 | 65.909756097561 | 2.22 | |
109 | 1.32717017596265 | 64.4622682926829 | 3.311 | |
110 | 1.27139265626996 | 71.4895121951219 | 1.939 | |
111 | 1.05405786354136 | 72.7392682926829 | 2.046 | |
113 | 1.60287091543505 | 73.9893414634146 | 2.331 | |
114 | 1.24572645772284 | 51.9430243902439 | 5.563 | |
115 | 1.18843127301135 | 44.1711707317073 | 3.564 | |
116 | 1.25111031264705 | 71.2536585365854 | 1.27 | |
117 | 1.09203462243532 | 79.4317073170732 | 1.63 | |
118 | 1.20601240127767 | 71.3560975609756 | 1.31 | |
119 | 1.32157256419366 | 73.6352926829268 | 2.865 | |
120 | 1.74662934597328 | 70.4174634146341 | 2.429 | |
122 | 1.25769027305948 | 67.7795365853659 | 1.488 | |
123 | 1.10610838179184 | 74.0152682926829 | 1.736 | |
125 | 1.58172099964419 | 64.1121707317073 | 5.04 | |
127 | 1.19633017523675 | 73.7457073170732 | 1.497 | |
128 | 1.46998146043263 | 48.9261951219512 | 6.599 | |
129 | 1.96367311978427 | 62.8588780487805 | 2.142 | |
130 | 1.21592586550115 | 66.0523658536585 | 2.272 | |
131 | 1.09233489277505 | 79.5745853658537 | 0.887 | |
133 | 1.24102564373587 | 57.2310243902439 | 4.875 | |
134 | 1.08564680752361 | 79.5048780487805 | 1.38 | |
135 | 1.15123559235029 | 72.4321951219512 | 1.82 | |
136 | 1.07327060061643 | 74.3711463414634 | 2.134 | |
137 | 1.48896425630324 | 48.9380487804878 | 6.005 | |
138 | 2.43157478927818 | 75.4989024390244 | 2.483 | |
139 | 1.69151994404693 | 72.9882926829268 | 2.83 | |
140 | 1.62349316038327 | 48.0171463414634 | 5.322 | |
141 | 1.19333683479864 | 58.5441219512195 | 3.593 | |
142 | 1.06480062419317 | 75.1682926829268 | 2.2 | |
143 | 1.49384295224798 | 51.6729024390244 | 7.3 | |
144 | 2.60731731400954 | 49.0047073170732 | 5.701 | |
145 | 1.31754035101661 | 71.9728048780488 | 2.85 | |
146 | 1.54947854604483 | 79.3463414634146 | 1.71 | |
147 | 1.29229033828898 | 80.0414634146342 | 1.84 | |
148 | 1.68410070245391 | 65.5865853658537 | 3.321 | |
149 | 1.27636110138162 | 79.8512195121951 | 1.96 | |
150 | 1.21574676570283 | 73.5847073170732 | 2.678 | |
151 | 1.24932110168816 | 75.1244878048781 | 2.635 | |
152 | 1.71623564805795 | 72.4666097560976 | 2.691 | |
153 | 1.06766380656703 | 73.998756097561 | 2.245 | |
154 | 1.33569538383851 | 60.5666097560976 | 4.227 | |
155 | 2.26029105556535 | 67.4471463414634 | 3.486 | |
156 | 2.70990301487454 | 64.1046829268293 | 3.786 | |
157 | 1.84039781500218 | 74.9951219512195 | 1.24 | |
158 | 1.26568903528252 | 78.2960975609756 | 1.7702 | |
159 | 1.24762519503964 | 71.7492682926829 | 4.82 | |
160 | 1.44172501434177 | 78.0707317073171 | 1.4 | |
162 | 1.3303657825891 | 71.2526585365854 | 3.268 | |
163 | 1.12271767321997 | 77.2476829268293 | 2.7 | |
164 | 1.63268736552129 | 71.8788951219512 | 1.32 | |
165 | 1.37092129084146 | 72.6341463414634 | 1.45 | |
166 | 2.62770924081173 | 65.47 | 1.29 | |
167 | 1.41760198156721 | 52.2476341463415 | 5.497 | |
168 | 1.67590788110016 | 72.6647804878049 | 3.237 | |
169 | 1.09245078390314 | 65.4876585365854 | 4.503 | |
170 | 1.03735134374992 | 72.1317073170732 | 2.2 | |
171 | 1.76451719459158 | 59.548243902439 | 4.869 | |
172 | 1.40864398488271 | 80.5463414634146 | 1.77 | |
173 | 1.28074331285874 | 79.990243902439 | 1.26 | |
174 | 1.19206165222231 | 77.6121951219512 | 1.26 | |
175 | 1.31554590984824 | 73.9048780487805 | 1.25 | |
176 | 1.30761230704353 | 44.260243902439 | 5.404 | |
178 | 1.45658896718629 | 57.3493414634146 | 5.191 | |
179 | 1.39569693123249 | 49.8668780487805 | 6.459 | |
180 | 1.09542765168179 | 68.8470487804878 | 2.503 | |
182 | 1.05217760515498 | 63.2062682926829 | 4.09 | |
183 | 1.33504908485903 | 70.6988048780488 | 2.435 | |
185 | 1.57976047058299 | 74.9284146341464 | 3.23 | |
186 | 1.14250137021385 | 45.8601951219512 | 3.784 | |
188 | 1.43037009651619 | 48.0588536585366 | 6.401 | |
189 | 1.32000789814894 | 55.304 | 4.559 | |
190 | 2.1015023180571 | 73.1887804878049 | 1.654 | |
191 | 1.3547213271705 | 65.6078536585366 | 3.612 | |
192 | 1.13437808998019 | 59.6383414634146 | 6.332 | |
193 | 1.29620754947143 | 64.4383170731707 | 2.617 | |
194 | 1.43068365665995 | 73.5024390243903 | 2.04 | |
195 | 1.04158602046744 | 71.4596585365854 | 4.144 | |
196 | 2.11969780039004 | 72.0778536585366 | 2.175 | |
197 | 1.15448550903647 | 68.6135121951219 | 1.616 | |
199 | 1.84762305929551 | 53.3469268292683 | 5.618 | |
200 | 1.93366713453503 | 67.9568292682927 | 1.2 | |
201 | 1.7290624039977 | 50.1239268292683 | 6.584 | |
202 | 3.33871864780728 | 77.3390243902439 | 2.054 | |
203 | 1.24780299027997 | 75.6092682926829 | 2.04 | |
204 | 1.69583629819669 | 67.2225853658537 | 2.36 | |
205 | 1.04328469040185 | 71.1057804878049 | 2.171 | |
206 | 1.70323028262568 | 73.1726829268293 | 2.65 | |
207 | 1.04309484153404 | 78.5248780487805 | 2.1115 | |
208 | 2.23486423049651 | 73.6997317073171 | 1.897 | |
209 | 1.06112332131677 | 69.3209024390244 | 4.147 | |
210 | 1.05648914186953 | 71.0157073170732 | 4.203 | |
211 | 1.610432286327 | 62.6493170731707 | 5.757 | |
212 | 1.93459165850889 | 51.0596829268293 | 2.676 | |
213 | 1.46060875179743 | 44.3843658536585 | 6.135 | |
214 | 1.48489400091839 | 43.8615853658537 | 3.606 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.30017390699539 | 75.8518048780488 | 1.989 | |
3 | 1.6886744511302 | 46.8990975609756 | 6.843 | |
5 | 1.24230503755418 | 76.3096341463415 | 1.692 | |
6 | 1.23546099007727 | 73.1342195121951 | 1.728 | |
7 | 1.56283299345023 | 49.0071463414634 | 6.066 | |
8 | 1.84941763478974 | 74.9314390243902 | 2.269 | |
10 | 1.39103166596225 | 79.8317073170732 | 1.41 | |
11 | 1.61883767962284 | 81.0414634146342 | 1.883 | |
12 | 1.0415570802179 | 74.3741463414634 | 1.755 | |
13 | 1.39610862592422 | 69.3614146341463 | 1.97 | |
14 | 1.26755627468583 | 74.8343658536585 | 1.194 | |
15 | 1.07035122196843 | 76.0085609756098 | 1.508 | |
16 | 2.63745198026333 | 67.3100731707317 | 2.509 | |
17 | 1.44169429922175 | 79.380487804878 | 1.8 | |
18 | 1.50566605427965 | 52.9579024390244 | 5.998 | |
19 | 1.37730968150695 | 72.6121951219512 | 1.38 | |
20 | 1.1321437077982 | 74.5078292682927 | 2.616 | |
21 | 1.38564434550282 | 48.1388780487805 | 4.88 | |
22 | 1.39515238873314 | 54.1066829268293 | 5.577 | |
23 | 1.03248047535167 | 78.7190731707317 | 1.7544 | |
24 | 1.08243798075451 | 77.3806097560976 | 2.148 | |
25 | 1.41954626398447 | 65.0302195121951 | 3.634 | |
26 | 2.86602685927768 | 71.8109268292683 | 2.002 | |
27 | 1.07792803003074 | 73.9919268292683 | 1.862 | |
28 | 1.1103620362343 | 65.3423902439025 | 2.785 | |
29 | 1.1869570078118 | 51.2843170731707 | 2.963 | |
30 | 1.42145230764216 | 69.4048780487805 | 1.287 | |
31 | 1.07088355498951 | 74.827 | 3.044 | |
32 | 1.77641116695796 | 80.6439024390244 | 1.5862 | |
33 | 2.01429616282155 | 47.168756097561 | 6.281 | |
34 | 1.27293088816463 | 44.867512195122 | 4.996 | |
35 | 1.25953219135956 | 55.4014390243903 | 4.706 | |
36 | 1.3719967056252 | 81.490243902439 | 1.44 | |
37 | 1.57164327755465 | 52.1183658536585 | 4.777 | |
38 | 1.55257994777496 | 78.4158536585366 | 1.92 | |
39 | 1.5868141023326 | 49.5611707317073 | 4.756 | |
40 | 5.92601783774996 | 72.3897317073171 | 1.656 | |
41 | 1.90073564977394 | 72.518756097561 | 2.475 | |
42 | 1.28488906652595 | 78.6950731707317 | 2.007 | |
43 | 1.45720217544948 | 77.9931951219512 | 1.545 | |
44 | 1.09370694384322 | 72.6103414634146 | 2.772 | |
45 | 1.04904624616838 | 74.709756097561 | 2.1 | |
46 | 1.13879502990388 | 78.7087317073171 | 1.514 | |
47 | 1.43581311893595 | 76.5243902439024 | 1.33 | |
48 | 2.23473645213637 | 79.1317073170732 | 1.33 | |
49 | 1.12015591604885 | 55.9528536585366 | 4.106 | |
50 | 1.31701686364113 | 78.0951219512195 | 1.85 | |
52 | 1.41870441835035 | 72.2879268292683 | 2.72 | |
53 | 1.79909821042611 | 71.9052926829268 | 2.415 | |
54 | 1.50933588069899 | 74.8578292682927 | 2.644 | |
55 | 1.1572531569168 | 72.6914634146341 | 1.55 | |
56 | 2.16226217705297 | 71.8789756097561 | 2.931 | |
57 | 1.30504863272489 | 59.1577317073171 | 4.831 | |
58 | 1.9035574278795 | 80.8219512195122 | 1.37 | |
59 | 2.20372323118941 | 55.9515609756098 | 4.893 | |
60 | 1.31198487608331 | 79.2146341463415 | 1.84 | |
61 | 1.12323700163045 | 68.6791951219512 | 2.816 | |
62 | 1.04262477063312 | 68.0591707317073 | 3.74 | |
64 | 2.08506761570146 | 80.5146341463415 | 2 | |
65 | 1.16128343388651 | 60.4271707317073 | 3.453 | |
66 | 2.05897634684522 | 79.2487804878049 | 1.84 | |
67 | 1.04209475040985 | 74.962756097561 | 2.322 | |
68 | 1.28506790384191 | 72.7142439024391 | 1.572 | |
69 | 1.63725520812986 | 61.6813658536585 | 4.402 | |
71 | 1.16521861805028 | 56.9266585365854 | 5.208 | |
72 | 1.42571191656172 | 51.6733658536585 | 5.557 | |
73 | 1.10660410399666 | 49.665512195122 | 5.454 | |
74 | 1.45410197234789 | 79.4390243902439 | 1.4 | |
75 | 1.49029919861034 | 69.8947317073171 | 4.282 | |
76 | 1.0528497508051 | 75.2823902439024 | 2.591 | |
77 | 1.16354852340681 | 46.3619756097561 | 5.383 | |
78 | 1.11843550146613 | 67.8472195121951 | 2.362 | |
79 | 1.35606097825458 | 82.3756097560976 | 0.984 | |
80 | 1.36071751821373 | 71.6898292682927 | 3.414 | |
81 | 1.28642816150662 | 75.8368292682927 | 1.38 | |
82 | 1.41669649192278 | 60.2810731707317 | 3.665 | |
83 | 1.43159314450257 | 73.0975609756098 | 1.34 | |
84 | 3.0529400765786 | 67.3768292682927 | 2.246 | |
85 | 1.28056330226274 | 78.7604878048781 | 1.93 | |
86 | 1.36113475034466 | 85.1634146341463 | 2.88 | |
88 | 5.60012060157628 | 63.7168048780488 | 2.785 | |
89 | 1.72062588181963 | 68.0718048780488 | 4.943 | |
90 | 2.14611208373893 | 71.6384634146341 | 1.79 | |
91 | 1.0740503095567 | 81.1585365853659 | 2.08 | |
92 | 2.04442060576902 | 81.1317073170732 | 1.35 | |
93 | 1.05231771375185 | 79.0829024390244 | 1.414 | |
94 | 1.22170314492371 | 71.7560731707317 | 2.443 | |
95 | 1.31988600713391 | 72.763512195122 | 3.7 | |
96 | 2.53769580736664 | 82.3219512195122 | 1.32 | |
97 | 1.82474763751758 | 53.6621951219512 | 4.869 | |
98 | 1.31056170022096 | 67.6951219512195 | 2.7 | |
99 | 1.5007519079259 | 60.5283170731707 | 2.944 | |
101 | 1.10616993974801 | 59.2370731707317 | 5.168 | |
103 | 1.66597457943728 | 68.3080243902439 | 2.042 | |
104 | 1.94614087877795 | 78.9692682926829 | 1.123 | |
105 | 1.17801059154888 | 68.9368292682927 | 2.4252 | |
106 | 1.21119998400635 | 74.1919024390244 | 2.251 | |
108 | 1.53216490582072 | 66.1609756097561 | 2.36 | |
109 | 1.33013487452847 | 65.080512195122 | 3.178 | |
110 | 1.27454424440927 | 71.6764146341463 | 1.896 | |
111 | 1.05444186421176 | 73.4165365853658 | 2.035 | |
113 | 1.60614708327719 | 74.1826341463415 | 2.345 | |
114 | 1.25002025969494 | 52.9628292682927 | 5.507 | |
115 | 1.18914545625956 | 44.5901219512195 | 3.481 | |
116 | 1.25036393158836 | 71.0560975609756 | 1.31 | |
117 | 1.0927836258877 | 79.2878048780488 | 1.65 | |
118 | 1.20544722250876 | 70.8658536585366 | 1.35 | |
119 | 1.324210137595 | 73.8693658536585 | 2.81 | |
120 | 1.74996426194613 | 70.7235365853659 | 2.4 | |
122 | 1.25734304337506 | 67.9386829268293 | 1.488 | |
123 | 1.10619852677216 | 73.9623658536585 | 1.718 | |
125 | 1.59018237418863 | 64.8014390243902 | 4.953 | |
127 | 1.19650719165121 | 73.9169268292683 | 1.478 | |
128 | 1.47748861446828 | 49.311243902439 | 6.545 | |
129 | 1.9667322317454 | 63.1112195121951 | 2.109 | |
130 | 1.21733538231198 | 66.5792682926829 | 2.347 | |
131 | 1.09349614932338 | 79.7915853658537 | 0.926 | |
133 | 1.24451554119796 | 57.3261951219512 | 4.807 | |
134 | 1.08592416724602 | 78.5487804878049 | 1.39 | |
135 | 1.15181245922621 | 72.4321951219512 | 1.7 | |
136 | 1.07393061032824 | 74.9126829268293 | 2.027 | |
137 | 1.49615634745251 | 49.8891463414634 | 6.001 | |
138 | 2.44049957577593 | 75.7499756097561 | 2.455 | |
139 | 1.69796233612472 | 73.1666097560976 | 2.784 | |
140 | 1.63199871489691 | 48.2651463414634 | 5.24 | |
141 | 1.19457289056397 | 59.3742682926829 | 3.513 | |
142 | 1.06537873406311 | 76.4609756097561 | 2.29 | |
143 | 1.50305034562634 | 52.2652682926829 | 7.258 | |
144 | 2.62864658186809 | 49.5106585365854 | 5.665 | |
145 | 1.3195654962195 | 72.3791951219512 | 2.803 | |
146 | 1.54992019566341 | 79.6975609756098 | 1.72 | |
147 | 1.2934716729184 | 80.3439024390244 | 1.9 | |
148 | 1.68871155300683 | 66.3151463414634 | 3.171 | |
149 | 1.27805371669631 | 80.0487804878049 | 2 | |
150 | 1.21713980095559 | 73.3175853658537 | 2.586 | |
151 | 1.25163328631727 | 75.2922195121951 | 2.606 | |
152 | 1.7201967288739 | 72.7721951219512 | 2.651 | |
153 | 1.06805208377945 | 74.2494146341463 | 2.209 | |
154 | 1.33980105385001 | 60.9445609756098 | 4.175 | |
155 | 2.27158827380796 | 67.6 | 3.404 | |
156 | 2.72571174125129 | 64.2974390243903 | 3.714 | |
157 | 1.84013152221034 | 75.1439024390244 | 1.27 | |
158 | 1.26512596748839 | 78.4163414634146 | 1.7123 | |
159 | 1.25081641024265 | 71.9189268292683 | 4.742 | |
160 | 1.44245601569027 | 78.419512195122 | 1.36 | |
162 | 1.33344993564891 | 71.4571707317073 | 3.192 | |
163 | 1.13330474266546 | 77.4284878048781 | 2.587 | |
164 | 1.63200382538777 | 72.1634146341463 | 1.32 | |
165 | 1.37019202920351 | 73.1551219512195 | 1.43 | |
166 | 2.62400937873418 | 66.6431707317073 | 1.3 | |
167 | 1.4227009184082 | 53.0063902439024 | 5.466 | |
168 | 1.68518044369592 | 72.9158292682927 | 3.138 | |
169 | 1.09358885060935 | 65.8927317073171 | 4.46 | |
170 | 1.03777020436684 | 72.2170731707317 | 2.1 | |
171 | 1.7742801206499 | 59.8764390243903 | 4.765 | |
172 | 1.40979583942647 | 80.7487804878049 | 1.85 | |
173 | 1.28517826129773 | 80.1414634146341 | 1.28 | |
174 | 1.19236950224655 | 78.0865853658537 | 1.31 | |
175 | 1.31567516421729 | 74.2048780487805 | 1.24 | |
176 | 1.31241887672541 | 45.0730243902439 | 5.331 | |
178 | 1.46287163917435 | 57.6678780487805 | 5.123 | |
179 | 1.40082618302387 | 50.0380975609756 | 6.437 | |
180 | 1.09597527649758 | 69.1536829268293 | 2.466 | |
182 | 1.05291572628432 | 63.4161219512195 | 3.995 | |
183 | 1.33571559078424 | 70.9004878048781 | 2.387 | |
185 | 1.58984965874671 | 75.0969024390244 | 3.173 | |
186 | 1.14338259230727 | 46.2394878048781 | 3.698 | |
188 | 1.43767122361186 | 48.1812926829268 | 6.329 | |
189 | 1.32419215380823 | 55.4374390243902 | 4.455 | |
190 | 2.10422510209917 | 73.3254146341464 | 1.642 | |
191 | 1.35858417852362 | 65.9736829268293 | 3.543 | |
192 | 1.13651763550132 | 60.1463170731707 | 6.016 | |
193 | 1.29788233778397 | 64.5212195121951 | 2.57 | |
194 | 1.43280360604458 | 73.9 | 2.03 | |
195 | 1.04173197302281 | 71.5990975609756 | 4.104 | |
196 | 2.12697469729838 | 72.4627317073171 | 2.159 | |
197 | 1.15487709487046 | 68.8291219512195 | 1.622 | |
199 | 1.85974259619587 | 54.1293658536585 | 5.603 | |
200 | 1.93051573442554 | 68.0775609756098 | 1.31 | |
201 | 1.7414794180267 | 50.9530731707317 | 6.507 | |
202 | 3.35002175309476 | 77.5878048780488 | 2.1005 | |
203 | 1.24799196563625 | 75.729756097561 | 2.03 | |
204 | 1.70009585057564 | 67.2981707317073 | 2.39 | |
205 | 1.04331867228991 | 71.3077804878049 | 2.15 | |
206 | 1.70932311465217 | 73.3675609756098 | 2.62 | |
207 | 1.04305982332402 | 78.659756097561 | 1.9499 | |
208 | 2.24173619529788 | 73.940756097561 | 1.889 | |
209 | 1.06191744431413 | 69.6377804878049 | 4.088 | |
210 | 1.05667641538211 | 71.2905365853659 | 4.12 | |
211 | 1.61829629117766 | 63.1706097560976 | 5.638 | |
212 | 1.93984958074832 | 50.9296585365854 | 2.628 | |
213 | 1.46682723838675 | 45.288512195122 | 6.157 | |
214 | 1.4851557671229 | 44.7017804878049 | 3.551 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.32735966989106 | 76.0384390243903 | 1.906 | |
3 | 1.69825590331318 | 47.2053170731707 | 6.7 | |
5 | 1.24179457463799 | 76.4734146341464 | 1.635 | |
6 | 1.23494834086736 | 73.3278292682927 | 1.731 | |
7 | 1.57245875364166 | 49.4352926829268 | 5.898 | |
8 | 1.8531403524753 | 75.1149756097561 | 2.254 | |
10 | 1.3917917502906 | 79.9829268292683 | 1.38 | |
11 | 1.62357514805683 | 81.2926829268293 | 1.931 | |
12 | 1.04164361839932 | 74.5282926829268 | 1.74 | |
13 | 1.39836264668386 | 69.7486585365854 | 1.97 | |
14 | 1.26733162755729 | 74.9686097560976 | 1.179 | |
15 | 1.07052911274279 | 76.1293658536585 | 1.518 | |
16 | 2.64640462313094 | 67.6666585365854 | 2.427 | |
17 | 1.4433201866235 | 79.7829268292683 | 1.82 | |
18 | 1.51316570927695 | 53.4769512195122 | 5.961 | |
19 | 1.37634558959372 | 72.6634146341463 | 1.42 | |
20 | 1.1377266738642 | 74.6312926829268 | 2.609 | |
21 | 1.39244135851067 | 48.5466341463415 | 4.736 | |
22 | 1.4012835166193 | 54.4307317073171 | 5.511 | |
23 | 1.032584307542 | 78.8614390243903 | 1.7568 | |
24 | 1.08319151089226 | 77.5241951219512 | 2.119 | |
25 | 1.42304035558626 | 65.3477317073171 | 3.551 | |
26 | 2.87524195908151 | 72.1099512195122 | 1.944 | |
27 | 1.07868758354888 | 74.3654390243903 | 1.876 | |
28 | 1.11151299922877 | 65.7590975609756 | 2.668 | |
29 | 1.18790713995289 | 52.0689512195122 | 2.91 | |
30 | 1.42048501462928 | 70.2034146341464 | 1.37 | |
31 | 1.07181885154401 | 75.1118536585366 | 2.971 | |
32 | 1.78058900282104 | 80.8043902439024 | 1.6589 | |
33 | 2.02876511035138 | 47.3492926829268 | 6.152 | |
34 | 1.27545536357159 | 45.4825365853659 | 4.903 | |
35 | 1.26350288636861 | 55.7704146341463 | 4.665 | |
36 | 1.37366434856246 | 81.7414634146342 | 1.46 | |
37 | 1.57626517959051 | 52.7258780487805 | 4.691 | |
38 | 1.55532584148034 | 78.5342682926829 | 1.904 | |
39 | 1.59442525096874 | 49.8151707317073 | 4.696 | |
40 | 5.93889832460893 | 72.6125853658537 | 1.643 | |
41 | 1.90746104875823 | 72.7537804878049 | 2.454 | |
42 | 1.28717761733212 | 78.8214146341464 | 1.954 | |
43 | 1.45721379403413 | 78.285243902439 | 1.52 | |
44 | 1.09388188294985 | 73.0108536585366 | 2.659 | |
45 | 1.04948786862149 | 75.3634146341464 | 2 | |
46 | 1.13977711983255 | 78.8579024390244 | 1.503 | |
47 | 1.43719177361179 | 76.7243902439025 | 1.44 | |
48 | 2.2339111166503 | 79.5341463414634 | 1.37 | |
49 | 1.12101134868839 | 56.3565365853659 | 4.005 | |
50 | 1.31772154880132 | 78.1951219512195 | 1.84 | |
52 | 1.42169411339924 | 72.5044634146342 | 2.686 | |
53 | 1.80590021074732 | 72.1509024390244 | 2.383 | |
54 | 1.51376629431335 | 75.0049512195122 | 2.599 | |
55 | 1.1571427720611 | 72.8146341463415 | 1.63 | |
56 | 2.17208483406454 | 72.1922195121951 | 2.877 | |
57 | 1.31030669161843 | 59.6392195121951 | 4.732 | |
58 | 1.91133379333535 | 80.8731707317073 | 1.39 | |
59 | 2.22014149144693 | 56.7239268292683 | 4.703 | |
60 | 1.312650170413 | 79.2634146341464 | 1.83 | |
61 | 1.12378637744218 | 68.8316341463415 | 2.774 | |
62 | 1.04249669652794 | 68.2274878048781 | 3.661 | |
64 | 2.08842793201418 | 80.8146341463415 | 1.98 | |
65 | 1.16324998646154 | 60.8991463414634 | 3.386 | |
66 | 2.06238800500079 | 79.4487804878049 | 1.9 | |
67 | 1.04216636071994 | 75.146756097561 | 2.301 | |
68 | 1.2847560754552 | 72.8413414634146 | 1.571 | |
69 | 1.64559293282495 | 62.300243902439 | 4.352 | |
70 | 1.0301247543819 | 68.4390243902439 | 2.23 | |
71 | 1.16783514788023 | 57.2200487804878 | 5.133 | |
72 | 1.4310695593367 | 52.1885609756098 | 5.483 | |
73 | 1.10816407943552 | 49.9526341463415 | 5.393 | |
74 | 1.45500396661404 | 79.4390243902439 | 1.41 | |
75 | 1.49635022075905 | 70.1250487804878 | 4.199 | |
76 | 1.05283258718872 | 75.4598292682927 | 2.556 | |
77 | 1.16533133567029 | 46.6426829268293 | 5.303 | |
78 | 1.11882867430011 | 68.3481707317073 | 2.34 | |
79 | 1.35759636258961 | 82.3268292682927 | 1.028 | |
80 | 1.36431724927974 | 71.9589024390244 | 3.339 | |
81 | 1.28629889160163 | 75.7056097560976 | 1.4 | |
82 | 1.41946505891699 | 60.6877317073171 | 3.58 | |
83 | 1.43125872237297 | 73.1512195121951 | 1.32 | |
84 | 3.06759712895163 | 67.7095853658537 | 2.21 | |
85 | 1.28373149254726 | 79.0414634146342 | 2.01 | |
86 | 1.36435951648529 | 85.1146341463415 | 2.9 | |
88 | 5.63180984292934 | 64.0685365853659 | 2.742 | |
89 | 1.7292624429769 | 67.8640731707317 | 4.887 | |
90 | 2.15281578193906 | 71.9346341463415 | 1.759 | |
91 | 1.07501681894645 | 81.4536585365854 | 2.09 | |
92 | 2.04825734492009 | 81.2853658536585 | 1.37 | |
93 | 1.05251034748135 | 79.300756097561 | 1.421 | |
94 | 1.22223264825252 | 72.0408048780488 | 2.414 | |
95 | 1.32348213888385 | 72.8869268292683 | 3.8 | |
96 | 2.53778457695274 | 82.5070731707317 | 1.34 | |
97 | 1.83583588239346 | 54.3860243902439 | 4.83 | |
98 | 1.31204811214114 | 67.8463414634146 | 2.8 | |
99 | 1.50429212790065 | 61.0645853658537 | 2.84 | |
101 | 1.10757364222969 | 59.53 | 5.112 | |
103 | 1.66794592917992 | 68.3409268292683 | 2.041 | |
104 | 1.9483488901759 | 79.3495121951219 | 1.25 | |
105 | 1.17873011722817 | 69.1824390243903 | 2.431 | |
106 | 1.21714044025798 | 74.2799024390244 | 2.272 | |
108 | 1.5352187102639 | 66.5048780487805 | 2.5 | |
109 | 1.33340821888128 | 65.6595609756098 | 3.057 | |
110 | 1.27655904003193 | 71.8628536585366 | 1.865 | |
111 | 1.05486367404168 | 73.7232195121951 | 2.026 | |
113 | 1.60890428836275 | 74.3120731707317 | 2.35 | |
114 | 1.2550591814926 | 53.8888536585366 | 5.447 | |
115 | 1.18989604232614 | 45.2150243902439 | 3.405 | |
116 | 1.24968048852171 | 70.9 | 1.35 | |
117 | 1.09351445941935 | 79.3829268292683 | 1.61 | |
118 | 1.20491282415574 | 71.019512195122 | 1.41 | |
119 | 1.32692857538606 | 74.1029268292683 | 2.751 | |
120 | 1.75331312471941 | 71.0191219512195 | 2.373 | |
122 | 1.2570330088312 | 68.1239024390244 | 1.488 | |
123 | 1.10628093286424 | 73.9695365853658 | 1.7 | |
125 | 1.59866583668651 | 65.3755609756098 | 4.87 | |
127 | 1.1966399082171 | 74.0906097560976 | 1.462 | |
128 | 1.48518096508867 | 49.710756097561 | 6.487 | |
129 | 1.96987558220708 | 63.4181707317073 | 2.08 | |
130 | 1.21884486253635 | 67.0575609756098 | 2.414 | |
131 | 1.09481305166186 | 80.0226829268293 | 0.971 | |
133 | 1.24798524831812 | 57.4702682926829 | 4.739 | |
134 | 1.08620825679976 | 79.4439024390244 | 1.37 | |
135 | 1.15228143464444 | 72.5707317073171 | 1.66 | |
136 | 1.07460525030219 | 75.3870243902439 | 1.938 | |
137 | 1.50367642428098 | 50.8623170731707 | 5.998 | |
138 | 2.44954982313939 | 75.9971463414634 | 2.424 | |
139 | 1.70438639032193 | 73.3590487804878 | 2.741 | |
140 | 1.64049457155863 | 48.5605853658537 | 5.157 | |
141 | 1.19588922569686 | 60.2232682926829 | 3.436 | |
142 | 1.06593423392252 | 75.9463414634146 | 2.2 | |
143 | 1.51248381495624 | 52.8181463414634 | 7.213 | |
144 | 2.65050450302614 | 49.9994878048781 | 5.63 | |
145 | 1.32160373037285 | 72.7593902439024 | 2.759 | |
146 | 1.55051889410036 | 80.0975609756098 | 1.72 | |
147 | 1.29499638912131 | 80.3951219512195 | 1.9 | |
148 | 1.69294450565783 | 66.9660975609756 | 3.034 | |
149 | 1.27950441271984 | 80.1512195121951 | 2.11 | |
150 | 1.2177711115911 | 73.1088780487805 | 2.511 | |
151 | 1.25392241298977 | 75.4594878048781 | 2.576 | |
152 | 1.72401235655702 | 73.0503902439024 | 2.613 | |
153 | 1.06840880806696 | 74.4788780487805 | 2.176 | |
154 | 1.34391120618762 | 61.3239024390244 | 4.122 | |
155 | 2.28252348773677 | 67.7800975609756 | 3.325 | |
156 | 2.74184539931212 | 64.5025365853659 | 3.648 | |
157 | 1.8399033913636 | 75.2439024390244 | 1.31 | |
158 | 1.26434924834534 | 78.4258536585366 | 1.6505 | |
159 | 1.25404855893763 | 72.0935853658537 | 4.669 | |
160 | 1.44295753461149 | 78.3219512195122 | 1.33 | |
162 | 1.33650288021038 | 71.6586585365854 | 3.122 | |
163 | 1.1455736576777 | 77.6044390243902 | 2.483 | |
164 | 1.63140620354626 | 72.5658536585366 | 1.3 | |
165 | 1.3694415390677 | 73.3829268292683 | 1.38 | |
166 | 2.62172834502048 | 67.4975609756098 | 1.41 | |
167 | 1.42851095730204 | 53.6597317073171 | 5.442 | |
168 | 1.69248495445217 | 73.1631219512195 | 3.049 | |
169 | 1.09470972571553 | 66.2837804878049 | 4.412 | |
170 | 1.0378761504796 | 73.1926829268293 | 2.24 | |
171 | 1.78402831290791 | 60.1786097560976 | 4.664 | |
172 | 1.41131934561287 | 80.9 | 1.88 | |
173 | 1.29118987433305 | 80.4414634146342 | 1.29 | |
174 | 1.19291015195284 | 78.5609756097561 | 1.38 | |
175 | 1.31584834894892 | 74.2073170731707 | 1.25 | |
176 | 1.31639570800558 | 45.7958780487805 | 5.252 | |
178 | 1.46926643734914 | 57.9872195121951 | 5.052 | |
179 | 1.40594641069797 | 50.2111707317073 | 6.413 | |
180 | 1.09647989899152 | 69.4684146341464 | 2.432 | |
182 | 1.05371144915386 | 63.6389512195122 | 3.903 | |
183 | 1.33643871161931 | 71.1041707317073 | 2.349 | |
184 | 1.02431382156777 | 74.5439024390244 | 1.5 | |
185 | 1.60160278822598 | 75.2587804878049 | 3.116 | |
186 | 1.14445800028724 | 46.769512195122 | 3.613 | |
188 | 1.44475131617942 | 48.3685853658537 | 6.249 | |
189 | 1.32841693863656 | 55.6261951219512 | 4.354 | |
190 | 2.10584117382791 | 73.4659024390244 | 1.629 | |
191 | 1.36260080206607 | 66.3237804878049 | 3.477 | |
192 | 1.13864265417886 | 60.6236585365854 | 5.7 | |
193 | 1.29963688140237 | 64.5983170731707 | 2.523 | |
194 | 1.4348770461158 | 74.2024390243903 | 2.04 | |
195 | 1.04188073164151 | 71.7380487804878 | 4.059 | |
196 | 2.13409793968775 | 72.8106585365854 | 2.145 | |
197 | 1.15526870638783 | 69.0661463414634 | 1.629 | |
199 | 1.87232387233382 | 54.942512195122 | 5.589 | |
200 | 1.92774274480622 | 68.2221951219512 | 1.345 | |
201 | 1.75407025737258 | 51.7296829268293 | 6.425 | |
202 | 3.36122364975381 | 77.8390243902439 | 2.122 | |
203 | 1.24829655410844 | 75.8551219512195 | 2.02 | |
204 | 1.705097885428 | 67.4112926829268 | 2.55 | |
205 | 1.04334793091593 | 71.5154634146341 | 2.131 | |
206 | 1.71536496083777 | 73.5624390243902 | 2.58 | |
207 | 1.0430002484406 | 78.7943902439025 | 1.9149 | |
208 | 2.24848583732717 | 74.1653414634146 | 1.878 | |
209 | 1.06271154622805 | 69.9446585365854 | 4.03 | |
210 | 1.05686665254805 | 71.5563658536585 | 4.043 | |
211 | 1.62603779764766 | 63.6653414634146 | 5.524 | |
212 | 1.94501811430864 | 51.0036585365854 | 2.58 | |
213 | 1.47328511602944 | 46.1976341463415 | 6.182 | |
214 | 1.48545805638984 | 45.7970731707317 | 3.491 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.35453813069571 | 76.2213414634146 | 1.839 | |
3 | 1.70724971938317 | 47.5385609756098 | 6.559 | |
5 | 1.2414263239684 | 76.620756097561 | 1.59 | |
6 | 1.23445963656565 | 73.4959512195122 | 1.734 | |
7 | 1.58210343546902 | 49.8474146341463 | 5.736 | |
8 | 1.85687165117802 | 75.2925365853659 | 2.24 | |
10 | 1.39264444118851 | 80.2341463414634 | 1.41 | |
11 | 1.62902032242241 | 81.3951219512195 | 1.933 | |
12 | 1.04167138814589 | 74.6819268292683 | 1.726 | |
13 | 1.40257086841488 | 70.0678536585366 | 1.9 | |
14 | 1.26707311212993 | 75.1063170731708 | 1.168 | |
15 | 1.07070694862174 | 76.2643658536585 | 1.529 | |
16 | 2.65488688126024 | 68.0040243902439 | 2.356 | |
17 | 1.44507595380648 | 79.6804878048781 | 1.86 | |
18 | 1.52076623284727 | 53.9824878048781 | 5.924 | |
19 | 1.37545019057888 | 72.9634146341463 | 1.48 | |
20 | 1.14323955506739 | 74.7586097560976 | 2.595 | |
21 | 1.39935988667778 | 48.975756097561 | 4.597 | |
22 | 1.4073674424148 | 54.7873170731707 | 5.44 | |
23 | 1.03269347180663 | 79.0038048780488 | 1.7592 | |
24 | 1.08391997252601 | 77.6622926829268 | 2.092 | |
25 | 1.42647503195721 | 65.6580975609756 | 3.475 | |
26 | 2.88394995163928 | 72.4270975609756 | 1.895 | |
27 | 1.07942402979207 | 74.6938536585366 | 1.888 | |
28 | 1.11256977539285 | 66.1513170731707 | 2.565 | |
29 | 1.18881764683295 | 52.6636829268293 | 2.857 | |
30 | 1.41978012882209 | 70.4560975609756 | 1.42 | |
31 | 1.07275955093307 | 75.377512195122 | 2.905 | |
32 | 1.78520087964037 | 80.9648780487805 | 1.6808 | |
33 | 2.04333492212477 | 47.5573414634146 | 6.023 | |
34 | 1.2780705575383 | 46.163243902439 | 4.81 | |
35 | 1.26760185931388 | 56.1593414634146 | 4.625 | |
36 | 1.37604819688726 | 81.9926829268293 | 1.48 | |
37 | 1.58123796370891 | 53.3777073170732 | 4.605 | |
38 | 1.55802389547971 | 78.6472195121951 | 1.889 | |
39 | 1.6021186563794 | 50.1609024390244 | 4.631 | |
40 | 5.95156775375136 | 72.8353414634146 | 1.629 | |
41 | 1.91411294552454 | 72.9843414634147 | 2.43 | |
42 | 1.28940816888798 | 78.9462682926829 | 1.91 | |
43 | 1.45710611852147 | 78.5474146341463 | 1.499 | |
44 | 1.09397430220747 | 73.3361951219512 | 2.561 | |
45 | 1.0497560570819 | 75.309756097561 | 2.2 | |
46 | 1.14070060225602 | 79.0214634146342 | 1.493 | |
47 | 1.4390964847027 | 76.9756097560976 | 1.5 | |
48 | 2.23273846995009 | 79.7365853658537 | 1.38 | |
49 | 1.12188082401167 | 56.7550975609756 | 3.912 | |
50 | 1.31865759164127 | 78.4463414634146 | 1.89 | |
52 | 1.42465042618421 | 72.7289512195122 | 2.651 | |
53 | 1.81308366241265 | 72.3890487804878 | 2.348 | |
54 | 1.51814294976764 | 75.1505853658537 | 2.557 | |
55 | 1.15708404516497 | 73.7707317073171 | 1.65 | |
56 | 2.18201003344484 | 72.4754390243903 | 2.825 | |
57 | 1.31540398575532 | 60.1052682926829 | 4.636 | |
58 | 1.91818064682788 | 81.1756097560976 | 1.46 | |
59 | 2.23656944937596 | 57.4507804878049 | 4.522 | |
60 | 1.31337982539373 | 79.5682926829268 | 1.85 | |
61 | 1.12441718393128 | 68.9715853658537 | 2.735 | |
62 | 1.04236605090305 | 68.402756097561 | 3.587 | |
64 | 2.09147211267678 | 80.8682926829268 | 2.01 | |
65 | 1.16524768673019 | 61.3811219512195 | 3.33 | |
66 | 2.06592640685459 | 79.6 | 1.96 | |
67 | 1.04224223150497 | 75.3217804878049 | 2.28 | |
68 | 1.28460653661002 | 72.9846341463415 | 1.568 | |
69 | 1.65391775442465 | 62.8735121951219 | 4.297 | |
70 | 1.03005493740592 | 68.3541463414634 | 2.247 | |
71 | 1.17049273175283 | 57.524243902439 | 5.056 | |
72 | 1.43677918078278 | 52.687243902439 | 5.407 | |
73 | 1.10972768544801 | 50.2472195121951 | 5.328 | |
74 | 1.45590474469277 | 79.9390243902439 | 1.51 | |
75 | 1.50247238902733 | 70.3523414634146 | 4.122 | |
76 | 1.05282890854543 | 75.6378048780488 | 2.524 | |
77 | 1.1671452432156 | 46.9592682926829 | 5.222 | |
78 | 1.11924321498286 | 68.7992195121951 | 2.315 | |
79 | 1.35866876905314 | 82.3756097560976 | 1.064 | |
80 | 1.36795530827395 | 72.2409756097561 | 3.269 | |
81 | 1.28623423475618 | 75.9121951219512 | 1.47 | |
82 | 1.42220383299464 | 61.0747804878049 | 3.497 | |
83 | 1.43088104351418 | 73.7024390243903 | 1.35 | |
84 | 3.08218520459554 | 68.0751463414634 | 2.176 | |
85 | 1.28596520246442 | 79.1414634146342 | 2.1 | |
86 | 1.36761389733529 | 80.9512195121951 | 2.96 | |
88 | 5.66280977796966 | 64.4229512195122 | 2.702 | |
89 | 1.73795674607519 | 67.8711219512195 | 4.828 | |
90 | 2.15963262684738 | 72.2196585365854 | 1.731 | |
91 | 1.07573482884594 | 81.609756097561 | 2.15 | |
92 | 2.05228327015575 | 81.3853658536585 | 1.42 | |
93 | 1.05269630635864 | 79.4984634146342 | 1.431 | |
94 | 1.22270687822512 | 72.3230243902439 | 2.385 | |
95 | 1.32703872980682 | 73.0162195121951 | 3.8 | |
96 | 2.53738305686126 | 82.5875609756098 | 1.37 | |
97 | 1.84706487734818 | 55.1242195121951 | 4.792 | |
98 | 1.31353633228934 | 68.4512195121951 | 2.8 | |
99 | 1.50782581884959 | 61.5808536585366 | 2.745 | |
101 | 1.10898856149197 | 59.8611707317073 | 5.051 | |
103 | 1.66977101028003 | 68.3740975609756 | 2.038 | |
104 | 1.9517679912236 | 79.8326829268293 | 1.192 | |
105 | 1.17945248233035 | 69.4180487804878 | 2.3835 | |
106 | 1.22333020103369 | 74.3782926829268 | 2.29 | |
108 | 1.53849069000229 | 67.0219512195122 | 2.7 | |
109 | 1.33688334962458 | 66.1843902439024 | 2.946 | |
110 | 1.27810323784329 | 72.0473170731707 | 1.84 | |
111 | 1.05529799937237 | 73.9991951219512 | 2.014 | |
113 | 1.61160367144815 | 74.433268292683 | 2.346 | |
114 | 1.26045983149587 | 54.7276341463415 | 5.382 | |
115 | 1.19069434614494 | 45.9315609756098 | 3.333 | |
116 | 1.24903088502194 | 71.8121951219512 | 1.47 | |
117 | 1.09436730015225 | 80.5390243902439 | 1.61 | |
118 | 1.20446042042307 | 72.419512195122 | 1.44 | |
119 | 1.32959831458543 | 74.329 | 2.689 | |
120 | 1.75684376573415 | 71.307756097561 | 2.345 | |
122 | 1.25678816429918 | 68.3486585365854 | 1.486 | |
123 | 1.10635483491781 | 74.0335853658537 | 1.684 | |
125 | 1.60719637229065 | 65.8355365853659 | 4.793 | |
127 | 1.19674102150884 | 74.2671219512195 | 1.448 | |
128 | 1.49298957013874 | 50.1201951219512 | 6.426 | |
129 | 1.9731625630183 | 63.781756097561 | 2.053 | |
130 | 1.22043613193465 | 67.486243902439 | 2.466 | |
131 | 1.09620084196326 | 80.2673414634146 | 1.015 | |
133 | 1.25142695119985 | 57.668243902439 | 4.671 | |
134 | 1.08651901473065 | 79.4317073170732 | 1.44 | |
135 | 1.15277665578843 | 72.5707317073171 | 1.58 | |
136 | 1.07529720001073 | 75.8110487804878 | 1.863 | |
137 | 1.51141578618904 | 51.8047317073171 | 5.996 | |
138 | 2.4587031354609 | 76.2363414634146 | 2.391 | |
139 | 1.7107759249812 | 73.5681219512195 | 2.702 | |
140 | 1.64897951409925 | 48.8983902439024 | 5.075 | |
141 | 1.19730571674333 | 60.9893414634146 | 3.36 | |
142 | 1.06615633087808 | 76.1151219512195 | 2.166 | |
143 | 1.52215494566934 | 53.3344878048781 | 7.165 | |
144 | 2.67289722464236 | 50.4797317073171 | 5.595 | |
145 | 1.32368185487115 | 73.1108048780488 | 2.715 | |
146 | 1.5515919943878 | 80.2512195121951 | 1.77 | |
147 | 1.29684338987793 | 80.5926829268293 | 1.96 | |
148 | 1.6969315068606 | 67.5279512195122 | 2.913 | |
149 | 1.28084548403526 | 80.3512195121951 | 2.19 | |
150 | 1.21877951757414 | 72.9986097560976 | 2.442 | |
151 | 1.25618823282096 | 75.6293170731707 | 2.546 | |
152 | 1.72780157188 | 73.3057073170732 | 2.576 | |
153 | 1.06874833742692 | 74.6910975609756 | 2.145 | |
154 | 1.3480107904505 | 61.7011707317073 | 4.067 | |
155 | 2.29327153713092 | 67.9889268292683 | 3.255 | |
156 | 2.75813220438785 | 64.7219512195122 | 3.579 | |
157 | 1.83996067503083 | 75.5439024390244 | 1.39 | |
158 | 1.26357340037113 | 78.5589268292683 | 1.6516 | |
159 | 1.25774435303888 | 72.272756097561 | 4.598 | |
160 | 1.44325156342581 | 78.5243902439025 | 1.37 | |
162 | 1.33953426212912 | 71.8617073170732 | 3.059 | |
163 | 1.15816664126802 | 77.774512195122 | 2.395 | |
164 | 1.63091865404943 | 72.5658536585366 | 1.35 | |
165 | 1.36865518123644 | 73.6365853658537 | 1.4 | |
166 | 2.62087212978159 | 67.8487804878049 | 1.49 | |
167 | 1.43483152402812 | 54.2061951219512 | 5.42 | |
168 | 1.69848270532439 | 73.4020731707317 | 2.966 | |
169 | 1.09581652384068 | 66.6734634146341 | 4.358 | |
170 | 1.03834313186043 | 73.1634146341463 | 2.3 | |
171 | 1.79366960736256 | 60.4779268292683 | 4.569 | |
172 | 1.41292594630198 | 81.1 | 1.91 | |
173 | 1.29905454924149 | 80.790243902439 | 1.28 | |
174 | 1.19306331803142 | 78.7658536585366 | 1.53 | |
175 | 1.31612096129613 | 74.7048780487805 | 1.32 | |
176 | 1.31977428594597 | 46.4252682926829 | 5.167 | |
178 | 1.47580420248083 | 58.3093658536585 | 4.978 | |
179 | 1.41114306798296 | 50.4051219512195 | 6.388 | |
180 | 1.09695250032576 | 69.7757073170732 | 2.399 | |
181 | 1.41065042671437 | 61.5121951219512 | 3.85 | |
182 | 1.05454291419743 | 63.869756097561 | 3.816 | |
183 | 1.33723065218156 | 71.3108780487805 | 2.315 | |
184 | 1.02468964290343 | 74.5365853658537 | 1.7 | |
185 | 1.61355338840772 | 75.4126097560976 | 3.058 | |
186 | 1.14566707993325 | 47.3419268292683 | 3.528 | |
188 | 1.45169418620523 | 48.605756097561 | 6.163 | |
189 | 1.33269166872359 | 55.8803170731707 | 4.256 | |
190 | 2.10674808697616 | 73.6132682926829 | 1.614 | |
191 | 1.36676836622626 | 66.6559756097561 | 3.415 | |
192 | 1.14075465871365 | 61.0859512195122 | 5.7 | |
193 | 1.30146306485405 | 64.6757073170732 | 2.479 | |
194 | 1.43708041489523 | 74.3024390243903 | 2.06 | |
195 | 1.04202588090664 | 71.8764878048781 | 4.011 | |
196 | 2.14115094679007 | 73.1296341463415 | 2.129 | |
197 | 1.15565023597786 | 69.3051463414634 | 1.634 | |
199 | 1.88531969045449 | 55.7694390243902 | 5.574 | |
200 | 1.925234047066 | 68.2514634146342 | 1.39 | |
201 | 1.76684904844944 | 52.4399756097561 | 6.337 | |
202 | 3.3724173740167 | 77.9390243902439 | 2.0845 | |
203 | 1.24868812473706 | 75.9807317073171 | 2.01 | |
204 | 1.71078181015195 | 67.5669756097561 | 2.64 | |
205 | 1.04337204908918 | 71.7210975609756 | 2.111 | |
206 | 1.7213474802242 | 73.7575609756098 | 2.55 | |
207 | 1.04292873568018 | 78.9447804878049 | 1.88 | |
208 | 2.25514831018447 | 74.3854634146342 | 1.864 | |
209 | 1.06350300469174 | 70.2435853658537 | 3.974 | |
210 | 1.05706225652665 | 71.8137073170732 | 3.973 | |
211 | 1.63369877049062 | 64.1395609756098 | 5.414 | |
212 | 1.95025012382009 | 51.2402195121951 | 2.536 | |
213 | 1.48002055680727 | 47.0524390243902 | 6.209 | |
214 | 1.48629386385277 | 47.0706097560976 | 3.428 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.14578367834194 | 69.4961463414634 | 5.274 | |
3 | 1.48343949228399 | 39.8398292682927 | 7.785 | |
4 | 1.03371825964505 | 72.2480487804878 | 2 | |
5 | 1.22993248432629 | 70.351243902439 | 3.942 | |
6 | 1.24281263599024 | 70.5352195121951 | 2.381 | |
7 | 1.38916823040096 | 40.4100487804878 | 7.203 | |
8 | 1.73240841835423 | 69.9904390243903 | 3.213 | |
10 | 1.37423412489141 | 72.8970731707317 | 1.66 | |
11 | 1.52989785018701 | 74.9048780487805 | 1.929 | |
12 | 1.03156169945729 | 72.6731951219512 | 2.364 | |
13 | 1.34295906089749 | 64.8307317073171 | 3.092 | |
14 | 1.27774194361058 | 70.8754878048781 | 2.017 | |
15 | 1.06710014457316 | 72.5323902439024 | 1.922 | |
16 | 2.26935933534592 | 56.0801951219512 | 6.075 | |
17 | 1.42695661054902 | 73.8880487804878 | 1.614 | |
18 | 1.36380426691744 | 47.1799512195122 | 7.07 | |
19 | 1.40609698278427 | 71.1860975609756 | 2.02 | |
20 | 1.0836917169956 | 70.6175121951219 | 4.692 | |
21 | 1.28381132839019 | 47.5598048780488 | 6.549 | |
22 | 1.26949310590158 | 45.9059024390244 | 7.021 | |
24 | 1.06046539596439 | 71.3482926829268 | 3.992 | |
25 | 1.32254661177151 | 53.5039756097561 | 5.337 | |
26 | 2.53630744623078 | 63.2879024390244 | 3.848 | |
27 | 1.06275182079178 | 68.2450975609756 | 2.989 | |
28 | 1.0889079456077 | 47.5907073170732 | 6.449 | |
29 | 1.14031628172787 | 61.4692682926829 | 6.012 | |
30 | 1.4252124311466 | 70.3704878048781 | 2.05 | |
31 | 1.05162179420587 | 70.7670975609756 | 5.51 | |
32 | 1.68288130682166 | 75.6804878048781 | 1.69 | |
33 | 1.71681032855981 | 46.0901951219512 | 6.693 | |
34 | 1.21092255975425 | 49.4568292682927 | 5.956 | |
35 | 1.18742504729291 | 56.6682926829268 | 6.036 | |
36 | 1.34374125636682 | 76.0339024390244 | 1.56 | |
37 | 1.4080788920644 | 52.3520975609756 | 7.382 | |
38 | 1.46207796604901 | 70.4637804878049 | 2.65 | |
39 | 1.41873467601136 | 51.9681219512195 | 6.407 | |
40 | 5.32072761527744 | 67.5349024390244 | 2.586 | |
41 | 1.72202944489622 | 66.5121951219512 | 3.744 | |
42 | 1.21406860479665 | 73.5440487804878 | 3.544 | |
43 | 1.42856378028157 | 73.9392195121951 | 1.826 | |
44 | 1.07483475610877 | 61.0173170731707 | 6.174 | |
46 | 1.11253293854851 | 75.131487804878 | 2.415 | |
47 | 1.43678231661897 | 70.8078048780488 | 2.02 | |
48 | 2.20405160613154 | 73.3614146341463 | 1.41 | |
49 | 1.08360697057353 | 48.8978780487805 | 6.62 | |
50 | 1.30754957321686 | 74.5512195121951 | 1.427 | |
51 | 1.03538376143595 | 71.4634146341463 | 3.52 | |
52 | 1.33581737890677 | 63.7797317073171 | 4.19 | |
53 | 1.6198637399579 | 61.1255609756098 | 6.58 | |
54 | 1.39222998341269 | 64.1849756097561 | 4.773 | |
55 | 1.16611743754272 | 69.1268292682927 | 2.08 | |
56 | 1.9325388094622 | 57.3074146341463 | 5.251 | |
57 | 1.21794918481426 | 44.0036097560976 | 6.499 | |
58 | 1.83794249385595 | 76.1341463414634 | 1.936 | |
59 | 1.82869401389683 | 43.7421463414634 | 6.912 | |
60 | 1.29866849609628 | 74.2980487804878 | 1.72 | |
61 | 1.11058411570903 | 63.5786829268293 | 3.813 | |
62 | 1.03613147302344 | 65.3735853658537 | 6.02 | |
64 | 2.01635444370779 | 74.5 | 1.86 | |
65 | 1.11830039854093 | 56.5577073170732 | 5.195 | |
66 | 2.02086979278198 | 74.1780487804878 | 1.78 | |
67 | 1.03979634463136 | 65.2791707317073 | 4.243 | |
68 | 1.28973061014968 | 69.4243658536585 | 2.284 | |
69 | 1.46098353594856 | 53.6894634146342 | 6.392 | |
71 | 1.10889605196646 | 49.2307804878049 | 6.305 | |
72 | 1.29388007868849 | 39.8195609756098 | 6.951 | |
73 | 1.06709959288525 | 43.5227073170732 | 5.776 | |
74 | 1.42550643352883 | 74.976 | 2.024 | |
75 | 1.36884363547623 | 58.1876341463415 | 6.109 | |
76 | 1.04331931320138 | 69.9755365853659 | 3.12 | |
77 | 1.12482169157083 | 40.858756097561 | 6.542 | |
78 | 1.1189212392612 | 59.985756097561 | 3.301 | |
79 | 1.31193242670234 | 75.4292682926829 | 1.86 | |
80 | 1.26731947628411 | 60.9993414634146 | 6.062 | |
81 | 1.29266083582579 | 70.4826829268293 | 1.9 | |
82 | 1.33189455808918 | 51.7144146341464 | 6.154 | |
83 | 1.44498366408477 | 69.3578048780488 | 1.92 | |
84 | 2.67882069360048 | 58.5840975609756 | 4.167 | |
85 | 1.25373158105788 | 73.0037804878049 | 2.957 | |
86 | 1.2728935189665 | 74.109756097561 | 3.13 | |
88 | 4.67943217101131 | 56.0903658536585 | 4.518 | |
89 | 1.51677499251952 | 55.8321219512195 | 6.407 | |
90 | 1.88266704953722 | 50.3404146341463 | 6.517 | |
91 | 1.06472445866355 | 77.0378048780488 | 2.26 | |
92 | 2.02295185802851 | 74.8146341463415 | 1.592 | |
93 | 1.0476086809579 | 73.7959268292683 | 1.434 | |
94 | 1.20145117135542 | 70.854 | 3.559 | |
95 | 1.20865676930001 | 67.8975121951219 | 7.098 | |
96 | 2.48062293243526 | 76.9229268292683 | 1.77 | |
97 | 1.56998026596003 | 58.662512195122 | 7.27 | |
98 | 1.26351840949669 | 63.6237317073171 | 4.068 | |
99 | 1.35828919422819 | 45.2767317073171 | 6.57 | |
100 | 1.03036861165148 | 51.9048780487805 | 4.5 | |
101 | 1.07773492842698 | 52.7775853658537 | 7.033 | |
102 | 1.02553794037572 | 63.9512195121951 | 3.3 | |
103 | 1.5754645377419 | 68.4544390243902 | 2.797 | |
104 | 1.8530822397699 | 66.7742682926829 | 2.42 | |
105 | 1.17071058578122 | 66.1626829268293 | 4.8844 | |
106 | 1.16659836182921 | 71.0304878048781 | 5.14 | |
108 | 1.53106546896179 | 66.7878048780488 | 3 | |
109 | 1.2503331753385 | 49.5226829268293 | 6.345 | |
110 | 1.22041291417229 | 66.9278536585366 | 3.924 | |
111 | 1.04585952119966 | 69.8558536585366 | 4.328 | |
113 | 1.53021212293348 | 68.972 | 3.222 | |
114 | 1.19378144324252 | 43.6984878048781 | 6.964 | |
115 | 1.1590378167843 | 54.7937073170732 | 5.491 | |
116 | 1.25268550903694 | 70.8368292682927 | 1.99 | |
117 | 1.08140181368058 | 72.5257073170732 | 1.49 | |
118 | 1.2161219887468 | 69.3282926829268 | 1.97 | |
119 | 1.24844254347482 | 61.9303414634146 | 7.189 | |
120 | 1.61987781875885 | 59.2085853658537 | 5.416 | |
122 | 1.25293520316508 | 65.0227073170732 | 2.546 | |
123 | 1.1034359515824 | 73.9569268292683 | 2.2 | |
125 | 1.41294961282404 | 48.8771707317073 | 6.24 | |
127 | 1.18827822185315 | 69.7059268292683 | 2.347 | |
128 | 1.35987059637325 | 40.6205609756098 | 7.07 | |
129 | 1.81750574794669 | 55.2640975609756 | 4.346 | |
130 | 1.18101043561973 | 57.709 | 5.867 | |
131 | 1.06848452462554 | 73.8723902439024 | 1.882 | |
133 | 1.17299534497694 | 53.8998292682927 | 6.315 | |
134 | 1.07676454549321 | 73.398756097561 | 1.98 | |
135 | 1.13490244429675 | 67.7751707317073 | 2.412 | |
136 | 1.05399722577835 | 54.7048536585366 | 7.21 | |
137 | 1.34823420378677 | 45.0775609756098 | 7.342 | |
138 | 2.16564118880221 | 67.4910975609756 | 4.333 | |
139 | 1.51869961002384 | 67.9913902439024 | 3.725 | |
140 | 1.48525020030055 | 42.7990243902439 | 6.457 | |
141 | 1.13935691983808 | 58.7314878048781 | 6.259 | |
142 | 1.05035159386433 | 68.3170731707317 | 3.14 | |
143 | 1.33766923191936 | 39.7782195121951 | 7.748 | |
144 | 2.1994035616036 | 45.762512195122 | 6.768 | |
145 | 1.25194599847093 | 59.2408292682927 | 5.89 | |
146 | 1.51456353196259 | 75.9885365853659 | 1.495 | |
147 | 1.27572031855416 | 76.0109756097561 | 1.69 | |
148 | 1.527885545291 | 49.3022195121951 | 5.744 | |
149 | 1.24140685012171 | 73.7243902439024 | 1.95 | |
150 | 1.15406013281917 | 62.8887804878049 | 8.352 | |
151 | 1.19615507499534 | 70.6083414634146 | 3.552 | |
152 | 1.58033699634246 | 61.2188292682927 | 4.729 | |
153 | 1.05327773901192 | 65.93 | 3.839 | |
154 | 1.2504273544241 | 54.0581219512195 | 5.515 | |
155 | 1.96258622692026 | 63.5998048780488 | 4.978 | |
156 | 2.25867702604487 | 58.5519756097561 | 6.483 | |
157 | 1.81881259086549 | 71.1024390243903 | 2.336 | |
158 | 1.24601503518835 | 73.9843658536585 | 2.49 | |
160 | 1.42815722539552 | 72.4146341463415 | 2.19 | |
162 | 1.25021673313631 | 66.9393902439025 | 5.191 | |
163 | 1.07065601564089 | 71.9208780487805 | 5.502 | |
164 | 1.64544569603421 | 69.5317073170732 | 2.166 | |
166 | 2.6144245765491 | 67.8060975609756 | 2.04 | |
167 | 1.31841665283541 | 49.6565365853659 | 8.284 | |
168 | 1.45459432803836 | 63.9366341463415 | 7.05 | |
169 | 1.0665074995934 | 58.678756097561 | 6.525 | |
170 | 1.03283668377257 | 68.6829268292683 | 3.5 | |
171 | 1.53495601053169 | 50.0251463414634 | 6.361 | |
172 | 1.39236945044861 | 76.3273170731707 | 1.65 | |
173 | 1.22103006146862 | 72.1640487804878 | 1.706 | |
174 | 1.18766797440497 | 71.0536585365854 | 1.93 | |
175 | 1.30565669673486 | 70.6890243902439 | 2.28 | |
176 | 1.24801920622801 | 43.8061463414634 | 5.524 | |
178 | 1.32992212246504 | 48.9146829268293 | 7.323 | |
179 | 1.34050139318188 | 43.8604878048781 | 6.749 | |
180 | 1.08167081376319 | 66.4660975609756 | 3.708 | |
182 | 1.04110297405014 | 59.7721951219512 | 6.271 | |
183 | 1.29797788698746 | 57.3509268292683 | 4.87 | |
185 | 1.42166244396966 | 67.2638048780488 | 6.843 | |
186 | 1.10813969201292 | 55.5703902439024 | 6.573 | |
188 | 1.29521064296116 | 48.8228048780488 | 6.756 | |
189 | 1.23198391942186 | 50.3641951219512 | 7.097 | |
190 | 1.95466537473724 | 67.2846341463415 | 3.024 | |
191 | 1.27679686102654 | 62.6693170731707 | 5.561 | |
192 | 1.10441611784434 | 38.0129024390244 | 5.13 | |
193 | 1.23545603772776 | 61.4511707317073 | 4.836 | |
194 | 1.35272043630097 | 63.7185609756097 | 5.018 | |
195 | 1.03993354379394 | 68.0494878048781 | 5.475 | |
196 | 1.9226271540135 | 58.0432682926829 | 4.188 | |
197 | 1.14353464288735 | 67.7046097560976 | 3.253 | |
199 | 1.60675799218707 | 50.8036829268293 | 6.58 | |
200 | 1.96562045208175 | 69.0993658536586 | 1.98 | |
201 | 1.4964706354648 | 49.935512195122 | 7.101 | |
202 | 3.07068858706771 | 74.3609756097561 | 1.8275 | |
203 | 1.23354003457564 | 70.7925853658537 | 2.614 | |
204 | 1.55898937264966 | 65.915756097561 | 4.829 | |
205 | 1.04186150250221 | 66.5121951219512 | 3.692 | |
206 | 1.54390079473597 | 68.8403170731708 | 4.014 | |
207 | 1.04181682143552 | 72.0364634146342 | 3.74 | |
208 | 2.01517224015185 | 58.1200243902439 | 5.004 | |
209 | 1.04591659567044 | 59.6648780487805 | 5.43 | |
210 | 1.05266942958325 | 60.966512195122 | 4.816 | |
211 | 1.39779821015889 | 50.8928780487805 | 9.185 | |
212 | 1.73219066646139 | 58.165756097561 | 4.602 | |
213 | 1.33951646310876 | 51.9751463414634 | 7.015 | |
214 | 1.38164497006175 | 60.2358780487805 | 6.811 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.37778274542839 | 76.3995609756098 | 1.787 | |
3 | 1.71604059053956 | 47.8988536585366 | 6.422 | |
5 | 1.24121835563222 | 76.7610975609756 | 1.558 | |
6 | 1.23409091675041 | 73.6455365853658 | 1.735 | |
7 | 1.59175657399057 | 50.2510243902439 | 5.584 | |
8 | 1.8606172261317 | 75.4640975609756 | 2.226 | |
10 | 1.39331205355523 | 80.0829268292683 | 1.39 | |
11 | 1.63479646523408 | 81.5439024390244 | 1.857 | |
12 | 1.04168781911881 | 74.8315365853659 | 1.713 | |
13 | 1.40677520975181 | 70.3176341463415 | 1.82 | |
14 | 1.26680425260303 | 75.2504390243902 | 1.157 | |
15 | 1.07088629669339 | 76.4130243902439 | 1.541 | |
16 | 2.66343845421011 | 68.3252195121951 | 2.296 | |
17 | 1.446871358869 | 79.9829268292683 | 1.84 | |
18 | 1.5284457078255 | 54.4660487804878 | 5.887 | |
19 | 1.37450582595425 | 73.4121951219512 | 1.57 | |
20 | 1.14803724248154 | 74.8897804878049 | 2.572 | |
21 | 1.40630727086071 | 49.4212682926829 | 4.465 | |
22 | 1.4133996013648 | 55.1734146341463 | 5.366 | |
23 | 1.03279606530525 | 79.1461707317073 | 1.7616 | |
24 | 1.08462095088668 | 77.7979268292683 | 2.066 | |
25 | 1.42991813111345 | 65.9638536585366 | 3.407 | |
26 | 2.89240645114134 | 72.7598048780488 | 1.857 | |
27 | 1.08013765936277 | 74.9752682926829 | 1.895 | |
28 | 1.11358324009202 | 66.5320487804878 | 2.476 | |
29 | 1.18969763675908 | 53.0115365853659 | 2.804 | |
30 | 1.41931690354942 | 70.4073170731707 | 1.42 | |
31 | 1.0737038139745 | 75.618512195122 | 2.845 | |
32 | 1.79000969816747 | 80.6617804878049 | 1.668 | |
33 | 2.05802023742967 | 47.7969268292683 | 5.897 | |
34 | 1.28075804757734 | 46.8837073170732 | 4.719 | |
35 | 1.27167489334838 | 56.558756097561 | 4.584 | |
36 | 1.37840719697484 | 82.0439024390244 | 1.5 | |
37 | 1.58664698657436 | 54.0559024390244 | 4.518 | |
38 | 1.56068013185014 | 78.7627073170732 | 1.876 | |
39 | 1.60989056840319 | 50.5829268292683 | 4.561 | |
40 | 5.96389723693203 | 73.056512195122 | 1.614 | |
41 | 1.9206652905669 | 73.2099756097561 | 2.403 | |
42 | 1.29159715966019 | 79.0691707317073 | 1.875 | |
43 | 1.45695366135863 | 78.7732195121951 | 1.481 | |
44 | 1.0940789277212 | 73.5868048780488 | 2.477 | |
45 | 1.04988478743806 | 76.1560975609756 | 2.1 | |
46 | 1.14158342382664 | 79.1969512195122 | 1.485 | |
47 | 1.44041897245288 | 77.0780487804878 | 1.49 | |
48 | 2.23117753832421 | 79.8365853658537 | 1.36 | |
49 | 1.12277090347528 | 57.1450487804878 | 3.827 | |
50 | 1.31951243749776 | 78.5975609756098 | 1.84 | |
52 | 1.42756227446787 | 72.9619756097561 | 2.615 | |
53 | 1.82053801682261 | 72.622756097561 | 2.308 | |
54 | 1.52248324592271 | 75.3021951219512 | 2.517 | |
55 | 1.15706024185594 | 74.8243902439024 | 1.62 | |
56 | 2.19201373935764 | 72.7341219512195 | 2.778 | |
57 | 1.32051864703214 | 60.5569268292683 | 4.543 | |
58 | 1.92173052022038 | 81.4756097560976 | 1.39 | |
59 | 2.25305057269396 | 58.1181707317073 | 4.352 | |
60 | 1.31413114869275 | 79.719512195122 | 1.86 | |
61 | 1.12505731530473 | 69.1020243902439 | 2.7 | |
62 | 1.04225340325061 | 68.5830487804878 | 3.517 | |
64 | 2.09428200066837 | 81.0682926829268 | 2 | |
65 | 1.16726894557063 | 61.8491219512195 | 3.286 | |
66 | 2.06954511928416 | 80.0512195121951 | 1.94 | |
67 | 1.04232190251332 | 75.4923414634146 | 2.258 | |
68 | 1.28548638689029 | 73.1471463414634 | 1.563 | |
69 | 1.66209478560795 | 63.3881707317073 | 4.236 | |
71 | 1.17320412059648 | 57.8382195121951 | 4.977 | |
72 | 1.44264221532067 | 53.1699268292683 | 5.327 | |
73 | 1.11130416495962 | 50.544756097561 | 5.259 | |
74 | 1.45683079194744 | 80.1878048780488 | 1.52 | |
75 | 1.50870836244826 | 70.5846341463415 | 4.05 | |
76 | 1.05288336133421 | 75.8167804878049 | 2.496 | |
77 | 1.16901646030187 | 47.313243902439 | 5.142 | |
78 | 1.11965508203786 | 69.1978780487805 | 2.289 | |
79 | 1.35905559776741 | 82.7756097560976 | 1.055 | |
80 | 1.37164600882635 | 72.532 | 3.202 | |
81 | 1.28607252870869 | 76.1682926829268 | 1.5 | |
82 | 1.42497628577433 | 61.4346829268293 | 3.418 | |
83 | 1.43054718600155 | 73.9048780487805 | 1.32 | |
84 | 3.09655138520505 | 68.4709756097561 | 2.145 | |
85 | 1.28703952853644 | 79.8878048780488 | 2.07 | |
86 | 1.37203815012016 | 81.4048780487805 | 2.96 | |
88 | 5.69342485215982 | 64.7785609756098 | 2.663 | |
89 | 1.74709716407113 | 68.091512195122 | 4.766 | |
90 | 2.16665080007955 | 72.4920731707317 | 1.701 | |
91 | 1.07586729642051 | 81.7512195121951 | 2.23 | |
92 | 2.05544917467648 | 81.3853658536585 | 1.41 | |
93 | 1.05287356047024 | 79.6755365853659 | 1.444 | |
94 | 1.22305566567435 | 72.5946585365854 | 2.357 | |
95 | 1.33066902452783 | 73.1509512195122 | 3.8 | |
96 | 2.53650343904921 | 82.9314634146342 | 1.37 | |
97 | 1.85847563842332 | 55.8393658536585 | 4.755 | |
98 | 1.31543734571069 | 69.1024390243903 | 2.9 | |
99 | 1.51152467592936 | 62.0721951219512 | 2.659 | |
101 | 1.11040638727874 | 60.2290731707317 | 4.986 | |
103 | 1.67153691882385 | 68.4323902439024 | 2.032 | |
104 | 1.95403088407635 | 80.2973170731707 | 1.149 | |
105 | 1.18017770406757 | 69.6487804878049 | 2.3368 | |
106 | 1.22937637599798 | 74.4875609756098 | 2.298 | |
108 | 1.54565232020163 | 68.4292682926829 | 2.6 | |
109 | 1.34040434970345 | 66.651512195122 | 2.843 | |
110 | 1.28012038497166 | 72.2297804878049 | 1.819 | |
111 | 1.05570917480777 | 74.2380731707317 | 1.997 | |
113 | 1.61511923200511 | 74.5666097560976 | 2.333 | |
114 | 1.265691752184 | 55.4791951219512 | 5.312 | |
115 | 1.19155015886229 | 46.6693658536585 | 3.265 | |
116 | 1.24833650663918 | 72.9146341463415 | 1.55 | |
117 | 1.09525875751759 | 80.6365853658537 | 1.59 | |
118 | 1.20395011922806 | 73.0804878048781 | 1.31 | |
119 | 1.33204663044695 | 74.5455609756098 | 2.627 | |
120 | 1.76076379305139 | 71.5894146341464 | 2.314 | |
122 | 1.25662579053861 | 68.6114390243903 | 1.482 | |
123 | 1.10642085938354 | 74.1500731707317 | 1.669 | |
125 | 1.61580633529072 | 66.1913658536585 | 4.72 | |
127 | 1.19682515670412 | 74.4438780487805 | 1.435 | |
128 | 1.50083029946645 | 50.5360487804878 | 6.361 | |
129 | 1.97664140725559 | 64.1995121951219 | 2.027 | |
130 | 1.22208363947824 | 67.8641219512195 | 2.496 | |
131 | 1.0975467918734 | 80.5210487804878 | 1.056 | |
133 | 1.25483350453365 | 57.9196341463415 | 4.602 | |
134 | 1.08673705649053 | 79.8926829268293 | 1.43 | |
135 | 1.15316789760881 | 72.8824390243903 | 1.5 | |
136 | 1.07600878714369 | 76.1956585365854 | 1.802 | |
137 | 1.51923018641154 | 52.6809512195122 | 5.994 | |
138 | 2.46790335360105 | 76.4655609756098 | 2.356 | |
139 | 1.71710139357457 | 73.7908048780488 | 2.666 | |
140 | 1.65745882140382 | 49.2780243902439 | 4.993 | |
141 | 1.19883390747607 | 61.6185853658537 | 3.288 | |
142 | 1.0663790789216 | 76.2839024390244 | 2.2 | |
143 | 1.53207556397261 | 53.8158292682927 | 7.115 | |
144 | 2.69582500821442 | 50.9494146341464 | 5.56 | |
145 | 1.32582898779737 | 73.4344390243903 | 2.67 | |
146 | 1.55301284506607 | 80.5487804878049 | 1.79 | |
147 | 1.29872404885454 | 80.7951219512195 | 1.98 | |
148 | 1.70084487299184 | 68.0016829268293 | 2.812 | |
149 | 1.28238672483248 | 80.7024390243902 | 2.14 | |
150 | 1.22170832099086 | 73.0040975609756 | 2.376 | |
151 | 1.25843132303548 | 75.801243902439 | 2.515 | |
152 | 1.73171608038399 | 73.5430731707317 | 2.538 | |
153 | 1.06908874329117 | 74.8895853658537 | 2.116 | |
154 | 1.35208098804878 | 62.0739024390244 | 4.01 | |
155 | 2.30406849362906 | 68.225512195122 | 3.194 | |
156 | 2.77430165252056 | 64.9552195121951 | 3.504 | |
157 | 1.84024537165999 | 75.6951219512195 | 1.4 | |
158 | 1.26285417131584 | 78.8069756097561 | 1.6528 | |
159 | 1.26150605365993 | 72.4569512195122 | 4.526 | |
160 | 1.44346174190811 | 78.7268292682927 | 1.32 | |
162 | 1.34255659519619 | 72.0683170731707 | 3.004 | |
163 | 1.16973643736856 | 77.9391951219512 | 2.324 | |
164 | 1.63043116789319 | 73.309756097561 | 1.38 | |
165 | 1.36791604503325 | 73.6853658536586 | 1.44 | |
166 | 2.62064372932034 | 68.6048780487805 | 1.54 | |
167 | 1.4413109138184 | 54.6658048780488 | 5.398 | |
168 | 1.70415716587536 | 73.6321707317073 | 2.887 | |
169 | 1.09691354708966 | 67.0671219512195 | 4.296 | |
170 | 1.03842558874825 | 73.0341463414634 | 2.4 | |
171 | 1.8030949070528 | 60.7854634146342 | 4.481 | |
172 | 1.41469000152145 | 81.3512195121951 | 1.94 | |
173 | 1.30360611159016 | 81.2414634146342 | 1.22 | |
174 | 1.19394107907281 | 78.9707317073171 | 1.53 | |
175 | 1.31647101756505 | 74.909756097561 | 1.41 | |
176 | 1.32291466515644 | 46.9576829268293 | 5.077 | |
178 | 1.48252613376573 | 58.6323170731707 | 4.9 | |
179 | 1.41652348981177 | 50.6309024390244 | 6.363 | |
180 | 1.09740969907866 | 70.0670243902439 | 2.367 | |
182 | 1.05538261763055 | 64.1075365853659 | 3.734 | |
183 | 1.33809968809445 | 71.5206097560976 | 2.283 | |
184 | 1.02418750523448 | 75.5878048780488 | 1.7 | |
185 | 1.62380730882392 | 75.5603414634146 | 2.997 | |
186 | 1.14691641927517 | 47.8888292682927 | 3.445 | |
188 | 1.45862144551585 | 48.8853170731707 | 6.073 | |
189 | 1.33702973862794 | 56.2028048780488 | 4.162 | |
190 | 2.10751707527689 | 73.7680243902439 | 1.598 | |
191 | 1.37108659873184 | 66.9676829268293 | 3.355 | |
192 | 1.14285351370675 | 61.5421707317073 | 5.7 | |
193 | 1.30334269308841 | 64.7599512195122 | 2.437 | |
194 | 1.43941807617896 | 74.4512195121951 | 2.05 | |
195 | 1.04215999540641 | 72.0138780487805 | 3.962 | |
196 | 2.1482458314913 | 73.4246341463415 | 2.111 | |
197 | 1.15601066516422 | 69.5360975609756 | 1.638 | |
199 | 1.89866175198149 | 56.5897317073171 | 5.559 | |
200 | 1.92318228357562 | 69.19 | 1.46 | |
201 | 1.77983948364501 | 53.0705853658537 | 6.244 | |
202 | 3.38283936910166 | 78.090243902439 | 2.0007 | |
203 | 1.24911693791079 | 76.1112195121951 | 1.9966 | |
204 | 1.71680548701874 | 67.7647073170732 | 2.53 | |
205 | 1.04339146194415 | 71.9212682926829 | 2.088 | |
206 | 1.72725983168405 | 73.9424390243903 | 2.52 | |
207 | 1.04284587326 | 79.0698292682927 | 1.845 | |
208 | 2.26178660586913 | 74.6055853658537 | 1.845 | |
209 | 1.0642901899591 | 70.5350243902439 | 3.921 | |
210 | 1.05726624290985 | 72.0635609756098 | 3.912 | |
211 | 1.64133525873431 | 64.593756097561 | 5.307 | |
212 | 1.95537006388121 | 51.6113170731707 | 2.495 | |
213 | 1.48707331043718 | 47.8145365853659 | 6.234 | |
214 | 1.48828567474433 | 48.4504878048781 | 3.36 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.39510240687344 | 76.5736097560976 | 1.749 | |
3 | 1.72489893124151 | 48.2821951219512 | 6.288 | |
5 | 1.24117837510663 | 76.9009512195122 | 1.536 | |
6 | 1.23390669496652 | 73.7835609756098 | 1.736 | |
7 | 1.6014127301415 | 50.6536585365854 | 5.443 | |
8 | 1.86437895812127 | 75.6321463414634 | 2.211 | |
10 | 1.39388801735055 | 80.3829268292683 | 1.44 | |
11 | 1.63895962892766 | 81.6951219512195 | 1.87 | |
12 | 1.04172753755636 | 74.9751707317073 | 1.699 | |
13 | 1.40920433956873 | 70.5065121951219 | 1.92 | |
14 | 1.26654338550314 | 75.4004390243903 | 1.148 | |
15 | 1.07106753617568 | 76.5728292682927 | 1.551 | |
16 | 2.67244018744894 | 68.6348048780488 | 2.245 | |
17 | 1.44891884892881 | 80.2341463414634 | 1.84 | |
18 | 1.53618772818615 | 54.9241951219512 | 5.85 | |
19 | 1.37324733672286 | 73.5121951219512 | 1.49 | |
20 | 1.15174020397107 | 75.0238292682927 | 2.54 | |
21 | 1.41321979912912 | 49.8772195121951 | 4.338 | |
22 | 1.4193786523469 | 55.5855853658537 | 5.287 | |
23 | 1.03265126711054 | 79.2885365853658 | 1.764 | |
24 | 1.08529295353825 | 77.9320243902439 | 2.042 | |
25 | 1.43341687886087 | 66.2685609756098 | 3.348 | |
26 | 2.9007955179832 | 73.0995365853658 | 1.83 | |
27 | 1.08082827512886 | 75.2221219512195 | 1.896 | |
28 | 1.11458887229967 | 66.9088536585366 | 2.399 | |
29 | 1.1905555946805 | 53.109512195122 | 2.75 | |
30 | 1.41894153652077 | 70.4048780487805 | 1.44 | |
31 | 1.07464939791945 | 75.8399512195122 | 2.79 | |
32 | 1.79467738675904 | 80.7978048780488 | 1.6269 | |
33 | 2.07282929570275 | 48.0695853658537 | 5.775 | |
34 | 1.28350275328756 | 47.6184634146341 | 4.631 | |
35 | 1.27561718765367 | 56.9601951219512 | 4.544 | |
36 | 1.3803849194688 | 82.2463414634147 | 1.52 | |
37 | 1.59253704520816 | 54.7415609756098 | 4.432 | |
38 | 1.56329897018362 | 78.8857317073171 | 1.862 | |
39 | 1.61773667559245 | 51.062756097561 | 4.487 | |
40 | 5.97589860053269 | 73.2730975609756 | 1.598 | |
41 | 1.9270985932324 | 73.4296829268293 | 2.1 | |
42 | 1.29375560031203 | 79.1926097560976 | 1.848 | |
43 | 1.45681069542112 | 78.9641463414634 | 1.467 | |
44 | 1.09426436919397 | 73.7740487804878 | 2.405 | |
46 | 1.14243920566644 | 79.3803902439025 | 1.476 | |
47 | 1.4411037597362 | 77.4243902439025 | 1.49 | |
48 | 2.23023474033586 | 79.9878048780488 | 1.39 | |
49 | 1.12368495830229 | 57.5273902439024 | 3.75 | |
50 | 1.32022382686619 | 79.1 | 1.87 | |
52 | 1.43042135826758 | 73.2000243902439 | 2.58 | |
53 | 1.82816658883568 | 72.8525365853659 | 2.264 | |
54 | 1.52679878021701 | 75.4622926829268 | 2.479 | |
55 | 1.15705376013208 | 75.4292682926829 | 1.63 | |
56 | 2.20206954825143 | 72.9752682926829 | 2.733 | |
57 | 1.32576734728544 | 60.9941951219512 | 4.453 | |
58 | 1.92335941154522 | 81.6268292682927 | 1.38 | |
59 | 2.26961229091624 | 58.7150975609756 | 4.193 | |
60 | 1.31485155181951 | 79.8707317073171 | 1.87 | |
61 | 1.12565383234162 | 69.2258292682927 | 2.668 | |
62 | 1.04217360283911 | 68.7648292682927 | 3.451 | |
64 | 2.09705509949337 | 81.3682926829268 | 2.03 | |
65 | 1.16930734390482 | 62.2866829268293 | 3.25 | |
66 | 2.07351931575463 | 80.4024390243902 | 1.98 | |
67 | 1.04240513408486 | 75.6604390243903 | 2.235 | |
68 | 1.28684143371141 | 73.3273414634146 | 1.555 | |
69 | 1.67003358762149 | 63.8372682926829 | 4.17 | |
70 | 1.03023208575499 | 70.2390243902439 | 2.2 | |
71 | 1.17597681956669 | 58.1600243902439 | 4.896 | |
72 | 1.44851557902644 | 53.6385853658537 | 5.246 | |
73 | 1.11289879882655 | 50.8408048780488 | 5.185 | |
74 | 1.45733174441395 | 80.3878048780488 | 1.51 | |
75 | 1.51508279148532 | 70.8254146341463 | 3.983 | |
76 | 1.05302649199332 | 75.9942682926829 | 2.47 | |
77 | 1.17096107786129 | 47.7006585365854 | 5.063 | |
78 | 1.12004665038124 | 69.5491463414634 | 2.262 | |
79 | 1.36037798165945 | 82.9780487804878 | 1.127 | |
80 | 1.37539618029902 | 72.8259268292683 | 3.139 | |
81 | 1.28570997504623 | 76.4756097560976 | 1.46 | |
82 | 1.42782485480731 | 61.763 | 3.34 | |
83 | 1.43006054704893 | 74.2073170731707 | 1.25 | |
84 | 3.11058384032634 | 68.8896585365854 | 2.117 | |
85 | 1.28753606747834 | 80.8951219512195 | 2.07 | |
86 | 1.37545524363067 | 81.6024390243903 | 3.03 | |
88 | 5.72386275973563 | 65.1313414634146 | 2.625 | |
89 | 1.75693215545613 | 68.4860487804878 | 4.702 | |
90 | 2.17392104036275 | 72.7518536585366 | 1.67 | |
91 | 1.07581140746348 | 81.8975609756098 | 2.2 | |
92 | 2.05799494943173 | 81.7365853658537 | 1.41 | |
93 | 1.05304010334046 | 79.832 | 1.46 | |
94 | 1.2232878879605 | 72.8471219512195 | 2.329 | |
95 | 1.33431526282325 | 73.2896585365854 | 3.8 | |
96 | 2.53585582306045 | 82.8426829268293 | 1.39 | |
97 | 1.87008780745962 | 56.4970731707317 | 4.718 | |
98 | 1.3173269709189 | 69.3 | 3.06 | |
99 | 1.51550224242945 | 62.5362195121951 | 2.581 | |
101 | 1.11182096756127 | 60.6262682926829 | 4.919 | |
103 | 1.67330759738391 | 68.5321463414634 | 2.022 | |
104 | 1.95624003313003 | 80.5658536585366 | 1.226 | |
105 | 1.18090590155461 | 69.8843902439024 | 2.2893 | |
106 | 1.23501521507368 | 74.6047317073171 | 2.295 | |
108 | 1.54953612724941 | 68.2953658536585 | 2.59 | |
109 | 1.34385980482447 | 67.064 | 2.747 | |
110 | 1.283214396421 | 72.408756097561 | 1.8 | |
111 | 1.05607295814329 | 74.4399024390244 | 1.98 | |
113 | 1.61816584785009 | 74.7226097560976 | 2.313 | |
114 | 1.27040622000758 | 56.1475853658537 | 5.238 | |
115 | 1.19246824299707 | 47.3650731707317 | 3.199 | |
116 | 1.24636715672763 | 73.2682926829268 | 1.55 | |
117 | 1.09614551089886 | 80.6317073170732 | 1.63 | |
118 | 1.20323072166471 | 73.4829268292683 | 1.17 | |
119 | 1.33416607841588 | 74.7531219512195 | 2.564 | |
120 | 1.76520069326743 | 71.8646341463415 | 2.279 | |
122 | 1.25649806173047 | 68.9037073170732 | 1.475 | |
123 | 1.10647910782965 | 74.3110975609756 | 1.656 | |
125 | 1.62451880346046 | 66.4670731707317 | 4.651 | |
127 | 1.19690309897939 | 74.6188536585366 | 1.422 | |
128 | 1.5086532915459 | 50.9548292682927 | 6.294 | |
129 | 1.98033703380441 | 64.6620975609756 | 2.002 | |
130 | 1.22376558900809 | 68.1949756097561 | 2.504 | |
131 | 1.09877328279841 | 80.7753170731707 | 1.092 | |
133 | 1.25820110242729 | 58.2169512195122 | 4.533 | |
134 | 1.08695061351642 | 80.9487804878049 | 1.38 | |
135 | 1.15352348495743 | 72.9673170731707 | 1.47 | |
136 | 1.0767399478096 | 76.5514146341463 | 1.752 | |
137 | 1.52702047076859 | 53.4626341463415 | 5.99 | |
138 | 2.47710227350875 | 76.6837804878049 | 2.32 | |
139 | 1.72334001471385 | 74.0245609756098 | 2.635 | |
140 | 1.66593772557364 | 49.6969268292683 | 4.912 | |
141 | 1.20047798327869 | 62.0700975609756 | 3.217 | |
142 | 1.06699137434406 | 76.3016829268293 | 2.141 | |
143 | 1.54225412941183 | 54.2656341463415 | 7.063 | |
144 | 2.71927509765888 | 51.4100243902439 | 5.525 | |
145 | 1.32806177244494 | 73.7292195121951 | 2.622 | |
146 | 1.55443357651034 | 80.7024390243902 | 1.79 | |
147 | 1.30059331117473 | 80.9975609756098 | 1.95 | |
148 | 1.70480928210117 | 68.3948292682927 | 2.727 | |
149 | 1.2840857884411 | 80.7024390243902 | 2.16 | |
150 | 1.22745859504757 | 73.1246097560976 | 2.309 | |
151 | 1.26065212842408 | 75.974243902439 | 2.484 | |
152 | 1.73585946964549 | 73.7649756097561 | 2.501 | |
153 | 1.06944320753759 | 75.0768780487805 | 2.09 | |
154 | 1.35610892927877 | 62.4406097560976 | 3.951 | |
155 | 2.31507808101207 | 68.4843170731707 | 3.142 | |
156 | 2.79016684008588 | 65.1988536585366 | 3.423 | |
157 | 1.84059862972608 | 76.2463414634146 | 1.38 | |
158 | 1.26217723733309 | 78.9132926829268 | 1.797 | |
159 | 1.26533141573483 | 72.6436829268293 | 4.453 | |
160 | 1.44356323648856 | 79.0268292682927 | 1.36 | |
162 | 1.34557820445517 | 72.277 | 2.954 | |
163 | 1.17957260259032 | 78.0975853658537 | 2.271 | |
164 | 1.62980844064744 | 73.4585365853659 | 1.33 | |
165 | 1.36717650472808 | 73.9365853658537 | 1.4 | |
166 | 2.62337671318178 | 68.8048780487805 | 1.54 | |
167 | 1.44770391864268 | 55.0571219512195 | 5.371 | |
168 | 1.71020330701736 | 73.8504146341463 | 2.811 | |
169 | 1.09800395667352 | 67.4651951219512 | 4.229 | |
170 | 1.03901641126992 | 73.4560975609756 | 2.1 | |
171 | 1.81224807626015 | 61.108243902439 | 4.4 | |
172 | 1.41646287320655 | 81.4512195121951 | 1.98 | |
173 | 1.30631002460798 | 81.5414634146342 | 1.15 | |
174 | 1.19436597491933 | 79.4219512195122 | 1.57 | |
175 | 1.31680739591941 | 75.1121951219512 | 1.4 | |
176 | 1.32607449672684 | 47.4021951219512 | 4.982 | |
178 | 1.48945266543718 | 58.9540731707317 | 4.819 | |
179 | 1.42215819388456 | 50.8955365853659 | 6.339 | |
180 | 1.09786343802703 | 70.3353170731707 | 2.336 | |
182 | 1.05620994299203 | 64.3492926829268 | 3.657 | |
183 | 1.33904847472656 | 71.7323658536586 | 2.25 | |
185 | 1.63119765804431 | 75.7025609756098 | 2.934 | |
186 | 1.14813779494805 | 48.3428048780488 | 3.364 | |
188 | 1.46561974170723 | 49.1948292682927 | 5.981 | |
189 | 1.3414371365959 | 56.5887073170732 | 4.072 | |
190 | 2.10856093967535 | 73.9276585365854 | 1.579 | |
191 | 1.37554707407999 | 67.2599024390244 | 3.297 | |
192 | 1.14493927960121 | 61.9998536585366 | 5.578 | |
193 | 1.30525968142724 | 64.863512195122 | 2.399 | |
194 | 1.44171822619078 | 74.6024390243903 | 2.13 | |
195 | 1.04227858360856 | 72.1506585365854 | 3.911 | |
196 | 2.15544851120403 | 73.6966585365854 | 2.088 | |
197 | 1.1563411425578 | 69.755 | 1.639 | |
199 | 1.91229176452033 | 57.3874878048781 | 5.544 | |
200 | 1.92134997060731 | 70.2756097560976 | 1.445 | |
201 | 1.79305308969279 | 53.6146341463415 | 6.149 | |
202 | 3.39274080598458 | 78.5414634146342 | 1.931 | |
203 | 1.24954568176294 | 76.2368292682927 | 1.9856 | |
204 | 1.72699713555347 | 68.001 | 2.499 | |
205 | 1.04340574937583 | 72.1125365853659 | 2.064 | |
206 | 1.73309313408358 | 74.1273170731707 | 2.49 | |
207 | 1.04275072928642 | 79.1894390243903 | 1.8 | |
208 | 2.26842518131289 | 74.828243902439 | 1.822 | |
209 | 1.06507226157862 | 70.8194878048781 | 3.869 | |
210 | 1.05747997151311 | 72.3063902439024 | 3.86 | |
211 | 1.64898640171608 | 65.0304634146342 | 5.2 | |
212 | 1.961849435558 | 52.0814878048781 | 2.458 | |
213 | 1.49446448077917 | 48.4554878048781 | 6.258 | |
214 | 1.49183708702959 | 49.8608780487805 | 3.29 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.40627103070169 | 76.7425365853659 | 1.721 | |
3 | 1.73387788718132 | 48.6805853658537 | 6.158 | |
5 | 1.24132184448708 | 77.0422682926829 | 1.523 | |
6 | 1.23393138229864 | 73.9160243902439 | 1.736 | |
7 | 1.61105096673341 | 51.0593170731707 | 5.313 | |
8 | 1.86816629502379 | 75.7976585365854 | 2.196 | |
10 | 1.39468286273346 | 81.0317073170732 | 1.42 | |
11 | 1.64269421876362 | 81.8463414634146 | 1.87 | |
12 | 1.0418017695397 | 75.1127804878049 | 1.687 | |
13 | 1.41188122839943 | 70.6528536585366 | 1.92 | |
14 | 1.26631388769356 | 75.5528536585366 | 1.14 | |
15 | 1.07125065263514 | 76.7392195121951 | 1.561 | |
16 | 2.68202427468247 | 68.9373658536585 | 2.202 | |
17 | 1.45204473173157 | 80.4853658536586 | 1.84 | |
18 | 1.54398479198066 | 55.3579024390244 | 5.812 | |
19 | 1.36860765719061 | 74.1634146341463 | 1.51 | |
20 | 1.1542355604062 | 75.1562682926829 | 2.501 | |
21 | 1.42005257523404 | 50.3370975609756 | 4.218 | |
22 | 1.42529501949739 | 56.0144390243902 | 5.206 | |
23 | 1.03249215523601 | 79.2885365853658 | 1.764 | |
24 | 1.08593536793769 | 78.0651219512195 | 2.017 | |
25 | 1.43698607652415 | 66.5773658536585 | 3.294 | |
26 | 2.90917558551194 | 73.4352195121951 | 1.811 | |
27 | 1.08149339604773 | 75.4522682926829 | 1.891 | |
28 | 1.11559320146816 | 67.2847073170732 | 2.332 | |
29 | 1.19139684563069 | 53.0184878048781 | 2.696 | |
30 | 1.41856583286564 | 70.6512195121951 | 1.51 | |
31 | 1.0755961307802 | 76.0529024390244 | 2.741 | |
32 | 1.79882902870108 | 80.929243902439 | 1.6269 | |
33 | 2.0877384870066 | 48.3693170731707 | 5.657 | |
34 | 1.28630590599128 | 48.3456097560976 | 4.546 | |
35 | 1.27940701760612 | 57.3561951219512 | 4.504 | |
36 | 1.38250755416202 | 82.6951219512195 | 1.52 | |
37 | 1.59895841229079 | 55.421243902439 | 4.348 | |
38 | 1.56588374262356 | 79.016756097561 | 1.849 | |
39 | 1.62565495576034 | 51.5764634146342 | 4.409 | |
40 | 5.98783397928261 | 73.4856341463415 | 1.582 | |
41 | 1.93340583640734 | 73.6419024390244 | 2.1 | |
42 | 1.29588997699947 | 79.3150975609756 | 1.827 | |
43 | 1.45669490032735 | 79.1256341463415 | 1.457 | |
44 | 1.09455403571058 | 73.9167804878049 | 2.344 | |
46 | 1.14327024099599 | 79.5628536585366 | 1.468 | |
47 | 1.44060615896114 | 77.8731707317073 | 1.43 | |
48 | 2.2303907714397 | 80.7414634146342 | 1.36 | |
49 | 1.1246249115231 | 57.9091707317073 | 3.679 | |
50 | 1.32088464270046 | 79.8 | 1.75 | |
52 | 1.43322459939137 | 73.437512195122 | 2.544 | |
53 | 1.83595388162802 | 73.0799024390244 | 2.217 | |
54 | 1.5310925087271 | 75.6303902439025 | 2.443 | |
55 | 1.15704002977894 | 76.1268292682927 | 1.52 | |
56 | 2.21216469613443 | 73.2019024390244 | 2.691 | |
57 | 1.33116827763125 | 61.4170731707317 | 4.366 | |
58 | 1.92439747954542 | 82.3268292682927 | 1.36 | |
59 | 2.28625239740355 | 59.2430975609756 | 4.045 | |
60 | 1.3155831844048 | 80.4707317073171 | 1.83 | |
61 | 1.12619488707677 | 69.3493170731707 | 2.639 | |
62 | 1.04213079044248 | 68.9481219512195 | 3.39 | |
64 | 2.09992271517558 | 81.6682926829268 | 2.03 | |
65 | 1.17136173003952 | 62.6912926829268 | 3.221 | |
66 | 2.07766045449488 | 80.7536585365854 | 1.98 | |
67 | 1.04249168750062 | 75.8270731707317 | 2.21 | |
69 | 1.67769423276663 | 64.2243170731707 | 4.1 | |
71 | 1.1788109784313 | 58.4847073170732 | 4.814 | |
72 | 1.45436825938317 | 54.092243902439 | 5.162 | |
73 | 1.11451268742053 | 51.1368780487805 | 5.106 | |
74 | 1.45717942321946 | 80.7439024390244 | 1.43 | |
75 | 1.52159959549786 | 71.0722195121951 | 3.922 | |
76 | 1.05327339623957 | 76.1687804878049 | 2.446 | |
77 | 1.17298469895976 | 48.1125853658537 | 4.988 | |
78 | 1.12041273817064 | 69.862512195122 | 2.234 | |
79 | 1.36159317010975 | 83.4219512195122 | 1.204 | |
80 | 1.37920945177584 | 73.1132195121951 | 3.078 | |
81 | 1.28123076341384 | 76.8756097560976 | 1.46 | |
82 | 1.43076667843403 | 62.0619024390244 | 3.264 | |
83 | 1.42945120891011 | 74.8585365853659 | 1.23 | |
84 | 3.12424290345213 | 69.319243902439 | 2.09 | |
85 | 1.29081295216108 | 80.4951219512195 | 2.05 | |
86 | 1.37894654490353 | 81.7560975609756 | 3 | |
88 | 5.75419357144632 | 65.4782682926829 | 2.589 | |
89 | 1.7666223847838 | 68.984512195122 | 4.636 | |
90 | 2.18148035093499 | 72.9994146341463 | 1.636 | |
91 | 1.07593009185441 | 82.3585365853659 | 2.02 | |
92 | 2.06009381707488 | 82.0878048780488 | 1.41 | |
93 | 1.0531949917378 | 79.9724146341463 | 1.479 | |
94 | 1.22350744753232 | 73.0763902439025 | 2.302 | |
95 | 1.33803168860732 | 73.4288780487805 | 3.7 | |
96 | 2.53806455575853 | 82.5912195121951 | 1.39 | |
97 | 1.88190637792695 | 57.0808780487805 | 4.68 | |
98 | 1.31926628849799 | 69.6024390243903 | 3.06 | |
99 | 1.51980955764545 | 62.9774146341463 | 2.51 | |
101 | 1.11323021722919 | 61.0417804878049 | 4.85 | |
103 | 1.67510263907572 | 68.6756585365854 | 2.01 | |
104 | 1.95980459274443 | 80.8658536585366 | 1.244 | |
105 | 1.18168574140544 | 70.1487804878049 | 2.2 | |
106 | 1.24020027958562 | 74.7283414634147 | 2.283 | |
108 | 1.55348603598375 | 68.8934146341464 | 2.59 | |
109 | 1.34722374048381 | 67.4323658536586 | 2.658 | |
110 | 1.28457369256009 | 72.5872195121951 | 1.783 | |
111 | 1.05638140362831 | 74.611 | 1.954 | |
113 | 1.62139116466364 | 74.9019756097561 | 2.287 | |
114 | 1.27453999707246 | 56.7428536585366 | 5.161 | |
115 | 1.19345598809901 | 47.9837317073171 | 3.137 | |
116 | 1.23653006730592 | 73.5634146341464 | 1.76 | |
117 | 1.09723606260486 | 80.9878048780488 | 1.52 | |
118 | 1.19482258084628 | 73.5756097560976 | 1.34 | |
119 | 1.33589585569413 | 74.9501951219512 | 2.502 | |
120 | 1.77022826312237 | 72.1319024390244 | 2.242 | |
122 | 1.25645256034069 | 69.2124634146341 | 1.466 | |
123 | 1.10652828990836 | 74.5041463414634 | 1.644 | |
125 | 1.63333886916777 | 66.6956829268293 | 4.584 | |
127 | 1.19698176212345 | 74.7880731707317 | 1.411 | |
128 | 1.5164314514225 | 51.3720731707317 | 6.227 | |
129 | 1.98428951870136 | 65.1501707317073 | 1.976 | |
130 | 1.22547423226882 | 68.4881707317073 | 2.494 | |
131 | 1.09985904739003 | 81.0185853658537 | 1.123 | |
133 | 1.26152534018033 | 58.5467073170732 | 4.464 | |
134 | 1.08702306523658 | 82.0048780487805 | 1.38 | |
135 | 1.15383223509053 | 73.2668292682927 | 1.45 | |
136 | 1.07749239706267 | 76.8829024390244 | 1.709 | |
137 | 1.53475751223319 | 54.1363658536585 | 5.985 | |
138 | 2.48631385428111 | 76.889512195122 | 2.283 | |
139 | 1.72949512025981 | 74.2608536585366 | 2.607 | |
140 | 1.67441791593295 | 50.1506097560976 | 4.832 | |
141 | 1.20225433674088 | 62.3324146341464 | 3.15 | |
142 | 1.06754607982124 | 76.6105609756098 | 2.122 | |
143 | 1.55269603193365 | 54.6909268292683 | 7.012 | |
144 | 2.743250649522 | 51.8631219512195 | 5.489 | |
145 | 1.3303931221748 | 73.9960975609756 | 2.573 | |
146 | 1.5557286901908 | 81.2048780487805 | 1.76 | |
147 | 1.30255228503441 | 81.2951219512195 | 1.88 | |
148 | 1.70887265403402 | 68.7259268292683 | 2.658 | |
149 | 1.28530155146782 | 80.9048780487805 | 2.1 | |
150 | 1.23631872999614 | 73.3418048780488 | 2.24 | |
151 | 1.2628496646645 | 76.1478292682927 | 2.454 | |
152 | 1.7402738782357 | 73.9763658536585 | 2.464 | |
153 | 1.06981655330336 | 75.2560731707317 | 2.065 | |
154 | 1.3600896584393 | 62.8008048780488 | 3.891 | |
155 | 2.32635350424968 | 68.7572926829268 | 3.099 | |
156 | 2.8056965743594 | 65.4489024390244 | 3.336 | |
157 | 1.84444834781911 | 76.7463414634146 | 1.3 | |
158 | 1.26121835640073 | 79.0281463414634 | 1.782 | |
159 | 1.26934526354197 | 72.8309512195122 | 4.379 | |
160 | 1.44188368907917 | 80.7219512195122 | 1.35 | |
162 | 1.34860117945151 | 72.4847073170732 | 2.911 | |
163 | 1.18769598232794 | 78.2492195121951 | 2.232 | |
164 | 1.62902667824865 | 74.5121951219512 | 1.25 | |
165 | 1.36635161370904 | 74.5853658536585 | 1.36 | |
166 | 2.6266286131033 | 69.0048780487805 | 1.54 | |
167 | 1.45401748986138 | 55.3945853658537 | 5.339 | |
168 | 1.71673225310784 | 74.0583658536585 | 2.738 | |
169 | 1.09908862471069 | 67.8633170731707 | 4.157 | |
170 | 1.03846001392277 | 73.4560975609756 | 2.1 | |
171 | 1.82107494089505 | 61.4477317073171 | 4.325 | |
172 | 1.41803956828137 | 81.8024390243903 | 1.9 | |
173 | 1.30952593448581 | 81.8926829268293 | 1.2 | |
174 | 1.19456870494055 | 79.9707317073171 | 1.56 | |
175 | 1.3158795818454 | 75.9585365853659 | 1.45 | |
176 | 1.32928048393444 | 47.7763658536585 | 4.884 | |
178 | 1.4965889337185 | 59.2721951219512 | 4.735 | |
179 | 1.42807361106113 | 51.1945609756098 | 6.319 | |
180 | 1.09831640075617 | 70.5806097560976 | 2.307 | |
182 | 1.05701893713583 | 64.5920487804878 | 3.585 | |
183 | 1.34008540643973 | 71.9451463414634 | 2.217 | |
185 | 1.63745699553236 | 75.8438048780488 | 2.87 | |
186 | 1.14932073753449 | 48.6589268292683 | 3.286 | |
188 | 1.47270630052784 | 49.5232682926829 | 5.886 | |
189 | 1.34591501168763 | 57.0265853658537 | 3.985 | |
190 | 2.11001271852622 | 74.0911951219512 | 1.559 | |
191 | 1.38014011100311 | 67.5357317073171 | 3.24 | |
192 | 1.14705506205255 | 62.4610243902439 | 5.453 | |
193 | 1.30721411372591 | 64.9978780487805 | 2.363 | |
194 | 1.44432316531781 | 74.7536585365854 | 2.13 | |
195 | 1.04237828191803 | 72.286243902439 | 3.861 | |
196 | 2.16280257974975 | 73.9441707317073 | 2.063 | |
197 | 1.15663606769433 | 69.9633658536585 | 1.637 | |
199 | 1.92619784494062 | 58.1512195121951 | 5.529 | |
200 | 1.91969515147199 | 70.8092682926829 | 1.459 | |
201 | 1.80648589703303 | 54.074243902439 | 6.052 | |
202 | 3.40147216569798 | 78.6414634146341 | 1.8945 | |
203 | 1.24997195020971 | 76.4121951219512 | 1.976 | |
204 | 1.73684505978859 | 68.2653170731707 | 2.499 | |
205 | 1.04341449011203 | 72.2954146341464 | 2.037 | |
206 | 1.73884404905315 | 74.3121951219512 | 2.46 | |
207 | 1.04264604275467 | 79.3055853658537 | 1.8 | |
208 | 2.27502919277424 | 75.0514146341464 | 1.795 | |
209 | 1.06584687196172 | 71.097512195122 | 3.82 | |
210 | 1.05770493787586 | 72.543243902439 | 3.815 | |
211 | 1.65665853660046 | 65.4516585365854 | 5.092 | |
212 | 1.96756173220867 | 52.6147804878049 | 2.425 | |
213 | 1.50220505402401 | 48.9688292682927 | 6.279 | |
214 | 1.49711049295195 | 51.2364390243903 | 3.219 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.14952023423666 | 69.8756829268293 | 5.209 | |
3 | 1.47586521423923 | 40.149243902439 | 7.807 | |
5 | 1.23259161219798 | 70.7154146341463 | 3.904 | |
6 | 1.24457226951893 | 70.2919268292683 | 2.406 | |
7 | 1.39623276095172 | 40.5297804878049 | 7.205 | |
8 | 1.73802665756122 | 70.2121219512195 | 3.163 | |
10 | 1.37393156329287 | 72.9685365853659 | 1.56 | |
11 | 1.53322318815227 | 75.1463414634146 | 1.924 | |
12 | 1.03181286992014 | 72.8490243902439 | 2.353 | |
13 | 1.34571352352801 | 65.0080975609756 | 3.026 | |
14 | 1.27906860292694 | 71.2393658536586 | 1.992 | |
15 | 1.06726530906914 | 72.8072926829268 | 1.889 | |
16 | 2.28629990490827 | 56.3081219512195 | 5.903 | |
17 | 1.42693963820632 | 73.8690243902439 | 1.56 | |
18 | 1.36842129276263 | 47.5113414634146 | 7.059 | |
19 | 1.40660442757816 | 71.3863414634146 | 2 | |
20 | 1.08484452511625 | 70.9411463414634 | 4.583 | |
21 | 1.28794074305004 | 47.8462926829268 | 6.514 | |
22 | 1.27337980027009 | 46.1964634146342 | 7.01 | |
24 | 1.06135755457025 | 71.6538292682927 | 3.906 | |
25 | 1.32637795449874 | 54.2558292682927 | 5.259 | |
26 | 2.55385862784068 | 63.6762926829268 | 3.721 | |
27 | 1.06347180995522 | 68.5236585365854 | 2.965 | |
28 | 1.08998562943152 | 48.1824146341464 | 6.399 | |
29 | 1.14274917421387 | 61.9666585365854 | 5.88 | |
30 | 1.42666816242626 | 70.4620243902439 | 2.11 | |
31 | 1.05239089555157 | 71.0464146341463 | 5.336 | |
32 | 1.68631493413139 | 76.0363414634146 | 1.68 | |
33 | 1.726081411697 | 46.2006829268293 | 6.748 | |
34 | 1.21411386358638 | 49.6525365853659 | 5.955 | |
35 | 1.19021698221415 | 56.8532195121951 | 5.952 | |
36 | 1.34447987612775 | 76.0312195121951 | 1.51 | |
37 | 1.41664325277746 | 52.6931707317073 | 7.253 | |
38 | 1.46583580072272 | 71.0063658536586 | 2.651 | |
39 | 1.42509390679069 | 52.3071951219512 | 6.377 | |
40 | 5.35205705496802 | 67.7998536585366 | 2.602 | |
41 | 1.73005700556368 | 66.9430975609756 | 3.63 | |
42 | 1.21708903433695 | 73.9583902439024 | 3.517 | |
43 | 1.42952350208243 | 74.0802682926829 | 1.825 | |
44 | 1.07574008312195 | 61.5797073170732 | 6.075 | |
46 | 1.1127271007565 | 75.3154878048781 | 2.438 | |
47 | 1.43697360242952 | 70.5914634146341 | 1.97 | |
48 | 2.20247426226618 | 73.6377073170732 | 1.33 | |
49 | 1.0845162240462 | 49.3273170731707 | 6.592 | |
50 | 1.30744384453489 | 74.4204878048781 | 1.377 | |
52 | 1.33965348878107 | 64.2024390243903 | 4.082 | |
53 | 1.63003288431916 | 61.968512195122 | 6.38 | |
54 | 1.39714091241281 | 64.8221463414634 | 4.629 | |
55 | 1.16669199289367 | 69.3756097560976 | 2.16 | |
56 | 1.94320044357473 | 57.8743658536585 | 5.189 | |
57 | 1.22141447136037 | 44.1779024390244 | 6.481 | |
58 | 1.83992398484552 | 75.9090243902439 | 1.792 | |
59 | 1.8414310510378 | 43.842243902439 | 6.95 | |
60 | 1.29956123235149 | 74.2009756097561 | 1.74 | |
61 | 1.11201454625582 | 63.8533414634146 | 3.755 | |
62 | 1.03679668022287 | 65.4535853658537 | 5.894 | |
64 | 2.01938410581691 | 74.8 | 1.86 | |
65 | 1.11984612273753 | 57.4076341463415 | 5.197 | |
66 | 2.02104389619777 | 74.3780487804878 | 1.77 | |
67 | 1.04046282645341 | 65.4833658536585 | 4.245 | |
68 | 1.2910086615281 | 69.4941707317073 | 2.277 | |
69 | 1.46908433492965 | 53.9646585365854 | 6.31 | |
71 | 1.11100268335425 | 50.0315853658537 | 6.28 | |
72 | 1.29762374151004 | 40.3074146341463 | 6.949 | |
73 | 1.07000704035948 | 43.9001707317073 | 5.802 | |
74 | 1.42674682577411 | 75.2491707317073 | 1.94 | |
75 | 1.37347176024184 | 58.6529756097561 | 6.054 | |
76 | 1.04384888338393 | 70.2585365853659 | 3.088 | |
77 | 1.12626724832293 | 41.2253414634146 | 6.642 | |
78 | 1.11844683121978 | 60.1744146341463 | 3.174 | |
79 | 1.31431460627676 | 75.2756097560976 | 1.722 | |
80 | 1.27144513141939 | 61.8017317073171 | 5.932 | |
81 | 1.29341878443051 | 70.2748780487805 | 1.88 | |
82 | 1.33582655568576 | 52.1255609756098 | 6.149 | |
83 | 1.44464928107517 | 68.9736585365854 | 1.73 | |
84 | 2.69755531353465 | 59.0631219512195 | 4.028 | |
85 | 1.25463452383937 | 73.2223902439025 | 2.759 | |
86 | 1.2753916221875 | 74.4585365853658 | 3.106 | |
88 | 4.72080748806358 | 56.419756097561 | 4.439 | |
89 | 1.523653465744 | 55.9501707317073 | 6.343 | |
90 | 1.90085215428923 | 50.105756097561 | 6.473 | |
91 | 1.065168615084 | 76.8456097560976 | 2.24 | |
92 | 2.02313753791245 | 74.640243902439 | 1.52 | |
93 | 1.04783654133347 | 74.0064634146342 | 1.433 | |
94 | 1.20331230784903 | 70.9734146341463 | 3.477 | |
95 | 1.21287819610448 | 68.2876341463415 | 7.022 | |
96 | 2.48567716322558 | 76.9614634146342 | 1.8 | |
97 | 1.58094141799845 | 59.0272682926829 | 7.165 | |
98 | 1.26627837029222 | 64.0422682926829 | 4.086 | |
99 | 1.36505857647047 | 48.2511951219512 | 6.758 | |
101 | 1.07888245932994 | 53.196 | 6.921 | |
103 | 1.5801517281714 | 68.8146097560976 | 2.807 | |
104 | 1.85939433212261 | 67.2392682926829 | 2.08 | |
105 | 1.17243664074571 | 66.3826829268293 | 4.4761 | |
106 | 1.17039945116954 | 71.2941463414634 | 4.876 | |
108 | 1.53412908767016 | 67.6621951219512 | 3.04 | |
109 | 1.25357772453673 | 49.9567073170732 | 6.363 | |
110 | 1.22120982036739 | 67.1083902439024 | 3.82 | |
111 | 1.04617887097193 | 70.1427073170732 | 4.161 | |
113 | 1.53405561961664 | 69.1948292682927 | 3.119 | |
114 | 1.19715237290961 | 43.5695609756098 | 6.944 | |
115 | 1.16093366390953 | 55.3014390243903 | 5.436 | |
116 | 1.25370940403861 | 70.7778048780488 | 2.04 | |
117 | 1.08141284083302 | 72.8232926829268 | 1.44 | |
118 | 1.21676040525538 | 69.1190243902439 | 2.07 | |
119 | 1.25350669357312 | 62.8713658536585 | 7.017 | |
120 | 1.62734435088713 | 59.9501951219512 | 5.278 | |
122 | 1.25424898101231 | 65.3133414634146 | 2.585 | |
123 | 1.10367393980282 | 74.1024634146342 | 2.154 | |
125 | 1.41833013881276 | 49.0729756097561 | 6.165 | |
127 | 1.18869806590918 | 69.7896341463415 | 2.311 | |
128 | 1.36348928125062 | 41.1331951219512 | 7.08 | |
129 | 1.82682014498147 | 55.3321219512195 | 4.248 | |
130 | 1.18332130512722 | 58.019243902439 | 5.707 | |
131 | 1.06992251704214 | 74.1765853658537 | 1.966 | |
133 | 1.17548141208565 | 54.2725853658537 | 6.263 | |
134 | 1.07732023350128 | 73.6286829268293 | 1.965 | |
135 | 1.13559015756548 | 68.042 | 2.325 | |
136 | 1.05500955920413 | 55.6512195121951 | 7.245 | |
137 | 1.35277271531609 | 45.4247317073171 | 7.29 | |
138 | 2.17721180420603 | 67.930243902439 | 4.172 | |
139 | 1.52549548531654 | 68.2741951219512 | 3.702 | |
140 | 1.49024606174995 | 42.7487073170732 | 6.439 | |
141 | 1.14100618875228 | 59.1283658536585 | 6.145 | |
142 | 1.05051674166373 | 68.4666666666585 | 3.0933333333 | |
143 | 1.34240124435686 | 39.8870731707317 | 7.768 | |
144 | 2.2147337086713 | 45.8440487804878 | 6.747 | |
145 | 1.25533627639406 | 59.6766097560976 | 5.746 | |
146 | 1.51554064136553 | 76.1641463414634 | 1.468 | |
147 | 1.27617793292857 | 76.0668292682927 | 1.66 | |
148 | 1.53405920666753 | 49.8817317073171 | 5.692 | |
149 | 1.24305731854944 | 73.7756097560976 | 1.92 | |
150 | 1.15825572899123 | 63.9511219512195 | 8.34 | |
151 | 1.19843238495592 | 70.8833902439024 | 3.475 | |
152 | 1.58727312211218 | 61.8131707317073 | 4.598 | |
153 | 1.05409277646429 | 66.5583414634146 | 3.79 | |
154 | 1.25386292556984 | 54.4456341463415 | 5.415 | |
155 | 1.97581438993677 | 63.8091219512195 | 4.883 | |
156 | 2.28036794286614 | 58.8481463414634 | 6.46 | |
157 | 1.82266135932342 | 71 | 2.416 | |
158 | 1.24727893689596 | 74.101512195122 | 2.436 | |
160 | 1.42915238294585 | 72.2658536585366 | 1.946 | |
162 | 1.2539683676853 | 67.0421951219512 | 5.151 | |
163 | 1.07473129946793 | 72.2290975609756 | 5.33 | |
164 | 1.64649727954536 | 69.7263414634147 | 2.06 | |
166 | 2.61926121947487 | 67.6526829268293 | 2.11 | |
167 | 1.32365108896593 | 50.0319756097561 | 8.26 | |
168 | 1.46887405599167 | 64.683756097561 | 6.939 | |
169 | 1.06762522572926 | 58.3013902439024 | 6.431 | |
171 | 1.54428387474322 | 50.3514146341464 | 6.316 | |
172 | 1.39245836075399 | 76.5517073170732 | 1.61 | |
173 | 1.22244908908015 | 72.4510487804878 | 1.608 | |
174 | 1.18825816612904 | 70.5414634146342 | 1.81 | |
175 | 1.3067710604564 | 70.4790243902439 | 2.28 | |
176 | 1.25089041609324 | 43.7664146341463 | 5.518 | |
178 | 1.33477670936882 | 49.6721707317073 | 7.261 | |
179 | 1.33854247263363 | 44.3784146341463 | 6.719 | |
180 | 1.08186989260536 | 66.6859024390244 | 3.594 | |
182 | 1.04148687204361 | 59.8947317073171 | 6.181 | |
183 | 1.30006471592441 | 57.9682926829268 | 4.738 | |
185 | 1.42921823651602 | 67.7803170731708 | 6.695 | |
186 | 1.10976740288696 | 56.2119268292683 | 6.52 | |
188 | 1.29875893058232 | 49.2557804878049 | 6.749 | |
189 | 1.23637879578243 | 50.7277317073171 | 7.024 | |
190 | 1.96352219040315 | 68.2397073170732 | 2.859 | |
191 | 1.2808743159481 | 62.8919756097561 | 5.533 | |
192 | 1.10618074794245 | 39.550512195122 | 5.256 | |
193 | 1.23831119829392 | 61.7455853658537 | 4.772 | |
194 | 1.3573073226416 | 64.4295365853659 | 4.863 | |
195 | 1.03995485898476 | 68.2952926829268 | 5.385 | |
196 | 1.93334447159831 | 58.7590243902439 | 4.033 | |
197 | 1.14469458681814 | 67.9037317073171 | 3.196 | |
199 | 1.61636202791794 | 50.9506341463415 | 6.542 | |
200 | 1.96734404128352 | 69.3138780487805 | 2.08 | |
201 | 1.50412374259102 | 49.8720243902439 | 7.102 | |
202 | 3.08017753434093 | 74.4634146341463 | 1.799 | |
203 | 1.23429964219761 | 71.055243902439 | 2.574 | |
204 | 1.56625879884259 | 66.2370731707317 | 4.711 | |
205 | 1.04203424807833 | 66.9049756097561 | 3.561 | |
206 | 1.55126649128643 | 69.1463902439024 | 3.933 | |
207 | 1.04225712650949 | 72.3616341463415 | 3.602 | |
208 | 2.0239578659621 | 59.2005365853659 | 4.813 | |
209 | 1.04648049972379 | 60.1721219512195 | 5.356 | |
210 | 1.05284169510799 | 61.464512195122 | 4.827 | |
211 | 1.40594593195106 | 51.8461951219512 | 9.223 | |
212 | 1.74163674811947 | 58.7679268292683 | 4.504 | |
213 | 1.34491849487706 | 51.8201951219512 | 6.937 | |
214 | 1.38935284082699 | 60.7227804878049 | 6.633 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.15330487102724 | 70.2411951219512 | 5.141 | |
3 | 1.46826413602066 | 40.4586829268293 | 7.829 | |
5 | 1.2353986457624 | 71.076487804878 | 3.865 | |
6 | 1.24639600422375 | 69.9390487804878 | 2.441 | |
7 | 1.40306144538734 | 40.655487804878 | 7.207 | |
8 | 1.74366249713108 | 70.4093170731707 | 3.123 | |
10 | 1.37391978243791 | 73.5275609756098 | 1.53 | |
11 | 1.53625186213828 | 75.3878048780488 | 1.84 | |
12 | 1.03199474791002 | 72.989756097561 | 2.342 | |
13 | 1.34848859918359 | 65.2259024390244 | 2.98 | |
14 | 1.28066395623273 | 71.5952926829268 | 1.973 | |
15 | 1.06743212767657 | 73.0805365853659 | 1.858 | |
16 | 2.30348585443408 | 56.5819024390244 | 5.719 | |
17 | 1.42693643007594 | 74.4048780487805 | 1.591 | |
18 | 1.37317182929949 | 47.7782195121951 | 7.043 | |
19 | 1.40708077753844 | 71.499756097561 | 1.99 | |
20 | 1.0860119028255 | 71.2357317073171 | 4.476 | |
21 | 1.29233969544516 | 48.062512195122 | 6.491 | |
22 | 1.27736616549827 | 46.4748536585366 | 6.994 | |
24 | 1.06225000961229 | 71.9543658536585 | 3.843 | |
25 | 1.33025250649007 | 54.9867317073171 | 5.189 | |
26 | 2.57108641270535 | 64.059756097561 | 3.587 | |
27 | 1.06417218694937 | 68.7896097560976 | 2.919 | |
28 | 1.09114584875551 | 48.7621219512195 | 6.348 | |
29 | 1.14517552804262 | 62.4456341463415 | 5.731 | |
30 | 1.42811894381679 | 70.5851707317073 | 2.11 | |
31 | 1.05318368222438 | 71.3051951219512 | 5.17 | |
32 | 1.68962411912115 | 76.3175609756098 | 1.65 | |
33 | 1.73561669031107 | 46.2936585365854 | 6.802 | |
34 | 1.21718373795901 | 49.7640243902439 | 5.952 | |
35 | 1.19301619188801 | 57.0031219512195 | 5.864 | |
36 | 1.34509969143861 | 76.6085365853659 | 1.52 | |
37 | 1.42511519789754 | 52.9404146341463 | 7.117 | |
38 | 1.46969366271382 | 71.4847804878049 | 2.655 | |
39 | 1.43158047164774 | 52.6052926829268 | 6.335 | |
40 | 5.38070211275593 | 68.0592682926829 | 2.625 | |
41 | 1.73805958577139 | 67.2982926829268 | 3.525 | |
42 | 1.2201305785878 | 74.3177073170732 | 3.491 | |
43 | 1.43067458861276 | 74.1970731707317 | 1.832 | |
44 | 1.07663387043032 | 62.126512195122 | 5.979 | |
46 | 1.11302578409604 | 75.4959756097561 | 2.453 | |
47 | 1.43710821488965 | 70.8375609756098 | 1.97 | |
48 | 2.20039758225547 | 73.917 | 1.29 | |
49 | 1.08579708792466 | 49.7062195121951 | 6.562 | |
50 | 1.30736322192402 | 74.5621951219512 | 1.4 | |
52 | 1.34347981536551 | 64.6514634146342 | 3.978 | |
53 | 1.64019221134187 | 62.8491707317073 | 6.161 | |
54 | 1.40209612647629 | 65.4534390243902 | 4.485 | |
55 | 1.16723917681067 | 69.2780487804878 | 2.17 | |
56 | 1.95411254882478 | 58.4373170731707 | 5.123 | |
57 | 1.22497272265311 | 44.4786829268293 | 6.456 | |
58 | 1.84164269208738 | 76.2953658536586 | 1.72 | |
59 | 1.85489860034834 | 44.0902682926829 | 6.984 | |
60 | 1.30036388679354 | 74.5190243902439 | 1.7 | |
61 | 1.11324476461325 | 64.1199756097561 | 3.693 | |
62 | 1.03743598522422 | 65.5395853658537 | 5.752 | |
64 | 2.02246615923942 | 75 | 1.86 | |
65 | 1.12144107293461 | 58.2290975609756 | 5.194 | |
66 | 2.02185228544574 | 74.7780487804878 | 1.77 | |
67 | 1.04102138691127 | 65.7467804878049 | 4.243 | |
68 | 1.29225579281974 | 69.5999268292683 | 2.275 | |
69 | 1.47722223545212 | 54.2455365853659 | 6.223 | |
71 | 1.11330220035217 | 50.7813658536585 | 6.252 | |
72 | 1.30171238929034 | 40.7927073170732 | 6.942 | |
73 | 1.0727952835498 | 44.289756097561 | 5.826 | |
74 | 1.42781189726821 | 75.514512195122 | 1.823 | |
75 | 1.37809840446692 | 59.1393658536585 | 5.987 | |
76 | 1.04438506297796 | 70.5355365853659 | 3.076 | |
77 | 1.12777425436018 | 41.5543170731707 | 6.71 | |
78 | 1.11790397276507 | 60.3373902439024 | 3.052 | |
79 | 1.31586540143841 | 76.0292682926829 | 1.559 | |
80 | 1.27560741641703 | 62.5981463414634 | 5.802 | |
81 | 1.29408038698338 | 70.2185365853659 | 1.87 | |
82 | 1.33977656853149 | 52.5321707317073 | 6.106 | |
83 | 1.44420432332751 | 69.0258536585366 | 1.73 | |
84 | 2.71598819396604 | 59.5306341463415 | 3.887 | |
85 | 1.25542643689721 | 73.4345853658537 | 2.589 | |
86 | 1.27720035459847 | 74.8073170731707 | 3.082 | |
88 | 4.76227036828672 | 56.7326585365854 | 4.363 | |
89 | 1.53033167225071 | 56.7224146341463 | 6.289 | |
90 | 1.91935415649432 | 50.5314390243902 | 6.377 | |
91 | 1.06552747846104 | 77.5765853658537 | 2.08 | |
92 | 2.02325189980601 | 75.389512195122 | 1.462 | |
93 | 1.04808603689132 | 74.2065365853659 | 1.434 | |
94 | 1.20508437301908 | 71.0425609756098 | 3.394 | |
95 | 1.21698613477888 | 68.6533902439024 | 6.931 | |
96 | 2.49039760965561 | 77.3653658536585 | 1.81 | |
97 | 1.59200383922465 | 59.3103902439024 | 7.049 | |
98 | 1.26897905242537 | 64.4696341463415 | 4.097 | |
99 | 1.37237955569541 | 50.6716097560976 | 6.802 | |
101 | 1.08000509057896 | 53.6109268292683 | 6.766 | |
103 | 1.58485627829716 | 69.159243902439 | 2.779 | |
104 | 1.86471910362839 | 67.8860975609756 | 1.96 | |
105 | 1.17419872312534 | 66.5978048780488 | 4.8199 | |
106 | 1.17437862238634 | 71.5412926829268 | 4.575 | |
108 | 1.53721036248209 | 68.5365853658537 | 3.08 | |
109 | 1.25704658246484 | 50.4327804878049 | 6.369 | |
110 | 1.22187543467853 | 67.2909756097561 | 3.709 | |
111 | 1.04652428242347 | 70.3306097560976 | 4.014 | |
113 | 1.53726910959955 | 69.3199024390244 | 3.01 | |
114 | 1.19977823251097 | 43.420243902439 | 6.915 | |
115 | 1.16273102030735 | 55.7686585365854 | 5.377 | |
116 | 1.25476551181612 | 70.32 | 2.09 | |
117 | 1.08145557115045 | 73.1264390243903 | 1.43 | |
118 | 1.21744398152345 | 69.1629268292683 | 2.09 | |
119 | 1.25833683775007 | 63.7896585365854 | 6.79 | |
120 | 1.63475715967536 | 60.6441951219512 | 5.12 | |
122 | 1.25555600499975 | 65.6957804878049 | 2.62 | |
123 | 1.10393044046193 | 74.2423902439024 | 2.108 | |
125 | 1.423868349785 | 49.1927804878049 | 6.135 | |
127 | 1.18912099057791 | 69.9329512195122 | 2.277 | |
128 | 1.36691957970014 | 41.6433170731707 | 7.088 | |
129 | 1.83588174220962 | 55.4036341463415 | 4.153 | |
130 | 1.18572228786686 | 58.4 | 5.547 | |
131 | 1.07149287017972 | 74.4732926829268 | 2.021 | |
133 | 1.1779742477091 | 54.5918536585366 | 6.214 | |
134 | 1.07732849174855 | 73.8551219512195 | 1.95 | |
135 | 1.1361642967251 | 68.2298536585366 | 2.16 | |
136 | 1.05604258168428 | 56.5183658536585 | 7.24 | |
137 | 1.35868110243017 | 45.7464390243902 | 7.234 | |
138 | 2.18871797987073 | 68.3588780487805 | 4.027 | |
139 | 1.53260442252475 | 68.550512195122 | 3.679 | |
140 | 1.49416208260361 | 42.6967804878049 | 6.42 | |
141 | 1.1429812743639 | 59.4723414634146 | 6.022 | |
142 | 1.05146342989993 | 68.6162601626098 | 3.0466666667 | |
143 | 1.34720468308207 | 39.996 | 7.785 | |
144 | 2.23022185407878 | 45.8905365853659 | 6.718 | |
145 | 1.25861822190263 | 60.1555853658537 | 5.589 | |
146 | 1.51656536951188 | 76.2331707317073 | 1.491 | |
147 | 1.27656861033741 | 76.2243902439024 | 1.66 | |
148 | 1.54027597703132 | 50.4658048780488 | 5.635 | |
149 | 1.24411352458236 | 74.3707317073171 | 1.93 | |
150 | 1.1623000559302 | 65.0034146341464 | 8.299 | |
151 | 1.20069971718997 | 71.1310731707317 | 3.405 | |
152 | 1.59416841763887 | 62.3980487804878 | 4.475 | |
153 | 1.05490549138655 | 67.1023414634146 | 3.745 | |
154 | 1.25727783617725 | 54.7004390243902 | 5.312 | |
155 | 1.98918390087735 | 64.0134634146341 | 4.795 | |
156 | 2.30234115511667 | 59.1338780487805 | 6.436 | |
157 | 1.82639141146454 | 70.8 | 2.372 | |
158 | 1.24851287688838 | 74.2259756097561 | 2.387 | |
160 | 1.4299789601326 | 72.5146341463415 | 1.92 | |
162 | 1.25776040248256 | 67.1454634146342 | 5.094 | |
163 | 1.07859343821474 | 72.5258048780488 | 5.148 | |
164 | 1.6474578117917 | 69.6587804878049 | 2.26 | |
166 | 2.62540493108194 | 67.2026829268293 | 2.06 | |
167 | 1.3295137601053 | 50.0053902439024 | 8.216 | |
168 | 1.48264123460672 | 65.383243902439 | 6.806 | |
169 | 1.06872706499103 | 57.7946829268293 | 6.349 | |
171 | 1.55346314518744 | 50.6571707317073 | 6.268 | |
172 | 1.39263687521348 | 76.8158536585366 | 1.66 | |
173 | 1.22456081798087 | 72.7820975609756 | 1.615 | |
174 | 1.18874092567615 | 70.9024390243903 | 1.74 | |
175 | 1.30782890366558 | 70.7509756097561 | 2.26 | |
176 | 1.25396395843602 | 43.4455853658537 | 5.519 | |
178 | 1.3398083528027 | 50.3891951219512 | 7.193 | |
179 | 1.33617178417381 | 44.8818780487805 | 6.701 | |
180 | 1.08216529754413 | 66.8701219512195 | 3.471 | |
182 | 1.0418886859447 | 60.0211951219512 | 6.078 | |
183 | 1.3020937561031 | 58.8220487804878 | 4.609 | |
185 | 1.43675544940068 | 68.2858780487805 | 6.534 | |
186 | 1.11158667067137 | 56.8127804878049 | 6.459 | |
188 | 1.3026000295334 | 49.6501951219512 | 6.74 | |
189 | 1.24080026596755 | 51.0847804878049 | 6.941 | |
190 | 1.97236695523677 | 69.1920487804878 | 2.707 | |
191 | 1.28515693967136 | 63.1067804878049 | 5.51 | |
192 | 1.10810588280449 | 40.812512195122 | 5.324 | |
193 | 1.24122130978433 | 62.0150487804878 | 4.718 | |
194 | 1.36084890760393 | 65.0841463414634 | 4.707 | |
195 | 1.0399696802394 | 68.5336585365854 | 5.266 | |
196 | 1.94385113761907 | 59.4541951219512 | 3.868 | |
197 | 1.14577961547815 | 68.093756097561 | 3.129 | |
199 | 1.62606047394169 | 51.0769756097561 | 6.504 | |
200 | 1.96916005998197 | 69.5518292682927 | 2.09 | |
201 | 1.51220096320277 | 49.7853658536585 | 7.103 | |
202 | 3.08920261351364 | 74.5634146341464 | 1.8065 | |
203 | 1.23505711006266 | 71.3048048780488 | 2.546 | |
204 | 1.57352686768354 | 66.5341463414634 | 4.616 | |
205 | 1.04220058524312 | 67.2868780487805 | 3.439 | |
206 | 1.55863092281737 | 69.4542195121951 | 3.861 | |
207 | 1.04312425202338 | 72.7020487804878 | 3.467 | |
208 | 2.03328652466428 | 60.1716829268293 | 4.622 | |
209 | 1.04704374276207 | 60.6422682926829 | 5.282 | |
210 | 1.05299873495982 | 61.962512195122 | 4.836 | |
211 | 1.41420113204849 | 52.731 | 9.223 | |
212 | 1.75132368371441 | 59.3457073170732 | 4.402 | |
213 | 1.3502819219998 | 51.5648048780488 | 6.865 | |
214 | 1.3971186574921 | 61.1367804878049 | 6.435 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.15746905169099 | 70.5941707317073 | 5.065 | |
3 | 1.46179175588823 | 40.7705853658537 | 7.85 | |
5 | 1.23839129910927 | 71.3975853658537 | 3.816 | |
6 | 1.24832499113064 | 69.5044146341464 | 2.481 | |
7 | 1.40941493037439 | 40.7803414634146 | 7.208 | |
8 | 1.74928923254838 | 70.586512195122 | 3.093 | |
10 | 1.37400765966411 | 73.7451219512195 | 1.46 | |
11 | 1.53993240830193 | 75.6292682926829 | 1.923 | |
12 | 1.03205167991126 | 73.0979756097561 | 2.332 | |
13 | 1.35127252353732 | 65.4277804878049 | 2.91 | |
14 | 1.28258872841755 | 71.7950731707317 | 1.953 | |
15 | 1.06759127828267 | 73.3470975609756 | 1.83 | |
16 | 2.32099997280061 | 56.9524146341463 | 5.527 | |
17 | 1.42700006794243 | 74.520243902439 | 1.49 | |
18 | 1.37801767216882 | 47.9815853658537 | 7.022 | |
19 | 1.40707777664843 | 71.2280487804878 | 1.95 | |
20 | 1.08731492071603 | 71.501756097561 | 4.365 | |
21 | 1.29702861419993 | 48.1605609756098 | 6.483 | |
22 | 1.28144993937919 | 46.7579756097561 | 6.972 | |
24 | 1.06315857560802 | 72.2489024390244 | 3.794 | |
25 | 1.33417009408732 | 55.6896829268293 | 5.127 | |
26 | 2.58783679317455 | 64.4393414634146 | 3.449 | |
27 | 1.06484217024335 | 69.0233658536585 | 2.857 | |
28 | 1.09244457734525 | 49.3393658536585 | 6.292 | |
29 | 1.14760638734135 | 62.9001463414634 | 5.567 | |
30 | 1.42952173530048 | 70.9926829268293 | 2.09 | |
31 | 1.05397374033756 | 71.5438048780488 | 5.019 | |
32 | 1.69283736040853 | 76.3034146341464 | 1.67 | |
33 | 1.74556791787731 | 46.3786585365854 | 6.856 | |
34 | 1.2200224221355 | 49.7922926829268 | 5.944 | |
35 | 1.19580483013484 | 57.0941219512195 | 5.774 | |
36 | 1.34586313214862 | 76.7336585365854 | 1.51 | |
37 | 1.43344745460388 | 53.0898536585366 | 6.977 | |
38 | 1.47362398027349 | 71.905 | 2.657 | |
39 | 1.43818423832673 | 52.8563902439024 | 6.282 | |
40 | 5.41063008614026 | 68.3131463414634 | 2.639 | |
41 | 1.74602273118326 | 67.5755853658537 | 3.43 | |
42 | 1.22318076398677 | 74.624 | 3.463 | |
43 | 1.43214280118426 | 74.2882195121951 | 1.837 | |
44 | 1.07737311889649 | 62.6583170731707 | 5.883 | |
46 | 1.11351404410865 | 75.6729512195122 | 2.458 | |
47 | 1.43725438455289 | 71.0463414634146 | 1.95 | |
48 | 2.19905681809649 | 74.1917317073171 | 1.37 | |
49 | 1.08782241196823 | 50.0376097560976 | 6.527 | |
50 | 1.30742560243427 | 74.4275609756098 | 1.447 | |
52 | 1.34728722207265 | 65.1303170731707 | 3.878 | |
53 | 1.65018924462017 | 63.736 | 5.928 | |
54 | 1.40711192183307 | 66.0708292682927 | 4.342 | |
55 | 1.16780068140772 | 69.3804878048781 | 2.12 | |
56 | 1.96526147258515 | 59.0012195121951 | 5.045 | |
57 | 1.22864056573981 | 44.9069756097561 | 6.423 | |
58 | 1.84318335690132 | 76.259512195122 | 1.63 | |
59 | 1.8686826232158 | 44.4752195121951 | 7.014 | |
60 | 1.30099186951288 | 74.2229268292683 | 1.64 | |
61 | 1.11416197125395 | 64.3790975609756 | 3.629 | |
62 | 1.03803609785609 | 65.6365853658537 | 5.6 | |
64 | 2.02549639175631 | 75.3 | 1.86 | |
65 | 1.12308408738234 | 58.9950975609756 | 5.189 | |
66 | 2.02301265141175 | 74.6292682926829 | 1.8 | |
67 | 1.04135102203645 | 66.0871707317073 | 4.231 | |
68 | 1.29354176622607 | 69.7340731707317 | 2.273 | |
69 | 1.48501418782747 | 54.5554146341463 | 6.131 | |
71 | 1.11580620855612 | 51.4521219512195 | 6.223 | |
72 | 1.30601760441239 | 41.2764878048781 | 6.929 | |
73 | 1.07516545144495 | 44.6929268292683 | 5.848 | |
74 | 1.42864390933863 | 75.7699756097561 | 1.677 | |
75 | 1.382688388862 | 59.6447804878049 | 5.913 | |
76 | 1.04492699737998 | 70.8075365853659 | 3.079 | |
77 | 1.12926798792094 | 41.840756097561 | 6.743 | |
78 | 1.11736428083645 | 60.4773414634146 | 2.938 | |
79 | 1.31756894045847 | 76.4341463414634 | 1.491 | |
80 | 1.27980945936214 | 63.3675365853659 | 5.675 | |
81 | 1.29474050444402 | 70.8860975609756 | 1.82 | |
82 | 1.34369050276151 | 52.9377073170732 | 6.028 | |
83 | 1.44380033531262 | 68.9721951219512 | 1.83 | |
84 | 2.73402049019604 | 59.9866585365854 | 3.745 | |
85 | 1.25563139013611 | 73.6409024390244 | 2.5 | |
86 | 1.27965998903428 | 75.2073170731707 | 3.058 | |
88 | 4.80382626900147 | 57.0319268292683 | 4.289 | |
89 | 1.53681065583823 | 58.1053170731707 | 6.243 | |
90 | 1.93788598031195 | 51.6350975609756 | 6.226 | |
91 | 1.06579442723726 | 77.6024390243903 | 1.93 | |
92 | 2.02339978974659 | 75.4953658536585 | 1.39 | |
93 | 1.04834573142123 | 74.3981219512195 | 1.437 | |
94 | 1.20648749055616 | 71.0593658536585 | 3.308 | |
95 | 1.22090441551499 | 68.997756097561 | 6.819 | |
96 | 2.4949607778356 | 77.650487804878 | 1.76 | |
97 | 1.60311675430891 | 59.5099268292683 | 6.918 | |
98 | 1.27150976522309 | 64.8821219512195 | 4.093 | |
99 | 1.37922326466441 | 52.4350243902439 | 6.711 | |
101 | 1.08112199719649 | 54.0149024390244 | 6.576 | |
103 | 1.58942890000425 | 69.4930731707317 | 2.716 | |
104 | 1.86898950819536 | 68.5329268292683 | 1.67 | |
105 | 1.17604832686282 | 66.8129268292683 | 4.5635 | |
106 | 1.17857662882368 | 71.7718780487805 | 4.239 | |
108 | 1.54030939525189 | 68.5365853658537 | 3.08 | |
109 | 1.26063664762938 | 50.9574146341463 | 6.361 | |
110 | 1.222265669099 | 67.4817073170732 | 3.596 | |
111 | 1.04691017552786 | 70.4397317073171 | 3.888 | |
113 | 1.54137027009359 | 69.3727317073171 | 2.902 | |
114 | 1.20132902739409 | 43.253512195122 | 6.873 | |
115 | 1.1644062109346 | 56.2383414634146 | 5.313 | |
116 | 1.25586518886392 | 70.5012195121951 | 2.1 | |
117 | 1.08153597064635 | 73.4333170731707 | 1.38 | |
118 | 1.21815893082449 | 69.2914634146342 | 2.08 | |
119 | 1.26279797348118 | 64.6663170731707 | 6.513 | |
120 | 1.64202632017141 | 61.2901219512195 | 4.944 | |
122 | 1.25678430803147 | 66.1324390243903 | 2.643 | |
123 | 1.10423311089553 | 74.3909756097561 | 2.064 | |
125 | 1.42965342682288 | 49.2735365853659 | 6.146 | |
127 | 1.18963771836282 | 70.134243902439 | 2.246 | |
128 | 1.37003279933271 | 42.1429268292683 | 7.093 | |
129 | 1.84458044065717 | 55.5146585365854 | 4.056 | |
130 | 1.18823653501214 | 58.826 | 5.376 | |
131 | 1.07309938168589 | 74.7650243902439 | 2.04 | |
133 | 1.18046639213664 | 54.8636097560976 | 6.17 | |
134 | 1.07802653658601 | 74.0805609756098 | 1.99 | |
135 | 1.13662341489269 | 68.3667317073171 | 2.02 | |
136 | 1.05707749972317 | 57.3080731707317 | 7.184 | |
137 | 1.36649744387897 | 46.0411951219512 | 7.173 | |
138 | 2.20040266284986 | 68.7789024390244 | 3.896 | |
139 | 1.54004106620138 | 68.8198536585366 | 3.656 | |
140 | 1.49674010645674 | 42.6627317073171 | 6.398 | |
141 | 1.14537835772341 | 59.7694146341463 | 5.893 | |
142 | 1.0518903680332 | 68.7658536585366 | 3 | |
143 | 1.35209100259708 | 40.1184390243902 | 7.797 | |
144 | 2.24611504788258 | 45.9040243902439 | 6.682 | |
145 | 1.26177098618233 | 60.6908536585366 | 5.426 | |
146 | 1.51777184409126 | 76.2846341463415 | 1.511 | |
147 | 1.27698379669383 | 75.9168292682927 | 1.68 | |
148 | 1.5465080536278 | 51.0498292682927 | 5.573 | |
149 | 1.24487056732631 | 73.8292682926829 | 1.93 | |
150 | 1.16611754896441 | 66.0387317073171 | 8.222 | |
151 | 1.20295986839757 | 71.3569268292683 | 3.34 | |
152 | 1.60104447459144 | 62.9690487804878 | 4.36 | |
153 | 1.05571050377178 | 67.5615365853659 | 3.698 | |
154 | 1.26064239977513 | 54.8522682926829 | 5.21 | |
155 | 2.00267956212155 | 64.2143414634147 | 4.712 | |
156 | 2.32446843842334 | 59.4131707317073 | 6.407 | |
157 | 1.82971914879231 | 70.5487804878049 | 2.329 | |
158 | 1.24973170786841 | 74.3442926829268 | 2.344 | |
160 | 1.43056788504294 | 72.8146341463415 | 1.74 | |
162 | 1.26155184355505 | 67.252243902439 | 5.02 | |
163 | 1.08202483642604 | 72.813 | 4.962 | |
164 | 1.64887828764635 | 69.7068292682927 | 2.31 | |
166 | 2.63172969894569 | 67.8568292682927 | 2.05 | |
167 | 1.33615256823016 | 49.2796585365854 | 8.136 | |
168 | 1.49552644504605 | 66.0371951219512 | 6.656 | |
169 | 1.06980793668431 | 57.2450487804878 | 6.278 | |
171 | 1.56242522889919 | 50.9499268292683 | 6.218 | |
172 | 1.39296156248052 | 76.6678048780488 | 1.74 | |
173 | 1.22472560455804 | 73.1641463414634 | 1.614 | |
174 | 1.1892055305475 | 71.3512195121951 | 1.71 | |
175 | 1.30886949136015 | 70.7346341463415 | 2.26 | |
176 | 1.2573026549847 | 42.8720731707317 | 5.53 | |
178 | 1.34499310412776 | 51.0477317073171 | 7.118 | |
179 | 1.33493545850751 | 45.2923658536585 | 6.692 | |
180 | 1.08258177358245 | 67.0183414634146 | 3.338 | |
182 | 1.04233829961533 | 60.1581219512195 | 5.967 | |
183 | 1.30410037250065 | 59.887 | 4.485 | |
185 | 1.44418661408675 | 68.7804390243902 | 6.36 | |
186 | 1.11366061792939 | 57.3743902439024 | 6.384 | |
188 | 1.30676617326636 | 49.9915609756098 | 6.73 | |
189 | 1.24509325948617 | 51.4338780487805 | 6.85 | |
190 | 1.98128714169317 | 70.0900487804878 | 2.571 | |
191 | 1.28966314099904 | 63.2799024390244 | 5.486 | |
192 | 1.10988368980335 | 41.7819024390244 | 5.336 | |
193 | 1.24420445572915 | 62.2463902439024 | 4.669 | |
194 | 1.36639243305038 | 65.6948780487805 | 4.549 | |
195 | 1.03999629838032 | 68.7596585365854 | 5.128 | |
196 | 1.95399284778142 | 60.1213658536585 | 3.698 | |
197 | 1.14674353072868 | 68.2733414634146 | 3.049 | |
199 | 1.63583148620837 | 51.166756097561 | 6.465 | |
200 | 1.97071530533548 | 69.773243902439 | 2.06 | |
201 | 1.52079884164567 | 49.6386341463415 | 7.103 | |
202 | 3.09847996091965 | 74.5634146341464 | 1.844 | |
203 | 1.23581473501083 | 71.536756097561 | 2.53 | |
204 | 1.58077814177331 | 66.7763902439024 | 4.539 | |
205 | 1.04236146336198 | 67.6569756097561 | 3.328 | |
206 | 1.56611764037174 | 69.7622195121951 | 3.794 | |
207 | 1.04290911348003 | 73.0557317073171 | 3.343 | |
208 | 2.04376913248733 | 61.0549024390244 | 4.432 | |
209 | 1.04761742760517 | 61.0821951219512 | 5.209 | |
210 | 1.05312936304859 | 62.463 | 4.838 | |
211 | 1.42248996240254 | 53.5273170731707 | 9.186 | |
212 | 1.76114465088594 | 59.8850731707317 | 4.293 | |
213 | 1.35557439745431 | 51.1885365853659 | 6.799 | |
214 | 1.40479304463333 | 61.4474146341464 | 6.224 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.16208522887681 | 70.9336341463415 | 4.973 | |
3 | 1.45641894044157 | 41.0848780487805 | 7.871 | |
5 | 1.24164154336518 | 71.6373658536586 | 3.747 | |
6 | 1.25045370196329 | 69.0312195121951 | 2.519 | |
7 | 1.41518431375542 | 40.8905609756098 | 7.206 | |
8 | 1.75490108488116 | 70.7537073170732 | 3.073 | |
10 | 1.37412663593407 | 74.2229268292683 | 1.47 | |
11 | 1.54437741809779 | 75.8707317073171 | 1.868 | |
12 | 1.03194061197671 | 73.1793658536585 | 2.32 | |
13 | 1.3540505809875 | 65.5413414634147 | 2.9 | |
14 | 1.28510870861943 | 71.6509268292683 | 1.925 | |
15 | 1.06774117555624 | 73.6034634146341 | 1.806 | |
16 | 2.33884062753923 | 57.4232195121951 | 5.328 | |
17 | 1.42707624317504 | 74.7317073170732 | 1.54 | |
18 | 1.38294986267 | 48.1284390243902 | 6.996 | |
19 | 1.407023756845 | 71.7307317073171 | 1.99 | |
20 | 1.08879326709195 | 71.7397073170732 | 4.249 | |
21 | 1.30201817088416 | 48.0869512195122 | 6.485 | |
22 | 1.28560144323793 | 47.0637804878049 | 6.942 | |
24 | 1.06408545554969 | 72.5384390243903 | 3.755 | |
25 | 1.33812585494518 | 56.3630731707317 | 5.074 | |
26 | 2.60407532200535 | 64.8164878048781 | 3.308 | |
27 | 1.06547435386866 | 69.2039024390244 | 2.789 | |
28 | 1.09394859553035 | 49.9257073170732 | 6.225 | |
29 | 1.1500366603365 | 63.3241951219512 | 5.393 | |
30 | 1.43098438418934 | 71.549512195122 | 2.09 | |
31 | 1.05476203297363 | 71.7636097560976 | 4.886 | |
32 | 1.69632822025726 | 76.44 | 1.675 | |
33 | 1.75582455128528 | 46.4681707317073 | 6.907 | |
34 | 1.22258276091665 | 49.7393170731707 | 5.927 | |
35 | 1.19858203742437 | 57.101756097561 | 5.684 | |
36 | 1.3467652731287 | 76.8990243902439 | 1.52 | |
37 | 1.4416035661004 | 53.1439756097561 | 6.834 | |
38 | 1.47760797151034 | 72.2789512195122 | 2.656 | |
39 | 1.44489886460904 | 53.054 | 6.22 | |
40 | 5.44355442978718 | 68.5594878048781 | 2.629 | |
41 | 1.75393990906901 | 67.7796341463415 | 3.347 | |
42 | 1.22623695028243 | 74.8857804878049 | 3.427 | |
43 | 1.43399491206695 | 74.3513414634146 | 1.836 | |
44 | 1.07791555948406 | 63.1733170731707 | 5.784 | |
46 | 1.11421683911098 | 75.8459268292683 | 2.456 | |
47 | 1.43736250384152 | 70.9973170731707 | 1.94 | |
48 | 2.19933126862252 | 74.4533170731707 | 1.43 | |
49 | 1.09069595114774 | 50.328 | 6.481 | |
50 | 1.3076315308206 | 74.579756097561 | 1.48 | |
52 | 1.35107018240906 | 65.6355365853659 | 3.783 | |
53 | 1.65996465559852 | 64.5879512195122 | 5.686 | |
54 | 1.41219372061911 | 66.6697804878049 | 4.201 | |
55 | 1.16842873544079 | 70.0853658536585 | 2.17 | |
56 | 1.97668424681436 | 59.571 | 4.947 | |
57 | 1.23249932360835 | 45.4498048780488 | 6.386 | |
58 | 1.84446434821733 | 76.5104878048781 | 1.6 | |
59 | 1.88267291049498 | 44.9641219512195 | 7.04 | |
60 | 1.30148182122141 | 74.56 | 1.6 | |
61 | 1.11471430941835 | 64.6297073170732 | 3.568 | |
62 | 1.03858181930725 | 65.7455853658537 | 5.446 | |
64 | 2.02847021334465 | 75.6 | 1.85 | |
65 | 1.1247739349013 | 59.6776585365854 | 5.185 | |
66 | 2.02419819629151 | 74.9292682926829 | 1.78 | |
67 | 1.04140447677087 | 66.5171951219512 | 4.2 | |
68 | 1.29485038033753 | 69.880512195122 | 2.269 | |
69 | 1.49235685685108 | 54.9205609756098 | 6.035 | |
71 | 1.11853165273856 | 52.0128292682927 | 6.194 | |
72 | 1.31036388852994 | 41.7607317073171 | 6.908 | |
73 | 1.07704817568785 | 45.1081463414634 | 5.866 | |
74 | 1.42935392252646 | 76.016 | 1.615 | |
75 | 1.38723269270307 | 60.1651951219512 | 5.837 | |
76 | 1.04547081750326 | 71.0755365853659 | 3.092 | |
77 | 1.13073630426164 | 42.0841951219512 | 6.743 | |
78 | 1.1168437205035 | 60.5988048780488 | 2.836 | |
79 | 1.31955602623112 | 76.6853658536585 | 1.367 | |
80 | 1.28404320764584 | 64.0883902439025 | 5.554 | |
81 | 1.29539914676847 | 71.4190243902439 | 1.76 | |
82 | 1.34754987307042 | 53.3497317073171 | 5.921 | |
83 | 1.44342171360448 | 69.1734146341463 | 1.83 | |
84 | 2.75161396951049 | 60.4311951219512 | 3.606 | |
85 | 1.25568959745042 | 73.8488048780488 | 2.45 | |
86 | 1.28183560740318 | 74.9560975609756 | 3.034 | |
88 | 4.84545820175028 | 57.3173658536585 | 4.216 | |
89 | 1.54306336263185 | 59.9601951219512 | 6.201 | |
90 | 1.95653649383636 | 53.3405609756098 | 6.017 | |
91 | 1.06604362418461 | 77.9907317073171 | 1.93 | |
92 | 2.02342767780434 | 75.8107317073171 | 1.34 | |
93 | 1.04861736506536 | 74.5877317073171 | 1.441 | |
94 | 1.20759156618625 | 71.0263170731707 | 3.224 | |
95 | 1.2250548157393 | 69.3221707317073 | 6.676 | |
96 | 2.49952240325123 | 78.0646341463415 | 1.72 | |
97 | 1.6142506955872 | 59.6303414634146 | 6.769 | |
98 | 1.27409477465485 | 65.254512195122 | 4.073 | |
99 | 1.38534742863666 | 53.5709024390244 | 6.523 | |
101 | 1.08223543813596 | 54.396 | 6.362 | |
103 | 1.59382270944816 | 69.8172926829268 | 2.633 | |
104 | 1.87300584332683 | 69.1710975609756 | 1.6 | |
105 | 1.17787869924165 | 67.0180487804878 | 4.4662 | |
106 | 1.18323793930601 | 71.9849024390244 | 3.878 | |
108 | 1.54229411879215 | 68.9134146341463 | 3.135 | |
109 | 1.26432123983214 | 51.5365609756098 | 6.342 | |
110 | 1.22229468841563 | 67.6866829268293 | 3.485 | |
111 | 1.04734298901508 | 70.5056097560976 | 3.781 | |
113 | 1.54622052398961 | 69.3938048780488 | 2.798 | |
114 | 1.20176180379933 | 43.0683414634146 | 6.819 | |
115 | 1.16593276479004 | 56.7723902439024 | 5.244 | |
116 | 1.25710536926641 | 72.0807317073171 | 2.14 | |
117 | 1.08172292214239 | 73.7366829268293 | 1.44 | |
118 | 1.21904876562736 | 70.6224390243903 | 2.12 | |
119 | 1.26684535312085 | 65.4834390243903 | 6.194 | |
120 | 1.64911870677537 | 61.8944634146342 | 4.755 | |
122 | 1.25793501473258 | 66.5687073170732 | 2.646 | |
123 | 1.10459623875031 | 74.563 | 2.022 | |
125 | 1.43571190057164 | 49.3677073170732 | 6.182 | |
127 | 1.19030516889499 | 70.3758292682927 | 2.218 | |
128 | 1.37276305528543 | 42.6170243902439 | 7.095 | |
129 | 1.85288272587786 | 55.6961707317073 | 3.95 | |
130 | 1.19089370346768 | 59.2624390243902 | 5.181 | |
131 | 1.0747275842469 | 75.050756097561 | 2.019 | |
133 | 1.18295605261871 | 55.1013658536585 | 6.127 | |
134 | 1.07869605110457 | 74.303512195122 | 1.98 | |
135 | 1.13721011778878 | 68.4949512195122 | 1.99 | |
136 | 1.05811166403377 | 58.034 | 7.07 | |
137 | 1.37654393391534 | 46.3110243902439 | 7.105 | |
138 | 2.21230022023113 | 69.1917073170732 | 3.78 | |
139 | 1.54782379652365 | 69.0827073170732 | 3.63 | |
140 | 1.49770865929856 | 42.6620731707317 | 6.373 | |
141 | 1.14823902836877 | 60.0290487804878 | 5.76 | |
142 | 1.0520684106494 | 69.4134146341463 | 3.025 | |
143 | 1.35706369463016 | 40.2694146341463 | 7.807 | |
144 | 2.26246886528417 | 45.8875609756098 | 6.637 | |
145 | 1.26476650385059 | 61.2935853658537 | 5.267 | |
146 | 1.51921129306136 | 76.2704878048781 | 1.553 | |
147 | 1.27747911912771 | 76.2412195121951 | 1.71 | |
148 | 1.55272586959433 | 51.6306341463415 | 5.507 | |
149 | 1.24484033055924 | 74.1219512195122 | 1.96 | |
150 | 1.16963073880775 | 67.0516829268293 | 8.101 | |
151 | 1.20521510521391 | 71.5674390243902 | 3.276 | |
152 | 1.60790427502927 | 63.5216585365854 | 4.25 | |
153 | 1.05651223700456 | 67.9504634146342 | 3.644 | |
154 | 1.26394974126529 | 54.9490731707317 | 5.11 | |
155 | 2.0163085685137 | 64.4112195121951 | 4.632 | |
156 | 2.34674546951319 | 59.6880487804878 | 6.367 | |
157 | 1.83255000246574 | 70.8487804878049 | 2.22 | |
158 | 1.25093517792972 | 74.437512195122 | 2.308 | |
160 | 1.43076388551851 | 73.2658536585366 | 1.63 | |
162 | 1.26532932297482 | 67.3690487804878 | 4.931 | |
163 | 1.08504466265394 | 73.0916829268293 | 4.782 | |
164 | 1.6503576350035 | 69.4963414634146 | 2.386 | |
166 | 2.63759495318633 | 69.389756097561 | 2.15 | |
167 | 1.3441364204316 | 47.5376097560976 | 8.007 | |
168 | 1.50742117907374 | 66.6506341463415 | 6.496 | |
169 | 1.07086540484632 | 56.7538536585366 | 6.211 | |
171 | 1.57100403889899 | 51.2401951219512 | 6.166 | |
172 | 1.39341919358498 | 76.9312195121951 | 1.79 | |
173 | 1.22460202595963 | 73.5991219512195 | 1.433 | |
174 | 1.19039151624272 | 71.8024390243903 | 1.67 | |
175 | 1.30982890327322 | 71.0212195121951 | 2.2 | |
176 | 1.26101984654653 | 42.0959024390244 | 5.552 | |
178 | 1.35032020289378 | 51.6332682926829 | 7.036 | |
179 | 1.33533029146859 | 45.5224146341464 | 6.686 | |
180 | 1.08313030424234 | 67.1371463414634 | 3.2 | |
182 | 1.042840905059 | 60.3070243902439 | 5.849 | |
183 | 1.30607611684861 | 61.1142926829268 | 4.367 | |
185 | 1.45148806561732 | 69.265 | 6.172 | |
186 | 1.1160216164035 | 57.9046097560976 | 6.291 | |
188 | 1.31128608295084 | 50.2684146341463 | 6.718 | |
189 | 1.2492322972584 | 51.7729512195122 | 6.75 | |
190 | 1.99040524964712 | 70.8770731707317 | 2.451 | |
191 | 1.29442361274105 | 63.3748780487805 | 5.453 | |
192 | 1.11142266871639 | 42.528243902439 | 5.308 | |
193 | 1.24723856641867 | 62.4244146341464 | 4.623 | |
194 | 1.37221304626703 | 66.2822195121951 | 4.384 | |
195 | 1.04004162417214 | 68.9659024390244 | 4.989 | |
196 | 1.96372972061077 | 60.755512195122 | 3.533 | |
197 | 1.14756851321279 | 68.440512195122 | 2.954 | |
199 | 1.64561956662433 | 51.1955609756098 | 6.424 | |
200 | 1.97242986417568 | 69.9320731707317 | 2.08 | |
201 | 1.52994536970775 | 49.3904634146341 | 7.103 | |
202 | 3.10819940533937 | 74.6146341463415 | 1.8375 | |
203 | 1.23656449594461 | 71.7494878048781 | 2.523 | |
204 | 1.58798661200888 | 66.9336341463415 | 4.474 | |
205 | 1.0425184680472 | 68.0143414634146 | 3.23 | |
206 | 1.57375800450134 | 70.0633170731707 | 3.73 | |
207 | 1.04280113869016 | 73.4168292682927 | 3.242 | |
208 | 2.05594273484676 | 61.893243902439 | 4.247 | |
209 | 1.04819926140151 | 61.5022195121951 | 5.141 | |
210 | 1.05322699333125 | 62.969 | 4.832 | |
211 | 1.43066354338741 | 54.2196341463415 | 9.118 | |
212 | 1.77097125034071 | 60.3760243902439 | 4.177 | |
213 | 1.36080391706753 | 50.670512195122 | 6.736 | |
214 | 1.41234847520576 | 61.6287073170732 | 6.006 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.16702771037883 | 71.2575365853659 | 4.86 | |
3 | 1.45235914347012 | 41.399 | 7.893 | |
4 | 1.03218307523391 | 73.0082926829268 | 1.9 | |
5 | 1.24503725606677 | 71.7749268292683 | 3.65 | |
6 | 1.25268093090029 | 68.5769268292683 | 2.549 | |
7 | 1.42050750744876 | 40.9779756097561 | 7.202 | |
8 | 1.7604962418476 | 70.9223902439024 | 3.056 | |
10 | 1.37424515399492 | 74.6692682926829 | 1.42 | |
11 | 1.54853509974312 | 76.1517073170732 | 1.845 | |
12 | 1.03170534398588 | 73.2427073170732 | 2.307 | |
13 | 1.35682244171743 | 65.5259268292683 | 2.9026 | |
14 | 1.28802484233902 | 71.0824146341463 | 1.887 | |
15 | 1.0678844710764 | 73.8416341463415 | 1.786 | |
16 | 2.35686753822362 | 57.9363658536585 | 5.126 | |
17 | 1.42725846681508 | 75.3658536585366 | 1.55 | |
18 | 1.38797698675581 | 48.2338292682927 | 6.965 | |
19 | 1.40732350356177 | 71.5268292682927 | 1.96 | |
20 | 1.09039586748153 | 71.9515853658537 | 4.124 | |
21 | 1.30721528856329 | 47.8301463414634 | 6.494 | |
22 | 1.28983714874346 | 47.402756097561 | 6.904 | |
24 | 1.06502716235925 | 72.8234878048781 | 3.715 | |
25 | 1.34211962810429 | 57.0088780487805 | 5.029 | |
26 | 2.6198305108214 | 65.1934634146342 | 3.17 | |
27 | 1.06607402491603 | 69.3271219512195 | 2.728 | |
28 | 1.09558937379023 | 50.5361463414634 | 6.141 | |
29 | 1.15245550956826 | 63.6917804878049 | 5.214 | |
30 | 1.4324420859891 | 70.990243902439 | 2.03 | |
31 | 1.05555113427712 | 71.9660731707317 | 4.771 | |
32 | 1.70091164670158 | 76.739512195122 | 1.68 | |
33 | 1.76639232125964 | 46.5677073170732 | 6.957 | |
34 | 1.22491940368387 | 49.6130487804878 | 5.902 | |
35 | 1.20135582453118 | 57.0150975609756 | 5.596 | |
36 | 1.34785729012723 | 77.1975609756098 | 1.55 | |
37 | 1.44960137310707 | 53.1137804878049 | 6.689 | |
38 | 1.48165212474845 | 72.6234878048781 | 2.653 | |
39 | 1.45171235915905 | 53.1960975609756 | 6.152 | |
40 | 5.47932643129898 | 68.7973170731707 | 2.594 | |
41 | 1.76180821571928 | 67.9340487804878 | 3.275 | |
42 | 1.2292972427543 | 75.1170487804878 | 3.38 | |
43 | 1.43616942610719 | 74.3905609756098 | 1.827 | |
44 | 1.07832627550776 | 63.6721951219512 | 5.68 | |
46 | 1.11510789166039 | 76.0153902439024 | 2.45 | |
47 | 1.43747021562462 | 71.4456097560976 | 1.91 | |
48 | 2.20025290349821 | 74.6962682926829 | 1.43 | |
49 | 1.09416162056979 | 50.5949024390244 | 6.424 | |
50 | 1.3078267089909 | 74.6912195121951 | 1.5 | |
51 | 1.03464368792638 | 71.9634146341463 | 3 | |
52 | 1.35482937394266 | 66.1581951219512 | 3.695 | |
53 | 1.66952023136806 | 65.3669024390244 | 5.441 | |
54 | 1.41732651607592 | 67.2482195121951 | 4.061 | |
55 | 1.16908850291867 | 70.6439024390244 | 2.26 | |
56 | 1.98828757986046 | 60.1521463414634 | 4.827 | |
57 | 1.23647317082201 | 46.0761707317073 | 6.345 | |
58 | 1.84550704112074 | 76.7280487804878 | 1.47 | |
59 | 1.89698828015056 | 45.5015365853659 | 7.061 | |
60 | 1.30191032119849 | 74.5919512195122 | 1.59 | |
61 | 1.11496420957202 | 64.8732926829268 | 3.512 | |
62 | 1.03907661267291 | 65.8585853658537 | 5.299 | |
64 | 2.03141402537785 | 75.8 | 1.83 | |
65 | 1.12650522736663 | 60.2577804878049 | 5.185 | |
66 | 2.02528783343298 | 75.280487804878 | 1.82 | |
67 | 1.04123313280088 | 67.0341463414634 | 4.146 | |
68 | 1.29607195309523 | 70.0147073170732 | 2.26 | |
69 | 1.49938136268386 | 55.3458536585366 | 5.935 | |
71 | 1.12142697399391 | 52.4534634146342 | 6.166 | |
72 | 1.31484323338743 | 42.2454634146342 | 6.879 | |
73 | 1.07855727998654 | 45.5308292682927 | 5.881 | |
74 | 1.43007285583862 | 76.2514878048781 | 1.5 | |
75 | 1.39175116716369 | 60.6946097560976 | 5.764 | |
76 | 1.04601545091155 | 71.3375365853659 | 3.108 | |
77 | 1.13220427328965 | 42.2952195121951 | 6.728 | |
78 | 1.11633936670188 | 60.712243902439 | 2.749 | |
79 | 1.32145886692546 | 76.8829268292683 | 1.311 | |
80 | 1.2882945848884 | 64.7471463414634 | 5.441 | |
81 | 1.29596253071015 | 71.470243902439 | 1.64 | |
82 | 1.35136156096875 | 53.770756097561 | 5.799 | |
83 | 1.44304957796229 | 69.6512195121951 | 1.81 | |
84 | 2.76879078309572 | 60.8652195121951 | 3.472 | |
85 | 1.25570288047159 | 74.0633170731707 | 2.31 | |
86 | 1.28412487766073 | 75.2585365853659 | 3.01 | |
88 | 4.88707681878898 | 57.5884390243902 | 4.143 | |
89 | 1.54917548424046 | 62.0253658536585 | 6.157 | |
90 | 1.97509963802336 | 55.4142195121951 | 5.76 | |
91 | 1.06641796560727 | 77.3390243902439 | 2.05 | |
92 | 2.02347990708991 | 76.2251219512195 | 1.28 | |
93 | 1.04889998185356 | 74.7818292682927 | 1.446 | |
94 | 1.20825031315003 | 70.9564390243902 | 3.143 | |
95 | 1.22921081468105 | 69.6275853658537 | 6.5 | |
96 | 2.50321468344345 | 78.4836585365854 | 1.69 | |
97 | 1.62539012696392 | 59.6787317073171 | 6.602 | |
98 | 1.27671918193588 | 65.5676097560976 | 4.039 | |
99 | 1.39108848630118 | 54.2961463414634 | 6.297 | |
100 | 1.03285386223198 | 54.6951219512195 | 4.4 | |
101 | 1.08333944496595 | 54.746243902439 | 6.141 | |
102 | 1.02502250178903 | 65.9512195121951 | 2.8 | |
103 | 1.5981018570717 | 70.1148048780488 | 2.55 | |
104 | 1.87714095664273 | 69.8092682926829 | 1.55 | |
105 | 1.17974192329431 | 67.2131707317073 | 4.4299 | |
106 | 1.18814305017116 | 72.1808780487805 | 3.511 | |
108 | 1.54428612590809 | 69.290243902439 | 3.19 | |
109 | 1.26811544672904 | 52.1676829268293 | 6.313 | |
110 | 1.22208193094237 | 67.9094634146342 | 3.381 | |
111 | 1.04781215892468 | 70.5652195121951 | 3.683 | |
113 | 1.55037268981057 | 69.422 | 2.702 | |
114 | 1.20127211186451 | 42.8656585365854 | 6.755 | |
115 | 1.16732918620048 | 57.3918292682927 | 5.169 | |
116 | 1.25844997961556 | 71.9346341463415 | 2.16 | |
117 | 1.08199369049548 | 74.0328536585366 | 1.4 | |
118 | 1.22017354046838 | 70.6929268292683 | 2.15 | |
119 | 1.2705361396277 | 66.2321707317073 | 5.851 | |
120 | 1.65603655430375 | 62.473243902439 | 4.564 | |
122 | 1.25900915932285 | 66.9490975609756 | 2.625 | |
123 | 1.10500201161285 | 74.7598780487805 | 1.98 | |
125 | 1.44201963271505 | 49.5282195121951 | 6.225 | |
126 | 1.02531482420767 | 72.1414634146341 | 5.9 | |
127 | 1.1910756595372 | 70.6290975609756 | 2.194 | |
128 | 1.3752182932463 | 43.0580975609756 | 7.092 | |
129 | 1.86081939824162 | 55.9621951219512 | 3.836 | |
130 | 1.19363916872987 | 59.6711707317073 | 4.953 | |
131 | 1.07637257659915 | 75.3310243902439 | 1.966 | |
133 | 1.18545316022094 | 55.3196341463415 | 6.084 | |
134 | 1.07897356491352 | 74.5244634146342 | 1.98 | |
135 | 1.13775401952219 | 68.6530975609756 | 2.05 | |
136 | 1.05914386236518 | 58.729 | 6.901 | |
137 | 1.38821458866729 | 46.5564390243902 | 7.028 | |
138 | 2.22437003261028 | 69.5982195121951 | 3.675 | |
139 | 1.55590228719094 | 69.3375853658537 | 3.604 | |
140 | 1.49740603795966 | 42.7028292682927 | 6.345 | |
141 | 1.151476072883 | 60.260243902439 | 5.625 | |
142 | 1.05255509397021 | 70.0609756097561 | 3.05 | |
143 | 1.36214720992899 | 40.4634146341463 | 7.813 | |
144 | 2.27918085974989 | 45.8466829268293 | 6.585 | |
145 | 1.2676312534762 | 61.9561707317073 | 5.118 | |
146 | 1.52086202759843 | 76.7051219512195 | 1.558 | |
147 | 1.278130424132 | 76.0817073170732 | 1.8 | |
148 | 1.55896033292735 | 52.2066341463415 | 5.435 | |
149 | 1.24590016872669 | 74.1780487804878 | 2.03 | |
150 | 1.17287204642038 | 68.0318048780488 | 7.933 | |
151 | 1.20746705994973 | 71.7670975609756 | 3.212 | |
152 | 1.61472876227356 | 64.0544390243902 | 4.144 | |
153 | 1.05730727603556 | 68.3041219512195 | 3.581 | |
154 | 1.2672202375204 | 55.0516097560976 | 5.018 | |
155 | 2.03003698437532 | 64.6036097560976 | 4.554 | |
156 | 2.3690971554097 | 59.961 | 6.31 | |
157 | 1.83490242821236 | 70.8975609756098 | 2.154 | |
158 | 1.2521234483106 | 74.4899024390244 | 2.279 | |
160 | 1.43070581025661 | 73.6658536585366 | 1.57 | |
162 | 1.26909284405773 | 67.4988780487805 | 4.835 | |
163 | 1.08772467221237 | 73.3628536585366 | 4.617 | |
164 | 1.6516393571105 | 69.2268292682927 | 2.313 | |
166 | 2.6433153838922 | 69.44 | 2.22 | |
167 | 1.35302722192263 | 44.7661951219512 | 7.825 | |
168 | 1.51842857545132 | 67.2295609756098 | 6.331 | |
169 | 1.07190539303524 | 56.4109756097561 | 6.139 | |
170 | 1.03355382232561 | 69.7319512195122 | 3 | |
171 | 1.5793229113328 | 51.5384390243902 | 6.113 | |
172 | 1.39407671049669 | 77.0921951219512 | 1.9 | |
173 | 1.22632598606526 | 74.0744146341464 | 1.621 | |
174 | 1.19154547235096 | 72.0024390243902 | 1.65 | |
175 | 1.31069398130116 | 71.0887804878049 | 2.14 | |
176 | 1.26497746972979 | 41.210756097561 | 5.582 | |
178 | 1.35578143427879 | 52.1423170731707 | 6.948 | |
179 | 1.33687730593471 | 45.5355365853659 | 6.676 | |
180 | 1.08379139988983 | 67.2379024390244 | 3.063 | |
182 | 1.04338335653358 | 60.4598780487805 | 5.73 | |
183 | 1.30802428726501 | 62.4146341463415 | 4.255 | |
185 | 1.45868423843017 | 69.7375365853659 | 5.973 | |
186 | 1.11859558022139 | 58.3988292682927 | 6.18 | |
188 | 1.31613416419569 | 50.4772926829268 | 6.706 | |
189 | 1.25325149684463 | 52.1015365853659 | 6.644 | |
190 | 1.99961149270672 | 71.5204146341463 | 2.346 | |
191 | 1.29935930504113 | 63.3729024390244 | 5.408 | |
192 | 1.11281745324322 | 43.2143414634146 | 5.271 | |
193 | 1.25031738911305 | 62.546512195122 | 4.572 | |
194 | 1.37695954191465 | 66.8676829268293 | 4.211 | |
195 | 1.04010028648212 | 69.1519268292683 | 4.864 | |
196 | 1.97310789935863 | 61.3601707317073 | 3.381 | |
197 | 1.14826861718438 | 68.5936829268293 | 2.843 | |
199 | 1.65544921058927 | 51.1489756097561 | 6.379 | |
200 | 1.97429339675267 | 70.4951219512195 | 2.05 | |
201 | 1.53955821103058 | 49.028 | 7.102 | |
202 | 3.11764263676373 | 74.7658536585366 | 1.872 | |
203 | 1.23730404949588 | 71.9460487804878 | 2.523 | |
204 | 1.59514971298435 | 66.9942682926829 | 4.5 | |
205 | 1.04266947321763 | 68.3534146341463 | 3.144 | |
206 | 1.58149191397307 | 70.3483902439024 | 3.665 | |
207 | 1.04269289082163 | 73.7759512195122 | 3.167 | |
208 | 2.069016935212 | 62.7363170731707 | 4.073 | |
209 | 1.04878876292473 | 61.9146341463415 | 5.078 | |
210 | 1.05330048935419 | 63.4809756097561 | 4.82 | |
211 | 1.43879395609301 | 54.8104634146342 | 9.027 | |
212 | 1.7806549602006 | 60.8071463414634 | 4.052 | |
213 | 1.36597687160021 | 50.0168292682927 | 6.671 | |
214 | 1.41976231513417 | 61.657756097561 | 5.788 |
group | size | x | y | |
---|---|---|---|---|
2 | 1.17217722309525 | 71.5669024390244 | 4.724 | |
3 | 1.45133994416451 | 41.7109268292683 | 7.915 | |
5 | 1.24822386277492 | 71.8093658536585 | 3.527 | |
6 | 1.254628672319 | 68.1938536585366 | 2.566 | |
7 | 1.4256921771025 | 41.0418048780488 | 7.194 | |
8 | 1.7660563322227 | 71.1005365853659 | 3.037 | |
10 | 1.3745104222381 | 75.1441463414634 | 1.43 | |
11 | 1.55304316765011 | 76.4326829268293 | 1.831 | |
12 | 1.03148331216405 | 73.296243902439 | 2.291 | |
13 | 1.35960518325274 | 65.3691463414634 | 2.8 | |
14 | 1.29041543371099 | 70.1033658536585 | 1.836 | |
15 | 1.06802025418196 | 74.0576585365854 | 1.77 | |
16 | 2.37486505672737 | 58.4469756097561 | 4.925 | |
17 | 1.4279387085274 | 75.5658536585366 | 1.56 | |
18 | 1.39310095830118 | 48.3152195121951 | 6.93 | |
19 | 1.40755261963858 | 71.6043902439024 | 1.97 | |
20 | 1.09204427521435 | 72.1399268292683 | 3.991 | |
21 | 1.31241662542718 | 47.4061219512195 | 6.503 | |
22 | 1.29424948663136 | 47.780487804878 | 6.858 | |
24 | 1.06598446376398 | 73.1040487804878 | 3.668 | |
25 | 1.34615996315727 | 57.628512195122 | 4.989 | |
26 | 2.63509868946195 | 65.5726097560976 | 3.039 | |
27 | 1.06665802914738 | 69.3984634146342 | 2.683 | |
28 | 1.097136933785 | 51.1797073170732 | 6.036 | |
29 | 1.15486000424556 | 63.9629756097561 | 5.036 | |
30 | 1.43306226045419 | 71.3414634146341 | 2.04 | |
31 | 1.05632145999685 | 72.1526829268293 | 4.671 | |
32 | 1.70545217665286 | 76.8092682926829 | 1.68 | |
33 | 1.77763892103795 | 46.6737804878049 | 7.005 | |
34 | 1.22714945062307 | 49.4179756097561 | 5.868 | |
35 | 1.20412932312464 | 56.8356829268293 | 5.511 | |
36 | 1.34913938950157 | 77.2265853658537 | 1.57 | |
37 | 1.45751097965296 | 53.014243902439 | 6.543 | |
38 | 1.48578079007166 | 72.955512195122 | 2.649 | |
39 | 1.45860265843269 | 53.2797317073171 | 6.08 | |
40 | 5.51553239035145 | 69.0271219512195 | 2.532 | |
41 | 1.76962245226385 | 68.0610975609756 | 3.211 | |
42 | 1.23235263712721 | 75.3323414634147 | 3.323 | |
43 | 1.43850451497994 | 74.4129512195122 | 1.81 | |
44 | 1.07870028454077 | 64.1561951219512 | 5.565 | |
46 | 1.11615610320883 | 76.1818292682927 | 2.442 | |
47 | 1.43763853226176 | 71.6414634146342 | 1.94 | |
48 | 2.20259998938295 | 74.9186097560976 | 1.46 | |
49 | 1.09780980445118 | 50.8533414634146 | 6.353 | |
50 | 1.30790161972254 | 74.7717073170732 | 1.56 | |
52 | 1.35856858980581 | 66.6848536585366 | 3.613 | |
53 | 1.67884342928068 | 66.0462682926829 | 5.195 | |
54 | 1.42248104706611 | 67.8061463414634 | 3.925 | |
55 | 1.16961742637414 | 70.6975609756098 | 2.26 | |
56 | 1.99977962496604 | 60.7506341463415 | 4.684 | |
57 | 1.24025402077313 | 46.7580731707317 | 6.304 | |
58 | 1.84643721931863 | 76.7470731707317 | 1.42 | |
59 | 1.91171631084477 | 46.0399512195122 | 7.076 | |
60 | 1.30235012089055 | 74.5770731707317 | 1.7 | |
61 | 1.11505377048561 | 65.1113414634146 | 3.465 | |
62 | 1.03954650183626 | 65.9725853658537 | 5.167 | |
64 | 2.03429061170005 | 76.1 | 1.81 | |
65 | 1.12826849475101 | 60.7234878048781 | 5.186 | |
66 | 2.02642701353489 | 75.3804878048781 | 1.83 | |
67 | 1.04093624623836 | 67.6214146341463 | 4.068 | |
68 | 1.29754366166351 | 70.1217073170732 | 2.243 | |
69 | 1.50623151674874 | 55.8246829268293 | 5.831 | |
71 | 1.12435833291291 | 52.7760487804878 | 6.139 | |
72 | 1.3198836348025 | 42.7276829268293 | 6.842 | |
73 | 1.07982339100623 | 45.9539512195122 | 5.891 | |
74 | 1.43085516151357 | 76.4773658536585 | 1.5 | |
75 | 1.39627316535718 | 61.2254878048781 | 5.697 | |
76 | 1.04656583785826 | 71.5935365853659 | 3.122 | |
77 | 1.13368014495558 | 42.4848780487805 | 6.706 | |
78 | 1.11588329998246 | 60.8275853658537 | 2.678 | |
79 | 1.32252517804485 | 77.0829268292683 | 1.4 | |
80 | 1.2925525101293 | 65.3383170731707 | 5.335 | |
81 | 1.29649363258633 | 71.4882926829268 | 1.79 | |
82 | 1.35512926478757 | 54.2033170731707 | 5.673 | |
83 | 1.44270992956563 | 70.0234146341463 | 1.79 | |
84 | 2.78558998481724 | 61.2882682926829 | 3.346 | |
85 | 1.25515549710993 | 74.2864390243903 | 2.17 | |
86 | 1.2864927745859 | 74.4365853658537 | 2.948 | |
88 | 4.92853186921243 | 57.8470975609756 | 4.069 | |
89 | 1.55539274772361 | 64.0624878048781 | 6.109 | |
90 | 1.99271242098337 | 57.6270731707317 | 5.468 | |
91 | 1.06695655266728 | 77.0829268292683 | 2.2 | |
92 | 2.02372724564318 | 76.4056097560976 | 1.32 | |
93 | 1.04917739919812 | 74.9854634146342 | 1.452 | |
94 | 1.20850790312625 | 70.8628048780488 | 3.07 | |
95 | 1.2332927882427 | 69.9139512195122 | 6.292 | |
96 | 2.50642495034825 | 78.3992682926829 | 1.66 | |
97 | 1.63651574297758 | 59.6561463414634 | 6.422 | |
98 | 1.27917642577735 | 65.8097804878049 | 3.992 | |
99 | 1.39672184446496 | 54.7996341463415 | 6.083 | |
101 | 1.08443537420088 | 55.0631463414634 | 5.928 | |
103 | 1.60235672091201 | 70.3551219512195 | 2.482 | |
104 | 1.88135117574883 | 70.3343902439024 | 1.56 | |
105 | 1.18168793168794 | 67.3982926829268 | 4.2631 | |
106 | 1.19239581562087 | 72.3617804878049 | 3.161 | |
108 | 1.54628544335447 | 68.8487804878049 | 3.13 | |
109 | 1.27200631186715 | 52.8442682926829 | 6.274 | |
110 | 1.22193232057668 | 68.1510487804878 | 3.288 | |
111 | 1.04829363595108 | 70.6492195121951 | 3.589 | |
113 | 1.55415986203665 | 69.4819024390244 | 2.619 | |
114 | 1.20008332168559 | 42.6559268292683 | 6.681 | |
115 | 1.16866977749486 | 58.0727073170732 | 5.088 | |
116 | 1.25983140821727 | 71.7621951219512 | 2.09 | |
117 | 1.08229787258485 | 74.318512195122 | 1.51 | |
118 | 1.22129928959841 | 70.6153658536585 | 2.11 | |
119 | 1.27396549542842 | 66.9110731707317 | 5.5 | |
120 | 1.66277161613532 | 63.04 | 4.379 | |
122 | 1.25997209489165 | 67.2321219512195 | 2.578 | |
123 | 1.10540780278732 | 74.9750731707317 | 1.94 | |
125 | 1.4485511501553 | 49.7985853658537 | 6.256 | |
127 | 1.19181401292151 | 70.8685609756098 | 2.171 | |
128 | 1.37765482489862 | 43.4621463414634 | 7.086 | |
129 | 1.86842839251125 | 56.3167073170732 | 3.712 | |
130 | 1.19631494917982 | 60.0257317073171 | 4.691 | |
131 | 1.07796721019211 | 75.6058292682927 | 1.891 | |
133 | 1.18797725977791 | 55.5294146341463 | 6.039 | |
134 | 1.07930567305737 | 74.7429024390244 | 2.08 | |
135 | 1.13829582587489 | 68.8640975609756 | 2.14 | |
136 | 1.06016142947128 | 59.4245853658537 | 6.686 | |
137 | 1.40007542114509 | 46.776 | 6.941 | |
138 | 2.23667528426917 | 69.9993170731707 | 3.579 | |
139 | 1.56414069878254 | 69.5864878048781 | 3.576 | |
140 | 1.49692851884117 | 42.7945365853659 | 6.313 | |
141 | 1.15490105442437 | 60.466 | 5.491 | |
142 | 1.05307359332295 | 70.202439024561 | 3.0966666667 | |
143 | 1.36739783545452 | 40.7159024390244 | 7.817 | |
144 | 2.29614738055255 | 45.7884146341463 | 6.527 | |
145 | 1.27046254784306 | 62.666 | 4.985 | |
146 | 1.52254824718967 | 76.890243902439 | 1.55 | |
147 | 1.27888084135269 | 76.2204878048781 | 1.84 | |
148 | 1.56531362785673 | 52.7817317073171 | 5.359 | |
149 | 1.24623865418781 | 74.4243902439024 | 2.1 | |
150 | 1.17599943163195 | 68.9666341463415 | 7.719 | |
151 | 1.2097170739431 | 71.9614390243902 | 3.147 | |
152 | 1.62149115003514 | 64.5678536585366 | 4.038 | |
153 | 1.05807470522709 | 68.6475121951219 | 3.507 | |
154 | 1.2704857462987 | 55.2028048780488 | 4.934 | |
155 | 2.04376229641748 | 64.7925365853659 | 4.476 | |
156 | 2.3912605380372 | 60.230512195122 | 6.234 | |
157 | 1.836634725643 | 71.3317073170732 | 2.13 | |
158 | 1.25329708367525 | 74.4967073170732 | 2.256 | |
160 | 1.43048183670317 | 73.7146341463415 | 1.53 | |
162 | 1.27283257110162 | 67.642756097561 | 4.736 | |
163 | 1.09000506498387 | 73.624512195122 | 4.471 | |
164 | 1.65317465342882 | 69.3880487804878 | 2.306 | |
166 | 2.6486511396082 | 69.4643902439024 | 2.12 | |
167 | 1.36093186120918 | 41.1419756097561 | 7.594 | |
168 | 1.52867013881288 | 67.776512195122 | 6.166 | |
169 | 1.07293968841284 | 56.2772926829268 | 6.056 | |
171 | 1.58792141587014 | 51.8521951219512 | 6.059 | |
172 | 1.39498414906937 | 76.9792682926829 | 1.975 | |
173 | 1.22921081468105 | 74.5734634146341 | 1.956 | |
174 | 1.19180716165424 | 72.4463414634146 | 1.63 | |
175 | 1.31151964368279 | 71.2078048780488 | 2.13 | |
176 | 1.26870634828642 | 40.3103414634146 | 5.62 | |
178 | 1.3613558120045 | 52.5778292682927 | 6.853 | |
179 | 1.33902489046988 | 45.3382195121951 | 6.659 | |
180 | 1.08452060394215 | 67.329512195122 | 2.936 | |
182 | 1.04395196833433 | 60.6122195121951 | 5.613 | |
183 | 1.3100013537312 | 63.7012682926829 | 4.148 | |
185 | 1.46579817197254 | 70.1965365853659 | 5.764 | |
186 | 1.12121460596227 | 58.8319756097561 | 6.051 | |
188 | 1.32122219007918 | 50.615756097561 | 6.694 | |
189 | 1.25713736696411 | 52.4151463414634 | 6.533 | |
190 | 2.00849395291528 | 72.0009512195122 | 2.256 | |
191 | 1.30425246672889 | 63.2733902439024 | 5.347 | |
192 | 1.11417259028227 | 43.9674146341463 | 5.256 | |
193 | 1.25348665091944 | 62.6201219512195 | 4.513 | |
194 | 1.38117990377211 | 67.463756097561 | 4.026 | |
195 | 1.04016577595841 | 69.3151951219512 | 4.763 | |
196 | 1.98217016764189 | 61.9408780487805 | 3.249 | |
197 | 1.14886954040805 | 68.731243902439 | 2.719 | |
199 | 1.66546375207647 | 51.0260731707317 | 6.328 | |
200 | 1.97645670469555 | 70.4975609756098 | 2.02 | |
201 | 1.54948779245363 | 48.5539024390244 | 7.1 | |
202 | 3.12727887979562 | 74.7658536585366 | 1.934 | |
203 | 1.23804873095548 | 72.1319756097561 | 2.524 | |
204 | 1.60229865794776 | 66.9611707317073 | 4.28 | |
205 | 1.04280827342047 | 68.6697073170732 | 3.072 | |
206 | 1.58923906161739 | 70.6123658536585 | 3.597 | |
207 | 1.04236648778582 | 74.1262926829268 | 3.12 | |
208 | 2.08203579671825 | 63.615756097561 | 3.908 | |
209 | 1.04939952275916 | 62.331756097561 | 5.022 | |
210 | 1.05337163004349 | 63.9989512195122 | 4.803 | |
211 | 1.44726717266465 | 55.3092926829268 | 8.919 | |
212 | 1.79002823952241 | 61.1624878048781 | 3.923 | |
213 | 1.37106370397959 | 49.246512195122 | 6.604 | |
214 | 1.42690881314584 | 61.5086341463415 | 5.577 |
fill | key | showSelectedlegendfillcolour | clickSelects | group | |
---|---|---|---|---|---|
#C49A00 | Andorra | Europe & Central Asia (all income levels) | Andorra | 1 | |
#00C094 | United Arab Emirates | Middle East & North Africa (all income levels) | United Arab Emirates | 2 | |
#A58AFF | Afghanistan | South Asia | Afghanistan | 3 | |
#53B400 | Antigua and Barbuda | Latin America & Caribbean (all income levels) | Antigua and Barbuda | 4 | |
#C49A00 | Albania | Europe & Central Asia (all income levels) | Albania | 5 | |
#C49A00 | Armenia | Europe & Central Asia (all income levels) | Armenia | 6 | |
#FB61D7 | Angola | Sub-Saharan Africa (all income levels) | Angola | 7 | |
#53B400 | Argentina | Latin America & Caribbean (all income levels) | Argentina | 8 | |
#F8766D | American Samoa | East Asia & Pacific (all income levels) | American Samoa | 9 | |
#C49A00 | Austria | Europe & Central Asia (all income levels) | Austria | 10 | |
#F8766D | Australia | East Asia & Pacific (all income levels) | Australia | 11 | |
#53B400 | Aruba | Latin America & Caribbean (all income levels) | Aruba | 12 | |
#C49A00 | Azerbaijan | Europe & Central Asia (all income levels) | Azerbaijan | 13 | |
#C49A00 | Bosnia and Herzegovina | Europe & Central Asia (all income levels) | Bosnia and Herzegovina | 14 | |
#53B400 | Barbados | Latin America & Caribbean (all income levels) | Barbados | 15 | |
#A58AFF | Bangladesh | South Asia | Bangladesh | 16 | |
#C49A00 | Belgium | Europe & Central Asia (all income levels) | Belgium | 17 | |
#FB61D7 | Burkina Faso | Sub-Saharan Africa (all income levels) | Burkina Faso | 18 | |
#C49A00 | Bulgaria | Europe & Central Asia (all income levels) | Bulgaria | 19 | |
#00C094 | Bahrain | Middle East & North Africa (all income levels) | Bahrain | 20 | |
#FB61D7 | Burundi | Sub-Saharan Africa (all income levels) | Burundi | 21 | |
#FB61D7 | Benin | Sub-Saharan Africa (all income levels) | Benin | 22 | |
#00B6EB | Bermuda | North America | Bermuda | 23 | |
#F8766D | Brunei Darussalam | East Asia & Pacific (all income levels) | Brunei Darussalam | 24 | |
#53B400 | Bolivia | Latin America & Caribbean (all income levels) | Bolivia | 25 | |
#53B400 | Brazil | Latin America & Caribbean (all income levels) | Brazil | 26 | |
#53B400 | Bahamas, The | Latin America & Caribbean (all income levels) | Bahamas, The | 27 | |
#A58AFF | Bhutan | South Asia | Bhutan | 28 | |
#FB61D7 | Botswana | Sub-Saharan Africa (all income levels) | Botswana | 29 | |
#C49A00 | Belarus | Europe & Central Asia (all income levels) | Belarus | 30 | |
#53B400 | Belize | Latin America & Caribbean (all income levels) | Belize | 31 | |
#00B6EB | Canada | North America | Canada | 32 | |
#FB61D7 | Congo, Dem. Rep. | Sub-Saharan Africa (all income levels) | Congo, Dem. Rep. | 33 | |
#FB61D7 | Central African Republic | Sub-Saharan Africa (all income levels) | Central African Republic | 34 | |
#FB61D7 | Congo, Rep. | Sub-Saharan Africa (all income levels) | Congo, Rep. | 35 | |
#C49A00 | Switzerland | Europe & Central Asia (all income levels) | Switzerland | 36 | |
#FB61D7 | Cote d'Ivoire | Sub-Saharan Africa (all income levels) | Cote d'Ivoire | 37 | |
#53B400 | Chile | Latin America & Caribbean (all income levels) | Chile | 38 | |
#FB61D7 | Cameroon | Sub-Saharan Africa (all income levels) | Cameroon | 39 | |
#F8766D | China | East Asia & Pacific (all income levels) | China | 40 | |
#53B400 | Colombia | Latin America & Caribbean (all income levels) | Colombia | 41 | |
#53B400 | Costa Rica | Latin America & Caribbean (all income levels) | Costa Rica | 42 | |
#53B400 | Cuba | Latin America & Caribbean (all income levels) | Cuba | 43 | |
#FB61D7 | Cape Verde | Sub-Saharan Africa (all income levels) | Cape Verde | 44 | |
#53B400 | Curacao | Latin America & Caribbean (all income levels) | Curacao | 45 | |
#C49A00 | Cyprus | Europe & Central Asia (all income levels) | Cyprus | 46 | |
#C49A00 | Czech Republic | Europe & Central Asia (all income levels) | Czech Republic | 47 | |
#C49A00 | Germany | Europe & Central Asia (all income levels) | Germany | 48 | |
#00C094 | Djibouti | Middle East & North Africa (all income levels) | Djibouti | 49 | |
#C49A00 | Denmark | Europe & Central Asia (all income levels) | Denmark | 50 | |
#53B400 | Dominica | Latin America & Caribbean (all income levels) | Dominica | 51 | |
#53B400 | Dominican Republic | Latin America & Caribbean (all income levels) | Dominican Republic | 52 | |
#00C094 | Algeria | Middle East & North Africa (all income levels) | Algeria | 53 | |
#53B400 | Ecuador | Latin America & Caribbean (all income levels) | Ecuador | 54 | |
#C49A00 | Estonia | Europe & Central Asia (all income levels) | Estonia | 55 | |
#00C094 | Egypt, Arab Rep. | Middle East & North Africa (all income levels) | Egypt, Arab Rep. | 56 | |
#FB61D7 | Eritrea | Sub-Saharan Africa (all income levels) | Eritrea | 57 | |
#C49A00 | Spain | Europe & Central Asia (all income levels) | Spain | 58 | |
#FB61D7 | Ethiopia | Sub-Saharan Africa (all income levels) | Ethiopia | 59 | |
#C49A00 | Finland | Europe & Central Asia (all income levels) | Finland | 60 | |
#F8766D | Fiji | East Asia & Pacific (all income levels) | Fiji | 61 | |
#F8766D | Micronesia, Fed. Sts. | East Asia & Pacific (all income levels) | Micronesia, Fed. Sts. | 62 | |
#C49A00 | Faeroe Islands | Europe & Central Asia (all income levels) | Faeroe Islands | 63 | |
#C49A00 | France | Europe & Central Asia (all income levels) | France | 64 | |
#FB61D7 | Gabon | Sub-Saharan Africa (all income levels) | Gabon | 65 | |
#C49A00 | United Kingdom | Europe & Central Asia (all income levels) | United Kingdom | 66 | |
#53B400 | Grenada | Latin America & Caribbean (all income levels) | Grenada | 67 | |
#C49A00 | Georgia | Europe & Central Asia (all income levels) | Georgia | 68 | |
#FB61D7 | Ghana | Sub-Saharan Africa (all income levels) | Ghana | 69 | |
#C49A00 | Greenland | Europe & Central Asia (all income levels) | Greenland | 70 | |
#FB61D7 | Gambia, The | Sub-Saharan Africa (all income levels) | Gambia, The | 71 | |
#FB61D7 | Guinea | Sub-Saharan Africa (all income levels) | Guinea | 72 | |
#FB61D7 | Equatorial Guinea | Sub-Saharan Africa (all income levels) | Equatorial Guinea | 73 | |
#C49A00 | Greece | Europe & Central Asia (all income levels) | Greece | 74 | |
#53B400 | Guatemala | Latin America & Caribbean (all income levels) | Guatemala | 75 | |
#F8766D | Guam | East Asia & Pacific (all income levels) | Guam | 76 | |
#FB61D7 | Guinea-Bissau | Sub-Saharan Africa (all income levels) | Guinea-Bissau | 77 | |
#53B400 | Guyana | Latin America & Caribbean (all income levels) | Guyana | 78 | |
#F8766D | Hong Kong SAR, China | East Asia & Pacific (all income levels) | Hong Kong SAR, China | 79 | |
#53B400 | Honduras | Latin America & Caribbean (all income levels) | Honduras | 80 | |
#C49A00 | Croatia | Europe & Central Asia (all income levels) | Croatia | 81 | |
#53B400 | Haiti | Latin America & Caribbean (all income levels) | Haiti | 82 | |
#C49A00 | Hungary | Europe & Central Asia (all income levels) | Hungary | 83 | |
#F8766D | Indonesia | East Asia & Pacific (all income levels) | Indonesia | 84 | |
#C49A00 | Ireland | Europe & Central Asia (all income levels) | Ireland | 85 | |
#00C094 | Israel | Middle East & North Africa (all income levels) | Israel | 86 | |
#C49A00 | Isle of Man | Europe & Central Asia (all income levels) | Isle of Man | 87 | |
#A58AFF | India | South Asia | India | 88 | |
#00C094 | Iraq | Middle East & North Africa (all income levels) | Iraq | 89 | |
#00C094 | Iran, Islamic Rep. | Middle East & North Africa (all income levels) | Iran, Islamic Rep. | 90 | |
#C49A00 | Iceland | Europe & Central Asia (all income levels) | Iceland | 91 | |
#C49A00 | Italy | Europe & Central Asia (all income levels) | Italy | 92 | |
#C49A00 | Channel Islands | Europe & Central Asia (all income levels) | Channel Islands | 93 | |
#53B400 | Jamaica | Latin America & Caribbean (all income levels) | Jamaica | 94 | |
#00C094 | Jordan | Middle East & North Africa (all income levels) | Jordan | 95 | |
#F8766D | Japan | East Asia & Pacific (all income levels) | Japan | 96 | |
#FB61D7 | Kenya | Sub-Saharan Africa (all income levels) | Kenya | 97 | |
#C49A00 | Kyrgyz Republic | Europe & Central Asia (all income levels) | Kyrgyz Republic | 98 | |
#F8766D | Cambodia | East Asia & Pacific (all income levels) | Cambodia | 99 | |
#F8766D | Kiribati | East Asia & Pacific (all income levels) | Kiribati | 100 | |
#FB61D7 | Comoros | Sub-Saharan Africa (all income levels) | Comoros | 101 | |
#53B400 | St. Kitts and Nevis | Latin America & Caribbean (all income levels) | St. Kitts and Nevis | 102 | |
#F8766D | Korea, Dem. Rep. | East Asia & Pacific (all income levels) | Korea, Dem. Rep. | 103 | |
#F8766D | Korea, Rep. | East Asia & Pacific (all income levels) | Korea, Rep. | 104 | |
#C49A00 | Kosovo | Europe & Central Asia (all income levels) | Kosovo | 105 | |
#00C094 | Kuwait | Middle East & North Africa (all income levels) | Kuwait | 106 | |
#53B400 | Cayman Islands | Latin America & Caribbean (all income levels) | Cayman Islands | 107 | |
#C49A00 | Kazakhstan | Europe & Central Asia (all income levels) | Kazakhstan | 108 | |
#F8766D | Lao PDR | East Asia & Pacific (all income levels) | Lao PDR | 109 | |
#00C094 | Lebanon | Middle East & North Africa (all income levels) | Lebanon | 110 | |
#53B400 | St. Lucia | Latin America & Caribbean (all income levels) | St. Lucia | 111 | |
#C49A00 | Liechtenstein | Europe & Central Asia (all income levels) | Liechtenstein | 112 | |
#A58AFF | Sri Lanka | South Asia | Sri Lanka | 113 | |
#FB61D7 | Liberia | Sub-Saharan Africa (all income levels) | Liberia | 114 | |
#FB61D7 | Lesotho | Sub-Saharan Africa (all income levels) | Lesotho | 115 | |
#C49A00 | Lithuania | Europe & Central Asia (all income levels) | Lithuania | 116 | |
#C49A00 | Luxembourg | Europe & Central Asia (all income levels) | Luxembourg | 117 | |
#C49A00 | Latvia | Europe & Central Asia (all income levels) | Latvia | 118 | |
#00C094 | Libya | Middle East & North Africa (all income levels) | Libya | 119 | |
#00C094 | Morocco | Middle East & North Africa (all income levels) | Morocco | 120 | |
#C49A00 | Monaco | Europe & Central Asia (all income levels) | Monaco | 121 | |
#C49A00 | Moldova | Europe & Central Asia (all income levels) | Moldova | 122 | |
#C49A00 | Montenegro | Europe & Central Asia (all income levels) | Montenegro | 123 | |
#53B400 | St. Martin (French part) | Latin America & Caribbean (all income levels) | St. Martin (French part) | 124 | |
#FB61D7 | Madagascar | Sub-Saharan Africa (all income levels) | Madagascar | 125 | |
#F8766D | Marshall Islands | East Asia & Pacific (all income levels) | Marshall Islands | 126 | |
#C49A00 | Macedonia, FYR | Europe & Central Asia (all income levels) | Macedonia, FYR | 127 | |
#FB61D7 | Mali | Sub-Saharan Africa (all income levels) | Mali | 128 | |
#F8766D | Myanmar | East Asia & Pacific (all income levels) | Myanmar | 129 | |
#F8766D | Mongolia | East Asia & Pacific (all income levels) | Mongolia | 130 | |
#F8766D | Macao SAR, China | East Asia & Pacific (all income levels) | Macao SAR, China | 131 | |
#F8766D | Northern Mariana Islands | East Asia & Pacific (all income levels) | Northern Mariana Islands | 132 | |
#FB61D7 | Mauritania | Sub-Saharan Africa (all income levels) | Mauritania | 133 | |
#00C094 | Malta | Middle East & North Africa (all income levels) | Malta | 134 | |
#FB61D7 | Mauritius | Sub-Saharan Africa (all income levels) | Mauritius | 135 | |
#A58AFF | Maldives | South Asia | Maldives | 136 | |
#FB61D7 | Malawi | Sub-Saharan Africa (all income levels) | Malawi | 137 | |
#53B400 | Mexico | Latin America & Caribbean (all income levels) | Mexico | 138 | |
#F8766D | Malaysia | East Asia & Pacific (all income levels) | Malaysia | 139 | |
#FB61D7 | Mozambique | Sub-Saharan Africa (all income levels) | Mozambique | 140 | |
#FB61D7 | Namibia | Sub-Saharan Africa (all income levels) | Namibia | 141 | |
#F8766D | New Caledonia | East Asia & Pacific (all income levels) | New Caledonia | 142 | |
#FB61D7 | Niger | Sub-Saharan Africa (all income levels) | Niger | 143 | |
#FB61D7 | Nigeria | Sub-Saharan Africa (all income levels) | Nigeria | 144 | |
#53B400 | Nicaragua | Latin America & Caribbean (all income levels) | Nicaragua | 145 | |
#C49A00 | Netherlands | Europe & Central Asia (all income levels) | Netherlands | 146 | |
#C49A00 | Norway | Europe & Central Asia (all income levels) | Norway | 147 | |
#A58AFF | Nepal | South Asia | Nepal | 148 | |
#F8766D | New Zealand | East Asia & Pacific (all income levels) | New Zealand | 149 | |
#00C094 | Oman | Middle East & North Africa (all income levels) | Oman | 150 | |
#53B400 | Panama | Latin America & Caribbean (all income levels) | Panama | 151 | |
#53B400 | Peru | Latin America & Caribbean (all income levels) | Peru | 152 | |
#F8766D | French Polynesia | East Asia & Pacific (all income levels) | French Polynesia | 153 | |
#F8766D | Papua New Guinea | East Asia & Pacific (all income levels) | Papua New Guinea | 154 | |
#F8766D | Philippines | East Asia & Pacific (all income levels) | Philippines | 155 | |
#A58AFF | Pakistan | South Asia | Pakistan | 156 | |
#C49A00 | Poland | Europe & Central Asia (all income levels) | Poland | 157 | |
#53B400 | Puerto Rico | Latin America & Caribbean (all income levels) | Puerto Rico | 158 | |
#00C094 | West Bank and Gaza | Middle East & North Africa (all income levels) | West Bank and Gaza | 159 | |
#C49A00 | Portugal | Europe & Central Asia (all income levels) | Portugal | 160 | |
#F8766D | Palau | East Asia & Pacific (all income levels) | Palau | 161 | |
#53B400 | Paraguay | Latin America & Caribbean (all income levels) | Paraguay | 162 | |
#00C094 | Qatar | Middle East & North Africa (all income levels) | Qatar | 163 | |
#C49A00 | Romania | Europe & Central Asia (all income levels) | Romania | 164 | |
#C49A00 | Serbia | Europe & Central Asia (all income levels) | Serbia | 165 | |
#C49A00 | Russian Federation | Europe & Central Asia (all income levels) | Russian Federation | 166 | |
#FB61D7 | Rwanda | Sub-Saharan Africa (all income levels) | Rwanda | 167 | |
#00C094 | Saudi Arabia | Middle East & North Africa (all income levels) | Saudi Arabia | 168 | |
#F8766D | Solomon Islands | East Asia & Pacific (all income levels) | Solomon Islands | 169 | |
#FB61D7 | Seychelles | Sub-Saharan Africa (all income levels) | Seychelles | 170 | |
#FB61D7 | Sudan | Sub-Saharan Africa (all income levels) | Sudan | 171 | |
#C49A00 | Sweden | Europe & Central Asia (all income levels) | Sweden | 172 | |
#F8766D | Singapore | East Asia & Pacific (all income levels) | Singapore | 173 | |
#C49A00 | Slovenia | Europe & Central Asia (all income levels) | Slovenia | 174 | |
#C49A00 | Slovak Republic | Europe & Central Asia (all income levels) | Slovak Republic | 175 | |
#FB61D7 | Sierra Leone | Sub-Saharan Africa (all income levels) | Sierra Leone | 176 | |
#C49A00 | San Marino | Europe & Central Asia (all income levels) | San Marino | 177 | |
#FB61D7 | Senegal | Sub-Saharan Africa (all income levels) | Senegal | 178 | |
#FB61D7 | Somalia | Sub-Saharan Africa (all income levels) | Somalia | 179 | |
#53B400 | Suriname | Latin America & Caribbean (all income levels) | Suriname | 180 | |
#FB61D7 | South Sudan | Sub-Saharan Africa (all income levels) | South Sudan | 181 | |
#FB61D7 | Sao Tome and Principe | Sub-Saharan Africa (all income levels) | Sao Tome and Principe | 182 | |
#53B400 | El Salvador | Latin America & Caribbean (all income levels) | El Salvador | 183 | |
#53B400 | Sint Maarten (Dutch part) | Latin America & Caribbean (all income levels) | Sint Maarten (Dutch part) | 184 | |
#00C094 | Syrian Arab Republic | Middle East & North Africa (all income levels) | Syrian Arab Republic | 185 | |
#FB61D7 | Swaziland | Sub-Saharan Africa (all income levels) | Swaziland | 186 | |
#53B400 | Turks and Caicos Islands | Latin America & Caribbean (all income levels) | Turks and Caicos Islands | 187 | |
#FB61D7 | Chad | Sub-Saharan Africa (all income levels) | Chad | 188 | |
#FB61D7 | Togo | Sub-Saharan Africa (all income levels) | Togo | 189 | |
#F8766D | Thailand | East Asia & Pacific (all income levels) | Thailand | 190 | |
#C49A00 | Tajikistan | Europe & Central Asia (all income levels) | Tajikistan | 191 | |
#F8766D | Timor-Leste | East Asia & Pacific (all income levels) | Timor-Leste | 192 | |
#C49A00 | Turkmenistan | Europe & Central Asia (all income levels) | Turkmenistan | 193 | |
#00C094 | Tunisia | Middle East & North Africa (all income levels) | Tunisia | 194 | |
#F8766D | Tonga | East Asia & Pacific (all income levels) | Tonga | 195 | |
#C49A00 | Turkey | Europe & Central Asia (all income levels) | Turkey | 196 | |
#53B400 | Trinidad and Tobago | Latin America & Caribbean (all income levels) | Trinidad and Tobago | 197 | |
#F8766D | Tuvalu | East Asia & Pacific (all income levels) | Tuvalu | 198 | |
#FB61D7 | Tanzania | Sub-Saharan Africa (all income levels) | Tanzania | 199 | |
#C49A00 | Ukraine | Europe & Central Asia (all income levels) | Ukraine | 200 | |
#FB61D7 | Uganda | Sub-Saharan Africa (all income levels) | Uganda | 201 | |
#00B6EB | United States | North America | United States | 202 | |
#53B400 | Uruguay | Latin America & Caribbean (all income levels) | Uruguay | 203 | |
#C49A00 | Uzbekistan | Europe & Central Asia (all income levels) | Uzbekistan | 204 | |
#53B400 | St. Vincent and the Grenadines | Latin America & Caribbean (all income levels) | St. Vincent and the Grenadines | 205 | |
#53B400 | Venezuela, RB | Latin America & Caribbean (all income levels) | Venezuela, RB | 206 | |
#53B400 | Virgin Islands (U.S.) | Latin America & Caribbean (all income levels) | Virgin Islands (U.S.) | 207 | |
#F8766D | Vietnam | East Asia & Pacific (all income levels) | Vietnam | 208 | |
#F8766D | Vanuatu | East Asia & Pacific (all income levels) | Vanuatu | 209 | |
#F8766D | Samoa | East Asia & Pacific (all income levels) | Samoa | 210 | |
#00C094 | Yemen, Rep. | Middle East & North Africa (all income levels) | Yemen, Rep. | 211 | |
#FB61D7 | South Africa | Sub-Saharan Africa (all income levels) | South Africa | 212 | |
#FB61D7 | Zambia | Sub-Saharan Africa (all income levels) | Zambia | 213 | |
#FB61D7 | Zimbabwe | Sub-Saharan Africa (all income levels) | Zimbabwe | 214 |
colour x y key showSelectedlegendfillcolour showSelected1 group | |
#00C094 68.6840487804878 5.423 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 69.0996097560976 5.344 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 69.4961463414634 5.274 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 69.8756829268293 5.209 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 70.2411951219512 5.141 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 70.5941707317073 5.065 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 70.9336341463415 4.973 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 71.2575365853659 4.86 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 71.5669024390244 4.724 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 71.861243902439 4.566 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 72.1435365853659 4.388 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 72.4153170731707 4.193 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 72.6785853658537 3.989 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 72.9353414634146 3.784 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 73.1870975609756 3.584 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 73.4348536585366 3.394 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 73.6800975609756 3.217 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 73.9208292682927 3.055 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 74.1570487804878 2.906 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 74.3887317073171 2.77 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 74.6159024390244 2.645 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 74.8370731707317 2.527 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 75.0522195121951 2.413 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 75.2608780487805 2.301 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 75.4639756097561 2.191 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 75.6604634146342 2.086 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 75.8518048780488 1.989 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 76.0384390243903 1.906 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 76.2213414634146 1.839 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 76.3995609756098 1.787 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 76.5736097560976 1.749 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#00C094 76.7425365853659 1.721 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153 | |
#A58AFF 39.2041219512195 7.742 South Asia South Asia Afghanistan 159 | |
#A58AFF 39.5269512195122 7.763 South Asia South Asia Afghanistan 159 | |
#A58AFF 39.8398292682927 7.785 South Asia South Asia Afghanistan 159 | |
#A58AFF 40.149243902439 7.807 South Asia South Asia Afghanistan 159 | |
#A58AFF 40.4586829268293 7.829 South Asia South Asia Afghanistan 159 | |
#A58AFF 40.7705853658537 7.85 South Asia South Asia Afghanistan 159 | |
#A58AFF 41.0848780487805 7.871 South Asia South Asia Afghanistan 159 | |
#A58AFF 41.399 7.893 South Asia South Asia Afghanistan 159 | |
#A58AFF 41.7109268292683 7.915 South Asia South Asia Afghanistan 159 | |
#A58AFF 42.0211951219512 7.937 South Asia South Asia Afghanistan 159 | |
#A58AFF 42.3293658536585 7.96 South Asia South Asia Afghanistan 159 | |
#A58AFF 42.636 7.984 South Asia South Asia Afghanistan 159 | |
#A58AFF 42.9397317073171 8.01 South Asia South Asia Afghanistan 159 | |
#A58AFF 43.2420975609756 8.034 South Asia South Asia Afghanistan 159 | |
#A58AFF 43.5426585365854 8.052 South Asia South Asia Afghanistan 159 | |
#A58AFF 43.8409024390244 8.058 South Asia South Asia Afghanistan 159 | |
#A58AFF 44.1368048780488 8.043 South Asia South Asia Afghanistan 159 | |
#A58AFF 44.4298048780488 8.004 South Asia South Asia Afghanistan 159 | |
#A58AFF 44.7213414634146 7.939 South Asia South Asia Afghanistan 159 | |
#A58AFF 45.0098536585366 7.847 South Asia South Asia Afghanistan 159 | |
#A58AFF 45.2928536585366 7.73 South Asia South Asia Afghanistan 159 | |
#A58AFF 45.5672682926829 7.595 South Asia South Asia Afghanistan 159 | |
#A58AFF 45.8331463414634 7.447 South Asia South Asia Afghanistan 159 | |
#A58AFF 46.0924390243902 7.294 South Asia South Asia Afghanistan 159 | |
#A58AFF 46.3511951219512 7.14 South Asia South Asia Afghanistan 159 | |
#A58AFF 46.6164146341463 6.989 South Asia South Asia Afghanistan 159 | |
#A58AFF 46.8990975609756 6.843 South Asia South Asia Afghanistan 159 | |
#A58AFF 47.2053170731707 6.7 South Asia South Asia Afghanistan 159 | |
#A58AFF 47.5385609756098 6.559 South Asia South Asia Afghanistan 159 | |
#A58AFF 47.8988536585366 6.422 South Asia South Asia Afghanistan 159 | |
#A58AFF 48.2821951219512 6.288 South Asia South Asia Afghanistan 159 | |
#A58AFF 48.6805853658537 6.158 South Asia South Asia Afghanistan 159 | |
#53B400 72.2480487804878 2 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Antigua and Barbuda 94 | |
#53B400 73.0082926829268 1.9 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Antigua and Barbuda 94 | |
#53B400 74.2463414634146 1.7 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Antigua and Barbuda 94 | |
#53B400 74.7317073170732 1.7 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Antigua and Barbuda 94 | |
#53B400 75.280487804878 1.7 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Antigua and Barbuda 94 | |
#C49A00 69.6740487804878 4.037 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 70.0004634146341 3.985 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 70.351243902439 3.942 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 70.7154146341463 3.904 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 71.076487804878 3.865 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 71.3975853658537 3.816 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 71.6373658536586 3.747 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 71.7749268292683 3.65 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 71.8093658536585 3.527 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 71.7542195121951 3.38 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 71.6454390243903 3.219 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 71.5314878048781 3.058 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 71.4652195121951 2.91 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 71.487 2.784 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 71.6177317073171 2.683 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 71.8702926829268 2.604 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 72.2410731707317 2.54 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 72.6960731707317 2.478 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 73.1978048780488 2.409 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 73.7218292682927 2.33 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 74.2387317073171 2.241 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 74.7236585365854 2.142 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 75.1612195121951 2.04 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 75.5420243902439 1.941 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 75.8591219512195 1.847 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 76.112 1.764 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 76.3096341463415 1.692 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 76.4734146341464 1.635 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 76.620756097561 1.59 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 76.7610975609756 1.558 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 76.9009512195122 1.536 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 77.0422682926829 1.523 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37 | |
#C49A00 70.6800975609756 2.385 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 70.6587317073171 2.373 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 70.5352195121951 2.381 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 70.2919268292683 2.406 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 69.9390487804878 2.441 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 69.5044146341464 2.481 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 69.0312195121951 2.519 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 68.5769268292683 2.549 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 68.1938536585366 2.566 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 67.9126097560976 2.565 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 67.757243902439 2.538 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 67.7360731707317 2.482 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 67.8285365853659 2.399 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 68.012756097561 2.295 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 68.2789268292683 2.176 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 68.6204634146342 2.053 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 69.0294390243903 1.938 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 69.4916341463415 1.838 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 69.9855365853659 1.762 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 70.4924878048781 1.712 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 70.9894390243903 1.688 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 71.4580487804878 1.684 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 71.8896097560976 1.692 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 72.2783902439025 1.704 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 72.6164146341464 1.715 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 72.9007073170732 1.724 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 73.1342195121951 1.728 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 73.3278292682927 1.731 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 73.4959512195122 1.734 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 73.6455365853658 1.735 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 73.7835609756098 1.736 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#C49A00 73.9160243902439 1.736 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39 | |
#FB61D7 40.1618048780488 7.2 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 40.2902195121951 7.201 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 40.4100487804878 7.203 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 40.5297804878049 7.205 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 40.655487804878 7.207 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 40.7803414634146 7.208 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 40.8905609756098 7.206 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 40.9779756097561 7.202 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 41.0418048780488 7.194 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 41.091243902439 7.182 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 41.1414146341463 7.165 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 41.2088780487805 7.144 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 41.3145365853659 7.12 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 41.4781951219512 7.093 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 41.7162195121951 7.063 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 42.0509268292683 7.03 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 42.5016097560976 6.997 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 43.0616341463415 6.963 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 43.7143170731707 6.925 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 44.4390975609756 6.882 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 45.2049268292683 6.826 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 45.9733170731707 6.751 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 46.7119268292683 6.654 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 47.3933658536585 6.533 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 48.0037073170732 6.391 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 48.5384390243903 6.233 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 49.0071463414634 6.066 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 49.4352926829268 5.898 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 49.8474146341463 5.736 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 50.2510243902439 5.584 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 50.6536585365854 5.443 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#FB61D7 51.0593170731707 5.313 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167 | |
#53B400 69.4696097560976 3.325 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 69.7417804878049 3.27 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 69.9904390243903 3.213 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 70.2121219512195 3.163 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 70.4093170731707 3.123 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 70.586512195122 3.093 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 70.7537073170732 3.073 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 70.9223902439024 3.056 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 71.1005365853659 3.037 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 71.2921707317073 3.016 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 71.4982926829268 2.989 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 71.7179268292683 2.956 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 71.9440731707317 2.918 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 72.171756097561 2.875 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 72.3984390243903 2.827 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 72.6236341463415 2.774 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 72.8462926829268 2.717 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 73.0673902439025 2.657 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 73.2864634146342 2.596 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 73.5034634146342 2.535 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 73.7179756097561 2.477 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 73.929512195122 2.425 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 74.1386097560976 2.379 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 74.3442926829268 2.341 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 74.5455853658537 2.31 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 74.7414634146342 2.287 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 74.9314390243902 2.269 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 75.1149756097561 2.254 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 75.2925365853659 2.24 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 75.4640975609756 2.226 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 75.6321463414634 2.211 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#53B400 75.7976585365854 2.196 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95 | |
#C49A00 72.4236585365854 1.62 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 72.7580487804878 1.67 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 72.8970731707317 1.66 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 72.9685365853659 1.56 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 73.5275609756098 1.53 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 73.7451219512195 1.46 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 74.2229268292683 1.47 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 74.6692682926829 1.42 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 75.1441463414634 1.43 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 75.2480487804878 1.45 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 75.53 1.45 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 75.5678048780488 1.5 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 75.8553658536585 1.49 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 76.1063414634146 1.48 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 76.4570731707317 1.44 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 76.7156097560976 1.4 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 76.9836585365854 1.42 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 77.3875609756098 1.36 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 77.5731707317073 1.37 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 77.7756097560976 1.34 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 78.0268292682927 1.36 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 78.5268292682927 1.33 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 78.6780487804878 1.39 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 78.6317073170732 1.38 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 79.1804878048781 1.42 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 79.3317073170732 1.41 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 79.8317073170732 1.41 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 79.9829268292683 1.38 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 80.2341463414634 1.41 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 80.0829268292683 1.39 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 80.3829268292683 1.44 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#C49A00 81.0317073170732 1.42 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40 | |
#F8766D 74.3336585365854 1.891 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 74.6634146341463 1.935 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 74.9048780487805 1.929 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 75.1463414634146 1.924 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 75.3878048780488 1.84 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 75.6292682926829 1.923 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 75.8707317073171 1.868 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 76.1517073170732 1.845 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 76.4326829268293 1.831 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 76.7136585365854 1.838 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 76.9946341463415 1.902 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 77.2756097560976 1.849 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 77.3780487804878 1.888 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 77.8780487804878 1.859 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 77.8780487804878 1.842 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 77.8292682926829 1.822 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 78.0780487804878 1.796 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 78.4804878048781 1.778 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 78.6317073170732 1.762 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 78.9317073170732 1.755 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 79.2341463414634 1.756 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 79.6341463414634 1.739 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 79.9365853658537 1.756 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 80.2390243902439 1.748 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 80.490243902439 1.768 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 80.8414634146341 1.807 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 81.0414634146342 1.883 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 81.2926829268293 1.931 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 81.3951219512195 1.933 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 81.5439024390244 1.857 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 81.6951219512195 1.87 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#F8766D 81.8463414634146 1.87 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2 | |
#53B400 72.2201463414634 2.392 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 72.4623414634146 2.377 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 72.6731951219512 2.364 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 72.8490243902439 2.353 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 72.989756097561 2.342 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 73.0979756097561 2.332 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 73.1793658536585 2.32 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 73.2427073170732 2.307 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 73.296243902439 2.291 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 73.3444878048781 2.272 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 73.3899756097561 2.249 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 73.4331219512195 2.221 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 73.471756097561 2.187 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 73.5053170731707 2.149 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 73.535756097561 2.108 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 73.5636097560976 2.064 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 73.5894390243902 2.021 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 73.6148048780488 1.979 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 73.6422926829268 1.94 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 73.6753902439025 1.905 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 73.7200975609756 1.874 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 73.7823902439024 1.848 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 73.8641951219512 1.825 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 73.966 1.805 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 74.087756097561 1.787 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 74.2249756097561 1.77 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 74.3741463414634 1.755 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 74.5282926829268 1.74 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 74.6819268292683 1.726 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 74.8315365853659 1.713 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 74.9751707317073 1.699 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#53B400 75.1127804878049 1.687 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96 | |
#C49A00 64.6813170731707 3.286 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 64.7164390243903 3.179 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 64.8307317073171 3.092 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 65.0080975609756 3.026 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 65.2259024390244 2.98 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 65.4277804878049 2.91 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 65.5413414634147 2.9 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 65.5259268292683 2.9026 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 65.3691463414634 2.8 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 65.0892682926829 2.8 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 64.7463658536585 2.74 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 64.4241463414634 2.87 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 64.207243902439 2.74 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 64.1540243902439 2.7 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 64.2815853658537 2.52 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 64.5758292682927 2.29 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 64.994 2.06 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 65.4623902439024 2.07 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 65.9233658536585 2 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 66.3554878048781 2.07 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 66.7572195121951 2 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 67.1476829268293 1.8 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 67.5548536585366 1.8 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 67.9943170731707 1.9 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 68.4571951219512 2.0535 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 68.9227317073171 2 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 69.3614146341463 1.97 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 69.7486585365854 1.97 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 70.0678536585366 1.9 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 70.3176341463415 1.82 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 70.5065121951219 1.92 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 70.6528536585366 1.92 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41 | |
#C49A00 70.2735853658537 2.092 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 70.5480731707317 2.05 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 70.8754878048781 2.017 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 71.2393658536586 1.992 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 71.5952926829268 1.973 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 71.7950731707317 1.953 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 71.6509268292683 1.925 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 71.0824146341463 1.887 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 70.1033658536585 1.836 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 68.8140243902439 1.775 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 67.4668536585366 1.708 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 66.3856829268293 1.645 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 65.829 1.592 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 65.9418536585366 1.556 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 66.730243902439 1.534 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 68.0681951219512 1.524 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 69.7141951219512 1.518 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 71.3479512195122 1.508 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 72.7164878048781 1.487 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 73.714 1.454 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 74.3081219512195 1.412 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 74.5531707317073 1.363 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 74.6153658536585 1.315 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 74.6348780487805 1.273 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 74.6596341463415 1.239 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 74.7236341463415 1.212 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 74.8343658536585 1.194 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 74.9686097560976 1.179 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 75.1063170731708 1.168 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 75.2504390243902 1.157 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 75.4004390243903 1.148 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#C49A00 75.5528536585366 1.14 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44 | |
#53B400 71.9743658536586 2.004 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 72.2553902439025 1.96 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 72.5323902439024 1.922 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 72.8072926829268 1.889 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 73.0805365853659 1.858 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 73.3470975609756 1.83 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 73.6034634146341 1.806 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 73.8416341463415 1.786 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 74.0576585365854 1.77 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 74.2505365853659 1.758 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 74.4172682926829 1.748 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 74.5583658536585 1.739 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 74.6783414634146 1.73 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 74.782243902439 1.719 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 74.8740731707317 1.705 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 74.9593658536585 1.688 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 75.0426341463415 1.667 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 75.1273902439024 1.641 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 75.2156341463415 1.614 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 75.3094146341464 1.585 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 75.4082682926829 1.558 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 75.5086829268293 1.534 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 75.6081951219512 1.516 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 75.7052926829268 1.504 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 75.8015365853659 1.5 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 75.9009512195122 1.501 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 76.0085609756098 1.508 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 76.1293658536585 1.518 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 76.2643658536585 1.529 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 76.4130243902439 1.541 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 76.5728292682927 1.551 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#53B400 76.7392195121951 1.561 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98 | |
#A58AFF 55.2358536585366 6.374 South Asia South Asia Bangladesh 160 | |
#A58AFF 55.8089268292683 6.232 South Asia South Asia Bangladesh 160 | |
#A58AFF 56.0801951219512 6.075 South Asia South Asia Bangladesh 160 | |
#A58AFF 56.3081219512195 5.903 South Asia South Asia Bangladesh 160 | |
#A58AFF 56.5819024390244 5.719 South Asia South Asia Bangladesh 160 | |
#A58AFF 56.9524146341463 5.527 South Asia South Asia Bangladesh 160 | |
#A58AFF 57.4232195121951 5.328 South Asia South Asia Bangladesh 160 | |
#A58AFF 57.9363658536585 5.126 South Asia South Asia Bangladesh 160 | |
#A58AFF 58.4469756097561 4.925 South Asia South Asia Bangladesh 160 | |
#A58AFF 58.9580731707317 4.728 South Asia South Asia Bangladesh 160 | |
#A58AFF 59.4711463414634 4.538 South Asia South Asia Bangladesh 160 | |
#A58AFF 59.9897073170732 4.356 South Asia South Asia Bangladesh 160 | |
#A58AFF 60.5147317073171 4.184 South Asia South Asia Bangladesh 160 | |
#A58AFF 61.0467317073171 4.021 South Asia South Asia Bangladesh 160 | |
#A58AFF 61.5832195121951 3.867 South Asia South Asia Bangladesh 160 | |
#A58AFF 62.1226829268293 3.723 South Asia South Asia Bangladesh 160 | |
#A58AFF 62.6621219512195 3.589 South Asia South Asia Bangladesh 160 | |
#A58AFF 63.1965609756098 3.463 South Asia South Asia Bangladesh 160 | |
#A58AFF 63.7219756097561 3.344 South Asia South Asia Bangladesh 160 | |
#A58AFF 64.2339024390244 3.231 South Asia South Asia Bangladesh 160 | |
#A58AFF 64.7303414634146 3.121 South Asia South Asia Bangladesh 160 | |
#A58AFF 65.2083170731707 3.013 South Asia South Asia Bangladesh 160 | |
#A58AFF 65.6683170731707 2.907 South Asia South Asia Bangladesh 160 | |
#A58AFF 66.1098536585366 2.802 South Asia South Asia Bangladesh 160 | |
#A58AFF 66.5313658536585 2.699 South Asia South Asia Bangladesh 160 | |
#A58AFF 66.9322926829268 2.601 South Asia South Asia Bangladesh 160 | |
#A58AFF 67.3100731707317 2.509 South Asia South Asia Bangladesh 160 | |
#A58AFF 67.6666585365854 2.427 South Asia South Asia Bangladesh 160 | |
#A58AFF 68.0040243902439 2.356 South Asia South Asia Bangladesh 160 | |
#A58AFF 68.3252195121951 2.296 South Asia South Asia Bangladesh 160 | |
#A58AFF 68.6348048780488 2.245 South Asia South Asia Bangladesh 160 | |
#A58AFF 68.9373658536585 2.202 South Asia South Asia Bangladesh 160 | |
#C49A00 73.2070731707317 1.672 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 73.6217073170732 1.67 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 73.8880487804878 1.614 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 73.8690243902439 1.56 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 74.4048780487805 1.591 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 74.520243902439 1.49 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 74.7317073170732 1.54 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 75.3658536585366 1.55 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 75.5658536585366 1.56 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 75.6326829268293 1.58 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 76.0519512195122 1.62 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 76.1921951219512 1.57 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 76.3512195121951 1.56 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 76.3453658536585 1.61 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 76.6917073170732 1.55 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 76.8407317073171 1.57 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 77.1873170731707 1.55 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 77.3707317073171 1.6 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 77.4731707317073 1.6 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 77.619512195122 1.62 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 77.7219512195122 1.67 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 77.9731707317073 1.6632 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 78.0756097560976 1.6599 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 78.1292682926829 1.66 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 78.8780487804878 1.72 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 78.9804878048781 1.76 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 79.380487804878 1.8 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 79.7829268292683 1.82 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 79.6804878048781 1.86 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 79.9829268292683 1.84 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 80.2341463414634 1.84 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#C49A00 80.4853658536586 1.84 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43 | |
#FB61D7 46.3316097560976 7.069 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 46.7850487804878 7.074 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 47.1799512195122 7.07 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 47.5113414634146 7.059 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 47.7782195121951 7.043 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 47.9815853658537 7.022 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 48.1284390243902 6.996 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 48.2338292682927 6.965 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 48.3152195121951 6.93 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 48.3846341463415 6.889 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 48.4530487804878 6.844 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 48.5274146341463 6.794 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 48.6117317073171 6.739 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 48.7100243902439 6.681 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 48.8308292682927 6.62 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 48.979756097561 6.558 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 49.1594390243902 6.495 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 49.3699756097561 6.432 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 49.6103414634146 6.372 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 49.8854878048781 6.314 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 50.2012926829268 6.259 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 50.5655609756098 6.208 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 50.9776341463415 6.161 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 51.4323658536585 6.117 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 51.9222195121951 6.075 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 52.4351951219512 6.036 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 52.9579024390244 5.998 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 53.4769512195122 5.961 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 53.9824878048781 5.924 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 54.4660487804878 5.887 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 54.9241951219512 5.85 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#FB61D7 55.3579024390244 5.812 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170 | |
#C49A00 71.1575609756098 2.05 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 71.5719512195122 2.01 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 71.1860975609756 2.02 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 71.3863414634146 2 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 71.499756097561 1.99 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 71.2280487804878 1.95 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 71.7307317073171 1.99 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 71.5268292682927 1.96 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 71.6043902439024 1.97 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 71.7224390243903 1.9 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 71.6414634146342 1.81 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 71.5609756097561 1.65 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 71.4943902439024 1.54 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 71.3468292682927 1.45 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 71.2087804878049 1.37 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 71.0534146341464 1.23 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 70.8973170731707 1.24 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 70.3512195121951 1.09 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 71.0609756097561 1.11 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 71.4121951219512 1.23 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 71.6634146341463 1.26 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 71.7682926829268 1.21 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 71.8658536585366 1.21 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 72.0658536585366 1.23 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 72.5634146341463 1.29 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 72.5609756097561 1.32 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 72.6121951219512 1.38 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 72.6634146341463 1.42 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 72.9634146341463 1.48 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 73.4121951219512 1.57 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 73.5121951219512 1.49 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#C49A00 74.1634146341463 1.51 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45 | |
#00C094 69.8744878048781 4.917 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 70.2622926829268 4.803 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 70.6175121951219 4.692 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 70.9411463414634 4.583 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 71.2357317073171 4.476 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 71.501756097561 4.365 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 71.7397073170732 4.249 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 71.9515853658537 4.124 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 72.1399268292683 3.991 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 72.3097073170732 3.852 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 72.4649512195122 3.709 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 72.6096829268293 3.567 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 72.7473902439024 3.43 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 72.8810975609756 3.303 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 73.0138048780488 3.188 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 73.1470243902439 3.085 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 73.280243902439 2.994 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 73.4134634146341 2.913 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 73.5431707317073 2.84 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 73.6713658536585 2.775 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 73.7960731707317 2.72 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 73.9182926829268 2.677 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 74.0375365853659 2.647 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 74.1552926829268 2.629 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 74.2715365853659 2.621 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 74.3877317073171 2.618 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 74.5078292682927 2.616 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 74.6312926829268 2.609 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 74.7586097560976 2.595 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 74.8897804878049 2.572 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 75.0238292682927 2.54 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#00C094 75.1562682926829 2.501 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136 | |
#FB61D7 46.8593170731707 6.651 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 47.225512195122 6.597 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 47.5598048780488 6.549 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 47.8462926829268 6.514 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 48.062512195122 6.491 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 48.1605609756098 6.483 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 48.0869512195122 6.485 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 47.8301463414634 6.494 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 47.4061219512195 6.503 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 46.8498048780488 6.508 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 46.2271463414634 6.505 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 45.6215365853659 6.492 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 45.1109512195122 6.468 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 44.753756097561 6.432 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 44.5784634146342 6.381 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 44.588512195122 6.316 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 44.7584146341463 6.233 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 45.0267073170732 6.136 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 45.3384390243903 6.026 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 45.6705609756098 5.904 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 46.0050487804878 5.772 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 46.3363902439024 5.632 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 46.6730731707317 5.484 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 47.0215609756098 5.333 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 47.3803658536585 5.18 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 47.7514634146342 5.028 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 48.1388780487805 4.88 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 48.5466341463415 4.736 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 48.975756097561 4.597 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 49.4212682926829 4.465 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 49.8772195121951 4.338 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 50.3370975609756 4.218 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171 | |
#FB61D7 45.2471219512195 7.025 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 45.5922682926829 7.025 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 45.9059024390244 7.021 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 46.1964634146342 7.01 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 46.4748536585366 6.994 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 46.7579756097561 6.972 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 47.0637804878049 6.942 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 47.402756097561 6.904 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 47.780487804878 6.858 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 48.1980487804878 6.805 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 48.6485365853659 6.744 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 49.1231219512195 6.677 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 49.6033902439024 6.603 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 50.0734634146341 6.526 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 50.5224146341464 6.446 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 50.9412682926829 6.364 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 51.324512195122 6.282 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 51.6740731707317 6.2 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 51.9958292682927 6.12 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 52.291756097561 6.041 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 52.5653414634146 5.966 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 52.8190975609756 5.895 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 53.061512195122 5.828 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 53.3014878048781 5.764 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 53.5489512195122 5.702 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 53.8137317073171 5.64 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 54.1066829268293 5.577 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 54.4307317073171 5.511 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 54.7873170731707 5.44 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 55.1734146341463 5.366 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 55.5855853658537 5.287 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#FB61D7 56.0144390243902 5.206 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168 | |
#00B6EB 77.8648780487805 1.74 North America North America Bermuda 156 | |
#00B6EB 78.5767073170732 1.752 North America North America Bermuda 156 | |
#00B6EB 78.7190731707317 1.7544 North America North America Bermuda 156 | |
#00B6EB 78.8614390243903 1.7568 North America North America Bermuda 156 | |
#00B6EB 79.0038048780488 1.7592 North America North America Bermuda 156 | |
#00B6EB 79.1461707317073 1.7616 North America North America Bermuda 156 | |
#00B6EB 79.2885365853658 1.764 North America North America Bermuda 156 | |
#00B6EB 79.2885365853658 1.764 North America North America Bermuda 156 | |
#F8766D 70.7172195121951 4.246 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 71.035756097561 4.103 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 71.3482926829268 3.992 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 71.6538292682927 3.906 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 71.9543658536585 3.843 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 72.2489024390244 3.794 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 72.5384390243903 3.755 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 72.8234878048781 3.715 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 73.1040487804878 3.668 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 73.3810975609756 3.608 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 73.6536585365854 3.532 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 73.9232195121951 3.435 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 74.1887804878049 3.321 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 74.4508292682927 3.197 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 74.7098780487805 3.064 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 74.9674146341464 2.929 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 75.2239268292683 2.798 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 75.4809024390244 2.677 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 75.7363658536586 2.569 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 75.9883414634146 2.477 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 76.2323414634146 2.401 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 76.4649024390244 2.341 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 76.6810487804878 2.292 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 76.8808048780488 2.25 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 77.0626341463415 2.213 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 77.2285853658537 2.179 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 77.3806097560976 2.148 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 77.5241951219512 2.119 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 77.6622926829268 2.092 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 77.7979268292683 2.066 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 77.9320243902439 2.042 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#F8766D 78.0651219512195 2.017 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3 | |
#53B400 51.9635609756098 5.521 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 52.738243902439 5.423 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 53.5039756097561 5.337 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 54.2558292682927 5.259 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 54.9867317073171 5.189 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 55.6896829268293 5.127 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 56.3630731707317 5.074 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 57.0088780487805 5.029 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 57.628512195122 4.989 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 58.2189268292683 4.952 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 58.7780731707317 4.913 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 59.3024146341464 4.866 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 59.7934634146342 4.81 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 60.2537804878049 4.742 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 60.6863902439024 4.663 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 61.0958780487805 4.575 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 61.4872926829268 4.482 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 61.8657317073171 4.39 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 62.235756097561 4.302 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 62.6008780487805 4.219 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 62.9636829268293 4.14 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 63.3241707317073 4.063 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 63.6788048780488 3.983 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 64.0275121951219 3.899 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 64.3692926829268 3.811 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 64.7040487804878 3.721 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 65.0302195121951 3.634 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 65.3477317073171 3.551 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 65.6580975609756 3.475 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 65.9638536585366 3.407 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 66.2685609756098 3.348 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 66.5773658536585 3.294 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100 | |
#53B400 62.4965853658537 4.073 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 62.8944390243903 3.966 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 63.2879024390244 3.848 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 63.6762926829268 3.721 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 64.059756097561 3.587 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 64.4393414634146 3.449 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 64.8164878048781 3.308 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 65.1934634146342 3.17 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 65.5726097560976 3.039 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 65.9543658536585 2.917 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 66.3407317073171 2.809 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 66.734243902439 2.717 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 67.1334146341463 2.643 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 67.5368048780488 2.583 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 67.9408780487805 2.537 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 68.3406341463415 2.502 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 68.7315609756098 2.474 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 69.1090975609756 2.451 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 69.471243902439 2.427 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 69.8144634146341 2.399 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 70.1382682926829 2.364 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 70.4396341463415 2.319 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 70.7240975609756 2.264 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 70.9961463414634 2.203 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 71.2617804878049 2.136 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 71.5295365853659 2.068 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 71.8109268292683 2.002 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 72.1099512195122 1.944 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 72.4270975609756 1.895 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 72.7598048780488 1.857 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 73.0995365853658 1.83 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 73.4352195121951 1.811 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101 | |
#53B400 67.6973658536586 2.989 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 67.9644634146342 2.994 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 68.2450975609756 2.989 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 68.5236585365854 2.965 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 68.7896097560976 2.919 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 69.0233658536585 2.857 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 69.2039024390244 2.789 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 69.3271219512195 2.728 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 69.3984634146342 2.683 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 69.4268048780488 2.654 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 69.4370487804878 2.639 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 69.4571219512195 2.631 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 69.515 2.621 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 69.6311707317073 2.601 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 69.8130975609756 2.566 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 70.0563658536585 2.514 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 70.3480487804878 2.443 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 70.6627073170732 2.357 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 70.9828536585366 2.263 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 71.3034390243903 2.165 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 71.6282926829268 2.071 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 71.9696829268293 1.989 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 72.3384878048781 1.925 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 72.7371707317073 1.881 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 73.1578292682927 1.858 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 73.5836585365854 1.854 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 73.9919268292683 1.862 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 74.3654390243903 1.876 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 74.6938536585366 1.888 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 74.9752682926829 1.895 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 75.2221219512195 1.896 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#53B400 75.4522682926829 1.891 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97 | |
#A58AFF 46.3592195121951 6.553 South Asia South Asia Bhutan 161 | |
#A58AFF 46.9834878048781 6.501 South Asia South Asia Bhutan 161 | |
#A58AFF 47.5907073170732 6.449 South Asia South Asia Bhutan 161 | |
#A58AFF 48.1824146341464 6.399 South Asia South Asia Bhutan 161 | |
#A58AFF 48.7621219512195 6.348 South Asia South Asia Bhutan 161 | |
#A58AFF 49.3393658536585 6.292 South Asia South Asia Bhutan 161 | |
#A58AFF 49.9257073170732 6.225 South Asia South Asia Bhutan 161 | |
#A58AFF 50.5361463414634 6.141 South Asia South Asia Bhutan 161 | |
#A58AFF 51.1797073170732 6.036 South Asia South Asia Bhutan 161 | |
#A58AFF 51.8628780487805 5.907 South Asia South Asia Bhutan 161 | |
#A58AFF 52.5896341463415 5.753 South Asia South Asia Bhutan 161 | |
#A58AFF 53.3589512195122 5.573 South Asia South Asia Bhutan 161 | |
#A58AFF 54.1637804878049 5.372 South Asia South Asia Bhutan 161 | |
#A58AFF 54.9941219512195 5.155 South Asia South Asia Bhutan 161 | |
#A58AFF 55.8469756097561 4.929 South Asia South Asia Bhutan 161 | |
#A58AFF 56.7233902439024 4.7 South Asia South Asia Bhutan 161 | |
#A58AFF 57.6294390243903 4.474 South Asia South Asia Bhutan 161 | |
#A58AFF 58.5621463414634 4.256 South Asia South Asia Bhutan 161 | |
#A58AFF 59.5100487804878 4.048 South Asia South Asia Bhutan 161 | |
#A58AFF 60.4560975609756 3.855 South Asia South Asia Bhutan 161 | |
#A58AFF 61.3742195121951 3.676 South Asia South Asia Bhutan 161 | |
#A58AFF 62.2373170731707 3.51 South Asia South Asia Bhutan 161 | |
#A58AFF 63.0268048780488 3.352 South Asia South Asia Bhutan 161 | |
#A58AFF 63.7316097560976 3.199 South Asia South Asia Bhutan 161 | |
#A58AFF 64.3482195121951 3.053 South Asia South Asia Bhutan 161 | |
#A58AFF 64.8806341463415 2.914 South Asia South Asia Bhutan 161 | |
#A58AFF 65.3423902439025 2.785 South Asia South Asia Bhutan 161 | |
#A58AFF 65.7590975609756 2.668 South Asia South Asia Bhutan 161 | |
#A58AFF 66.1513170731707 2.565 South Asia South Asia Bhutan 161 | |
#A58AFF 66.5320487804878 2.476 South Asia South Asia Bhutan 161 | |
#A58AFF 66.9088536585366 2.399 South Asia South Asia Bhutan 161 | |
#A58AFF 67.2847073170732 2.332 South Asia South Asia Bhutan 161 | |
#FB61D7 60.4592195121951 6.217 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 60.9659512195122 6.125 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 61.4692682926829 6.012 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 61.9666585365854 5.88 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 62.4456341463415 5.731 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 62.9001463414634 5.567 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 63.3241951219512 5.393 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 63.6917804878049 5.214 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 63.9629756097561 5.036 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 64.0963902439024 4.863 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 64.0171707317073 4.698 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 63.648 4.542 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 62.966 4.394 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 61.9767073170732 4.252 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 60.7116341463415 4.117 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 59.1978048780488 3.989 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 57.4776585365854 3.866 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 55.6515365853659 3.746 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 53.8417073170732 3.631 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 52.1589512195122 3.519 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 50.765487804878 3.414 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 49.8115609756098 3.316 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 49.3375365853659 3.228 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 49.3273414634146 3.149 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 49.7374878048781 3.08 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 50.4465609756098 3.019 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 51.2843170731707 2.963 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 52.0689512195122 2.91 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 52.6636829268293 2.857 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 53.0115365853659 2.804 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 53.109512195122 2.75 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#FB61D7 53.0184878048781 2.696 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169 | |
#C49A00 70.3346585365854 2.03 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 70.3248048780488 2.02 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 70.3704878048781 2.05 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 70.4620243902439 2.11 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 70.5851707317073 2.11 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 70.9926829268293 2.09 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 71.549512195122 2.09 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 70.990243902439 2.03 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 71.3414634146341 2.04 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 71.5878048780488 2.03 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 70.8365853658537 1.91 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 70.3780487804878 1.8 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 70.0219512195122 1.75 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 68.9707317073171 1.61 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 68.7682926829268 1.51 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 68.4609756097561 1.386 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 68.6121951219512 1.31 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 68.4609756097561 1.23 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 68.4073170731707 1.27 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 67.9073170731707 1.31 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 68.9121951219512 1.31 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 68.5073170731707 1.27 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 68.0560975609756 1.22 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 68.5536585365854 1.21 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 68.9560975609756 1.2 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 68.8512195121951 1.21 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 69.4048780487805 1.287 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 70.2034146341464 1.37 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 70.4560975609756 1.42 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 70.4073170731707 1.42 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 70.4048780487805 1.44 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#C49A00 70.6512195121951 1.51 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42 | |
#53B400 70.147 5.849 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 70.4672926829268 5.684 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 70.7670975609756 5.51 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 71.0464146341463 5.336 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 71.3051951219512 5.17 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 71.5438048780488 5.019 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 71.7636097560976 4.886 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 71.9660731707317 4.771 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 72.1526829268293 4.671 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 72.3260487804878 4.584 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 72.4868048780488 4.508 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 72.6361707317073 4.436 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 72.7738536585366 4.363 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 72.901 4.286 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 73.0197317073171 4.201 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 73.1276097560976 4.108 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 73.2211463414634 4.008 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 73.3007073170732 3.905 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 73.3726341463415 3.8 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 73.4443170731708 3.696 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 73.5311219512195 3.594 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 73.6489268292683 3.493 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 73.8086341463415 3.396 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 74.0136585365854 3.301 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 74.2599268292683 3.209 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 74.5368780487805 3.124 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 74.827 3.044 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 75.1118536585366 2.971 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 75.377512195122 2.905 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 75.618512195122 2.845 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 75.8399512195122 2.79 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#53B400 76.0529024390244 2.741 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99 | |
#00B6EB 75.0780487804878 1.74 North America North America Canada 157 | |
#00B6EB 75.4785365853659 1.7 North America North America Canada 157 | |
#00B6EB 75.6804878048781 1.69 North America North America Canada 157 | |
#00B6EB 76.0363414634146 1.68 North America North America Canada 157 | |
#00B6EB 76.3175609756098 1.65 North America North America Canada 157 | |
#00B6EB 76.3034146341464 1.67 North America North America Canada 157 | |
#00B6EB 76.44 1.675 North America North America Canada 157 | |
#00B6EB 76.739512195122 1.68 North America North America Canada 157 | |
#00B6EB 76.8092682926829 1.68 North America North America Canada 157 | |
#00B6EB 77.0656097560976 1.77 North America North America Canada 157 | |
#00B6EB 77.3770731707317 1.83 North America North America Canada 157 | |
#00B6EB 77.5534146341464 1.7 North America North America Canada 157 | |
#00B6EB 77.3207317073171 1.71 North America North America Canada 157 | |
#00B6EB 77.6851219512195 1.7 North America North America Canada 157 | |
#00B6EB 77.8619512195122 1.6695 North America North America Canada 157 | |
#00B6EB 77.9775609756098 1.639 North America North America Canada 157 | |
#00B6EB 78.2304878048781 1.592 North America North America Canada 157 | |
#00B6EB 78.4804878048781 1.55 North America North America Canada 157 | |
#00B6EB 78.6624390243902 1.53 North America North America Canada 157 | |
#00B6EB 78.8829268292683 1.51 North America North America Canada 157 | |
#00B6EB 79.2365853658537 1.49 North America North America Canada 157 | |
#00B6EB 79.4878048780488 1.505 North America North America Canada 157 | |
#00B6EB 79.590243902439 1.52 North America North America Canada 157 | |
#00B6EB 79.8390243902439 1.53 North America North America Canada 157 | |
#00B6EB 80.1414634146341 1.53 North America North America Canada 157 | |
#00B6EB 80.2926829268293 1.54 North America North America Canada 157 | |
#00B6EB 80.6439024390244 1.5862 North America North America Canada 157 | |
#00B6EB 80.8043902439024 1.6589 North America North America Canada 157 | |
#00B6EB 80.9648780487805 1.6808 North America North America Canada 157 | |
#00B6EB 80.6617804878049 1.668 North America North America Canada 157 | |
#00B6EB 80.7978048780488 1.6269 North America North America Canada 157 | |
#00B6EB 80.929243902439 1.6269 North America North America Canada 157 | |
#FB61D7 45.8246829268293 6.585 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 45.9631951219512 6.638 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 46.0901951219512 6.693 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 46.2006829268293 6.748 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 46.2936585365854 6.802 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 46.3786585365854 6.856 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 46.4681707317073 6.907 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 46.5677073170732 6.957 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 46.6737804878049 7.005 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 46.7759024390244 7.047 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 46.8400731707317 7.084 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 46.8238292682927 7.112 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 46.7076341463415 7.131 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 46.492512195122 7.14 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 46.1999024390244 7.138 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 45.8788048780488 7.125 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 45.5966829268293 7.102 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 45.4100243902439 7.068 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 45.3557804878049 7.026 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 45.4424146341463 6.974 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 45.6519024390244 6.911 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 45.9421951219512 6.835 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 46.2538048780488 6.746 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 46.541243902439 6.644 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 46.7870243902439 6.531 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 46.9916829268293 6.409 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 47.168756097561 6.281 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 47.3492926829268 6.152 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 47.5573414634146 6.023 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 47.7969268292683 5.897 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 48.0695853658537 5.775 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 48.3693170731707 5.657 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177 | |
#FB61D7 48.8095365853659 5.954 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 49.1763414634146 5.955 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 49.4568292682927 5.956 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 49.6525365853659 5.955 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 49.7640243902439 5.952 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 49.7922926829268 5.944 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 49.7393170731707 5.927 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 49.6130487804878 5.902 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 49.4179756097561 5.868 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 49.1595609756098 5.826 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 48.8288780487805 5.78 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 48.4149756097561 5.734 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 47.9173902439024 5.691 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 47.3506097560976 5.653 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 46.7385853658537 5.622 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 46.1062926829268 5.596 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 45.4801707317073 5.573 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 44.8916341463415 5.55 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 44.3725609756098 5.522 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 43.9533414634146 5.488 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 43.6633658536585 5.446 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 43.5235365853659 5.392 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 43.5288292682927 5.329 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 43.6721951219512 5.256 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 43.9461219512195 5.175 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 44.3475609756098 5.088 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 44.867512195122 4.996 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 45.4825365853659 4.903 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 46.163243902439 4.81 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 46.8837073170732 4.719 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 47.6184634146341 4.631 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 48.3456097560976 4.546 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174 | |
#FB61D7 56.2368292682927 6.178 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 56.4593414634146 6.112 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 56.6682926829268 6.036 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 56.8532195121951 5.952 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 57.0031219512195 5.864 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 57.0941219512195 5.774 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 57.101756097561 5.684 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 57.0150975609756 5.596 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 56.8356829268293 5.511 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 56.573512195122 5.431 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 56.2465609756098 5.358 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 55.8807804878049 5.293 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 55.5086097560976 5.235 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 55.1599268292683 5.183 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 54.8562195121951 5.137 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 54.6093902439024 5.096 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 54.4214634146341 5.06 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 54.2834146341463 5.026 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 54.188243902439 4.995 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 54.1409024390244 4.964 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 54.1458536585366 4.932 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 54.2130487804878 4.899 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 54.3414878048781 4.864 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 54.5296585365854 4.827 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 54.7726097560976 4.788 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 55.0648536585366 4.748 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 55.4014390243903 4.706 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 55.7704146341463 4.665 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 56.1593414634146 4.625 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 56.558756097561 4.584 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 56.9601951219512 4.544 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#FB61D7 57.3561951219512 4.504 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178 | |
#C49A00 75.459268292683 1.55 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 75.6931707317073 1.55 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 76.0339024390244 1.56 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 76.0312195121951 1.51 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 76.6085365853659 1.52 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 76.7336585365854 1.51 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 76.8990243902439 1.52 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 77.1975609756098 1.55 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 77.2265853658537 1.57 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 77.4212195121951 1.56 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 77.2424390243902 1.59 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 77.5146341463415 1.58 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 77.8060975609756 1.58 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 78.0853658536586 1.51 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 78.35 1.49 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 78.4170731707317 1.47 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 78.8960975609756 1.5 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 79.079512195122 1.48 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 79.3243902439025 1.47 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 79.580487804878 1.48 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 79.6804878048781 1.5 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 80.1804878048781 1.38 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 80.3853658536585 1.39 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 80.5365853658537 1.39 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 81.0878048780488 1.42 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 81.2365853658537 1.42 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 81.490243902439 1.44 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 81.7414634146342 1.46 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 81.9926829268293 1.48 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 82.0439024390244 1.5 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 82.2463414634147 1.52 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#C49A00 82.6951219512195 1.52 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87 | |
#FB61D7 51.404243902439 7.608 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 51.9206585365854 7.501 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 52.3520975609756 7.382 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 52.6931707317073 7.253 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 52.9404146341463 7.117 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 53.0898536585366 6.977 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 53.1439756097561 6.834 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 53.1137804878049 6.689 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 53.014243902439 6.543 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 52.8558536585366 6.399 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 52.6441463414634 6.257 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 52.3796341463415 6.117 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 52.0708292682927 5.977 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 51.7321951219512 5.84 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 51.3852195121951 5.706 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 51.0513658536585 5.581 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 50.7471219512195 5.469 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 50.4899268292683 5.371 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 50.2942195121951 5.289 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 50.1789024390244 5.22 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 50.1608780487805 5.162 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 50.2505609756098 5.109 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 50.4438780487805 5.055 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 50.7328292682927 4.997 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 51.1113902439024 4.932 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 51.5755609756098 4.858 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 52.1183658536585 4.777 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 52.7258780487805 4.691 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 53.3777073170732 4.605 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 54.0559024390244 4.518 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 54.7415609756098 4.432 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#FB61D7 55.421243902439 4.348 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179 | |
#53B400 69.1917317073171 2.675 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 69.8580731707317 2.656 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 70.4637804878049 2.65 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 71.0063658536586 2.651 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 71.4847804878049 2.655 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 71.905 2.657 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 72.2789512195122 2.656 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 72.6234878048781 2.653 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 72.955512195122 2.649 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 73.2819024390244 2.64 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 73.6035609756098 2.624 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 73.9164146341464 2.597 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 74.2139512195122 2.559 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 74.4951951219512 2.51 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 74.7656829268293 2.453 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 75.0414634146342 2.388 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 75.3396341463415 2.321 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 75.6698048780488 2.254 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 76.0330243902439 2.192 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 76.4228292682927 2.135 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 76.8217317073171 2.087 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 77.2072195121951 2.047 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 77.5552195121951 2.014 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 77.8511707317073 1.985 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 78.0895853658537 1.96 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 78.2749756097561 1.939 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 78.4158536585366 1.92 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 78.5342682926829 1.904 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 78.6472195121951 1.889 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 78.7627073170732 1.876 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 78.8857317073171 1.862 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#53B400 79.016756097561 1.849 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103 | |
#FB61D7 51.1865365853659 6.431 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 51.5930731707317 6.425 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 51.9681219512195 6.407 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 52.3071951219512 6.377 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 52.6052926829268 6.335 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 52.8563902439024 6.282 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 53.054 6.22 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 53.1960975609756 6.152 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 53.2797317073171 6.08 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 53.3008780487805 6.004 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 53.2530975609756 5.923 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 53.1279024390244 5.832 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 52.9293170731707 5.731 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 52.6668780487805 5.62 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 52.3505609756098 5.502 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 51.9919024390244 5.384 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 51.5999024390244 5.273 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 51.1915365853659 5.175 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 50.786756097561 5.094 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 50.406512195122 5.03 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 50.0712682926829 4.983 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 49.7929756097561 4.947 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 49.5780975609756 4.917 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 49.4355609756098 4.886 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 49.3748536585366 4.85 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 49.4124146341463 4.807 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 49.5611707317073 4.756 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 49.8151707317073 4.696 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 50.1609024390244 4.631 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 50.5829268292683 4.561 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 51.062756097561 4.487 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#FB61D7 51.5764634146342 4.409 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172 | |
#F8766D 66.9938048780488 2.632 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 67.2629268292683 2.589 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 67.5349024390244 2.586 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 67.7998536585366 2.602 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 68.0592682926829 2.625 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 68.3131463414634 2.639 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 68.5594878048781 2.629 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 68.7973170731707 2.594 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 69.0271219512195 2.532 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 69.2469268292683 2.444 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 69.4597317073171 2.336 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 69.6640243902439 2.219 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 69.8618292682927 2.106 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 70.0546341463415 2.007 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 70.2429268292683 1.927 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 70.4247317073171 1.868 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 70.5990243902439 1.828 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 70.7663170731707 1.799 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 70.9270975609756 1.776 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 71.0833902439025 1.755 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 71.2417073170732 1.737 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 71.4055365853659 1.72 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 71.5794390243902 1.705 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 71.7648780487805 1.692 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 71.9623414634146 1.68 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 72.1713170731707 1.668 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 72.3897317073171 1.656 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 72.6125853658537 1.643 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 72.8353414634146 1.629 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 73.056512195122 1.614 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 73.2730975609756 1.598 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#F8766D 73.4856341463415 1.582 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5 | |
#53B400 65.4611463414634 3.993 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 66.0129756097561 3.867 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 66.5121951219512 3.744 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 66.9430975609756 3.63 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 67.2982926829268 3.525 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 67.5755853658537 3.43 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 67.7796341463415 3.347 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 67.9340487804878 3.275 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 68.0610975609756 3.211 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 68.1778292682927 3.155 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 68.3055365853658 3.104 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 68.4601219512195 3.057 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 68.649 3.012 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 68.8749024390244 2.966 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 69.1393414634147 2.92 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 69.4366829268293 2.872 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 69.7576097560976 2.823 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 70.085243902439 2.775 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 70.4051951219512 2.727 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 70.7118292682927 2.682 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 71.0009756097561 2.64 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 71.2736585365854 2.603 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 71.5340243902439 2.57 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 71.7882195121951 2.542 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 72.0367804878049 2.518 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 72.2797804878049 2.496 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 72.518756097561 2.475 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 72.7537804878049 2.454 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 72.9843414634147 2.43 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 73.2099756097561 2.403 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 73.4296829268293 2.1 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 73.6419024390244 2.1 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104 | |
#53B400 72.5508292682927 3.618 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 73.0736829268293 3.577 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 73.5440487804878 3.544 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 73.9583902439024 3.517 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 74.3177073170732 3.491 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 74.624 3.463 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 74.8857804878049 3.427 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 75.1170487804878 3.38 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 75.3323414634147 3.323 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 75.5396585365854 3.254 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 75.747 3.175 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 75.9568536585366 3.09 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 76.1692195121951 3.002 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 76.3815853658537 2.917 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 76.5954390243902 2.835 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 76.8088048780488 2.758 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 77.0216585365854 2.686 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 77.229512195122 2.616 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 77.4303658536586 2.548 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 77.6227317073171 2.481 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 77.8040731707317 2.414 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 77.9749268292683 2.345 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 78.134756097561 2.275 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 78.2855853658537 2.204 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 78.4284146341463 2.134 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 78.564243902439 2.067 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 78.6950731707317 2.007 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 78.8214146341464 1.954 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 78.9462682926829 1.91 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 79.0691707317073 1.875 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 79.1926097560976 1.848 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 79.3150975609756 1.827 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105 | |
#53B400 73.5623414634146 1.892 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 73.7679024390244 1.843 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 73.9392195121951 1.826 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 74.0802682926829 1.825 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 74.1970731707317 1.832 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 74.2882195121951 1.837 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 74.3513414634146 1.836 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 74.3905609756098 1.827 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 74.4129512195122 1.81 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 74.4300487804878 1.785 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 74.4598048780488 1.752 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 74.5215853658537 1.715 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 74.6253170731707 1.68 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 74.7769024390244 1.65 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 74.9738536585366 1.628 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 75.206756097561 1.614 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 75.457243902439 1.609 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 75.7064146341463 1.61 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 75.9403414634147 1.615 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 76.158 1.621 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 76.3658048780488 1.626 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 76.5796341463415 1.626 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 76.8153414634146 1.621 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 77.0808292682927 1.61 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 77.3740975609756 1.592 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 77.6831951219512 1.57 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 77.9931951219512 1.545 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 78.285243902439 1.52 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 78.5474146341463 1.499 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 78.7732195121951 1.481 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 78.9641463414634 1.467 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#53B400 79.1256341463415 1.457 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106 | |
#FB61D7 59.8433414634146 6.375 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 60.4391951219512 6.274 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 61.0173170731707 6.174 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 61.5797073170732 6.075 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 62.126512195122 5.979 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 62.6583170731707 5.883 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 63.1733170731707 5.784 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 63.6721951219512 5.68 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 64.1561951219512 5.565 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 64.6254878048781 5.441 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 65.0802195121951 5.307 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 65.519512195122 5.164 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 65.9453170731707 5.016 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 66.3601219512195 4.863 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 66.7704390243903 4.708 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 67.1823170731707 4.55 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 67.6031951219512 4.388 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 68.0370487804878 4.221 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 68.4878048780488 4.05 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 68.9563902439024 3.876 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 69.4482682926829 3.701 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 69.9698536585366 3.528 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 70.5136585365854 3.358 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 71.0676341463415 3.195 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 71.6177804878049 3.041 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 72.1406585365854 2.899 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 72.6103414634146 2.772 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 73.0108536585366 2.659 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 73.3361951219512 2.561 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 73.5868048780488 2.477 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 73.7740487804878 2.405 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#FB61D7 73.9167804878049 2.344 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173 | |
#53B400 74.709756097561 2.1 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Curacao 107 | |
#53B400 75.3634146341464 2 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Curacao 107 | |
#53B400 75.309756097561 2.2 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Curacao 107 | |
#53B400 76.1560975609756 2.1 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Curacao 107 | |
#C49A00 74.7484878048781 2.354 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 74.9424878048781 2.385 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 75.131487804878 2.415 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 75.3154878048781 2.438 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 75.4959756097561 2.453 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 75.6729512195122 2.458 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 75.8459268292683 2.456 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 76.0153902439024 2.45 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 76.1818292682927 2.442 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 76.344268292683 2.43 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 76.5047073170732 2.411 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 76.6621219512195 2.381 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 76.8160487804878 2.337 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 76.9679756097561 2.278 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 77.1159024390244 2.206 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 77.2623170731707 2.124 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 77.405756097561 2.035 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 77.5471707317073 1.945 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 77.6860975609756 1.86 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 77.823512195122 1.781 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 77.9569268292683 1.714 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 78.0853414634146 1.658 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 78.2092682926829 1.613 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 78.3301951219512 1.577 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 78.4500975609756 1.55 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 78.5739512195122 1.529 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 78.7087317073171 1.514 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 78.8579024390244 1.503 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 79.0214634146342 1.493 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 79.1969512195122 1.485 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 79.3803902439025 1.476 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 79.5628536585366 1.468 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48 | |
#C49A00 70.2780487804878 2.07 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 70.7221951219512 2 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 70.8078048780488 2.02 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 70.5914634146341 1.97 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 70.8375609756098 1.97 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 71.0463414634146 1.95 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 70.9973170731707 1.94 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 71.4456097560976 1.91 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 71.6414634146342 1.94 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 71.6756097560976 1.874 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 71.3839024390244 1.893 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 71.8982926829268 1.86 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 72.2717073170732 1.72 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 72.7678048780488 1.67 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 72.9726829268293 1.44 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 73.0748780487805 1.278 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 73.7146341463415 1.185 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 73.8248780487805 1.17 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 74.5146341463415 1.16 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 74.6682926829268 1.13 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 74.9682926829268 1.14 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 75.1731707317073 1.14 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 75.2219512195122 1.17 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 75.1707317073171 1.18 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 75.7219512195122 1.23 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 75.9243902439025 1.28 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 76.5243902439024 1.33 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 76.7243902439025 1.44 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 76.9756097560976 1.5 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 77.0780487804878 1.49 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 77.4243902439025 1.49 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 77.8731707317073 1.43 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49 | |
#C49A00 72.8186341463415 1.44 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 73.0891951219512 1.43 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 73.3614146341463 1.41 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 73.6377073170732 1.33 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 73.917 1.29 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 74.1917317073171 1.37 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 74.4533170731707 1.43 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 74.6962682926829 1.43 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 74.9186097560976 1.46 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 75.1228780487805 1.42 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 75.3161219512195 1.45 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 75.319512195122 1.33 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 75.819512195122 1.29 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 75.8707317073171 1.28 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 76.2707317073171 1.24 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 76.4219512195122 1.25 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 76.6731707317073 1.3 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 77.0731707317073 1.35 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 77.4756097560976 1.36 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 77.7268292682927 1.36 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 77.9268292682927 1.38 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 78.3292682926829 1.35 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 78.2292682926829 1.34 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 78.3804878048781 1.34 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 78.6804878048781 1.36 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 78.9317073170732 1.34 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 79.1317073170732 1.33 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 79.5341463414634 1.37 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 79.7365853658537 1.38 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 79.8365853658537 1.36 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 79.9878048780488 1.39 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#C49A00 80.7414634146342 1.36 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56 | |
#00C094 47.9128536585366 6.686 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 48.4219024390244 6.65 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 48.8978780487805 6.62 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 49.3273170731707 6.592 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 49.7062195121951 6.562 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 50.0376097560976 6.527 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 50.328 6.481 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 50.5949024390244 6.424 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 50.8533414634146 6.353 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 51.1088048780488 6.267 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 51.3663170731707 6.166 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 51.6243658536585 6.048 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 51.8804146341463 5.918 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 52.1314878048781 5.779 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 52.3790731707317 5.633 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 52.6241951219512 5.486 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 52.8653902439024 5.339 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 53.1036585365854 5.196 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 53.343512195122 5.058 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 53.5894146341464 4.926 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 53.8503414634146 4.801 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 54.134756097561 4.681 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 54.4471219512195 4.562 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 54.7893902439024 4.445 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 55.1590243902439 4.329 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 55.5500243902439 4.215 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 55.9528536585366 4.106 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 56.3565365853659 4.005 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 56.7550975609756 3.912 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 57.1450487804878 3.827 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 57.5273902439024 3.75 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#00C094 57.9091707317073 3.679 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137 | |
#C49A00 74.1017073170732 1.546 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 74.2304878048781 1.437 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 74.5512195121951 1.427 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 74.4204878048781 1.377 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 74.5621951219512 1.4 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 74.4275609756098 1.447 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 74.579756097561 1.48 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 74.6912195121951 1.5 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 74.7717073170732 1.56 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 74.799756097561 1.62 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 74.8053658536585 1.67 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 75.1578048780488 1.68 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 75.1941463414634 1.76 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 75.1168292682927 1.75 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 75.3751219512195 1.806 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 75.2126829268293 1.807 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 75.5914634146342 1.747 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 75.9451219512195 1.752 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 76.1390243902439 1.72 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 76.3414634146341 1.73 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 76.5926829268293 1.77 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 76.7926829268293 1.74 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 76.8951219512195 1.72 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 77.1439024390244 1.76 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 77.4926829268293 1.78 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 77.8439024390244 1.8 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 78.0951219512195 1.85 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 78.1951219512195 1.84 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 78.4463414634146 1.89 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 78.5975609756098 1.84 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 79.1 1.87 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#C49A00 79.8 1.75 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50 | |
#53B400 71.4634146341463 3.52 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominica 108 | |
#53B400 71.9634146341463 3 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominica 108 | |
#53B400 73.9512195121951 2.5 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominica 108 | |
#53B400 75.9512195121951 1.9 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominica 108 | |
#53B400 76.5975609756098 1.9 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominica 108 | |
#53B400 63.0011951219512 4.422 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 63.3813414634146 4.302 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 63.7797317073171 4.19 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 64.2024390243903 4.082 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 64.6514634146342 3.978 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 65.1303170731707 3.878 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 65.6355365853659 3.783 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 66.1581951219512 3.695 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 66.6848536585366 3.613 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 67.2051463414634 3.537 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 67.7041951219512 3.466 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 68.1671463414634 3.397 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 68.5885365853659 3.33 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 68.9648780487805 3.262 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 69.2971219512195 3.195 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 69.5917317073171 3.13 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 69.8596097560976 3.069 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 70.1156097560976 3.014 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 70.3715609756098 2.966 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 70.6308292682927 2.926 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 70.8937073170732 2.892 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 71.1545365853659 2.863 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 71.4053170731707 2.836 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 71.6406097560976 2.809 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 71.863 2.781 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 72.0766829268293 2.752 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 72.2879268292683 2.72 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 72.5044634146342 2.686 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 72.7289512195122 2.651 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 72.9619756097561 2.615 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 73.2000243902439 2.58 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#53B400 73.437512195122 2.544 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109 | |
#00C094 59.6036829268293 6.909 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 60.3363170731707 6.757 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 61.1255609756098 6.58 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 61.968512195122 6.38 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 62.8491707317073 6.161 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 63.736 5.928 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 64.5879512195122 5.686 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 65.3669024390244 5.441 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 66.0462682926829 5.195 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 66.6150731707317 4.954 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 67.0717804878049 4.713 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 67.4289756097561 4.468 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 67.7191951219512 4.216 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 67.976 3.957 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 68.2178780487805 3.697 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 68.4658780487805 3.446 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 68.7344878048781 3.214 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 69.0256585365854 3.012 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 69.3383658536585 2.845 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 69.6730487804878 2.715 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 70.0241707317073 2.622 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 70.3811219512195 2.56 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 70.7299024390244 2.519 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 71.059 2.49 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 71.3649024390244 2.466 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 71.6461463414634 2.442 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 71.9052926829268 2.415 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 72.1509024390244 2.383 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 72.3890487804878 2.348 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 72.622756097561 2.308 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 72.8525365853659 2.264 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#00C094 73.0799024390244 2.217 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135 | |
#53B400 62.9199268292683 5.059 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 63.5484146341463 4.917 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 64.1849756097561 4.773 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 64.8221463414634 4.629 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 65.4534390243902 4.485 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 66.0708292682927 4.342 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 66.6697804878049 4.201 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 67.2482195121951 4.061 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 67.8061463414634 3.925 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 68.3415365853659 3.793 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 68.8568780487805 3.67 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 69.3557317073171 3.557 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 69.8420975609756 3.456 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 70.3200243902439 3.368 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 70.7894878048781 3.292 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 71.252 3.226 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 71.7094634146342 3.167 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 72.1573902439024 3.113 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 72.5912682926829 3.06 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 73.0061463414634 3.007 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 73.3920487804878 2.953 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 73.7380731707317 2.898 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 74.0408048780488 2.844 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 74.299243902439 2.791 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 74.5164146341463 2.739 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 74.6992926829268 2.69 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 74.8578292682927 2.644 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 75.0049512195122 2.599 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 75.1505853658537 2.557 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 75.3021951219512 2.517 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 75.4622926829268 2.479 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#53B400 75.6303902439025 2.443 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110 | |
#C49A00 69.0330487804878 2.02 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 68.9780487804878 2.07 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 69.1268292682927 2.08 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 69.3756097560976 2.16 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 69.2780487804878 2.17 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 69.3804878048781 2.12 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 70.0853658536585 2.17 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 70.6439024390244 2.26 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 70.6975609756098 2.26 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 70.0390243902439 2.21 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 69.4756097560976 2.04 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 69.3731707317073 1.77 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 68.8634146341464 1.69 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 67.909756097561 1.45 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 66.5 1.37 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 67.5439024390244 1.32 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 69.6121951219512 1.335 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 69.809756097561 1.24 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 69.3585365853659 1.28 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 70.0634146341463 1.32 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 70.4170731707317 1.38 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 70.2585365853659 1.34 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 70.9048780487805 1.37 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 71.3170731707317 1.37 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 71.909756097561 1.47 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 72.5682926829268 1.5 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 72.6914634146341 1.55 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 72.8146341463415 1.63 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 73.7707317073171 1.65 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 74.8243902439024 1.62 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 75.4292682926829 1.63 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#C49A00 76.1268292682927 1.52 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51 | |
#00C094 56.1501951219512 5.366 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 56.733512195122 5.31 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 57.3074146341463 5.251 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 57.8743658536585 5.189 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 58.4373170731707 5.123 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 59.0012195121951 5.045 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 59.571 4.947 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 60.1521463414634 4.827 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 60.7506341463415 4.684 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 61.368512195122 4.522 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 62.0128292682927 4.35 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 62.6876585365854 4.179 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 63.3895853658537 4.018 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 64.1127073170732 3.876 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 64.8499756097561 3.757 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 65.5934634146342 3.659 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 66.3355853658537 3.58 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 67.0653170731707 3.512 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 67.7735853658537 3.447 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 68.4493658536585 3.382 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 69.0826585365854 3.315 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 69.6674390243902 3.247 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 70.203243902439 3.18 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 70.6915609756098 3.114 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 71.1338780487805 3.05 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 71.5286829268293 2.989 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 71.8789756097561 2.931 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 72.1922195121951 2.877 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 72.4754390243903 2.825 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 72.7341219512195 2.778 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 72.9752682926829 2.733 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#00C094 73.2019024390244 2.691 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138 | |
#FB61D7 43.9783658536585 6.513 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 43.9432926829268 6.509 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 44.0036097560976 6.499 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 44.1779024390244 6.481 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 44.4786829268293 6.456 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 44.9069756097561 6.423 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 45.4498048780488 6.386 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 46.0761707317073 6.345 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 46.7580731707317 6.304 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 47.4790243902439 6.26 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 48.2335365853659 6.215 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 49.0215853658537 6.164 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 49.8426585365854 6.107 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 50.692243902439 6.042 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 51.5528780487805 5.97 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 52.4046097560976 5.889 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 53.227 5.803 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 54.0065365853659 5.713 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 54.735756097561 5.62 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 55.4075853658537 5.526 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 56.0249756097561 5.43 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 56.5942926829268 5.334 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 57.1324634146342 5.235 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 57.6539268292683 5.135 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 58.1626829268293 5.033 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 58.6642682926829 4.931 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 59.1577317073171 4.831 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 59.6392195121951 4.732 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 60.1052682926829 4.636 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 60.5569268292683 4.543 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 60.9941951219512 4.453 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#FB61D7 61.4170731707317 4.366 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181 | |
#C49A00 75.3492682926829 2.217 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 75.5285365853659 2.031 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 76.1341463414634 1.936 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 75.9090243902439 1.792 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 76.2953658536586 1.72 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 76.259512195122 1.63 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 76.5104878048781 1.6 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 76.7280487804878 1.47 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 76.7470731707317 1.42 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 76.8136585365854 1.36 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 76.8375609756098 1.33 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 76.9712195121951 1.31 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 77.41 1.32 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 77.5465853658537 1.27 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 77.9014634146342 1.2 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 77.9807317073171 1.18 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 78.1204878048781 1.15 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 78.6041463414634 1.15 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 78.6658536585366 1.16 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 78.7170731707317 1.19 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 78.9658536585366 1.23 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 79.3682926829268 1.24 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 79.5682926829268 1.26 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 79.619512195122 1.31 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 79.8707317073171 1.32 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 80.1707317073171 1.34 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 80.8219512195122 1.37 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 80.8731707317073 1.39 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 81.1756097560976 1.46 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 81.4756097560976 1.39 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 81.6268292682927 1.38 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#C49A00 82.3268292682927 1.36 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85 | |
#FB61D7 43.914243902439 6.837 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 43.7784634146342 6.873 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 43.7421463414634 6.912 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 43.842243902439 6.95 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 44.0902682926829 6.984 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 44.4752195121951 7.014 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 44.9641219512195 7.04 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 45.5015365853659 7.061 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 46.0399512195122 7.076 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 46.5579024390244 7.083 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 47.0453902439024 7.078 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 47.5029024390244 7.059 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 47.9489512195122 7.024 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 48.398 6.97 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 48.8530487804878 6.898 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 49.3136341463415 6.805 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 49.7752682926829 6.693 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 50.2389512195122 6.561 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 50.7086829268293 6.414 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 51.1929268292683 6.253 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 51.7101219512195 6.08 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 52.2822195121951 5.894 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 52.9186829268293 5.699 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 53.618 5.498 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 54.3706585365854 5.294 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 55.1566585365854 5.091 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 55.9515609756098 4.893 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 56.7239268292683 4.703 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 57.4507804878049 4.522 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 58.1181707317073 4.352 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 58.7150975609756 4.193 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#FB61D7 59.2430975609756 4.045 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182 | |
#C49A00 73.44 1.63 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 73.7465853658537 1.65 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 74.2980487804878 1.72 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 74.2009756097561 1.74 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 74.5190243902439 1.7 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 74.2229268292683 1.64 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 74.56 1.6 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 74.5919512195122 1.59 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 74.5770731707317 1.7 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 74.7921951219512 1.71 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 74.8131707317073 1.78 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 75.2275609756098 1.8 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 75.4553658536585 1.85 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 75.7051219512195 1.81 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 76.3956097560976 1.85 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 76.409512195122 1.81 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 76.6934146341464 1.76 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 76.8785365853659 1.75 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 77.0907317073171 1.7 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 77.2912195121951 1.73 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 77.4658536585366 1.73 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 77.9658536585366 1.73 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 78.119512195122 1.72 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 78.3682926829268 1.76 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 78.7146341463415 1.8 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 78.8170731707317 1.8 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 79.2146341463415 1.84 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 79.2634146341464 1.83 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 79.5682926829268 1.85 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 79.719512195122 1.86 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 79.8707317073171 1.87 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#C49A00 80.4707317073171 1.83 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53 | |
#F8766D 63.0091463414634 3.907 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 63.2964634146341 3.864 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 63.5786829268293 3.813 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 63.8533414634146 3.755 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 64.1199756097561 3.693 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 64.3790975609756 3.629 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 64.6297073170732 3.568 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 64.8732926829268 3.512 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 65.1113414634146 3.465 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 65.3438536585366 3.427 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 65.5708536585366 3.398 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 65.7933170731707 3.374 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 66.011243902439 3.352 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 66.2241463414634 3.33 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 66.4335365853659 3.305 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 66.6389024390244 3.276 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 66.840243902439 3.244 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 67.0375609756098 3.209 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 67.2308536585366 3.171 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 67.4201219512195 3.132 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 67.6073170731707 3.09 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 67.7929024390244 3.047 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 67.9773658536586 3.001 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 68.1602682926829 2.954 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 68.3406585365854 2.907 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 68.515243902439 2.86 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 68.6791951219512 2.816 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 68.8316341463415 2.774 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 68.9715853658537 2.735 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 69.1020243902439 2.7 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 69.2258292682927 2.668 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 69.3493170731707 2.639 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6 | |
#F8766D 65.1835853658537 6.223 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 65.2895853658537 6.129 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 65.3735853658537 6.02 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 65.4535853658537 5.894 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 65.5395853658537 5.752 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 65.6365853658537 5.6 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 65.7455853658537 5.446 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 65.8585853658537 5.299 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 65.9725853658537 5.167 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 66.0845853658537 5.052 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 66.1975853658537 4.958 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 66.3101219512195 4.882 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 66.4226585365854 4.82 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 66.5357073170732 4.766 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 66.648243902439 4.716 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 66.759756097561 4.664 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 66.8677073170732 4.608 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 66.9716097560976 4.544 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 67.0729024390244 4.471 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 67.1726341463415 4.39 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 67.2737317073171 4.3 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 67.3792682926829 4.204 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 67.4937317073171 4.106 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 67.6171463414634 4.008 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 67.752512195122 3.914 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 67.8998536585366 3.824 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 68.0591707317073 3.74 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 68.2274878048781 3.661 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 68.402756097561 3.587 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 68.5830487804878 3.517 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 68.7648292682927 3.451 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#F8766D 68.9481219512195 3.39 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19 | |
#C49A00 74.0512195121951 1.85 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 74.3 1.85 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 74.5 1.86 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 74.8 1.86 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 75 1.86 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 75.3 1.86 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 75.6 1.85 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 75.8 1.83 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 76.1 1.81 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 76.3487804878049 1.79 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 76.6 1.77 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 76.8487804878049 1.75 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 77.1 1.74 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 77.3 1.73 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 77.6487804878049 1.73 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 77.7512195121951 1.74 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 77.9536585365854 1.75 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 78.3048780487805 1.77 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 78.4560975609756 1.78 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 78.6073170731707 1.81 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 78.9585365853659 1.89 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 79.0585365853659 1.9 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 79.2609756097561 1.88 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 79.2634146341464 1.89 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 80.1634146341463 1.92 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 80.1146341463415 1.94 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 80.5146341463415 2 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 80.8146341463415 1.98 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 80.8682926829268 2.01 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 81.0682926829268 2 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 81.3682926829268 2.03 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#C49A00 81.6682926829268 2.03 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54 | |
#FB61D7 54.8438292682927 5.17 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 55.6982682926829 5.185 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 56.5577073170732 5.195 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 57.4076341463415 5.197 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 58.2290975609756 5.194 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 58.9950975609756 5.189 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 59.6776585365854 5.185 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 60.2577804878049 5.185 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 60.7234878048781 5.186 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 61.0672682926829 5.187 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 61.2891219512195 5.178 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 61.3965365853659 5.15 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 61.4129756097561 5.097 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 61.3609512195122 5.015 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 61.2554878048781 4.906 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 61.0976097560976 4.774 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 60.8794390243903 4.625 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 60.6049512195122 4.472 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 60.2926829268293 4.322 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 59.9720487804878 4.181 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 59.6909512195122 4.051 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 59.4977804878049 3.933 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 59.4239024390244 3.823 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 59.483756097561 3.718 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 59.6818048780488 3.621 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 60.0055853658537 3.531 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 60.4271707317073 3.453 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 60.8991463414634 3.386 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 61.3811219512195 3.33 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 61.8491219512195 3.286 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 62.2866829268293 3.25 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#FB61D7 62.6912926829268 3.221 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183 | |
#C49A00 73.6756097560976 1.89 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 74.0268292682927 1.81 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 74.1780487804878 1.78 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 74.3780487804878 1.77 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 74.7780487804878 1.77 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 74.6292682926829 1.8 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 74.9292682926829 1.78 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 75.280487804878 1.82 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 75.3804878048781 1.83 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 75.5829268292683 1.8 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 75.8804878048781 1.83 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 76.0829268292683 1.82 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 76.4341463414634 1.79 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 76.3853658536585 1.82 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 76.8853658536585 1.74 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 76.8365853658537 1.71 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 77.0878048780488 1.72 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 77.2109756097561 1.72 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 77.190243902439 1.71 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 77.390243902439 1.68 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 77.7414634146342 1.64 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 77.9926829268293 1.63 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 78.1439024390244 1.64 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 78.4463414634146 1.71 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 78.7463414634146 1.77 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 79.0487804878049 1.78 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 79.2487804878049 1.84 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 79.4487804878049 1.9 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 79.6 1.96 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 80.0512195121951 1.94 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 80.4024390243902 1.98 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#C49A00 80.7536585365854 1.98 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92 | |
#53B400 65.0093170731707 4.251 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 65.1253170731707 4.244 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 65.2791707317073 4.243 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 65.4833658536585 4.245 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 65.7467804878049 4.243 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 66.0871707317073 4.231 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 66.5171951219512 4.2 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 67.0341463414634 4.146 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 67.6214146341463 4.068 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 68.2620731707317 3.966 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 68.9273658536586 3.842 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 69.5831951219512 3.701 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 70.2019268292683 3.551 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 70.7642926829268 3.401 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 71.2583170731707 3.254 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 71.6853658536585 3.116 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 72.0596829268293 2.988 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 72.4058780487805 2.87 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 72.7436829268293 2.762 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 73.0774634146342 2.666 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 73.4077073170732 2.582 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 73.727 2.512 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 74.026512195122 2.455 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 74.2989512195122 2.41 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 74.5443414634146 2.374 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 74.7642682926829 2.345 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 74.962756097561 2.322 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 75.146756097561 2.301 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 75.3217804878049 2.28 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 75.4923414634146 2.258 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 75.6604390243903 2.235 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#53B400 75.8270731707317 2.21 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112 | |
#C49A00 69.3627804878049 2.315 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 69.3865609756098 2.296 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 69.4243658536585 2.284 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 69.4941707317073 2.277 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 69.5999268292683 2.275 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 69.7340731707317 2.273 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 69.880512195122 2.269 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 70.0147073170732 2.26 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 70.1217073170732 2.243 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 70.1985609756098 2.217 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 70.2478780487805 2.18 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 70.2768292682927 2.132 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 70.3020487804878 2.076 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 70.3386097560976 2.013 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 70.396512195122 1.946 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 70.4902682926829 1.88 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 70.6292926829268 1.815 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 70.8139512195122 1.756 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 71.0381219512195 1.703 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 71.2931951219512 1.659 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 71.5630975609756 1.625 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 71.8267317073171 1.601 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 72.0686341463415 1.586 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 72.2758292682927 1.577 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 72.4473414634146 1.574 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 72.5887804878049 1.573 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 72.7142439024391 1.572 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 72.8413414634146 1.571 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 72.9846341463415 1.568 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 73.1471463414634 1.563 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#C49A00 73.3273414634146 1.555 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55 | |
#FB61D7 53.1104390243902 6.539 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 53.4090731707317 6.468 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 53.6894634146342 6.392 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 53.9646585365854 6.31 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 54.2455365853659 6.223 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 54.5554146341463 6.131 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 54.9205609756098 6.035 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 55.3458536585366 5.935 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 55.8246829268293 5.831 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 56.3380487804878 5.725 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 56.8430243902439 5.616 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 57.2862926829268 5.505 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 57.6300487804878 5.392 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 57.8559512195122 5.278 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 57.9690731707317 5.166 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 57.9929268292683 5.058 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 57.9684878048781 4.957 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 57.9551219512195 4.866 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 58.001243902439 4.786 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 58.1348048780488 4.716 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 58.382243902439 4.656 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 58.7555365853659 4.607 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 59.2321951219512 4.564 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 59.7857317073171 4.525 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 60.3966097560976 4.487 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 61.0383170731707 4.447 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 61.6813658536585 4.402 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 62.300243902439 4.352 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 62.8735121951219 4.297 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 63.3881707317073 4.236 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 63.8372682926829 4.17 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#FB61D7 64.2243170731707 4.1 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185 | |
#C49A00 65.3414634146341 2.53 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greenland 58 | |
#C49A00 65.2853658536585 2.683 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greenland 58 | |
#C49A00 65.3365853658537 2.39 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greenland 58 | |
#C49A00 65.4390243902439 2.34 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greenland 58 | |
#C49A00 65.9268292682927 2.308 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greenland 58 | |
#C49A00 66.9268292682927 2.451 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greenland 58 | |
#C49A00 68.8634146341464 2.489 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greenland 58 | |
#C49A00 68.4853658536586 2.3 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greenland 58 | |
#C49A00 68.4390243902439 2.23 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greenland 58 | |
#C49A00 68.3541463414634 2.247 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greenland 58 | |
#C49A00 70.2390243902439 2.2 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greenland 58 | |
#FB61D7 47.5411707317073 6.337 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 48.3959756097561 6.324 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 49.2307804878049 6.305 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 50.0315853658537 6.28 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 50.7813658536585 6.252 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 51.4521219512195 6.223 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 52.0128292682927 6.194 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 52.4534634146342 6.166 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 52.7760487804878 6.139 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 52.9915609756098 6.114 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 53.1250487804878 6.09 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 53.209 6.066 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 53.2834634146341 6.039 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 53.3804390243902 6.009 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 53.5204634146342 5.974 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 53.7135365853659 5.933 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 53.9596341463415 5.885 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 54.2402682926829 5.831 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 54.5374146341464 5.772 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 54.8450731707317 5.708 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 55.156756097561 5.64 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 55.4654878048781 5.57 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 55.768756097561 5.498 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 56.0655609756098 5.426 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 56.3548536585366 5.354 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 56.6400731707317 5.281 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 56.9266585365854 5.208 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 57.2200487804878 5.133 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 57.524243902439 5.056 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 57.8382195121951 4.977 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 58.1600243902439 4.896 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 58.4847073170732 4.814 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184 | |
#FB61D7 38.8347317073171 6.942 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 39.3296829268293 6.948 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 39.8195609756098 6.951 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 40.3074146341463 6.949 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 40.7927073170732 6.942 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 41.2764878048781 6.929 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 41.7607317073171 6.908 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 42.2454634146342 6.879 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 42.7276829268293 6.842 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 43.2059268292683 6.797 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 43.6706829268293 6.745 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 44.1099512195122 6.685 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 44.521756097561 6.619 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 44.9085853658537 6.547 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 45.2789512195122 6.471 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 45.6518536585366 6.393 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 46.0488292682927 6.313 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 46.4883414634146 6.232 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 46.9789024390244 6.15 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 47.522 6.07 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 48.1101463414634 5.991 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 48.7298292682927 5.915 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 49.3570243902439 5.841 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 49.9737317073171 5.769 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 50.5689512195122 5.698 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 51.1356585365854 5.628 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 51.6733658536585 5.557 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 52.1885609756098 5.483 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 52.687243902439 5.407 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 53.1699268292683 5.327 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 53.6385853658537 5.246 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 54.092243902439 5.162 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186 | |
#FB61D7 42.8141707317073 5.728 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 43.1603902439024 5.751 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 43.5227073170732 5.776 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 43.9001707317073 5.802 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 44.289756097561 5.826 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 44.6929268292683 5.848 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 45.1081463414634 5.866 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 45.5308292682927 5.881 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 45.9539512195122 5.891 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 46.3684634146341 5.897 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 46.7654390243902 5.9 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 47.1348536585366 5.901 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 47.4722926829268 5.902 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 47.7722926829268 5.902 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 48.0313902439024 5.901 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 48.2426097560976 5.897 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 48.4 5.888 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 48.5115365853659 5.872 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 48.5871951219512 5.847 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 48.6409512195122 5.814 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 48.6902682926829 5.773 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 48.7555609756098 5.726 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 48.8517804878049 5.675 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 48.9889268292683 5.622 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 49.1719268292683 5.567 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 49.4002926829268 5.511 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 49.665512195122 5.454 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 49.9526341463415 5.393 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 50.2472195121951 5.328 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 50.544756097561 5.259 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 50.8408048780488 5.185 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#FB61D7 51.1368780487805 5.106 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180 | |
#C49A00 74.4152926829268 2.226 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 74.6970487804878 2.091 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 74.976 2.024 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 75.2491707317073 1.94 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 75.514512195122 1.823 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 75.7699756097561 1.677 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 76.016 1.615 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 76.2514878048781 1.5 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 76.4773658536585 1.5 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 76.6878048780488 1.41 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 76.9390243902439 1.4 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 77.1365853658537 1.38 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 77.3829268292683 1.38 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 77.390243902439 1.34 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 77.6390243902439 1.36 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 77.5853658536585 1.32 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 77.6853658536585 1.3 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 78.1365853658537 1.31 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 77.8390243902439 1.26 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 77.9878048780488 1.24 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 77.8878048780488 1.26 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 78.3878048780488 1.25 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 78.6414634146341 1.27 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 78.8414634146341 1.28 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 79.0390243902439 1.3 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 79.2390243902439 1.33 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 79.4390243902439 1.4 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 79.4390243902439 1.41 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 79.9390243902439 1.51 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 80.1878048780488 1.52 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 80.3878048780488 1.51 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#C49A00 80.7439024390244 1.43 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57 | |
#53B400 57.312 6.18 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 57.7413170731707 6.152 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 58.1876341463415 6.109 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 58.6529756097561 6.054 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 59.1393658536585 5.987 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 59.6447804878049 5.913 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 60.1651951219512 5.837 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 60.6946097560976 5.764 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 61.2254878048781 5.697 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 61.7563658536585 5.636 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 62.2866829268293 5.58 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 62.8184634146342 5.525 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 63.3537073170732 5.465 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 63.8934634146341 5.397 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 64.4368292682927 5.32 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 64.9863902439024 5.237 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 65.5438048780488 5.148 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 66.1061463414634 5.058 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 66.6674146341464 4.97 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 67.2181219512195 4.884 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 67.7441707317073 4.801 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 68.2289512195122 4.717 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 68.6623170731707 4.633 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 69.0421219512195 4.546 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 69.3678048780488 4.458 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 69.6478536585366 4.369 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 69.8947317073171 4.282 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 70.1250487804878 4.199 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 70.3523414634146 4.122 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 70.5846341463415 4.05 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 70.8254146341463 3.983 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#53B400 71.0722195121951 3.922 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113 | |
#F8766D 69.3905365853659 3.247 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 69.6865365853659 3.173 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 69.9755365853659 3.12 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 70.2585365853659 3.088 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 70.5355365853659 3.076 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 70.8075365853659 3.079 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 71.0755365853659 3.092 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 71.3375365853659 3.108 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 71.5935365853659 3.122 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 71.8435365853659 3.13 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 72.0855365853659 3.131 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 72.3200487804878 3.124 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 72.5460487804878 3.114 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 72.7625609756098 3.101 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 72.9715609756098 3.086 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 73.1750731707317 3.067 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 73.3745609756098 3.042 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 73.5725365853659 3.01 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 73.77 2.972 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 73.9679512195122 2.927 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 74.1653902439025 2.878 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 74.3608048780488 2.825 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 74.5532195121951 2.772 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 74.7411219512195 2.721 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 74.9240487804878 2.673 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 75.1039512195122 2.63 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 75.2823902439024 2.591 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 75.4598292682927 2.556 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 75.6378048780488 2.524 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 75.8167804878049 2.496 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 75.9942682926829 2.47 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#F8766D 76.1687804878049 2.446 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8 | |
#FB61D7 40.0567317073171 6.322 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 40.4640487804878 6.423 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 40.858756097561 6.542 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 41.2253414634146 6.642 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 41.5543170731707 6.71 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 41.840756097561 6.743 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 42.0841951219512 6.743 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 42.2952195121951 6.728 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 42.4848780487805 6.706 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 42.6596829268293 6.68 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 42.8241463414634 6.649 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 42.984756097561 6.608 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 43.1449756097561 6.554 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 43.310243902439 6.486 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 43.4850243902439 6.404 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 43.6752926829268 6.312 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 43.885512195122 6.214 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 44.1151951219512 6.115 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 44.3603170731707 6.02 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 44.6193658536585 5.93 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 44.8848780487805 5.846 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 45.1468536585366 5.768 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 45.3988048780488 5.692 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 45.6397804878049 5.616 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 45.873243902439 5.54 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 46.1096585365854 5.462 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 46.3619756097561 5.383 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 46.6426829268293 5.303 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 46.9592682926829 5.222 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 47.313243902439 5.142 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 47.7006585365854 5.063 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#FB61D7 48.1125853658537 4.988 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187 | |
#53B400 59.5235853658537 3.567 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 59.768243902439 3.432 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 59.985756097561 3.301 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 60.1744146341463 3.174 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 60.3373902439024 3.052 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 60.4773414634146 2.938 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 60.5988048780488 2.836 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 60.712243902439 2.749 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 60.8275853658537 2.678 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 60.9543414634146 2.624 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 61.1014634146342 2.586 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 61.2744390243902 2.56 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 61.4771707317073 2.544 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 61.7111219512195 2.534 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 61.9812195121951 2.526 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 62.2924878048781 2.518 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 62.6478780487805 2.509 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 63.0444390243902 2.5 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 63.4786341463415 2.49 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 63.9464390243903 2.479 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 64.4482682926829 2.466 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 64.9855609756098 2.451 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 65.551756097561 2.435 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 66.1368780487805 2.419 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 66.7268780487805 2.401 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 67.3033170731707 2.382 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 67.8472195121951 2.362 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 68.3481707317073 2.34 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 68.7992195121951 2.315 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 69.1978780487805 2.289 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 69.5491463414634 2.262 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#53B400 69.862512195122 2.234 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114 | |
#F8766D 74.6731707317073 2.047 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Hong Kong SAR, China 9 | |
#F8766D 75.3243902439025 1.933 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Hong Kong SAR, China 9 | |
#F8766D 75.4292682926829 1.86 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Hong Kong SAR, China 9 | |
#F8766D 75.2756097560976 1.722 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Hong Kong SAR, China 9 | |
#F8766D 76.0292682926829 1.559 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Hong Kong SAR, China 9 | |
#F8766D 76. |
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)