Skip to content

Instantly share code, notes, and snippets.

@sdbernard
Last active November 2, 2017 17:47
Show Gist options
  • Save sdbernard/2e44bd82c9d048b88451 to your computer and use it in GitHub Desktop.
Save sdbernard/2e44bd82c9d048b88451 to your computer and use it in GitHub Desktop.
d3 module2
var colorbrewer={YlGn:{3:["#f7fcb9","#addd8e","#31a354"],4:["#ffffcc","#c2e699","#78c679","#238443"],5:["#ffffcc","#c2e699","#78c679","#31a354","#006837"],6:["#ffffcc","#d9f0a3","#addd8e","#78c679","#31a354","#006837"],7:["#ffffcc","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#005a32"],8:["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#005a32"],9:["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"]},YlGnBu:{3:["#edf8b1","#7fcdbb","#2c7fb8"],4:["#ffffcc","#a1dab4","#41b6c4","#225ea8"],5:["#ffffcc","#a1dab4","#41b6c4","#2c7fb8","#253494"],6:["#ffffcc","#c7e9b4","#7fcdbb","#41b6c4","#2c7fb8","#253494"],7:["#ffffcc","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#0c2c84"],8:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#0c2c84"],9:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"]},GnBu:{3:["#e0f3db","#a8ddb5","#43a2ca"],4:["#f0f9e8","#bae4bc","#7bccc4","#2b8cbe"],5:["#f0f9e8","#bae4bc","#7bccc4","#43a2ca","#0868ac"],6:["#f0f9e8","#ccebc5","#a8ddb5","#7bccc4","#43a2ca","#0868ac"],7:["#f0f9e8","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#08589e"],8:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#08589e"],9:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"]},BuGn:{3:["#e5f5f9","#99d8c9","#2ca25f"],4:["#edf8fb","#b2e2e2","#66c2a4","#238b45"],5:["#edf8fb","#b2e2e2","#66c2a4","#2ca25f","#006d2c"],6:["#edf8fb","#ccece6","#99d8c9","#66c2a4","#2ca25f","#006d2c"],7:["#edf8fb","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#005824"],8:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#005824"],9:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"]},PuBuGn:{3:["#ece2f0","#a6bddb","#1c9099"],4:["#f6eff7","#bdc9e1","#67a9cf","#02818a"],5:["#f6eff7","#bdc9e1","#67a9cf","#1c9099","#016c59"],6:["#f6eff7","#d0d1e6","#a6bddb","#67a9cf","#1c9099","#016c59"],7:["#f6eff7","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016450"],8:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016450"],9:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"]},PuBu:{3:["#ece7f2","#a6bddb","#2b8cbe"],4:["#f1eef6","#bdc9e1","#74a9cf","#0570b0"],5:["#f1eef6","#bdc9e1","#74a9cf","#2b8cbe","#045a8d"],6:["#f1eef6","#d0d1e6","#a6bddb","#74a9cf","#2b8cbe","#045a8d"],7:["#f1eef6","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#034e7b"],8:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#034e7b"],9:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"]},BuPu:{3:["#e0ecf4","#9ebcda","#8856a7"],4:["#edf8fb","#b3cde3","#8c96c6","#88419d"],5:["#edf8fb","#b3cde3","#8c96c6","#8856a7","#810f7c"],6:["#edf8fb","#bfd3e6","#9ebcda","#8c96c6","#8856a7","#810f7c"],7:["#edf8fb","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#6e016b"],8:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#6e016b"],9:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"]},RdPu:{3:["#fde0dd","#fa9fb5","#c51b8a"],4:["#feebe2","#fbb4b9","#f768a1","#ae017e"],5:["#feebe2","#fbb4b9","#f768a1","#c51b8a","#7a0177"],6:["#feebe2","#fcc5c0","#fa9fb5","#f768a1","#c51b8a","#7a0177"],7:["#feebe2","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177"],8:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177"],9:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"]},PuRd:{3:["#e7e1ef","#c994c7","#dd1c77"],4:["#f1eef6","#d7b5d8","#df65b0","#ce1256"],5:["#f1eef6","#d7b5d8","#df65b0","#dd1c77","#980043"],6:["#f1eef6","#d4b9da","#c994c7","#df65b0","#dd1c77","#980043"],7:["#f1eef6","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#91003f"],8:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#91003f"],9:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"]},OrRd:{3:["#fee8c8","#fdbb84","#e34a33"],4:["#fef0d9","#fdcc8a","#fc8d59","#d7301f"],5:["#fef0d9","#fdcc8a","#fc8d59","#e34a33","#b30000"],6:["#fef0d9","#fdd49e","#fdbb84","#fc8d59","#e34a33","#b30000"],7:["#fef0d9","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#990000"],8:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#990000"],9:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#b30000","#7f0000"]},YlOrRd:{3:["#ffeda0","#feb24c","#f03b20"],4:["#ffffb2","#fecc5c","#fd8d3c","#e31a1c"],5:["#ffffb2","#fecc5c","#fd8d3c","#f03b20","#bd0026"],6:["#ffffb2","#fed976","#feb24c","#fd8d3c","#f03b20","#bd0026"],7:["#ffffb2","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#b10026"],8:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#b10026"],9:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"]},YlOrBr:{3:["#fff7bc","#fec44f","#d95f0e"],4:["#ffffd4","#fed98e","#fe9929","#cc4c02"],5:["#ffffd4","#fed98e","#fe9929","#d95f0e","#993404"],6:["#ffffd4","#fee391","#fec44f","#fe9929","#d95f0e","#993404"],7:["#ffffd4","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#8c2d04"],8:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#8c2d04"],9:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"]},Purples:{3:["#efedf5","#bcbddc","#756bb1"],4:["#f2f0f7","#cbc9e2","#9e9ac8","#6a51a3"],5:["#f2f0f7","#cbc9e2","#9e9ac8","#756bb1","#54278f"],6:["#f2f0f7","#dadaeb","#bcbddc","#9e9ac8","#756bb1","#54278f"],7:["#f2f0f7","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#4a1486"],8:["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#4a1486"],9:["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"]},Blues:{3:["#deebf7","#9ecae1","#3182bd"],4:["#eff3ff","#bdd7e7","#6baed6","#2171b5"],5:["#eff3ff","#bdd7e7","#6baed6","#3182bd","#08519c"],6:["#eff3ff","#c6dbef","#9ecae1","#6baed6","#3182bd","#08519c"],7:["#eff3ff","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#084594"],8:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#084594"],9:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c","#08306b"]},Greens:{3:["#e5f5e0","#a1d99b","#31a354"],4:["#edf8e9","#bae4b3","#74c476","#238b45"],5:["#edf8e9","#bae4b3","#74c476","#31a354","#006d2c"],6:["#edf8e9","#c7e9c0","#a1d99b","#74c476","#31a354","#006d2c"],7:["#edf8e9","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#005a32"],8:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#005a32"],9:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"]},Oranges:{3:["#fee6ce","#fdae6b","#e6550d"],4:["#feedde","#fdbe85","#fd8d3c","#d94701"],5:["#feedde","#fdbe85","#fd8d3c","#e6550d","#a63603"],6:["#feedde","#fdd0a2","#fdae6b","#fd8d3c","#e6550d","#a63603"],7:["#feedde","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#8c2d04"],8:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#8c2d04"],9:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"]},Reds:{3:["#fee0d2","#fc9272","#de2d26"],4:["#fee5d9","#fcae91","#fb6a4a","#cb181d"],5:["#fee5d9","#fcae91","#fb6a4a","#de2d26","#a50f15"],6:["#fee5d9","#fcbba1","#fc9272","#fb6a4a","#de2d26","#a50f15"],7:["#fee5d9","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#99000d"],8:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#99000d"],9:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"]},Greys:{3:["#f0f0f0","#bdbdbd","#636363"],4:["#f7f7f7","#cccccc","#969696","#525252"],5:["#f7f7f7","#cccccc","#969696","#636363","#252525"],6:["#f7f7f7","#d9d9d9","#bdbdbd","#969696","#636363","#252525"],7:["#f7f7f7","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525"],8:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525"],9:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"]},PuOr:{3:["#f1a340","#f7f7f7","#998ec3"],4:["#e66101","#fdb863","#b2abd2","#5e3c99"],5:["#e66101","#fdb863","#f7f7f7","#b2abd2","#5e3c99"],6:["#b35806","#f1a340","#fee0b6","#d8daeb","#998ec3","#542788"],7:["#b35806","#f1a340","#fee0b6","#f7f7f7","#d8daeb","#998ec3","#542788"],8:["#b35806","#e08214","#fdb863","#fee0b6","#d8daeb","#b2abd2","#8073ac","#542788"],9:["#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788"],10:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],11:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"]},BrBG:{3:["#d8b365","#f5f5f5","#5ab4ac"],4:["#a6611a","#dfc27d","#80cdc1","#018571"],5:["#a6611a","#dfc27d","#f5f5f5","#80cdc1","#018571"],6:["#8c510a","#d8b365","#f6e8c3","#c7eae5","#5ab4ac","#01665e"],7:["#8c510a","#d8b365","#f6e8c3","#f5f5f5","#c7eae5","#5ab4ac","#01665e"],8:["#8c510a","#bf812d","#dfc27d","#f6e8c3","#c7eae5","#80cdc1","#35978f","#01665e"],9:["#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e"],10:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"],11:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"]},PRGn:{3:["#af8dc3","#f7f7f7","#7fbf7b"],4:["#7b3294","#c2a5cf","#a6dba0","#008837"],5:["#7b3294","#c2a5cf","#f7f7f7","#a6dba0","#008837"],6:["#762a83","#af8dc3","#e7d4e8","#d9f0d3","#7fbf7b","#1b7837"],7:["#762a83","#af8dc3","#e7d4e8","#f7f7f7","#d9f0d3","#7fbf7b","#1b7837"],8:["#762a83","#9970ab","#c2a5cf","#e7d4e8","#d9f0d3","#a6dba0","#5aae61","#1b7837"],9:["#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837"],10:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],11:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"]},PiYG:{3:["#e9a3c9","#f7f7f7","#a1d76a"],4:["#d01c8b","#f1b6da","#b8e186","#4dac26"],5:["#d01c8b","#f1b6da","#f7f7f7","#b8e186","#4dac26"],6:["#c51b7d","#e9a3c9","#fde0ef","#e6f5d0","#a1d76a","#4d9221"],7:["#c51b7d","#e9a3c9","#fde0ef","#f7f7f7","#e6f5d0","#a1d76a","#4d9221"],8:["#c51b7d","#de77ae","#f1b6da","#fde0ef","#e6f5d0","#b8e186","#7fbc41","#4d9221"],9:["#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221"],10:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],11:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"]},RdBu:{3:["#ef8a62","#f7f7f7","#67a9cf"],4:["#ca0020","#f4a582","#92c5de","#0571b0"],5:["#ca0020","#f4a582","#f7f7f7","#92c5de","#0571b0"],6:["#b2182b","#ef8a62","#fddbc7","#d1e5f0","#67a9cf","#2166ac"],7:["#b2182b","#ef8a62","#fddbc7","#f7f7f7","#d1e5f0","#67a9cf","#2166ac"],8:["#b2182b","#d6604d","#f4a582","#fddbc7","#d1e5f0","#92c5de","#4393c3","#2166ac"],9:["#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac"],10:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],11:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"]},RdGy:{3:["#ef8a62","#ffffff","#999999"],4:["#ca0020","#f4a582","#bababa","#404040"],5:["#ca0020","#f4a582","#ffffff","#bababa","#404040"],6:["#b2182b","#ef8a62","#fddbc7","#e0e0e0","#999999","#4d4d4d"],7:["#b2182b","#ef8a62","#fddbc7","#ffffff","#e0e0e0","#999999","#4d4d4d"],8:["#b2182b","#d6604d","#f4a582","#fddbc7","#e0e0e0","#bababa","#878787","#4d4d4d"],9:["#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d"],10:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],11:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"]},RdYlBu:{3:["#fc8d59","#ffffbf","#91bfdb"],4:["#d7191c","#fdae61","#abd9e9","#2c7bb6"],5:["#d7191c","#fdae61","#ffffbf","#abd9e9","#2c7bb6"],6:["#d73027","#fc8d59","#fee090","#e0f3f8","#91bfdb","#4575b4"],7:["#d73027","#fc8d59","#fee090","#ffffbf","#e0f3f8","#91bfdb","#4575b4"],8:["#d73027","#f46d43","#fdae61","#fee090","#e0f3f8","#abd9e9","#74add1","#4575b4"],9:["#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4"],10:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],11:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"]},Spectral:{3:["#fc8d59","#ffffbf","#99d594"],4:["#d7191c","#fdae61","#abdda4","#2b83ba"],5:["#d7191c","#fdae61","#ffffbf","#abdda4","#2b83ba"],6:["#d53e4f","#fc8d59","#fee08b","#e6f598","#99d594","#3288bd"],7:["#d53e4f","#fc8d59","#fee08b","#ffffbf","#e6f598","#99d594","#3288bd"],8:["#d53e4f","#f46d43","#fdae61","#fee08b","#e6f598","#abdda4","#66c2a5","#3288bd"],9:["#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd"],10:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],11:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"]},RdYlGn:{3:["#fc8d59","#ffffbf","#91cf60"],4:["#d7191c","#fdae61","#a6d96a","#1a9641"],5:["#d7191c","#fdae61","#ffffbf","#a6d96a","#1a9641"],6:["#d73027","#fc8d59","#fee08b","#d9ef8b","#91cf60","#1a9850"],7:["#d73027","#fc8d59","#fee08b","#ffffbf","#d9ef8b","#91cf60","#1a9850"],8:["#d73027","#f46d43","#fdae61","#fee08b","#d9ef8b","#a6d96a","#66bd63","#1a9850"],9:["#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850"],10:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],11:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"]},Accent:{3:["#7fc97f","#beaed4","#fdc086"],4:["#7fc97f","#beaed4","#fdc086","#ffff99"],5:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0"],6:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f"],7:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17"],8:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"]},Dark2:{3:["#1b9e77","#d95f02","#7570b3"],4:["#1b9e77","#d95f02","#7570b3","#e7298a"],5:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e"],6:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02"],7:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d"],8:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"]},Paired:{3:["#a6cee3","#1f78b4","#b2df8a"],4:["#a6cee3","#1f78b4","#b2df8a","#33a02c"],5:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99"],6:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c"],7:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f"],8:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00"],9:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6"],10:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a"],11:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99"],12:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"]},Pastel1:{3:["#fbb4ae","#b3cde3","#ccebc5"],4:["#fbb4ae","#b3cde3","#ccebc5","#decbe4"],5:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6"],6:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc"],7:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd"],8:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec"],9:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec","#f2f2f2"]},Pastel2:{3:["#b3e2cd","#fdcdac","#cbd5e8"],4:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4"],5:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9"],6:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae"],7:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc"],8:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"]},Set1:{3:["#e41a1c","#377eb8","#4daf4a"],4:["#e41a1c","#377eb8","#4daf4a","#984ea3"],5:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00"],6:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33"],7:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628"],8:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf"],9:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999999"]},Set2:{3:["#66c2a5","#fc8d62","#8da0cb"],4:["#66c2a5","#fc8d62","#8da0cb","#e78ac3"],5:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854"],6:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f"],7:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494"],8:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"]},Set3:{3:["#8dd3c7","#ffffb3","#bebada"],4:["#8dd3c7","#ffffb3","#bebada","#fb8072"],5:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3"],6:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462"],7:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69"],8:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5"],9:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9"],10:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd"],11:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5"],12:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"]}};
Country 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015
Afghanistan 500 1000 1000 1000 1200 1400 1500 1600 1800 1900 2100 2300 2500 2800 3000 3300 3600 3800 4100 4400 4800 5200 5600 6100 6700
Algeria 500 500 1000 1000 1000 1000 1100 1300 1500 1800 2000 2400 2700 3100 3500 4000 4500 5100 5700 6500 7200 8000 8800 9600 11000
Angola 27000 32000 39000 46000 55000 64000 74000 86000 97000 110000 120000 140000 150000 160000 180000 190000 200000 220000 230000 240000 260000 270000 280000 290000 300000
Argentina 19000 23000 26000 30000 35000 39000 43000 47000 51000 56000 61000 65000 70000 76000 81000 85000 90000 95000 100000 100000 110000 110000 120000 120000 130000
Armenia 100 100 100 100 100 100 200 500 500 1000 1000 1400 1900 2300 2700 2900 3100 3200 3300 3400 3500 3600 3700 3800 4000
Azerbaijan 100 100 100 100 100 200 500 500 1000 1000 1200 1700 2200 2700 3300 3800 4300 4800 5300 5900 6400 6900 7400 7900 8400
Bangladesh 100 100 100 100 200 200 500 500 500 1000 1000 1400 2000 2600 3300 4100 4800 5500 6200 6900 7500 8000 8400 8700 8900
Belarus 100 200 500 500 1000 1000 1700 2500 3700 5200 6900 8800 11000 13000 14000 16000 17000 19000 20000 22000 23000 25000 26000 28000 29000
Belize 100 100 100 100 100 200 500 1000 1100 1500 1900 2100 2200 2200 2300 2400 2400 2400 2500 2500 2500 2500 2600 2600 2700
Benin 13000 16000 19000 23000 27000 32000 37000 41000 45000 49000 52000 55000 58000 60000 61000 62000 63000 63000 64000 67000 70000 74000 76000 77000 78000
Bolivia 1000 1000 1100 1600 2100 2800 3500 4200 5100 5900 6700 7600 8500 9500 11000 11000 12000 13000 14000 15000 15000 16000 17000 17000 18000
Botswana 48000 70000 97000 130000 160000 190000 220000 250000 270000 290000 310000 320000 320000 320000 330000 330000 340000 340000 350000 350000 360000 370000 380000 380000 390000
Brazil 294200 324900 335900 346700 357700 368300 379300 400500 411300 442100 472900 494000 506000 537000 558000 588000 608500 638500 658500 687500 707500 737000 756000 785000 774000
Burkina Faso 150000 170000 180000 190000 190000 200000 190000 190000 180000 170000 170000 160000 150000 140000 130000 120000 120000 110000 110000 110000 110000 110000 110000 110000 110000
Burundi 38000 47000 57000 68000 79000 90000 100000 110000 110000 120000 120000 130000 130000 130000 120000 120000 120000 110000 110000 100000 100000 95000 91000 88000 85000
Cambodia 1500 4300 12000 27000 48000 70000 89000 100000 110000 120000 120000 110000 110000 100000 98000 93000 90000 88000 87000 86000 84000 81000 79000 77000 75000
Cameroon 160000 190000 220000 260000 290000 330000 360000 400000 430000 450000 480000 500000 510000 530000 540000 550000 560000 580000 590000 600000 620000 630000 640000 650000 660000
Cape Verde 1000 1000 1000 1000 1000 1200 1300 1500 1600 1800 1900 2000 2100 2200 2200 2300 2300 2500 2600 2700 2800 2900 3100 3200 3400
CAR 68000 85000 100000 130000 150000 170000 180000 190000 200000 210000 210000 200000 200000 190000 180000 170000 170000 160000 150000 150000 150000 140000 140000 140000 140000
Chad 42000 50000 58000 68000 78000 89000 100000 110000 130000 140000 150000 170000 180000 190000 200000 200000 210000 210000 210000 210000 220000 220000 220000 220000 210000
Chile 12000 13000 13000 14000 15000 15000 16000 17000 17000 18000 19000 20000 21000 22000 24000 25000 27000 28000 30000 32000 33000 35000 36000 38000 39000
Colombia 14000 19000 26000 33000 44000 58000 78000 96000 110000 120000 120000 120000 120000 120000 120000 120000 120000 130000 130000 120000 120000 120000 120000 120000 120000
Congo 51000 59000 67000 74000 81000 87000 92000 96000 99000 100000 100000 100000 100000 97000 95000 92000 90000 88000 86000 85000 83000 83000 82000 81000 81000
Costa Rica 1400 1500 1600 1800 2000 2100 2300 2600 2800 3000 3300 3700 4100 4600 5100 5500 6000 6400 6800 7200 7500 8000 8200 8500 8800
Cuba 1000 1000 1100 1200 1400 1500 1700 1900 2100 2400 2600 3000 3400 4000 4600 5200 6000 6800 7800 8900 10000 12000 13000 15000 17000
Côte d'Ivoire 180000 220000 260000 300000 340000 380000 410000 440000 470000 490000 500000 510000 510000 500000 490000 490000 480000 470000 470000 460000 460000 460000 460000 460000 460000
Dem. Rep. of the Congo 310000 330000 360000 380000 400000 410000 420000 430000 430000 440000 440000 450000 450000 450000 450000 450000 450000 450000 450000 450000 450000 450000 450000 450000 450000
Denmark 2100 2200 2300 2400 2500 2500 2600 2700 2900 3100 3300 3500 3700 3900 4000 4200 4400 4600 4800 5000 5200 5400 5600 5800 6000
Djibouti 1000 1300 2100 3200 4500 6000 7500 9100 10000 12000 12000 13000 13000 13000 13000 12000 12000 11000 11000 11000 10000 10000 10000 10000 9900
Dominican Republic 17000 24000 32000 41000 51000 60000 70000 78000 85000 90000 94000 95000 95000 94000 91000 88000 85000 82000 80000 78000 76000 74000 72000 70000 69000
Ecuador 5600 8800 12000 16000 20000 23000 25000 26000 27000 28000 28000 29000 29000 29000 29000 29000 29000 29000 29000 30000 31000 31000 32000 32000 33000
Egypt 500 500 500 1000 1000 1000 1000 1100 1300 1500 1800 2000 2300 2600 3000 3300 3700 4200 4700 5300 5900 6500 7200 7900 8800
El Salvador 4300 4900 5700 6600 7500 8500 9600 11000 12000 13000 14000 15000 15000 16000 17000 17000 18000 19000 19000 20000 20000 20000 21000 21000 21000
Equatorial Guinea 200 500 500 500 1000 1000 1300 1800 2500 3400 4500 5900 7600 9600 12000 14000 17000 19000 22000 25000 27000 29000 30000 31000 32000
Eritrea 4900 6500 8100 9700 11000 13000 14000 16000 17000 19000 20000 21000 22000 22000 22000 21000 20000 19000 18000 18000 17000 17000 17000 16000 16000
Ethiopia 310000 410000 520000 640000 760000 870000 960000 1000000 1100000 1100000 1100000 1100000 1100000 1000000 970000 920000 870000 820000 790000 770000 750000 740000 740000 740000 730000
Fiji 100 100 100 100 100 200 200 200 200 500 500 500 500 500 500 500 500 500 500 500 500 500 1000 1000 1000
Gabon 6100 8000 10000 13000 17000 20000 24000 28000 33000 37000 40000 43000 46000 48000 49000 50000 51000 52000 51000 51000 50000 49000 48000 48000 48000
Gambia 1000 1000 1300 1800 2500 3300 4300 5500 6900 8400 9900 11000 13000 14000 15000 16000 17000 18000 19000 19000 19000 20000 20000 20000 20000
Georgia 500 500 1000 1000 1000 1000 1000 1000 1100 1300 1400 1600 1800 2000 2300 2600 2900 3300 3700 4200 4600 5100 5600 6100 6600
Ghana 98000 120000 130000 150000 170000 190000 210000 220000 240000 250000 250000 260000 260000 260000 260000 260000 260000 260000 250000 250000 250000 250000 250000 250000 250000
Guatemala 500 1000 1100 1800 2900 4600 6800 9700 13000 17000 21000 25000 28000 31000 34000 36000 38000 40000 42000 43000 45000 46000 47000 48000 49000
Guinea 21000 30000 40000 51000 62000 72000 80000 86000 90000 93000 95000 96000 97000 97000 97000 98000 98000 100000 100000 100000 110000 110000 110000 120000 120000
Guinea-Bissau 1500 2000 2700 3500 4500 5800 7300 9000 11000 13000 16000 19000 22000 24000 27000 29000 32000 34000 35000 37000 39000 40000 41000 42000 42000
Guyana 100 100 100 200 500 500 1000 1000 1400 2000 2600 3200 3900 4400 5000 5400 5900 6200 6600 7000 7400 7900 8400 9000 9700
Haiti 71000 86000 100000 120000 130000 140000 150000 160000 160000 170000 170000 160000 160000 150000 150000 140000 140000 140000 140000 140000 140000 140000 140000 140000 140000
Honduras 24000 29000 33000 36000 39000 41000 43000 43000 43000 42000 41000 39000 37000 35000 34000 32000 31000 29000 28000 27000 26000 25000 24000 24000 23000
Indonesia 200 500 500 1000 1800 3500 6800 12000 19000 28000 41000 62000 97000 140000 190000 240000 300000 350000 400000 460000 500000 550000 590000 630000 660000
Iran 1200 1500 1700 2000 2400 3200 4400 6500 9600 14000 19000 24000 30000 35000 39000 43000 47000 51000 54000 58000 62000 65000 68000 71000 74000
Ireland 500 500 1000 1000 1000 1100 1300 1600 1900 2200 2600 2900 3300 3800 4200 4600 5000 5400 5800 6200 6500 6900 7300 7700 8000
Jamaica 12000 16000 19000 22000 24000 27000 29000 31000 32000 33000 34000 34000 34000 34000 33000 33000 32000 32000 31000 31000 30000 30000 30000 29000 29000
Kazakhstan 1000 1000 1000 1000 1300 1600 2000 2500 3100 4100 5400 6800 7800 8700 9700 10000 11000 12000 13000 14000 15000 16000 17000 19000 20000
Kenya 650000 840000 1000000 1200000 1400000 1500000 1600000 1700000 1700000 1700000 1600000 1600000 1500000 1500000 1400000 1400000 1300000 1300000 1300000 1300000 1300000 1300000 1300000 1300000 1400000
Nigeria 590000 710000 850000 1000000 1200000 1400000 1600000 1800000 2000000 2200000 2400000 2500000 2600000 2800000 2900000 3000000 3000000 3100000 3200000 3200000 3300000 3300000 3400000 3400000 3400000
Kyrgyzstan 100 100 100 200 200 500 500 500 500 1000 1000 1000 1300 1700 2100 2600 3600 4700 5500 6400 7200 7900 8400 8800 9300
Laos 100 100 100 100 100 200 500 500 1000 1100 1800 2600 3300 4100 4900 5800 6700 7600 8300 9000 9600 10000 10000 11000 11000
Lebanon 500 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1100 1100 1200 1300 1300 1400 1400 1500 1600 1600 1700 1800 1800
Lesotho 9300 18000 32000 55000 87000 120000 160000 180000 200000 210000 220000 230000 230000 240000 240000 250000 260000 260000 270000 280000 290000 290000 300000 310000 310000
Liberia 5100 6700 8700 11000 14000 17000 21000 26000 30000 34000 37000 38000 39000 40000 39000 39000 39000 38000 38000 37000 36000 35000 34000 34000 33000
Madagascar 5900 9000 13000 17000 22000 27000 32000 35000 39000 41000 43000 44000 45000 46000 46000 46000 46000 45000 44000 43000 42000 41000 41000 40000 39000
Malawi 440000 530000 610000 680000 750000 810000 870000 920000 960000 990000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1100000 1100000 1100000 1100000
Malaysia 9600 30000 49000 61000 71000 81000 90000 97000 100000 110000 110000 110000 110000 120000 120000 120000 120000 120000 120000 110000 110000 110000 110000 100000 100000
Mali 64000 76000 86000 96000 100000 110000 110000 110000 110000 110000 100000 100000 100000 100000 99000 100000 100000 100000 110000 110000 110000 120000 120000 130000 130000
Mauritania 1600 2200 2900 3700 4700 5800 6900 8200 9500 11000 12000 13000 14000 15000 15000 16000 16000 16000 16000 17000 17000 17000 16000 16000 16000
Mauritius 500 500 1000 1000 1300 2000 2800 3800 4900 6000 6900 7600 8200 8700 9100 9400 9500 9600 9500 9400 9200 9000 8800 8500 8300
Mexico 300000 320000 330000 340000 340000 340000 340000 330000 330000 310000 300000 290000 280000 260000 250000 240000 230000 220000 210000 210000 200000 200000 190000 190000 190000
Morocco 1200 1500 2000 2600 3200 4100 5100 6200 7700 9300 11000 13000 15000 17000 18000 20000 21000 22000 23000 25000 25000 26000 27000 28000 29000
Mozambique 90000 120000 160000 210000 270000 340000 410000 500000 590000 680000 780000 880000 960000 1000000 1100000 1200000 1200000 1300000 1300000 1400000 1400000 1500000 1500000 1500000 1500000
Myanmar 23000 40000 56000 70000 85000 100000 120000 130000 150000 170000 190000 210000 220000 230000 230000 240000 240000 230000 230000 230000 220000 220000 220000 210000 210000
Namibia 12000 19000 29000 43000 60000 80000 100000 120000 140000 160000 170000 180000 180000 190000 190000 180000 190000 190000 190000 200000 200000 210000 250000 260000 260000
Nepal 100 100 200 500 1000 1700 3600 7400 13000 20000 26000 32000 38000 42000 46000 48000 48000 48000 47000 46000 45000 43000 42000 41000 39000
Nicaragua 4700 5200 5900 6500 7300 8000 8800 9500 10000 10000 11000 11000 11000 10000 10000 9800 9600 9400 9300 9200 9300 9400 9500 9800 10000
Niger 10000 13000 17000 21000 27000 33000 39000 46000 53000 60000 65000 70000 73000 75000 75000 75000 73000 70000 68000 65000 62000 59000 57000 54000 52000
Norway 1000 1000 1000 1000 1100 1200 1400 1600 1800 2000 2200 2400 2600 2900 3100 3400 3600 3900 4200 4500 4800 5000 5300 5600 5800
Oman 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 2100 2200 2400
Pakistan 1000 1000 1000 1200 1500 1800 2300 2800 3500 4300 5300 6500 8100 10000 12000 15000 19000 23000 29000 35000 43000 53000 64000 78000 94000
Panama 3100 3400 3900 4700 6000 7700 9800 12000 14000 17000 18000 20000 20000 20000 20000 20000 19000 18000 18000 17000 17000 17000 16000 16000 17000
Papua New Guinea 1300 2100 3400 5000 7200 9700 13000 16000 19000 23000 26000 29000 32000 33000 34000 35000 35000 35000 35000 35000 36000 36000 36000 36000 37000
Paraguay 1600 1700 1900 2000 2300 2500 2800 3100 3400 3700 4100 4500 5000 5500 6000 6700 7600 8500 9500 11000 12000 13000 14000 15000 17000
Peru 68000 70000 71000 73000 75000 77000 79000 81000 82000 83000 84000 84000 83000 83000 82000 80000 78000 77000 75000 74000 73000 73000 73000 72000 72000
Philippines 200 200 500 1000 1000 1100 1400 1800 2200 2600 3000 3400 3900 4500 5100 6000 7000 8300 10000 13000 17000 21000 25000 30000 36000
Republic of Moldova 500 1000 1100 1600 2300 3100 4000 5000 6100 7100 8000 8800 9600 10000 11000 12000 12000 13000 14000 14000 15000 16000 17000 17000 18000
Rwanda 130000 140000 160000 170000 180000 200000 220000 240000 260000 270000 260000 250000 240000 230000 220000 210000 210000 210000 210000 200000 210000 210000 210000 210000 210000
Sao Tome and Principe 200 500 1000 1000 1000 1000 1000 1000 1100 1200 1300 1300 1400 1400 1400 1400 1400 1400 1300 1300 1200 1100 1100 1000 1000
Senegal 7400 8300 9400 11000 13000 15000 18000 21000 26000 31000 36000 41000 45000 49000 52000 53000 53000 52000 51000 50000 49000 49000 47000 46000 44000
Sierra Leone 500 1000 1100 1900 3100 4900 7200 10000 14000 18000 23000 28000 34000 40000 45000 49000 52000 54000 55000 55000 55000 55000 55000 55000 54000
Slovenia 100 100 100 100 100 100 200 200 200 200 200 500 500 500 500 500 500 500 500 1000 1000 1000 1000 1000 1000
Somalia 3100 4500 6300 8500 11000 14000 17000 20000 23000 25000 27000 29000 30000 31000 32000 32000 33000 33000 33000 33000 34000 34000 34000 34000 35000
South Africa 91000 200000 410000 730000 1200000 1700000 2300000 2900000 3500000 4000000 4400000 4800000 5100000 5300000 5500000 5700000 5800000 6000000 6100000 6200000 6300000 6400000 6500000 6700000 6800000
South Sudan 4500 7500 12000 16000 22000 28000 36000 45000 54000 65000 75000 86000 96000 110000 120000 120000 130000 140000 150000 160000 170000 170000 180000 190000 190000
Sri Lanka 100 200 200 200 500 500 500 500 1000 1000 1000 1000 1000 1000 1100 1300 1500 1700 2000 2200 2400 2600 2900 3100 3300
Sudan 2200 2800 3500 4400 5500 6900 8300 10000 12000 14000 17000 20000 23000 26000 29000 32000 34000 37000 39000 42000 45000 47000 49000 51000 53000
Suriname 500 1000 1000 1000 1200 1400 1600 1900 2200 2500 2800 3100 3300 3500 3600 3600 3700 3700 3700 3700 3700 3800 3800 3800 3800
Swaziland 7200 14000 24000 37000 52000 69000 85000 100000 110000 120000 130000 140000 150000 150000 160000 160000 170000 170000 180000 180000 190000 200000 200000 210000 210000
Sweden 3600 4200 5500 5800 6000 6400 6600 6800 7100 7300 7400 7600 8000 8100 8400 8600 9000 9300 9600 9900 10200 10500 10700 11000 11900
Syrian Arab Republic 500 500 500 500 500 500 500 500 500 500 500 500 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000
Tajikistan 500 500 1000 1100 1700 2500 3500 4700 5900 7100 8100 8800 9400 9800 10000 10000 11000 11000 12000 13000 13000 14000 15000 16000 16000
Thailand 240000 390000 510000 600000 670000 710000 740000 740000 730000 720000 710000 690000 660000 630000 590000 570000 550000 530000 520000 510000 490000 480000 470000 460000 450000
Togo 23000 28000 33000 40000 47000 56000 65000 74000 83000 91000 99000 100000 110000 110000 110000 110000 120000 120000 120000 120000 120000 110000 110000 110000 110000
Tunisia 100 100 200 200 200 500 500 500 500 500 500 1000 1000 1000 1000 1000 1100 1200 1400 1600 1800 2000 2300 2500 2700
Uganda 1100000 1200000 1200000 1200000 1200000 1100000 1100000 1100000 1000000 990000 960000 930000 920000 920000 930000 960000 1000000 1100000 1100000 1200000 1200000 1300000 1400000 1400000 1500000
Tanzania 640000 760000 870000 990000 1100000 1200000 1200000 1300000 1400000 1400000 1400000 1400000 1500000 1500000 1500000 1500000 1500000 1500000 1500000 1500000 1500000 1500000 1500000 1500000 1500000
Uruguay 1000 1300 1800 2400 2900 3500 4200 5100 6100 7300 8600 9900 11000 12000 13000 14000 15000 15000 15000 15000 15000 15000 14000 14000 14000
Uzbekistan 100 100 500 500 1000 2100 3600 5800 9100 13000 18000 24000 30000 35000 39000 41000 43000 43000 43000 42000 40000 38000 36000 34000 32000
Venezuela 1800 2900 4600 7000 10000 15000 20000 26000 32000 38000 44000 50000 56000 62000 68000 73000 78000 83000 87000 91000 95000 99000 100000 100000 110000
Vietnam 500 1000 1500 3100 6400 13000 24000 40000 59000 79000 100000 120000 140000 150000 170000 180000 190000 200000 210000 220000 230000 230000 240000 250000 250000
Yemen 1000 1100 1300 1500 1700 1900 2100 2200 2400 2600 2800 3000 3200 3400 3700 3900 4200 4500 4800 5100 5500 5900 6300 6700 7200
Zambia 530000 570000 600000 630000 660000 690000 730000 760000 780000 810000 830000 850000 860000 880000 890000 900000 920000 940000 970000 1000000 1000000 1100000 1100000 1100000 1200000
Zimbabwe 580000 780000 1000000 1200000 1400000 1600000 1700000 1800000 1900000 1900000 1900000 1900000 1800000 1700000 1700000 1600000 1500000 1400000 1400000 1400000 1400000 1400000 1500000 1500000 1600000
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Living with HIV</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.6/d3.min.js" charset="utf-8"></script>
<script src="colorbrewer.js"></script>
<link href="https://fonts.googleapis.com/css?family=Raleway:100normal,200normal,300normal,400normal,500normal,600normal,700normal,800normal,900normal|Open+Sans:400normal|Lato:400normal|Roboto:400normal|Oswald:400normal|Droid+Sans:400normal|Droid+Serif:400normal|Lobster:400normal|PT+Sans:400normal|Ubuntu:400normal|Playfair+Display:400normal&amp;subset=all" rel="stylesheet" type="text/css">
<style type="text/css">
body {
background-color: #fff1e0;
font-family: 'Raleway', sans-serif;
font-weight: 400;
margin-top: 3em;
}
.content-holder {
background: #fff9f1;
padding: 20px 20px 14px;
width: 760px;
box-sizing: border-box;
margin: 0 auto;
box-shadow: 0px 2px 5px 0px rgba(0,0,0,0.3);
}
h1 {
font-weight: 300;
font-size: 36px;
color: #333333;
margin-top: 0;
margin-bottom: 0;
margin-left: -2px;
}
h6 {
font-size: 12px;
margin-bottom: 0.2em;
margin-top: 6px;
font-weight: 800;
text-transform: uppercase;
color: #af516c;
}
form {
margin-left: 40px;
font-weight: 400;
font-size: 12px;
color: #74736c;
position: relative;
float: right;
top: 16px;
}
p {
margin-bottom: 4px;
line-height: 1.5em;
}
.chart-holder {
margin-top: 8px;
}
.y.axis path,
.x.axis path {
fill: none;
}
.axis line {
fill: none;
stroke: #e9decf;
stroke-dasharray:2,1;
shape-rendering: crispEdges;
}
.axis text {
font-size: 12px;
fill: #74736c;
}
.axislabel {
font-size: 13px;
fill: #74736c;
}
.subtitle {
font-size: 15px;
color: #74736c;
display: inline-block;
}
.source,
.note {
font-size: 12px;
}
a {
text-decoration: none;
color: #9e2f50;
transition: color 0.3s;
}
a:hover {
color: #000;
transition: color 0s;
}
.tooltip{
padding: 6px;
background-color: #fff;
border-radius: 4px;
position: absolute;
font-size: 13px;
line-height: 18px;
visibility: hidden;
box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.3);
font-weight: 300;
}
.country{
font-weight: 600;
font-size: 14px;
/*margin-bottom: -8px;
display: block;*/
}
.dataNum{
font-weight: 600;
/*font-family: arial;*/
}
.labelsOn {
opacity: 1;
transition: opacity 0.3s;
}
.labelsOff {
opacity: 0;
transition: opacity 0.3s;
}
.cLabel {
text-anchor: end;
fill: white;
font-size: 12px;
}
.cLabelBld {
font-weight: 700;
}
.globalPath {
fill: none;
stroke: #9e2f50;
stroke-width: 2px;
}
</style>
</head>
<body>
<div class="tooltip"></div>
<div class="content-holder">
<h6>Living with HIV</h6>
<h1>How many people are infected with HIV?</h1>
<p>Since HIV became part our consciousness in the 1980s, this graph shows the frightening rate of growth of infections around the globe, most notably in <span class="cLabelBld">South Africa</span>. Another chilling statistic is that in <span class="cLabelBld">Nigeria</span> children under the age of 15 account for over <span class="cLabelBld">11%</span> of the HIV population.</p>
<p class="subtitle">Population infected with HIV (m)</p>
<div class="chart-holder"></div>
<p class="source">Source: <a href="http://aidsinfo.unaids.org/">aidsinfo.unaids.org</a></p>
</div>
<script type="text/javascript">
var margin = { top: 18, right: 15, bottom: 20, left: 50 },
width = 720 - margin.left - margin.right,
height = 640 - margin.top - margin.bottom;
var divisor = 1000000;
var dataset = [];
var years = [];
var numFormat = d3.format(',');
var areaColor;
var color = d3.scale.ordinal()
.range(colorbrewer.RdYlBu[11])
// .range(["#D7706C", "#91A1C7", "#ECAFAF", "#B07979", "#5A9992", "#dc143c", "#E8AA7D", "#AF516C", "#7FD8F5", "#3D7AB3", "#B8B1A9"]);
var stack = d3.layout.stack()
.values(function(d) {
return d.hiv;
})
.order("reverse");
var dateFormat = d3.time.format("%Y");
var svg = d3.select('.chart-holder').append('svg')
.attr('width', width + margin.left + margin.right)
.attr('height', height + margin.top + margin.bottom)
var xScale = d3.time.scale()
.range([0, width]);
var yScale = d3.scale.linear()
.range([0, height - margin.top - margin.bottom]);
var xAxis = d3.svg.axis()
.scale(xScale)
.tickSize(-height + margin.bottom)
.ticks(5)
.orient('bottom')
.tickFormat(function(d) {
return dateFormat(d);
});
var yAxis = d3.svg.axis()
.scale(yScale)
.tickSize(-width)
.ticks(10)
.orient('left');
var line = d3.svg.line()
.defined(function(d) { return d.y != null; })
.x(function(d) { return xScale(dateFormat.parse(d.x)); })
.y(function(d) { return yScale(d.y); });
var lineGlobal = d3.svg.line()
.defined(function(d) { return d.value != 0; })
.x(function(d) { return xScale(dateFormat.parse(d.date)); })
.y(function(d) { return yScale(d.value); });
var area = d3.svg.area()
.defined(line.defined())
.x(line.x())
.y1(function(d) {
return yScale(d.y0 + d.y); //Updated
})
.y0(function(d) {
return yScale(d.y0); //Updated
});
d3.csv('hiv.csv', function(data) {
years = Object.keys( data[0] ).filter(function(d){ return d != 'Country'; });
data.forEach(function(d, i) {
dataset[i] = {
country: d.Country,
hiv: []
}
years.forEach(function(d, j) {
var value = null;
if(data[i][years[j]]) {
value = +data[i][years[j]] / divisor;
}
dataset[i].hiv.push({
x: years[j],
y: value
})
});
})
stack(dataset);
var maxX = d3.max(years, function(d) { return dateFormat.parse(d); })
var minX = d3.min(years, function(d) { return dateFormat.parse(d); })
var yearTotals = [];
var global = [];
years.forEach(function(d, i) {
yearTotals[i] = 0;
dataset.forEach(function(d, j) {
yearTotals[i] += dataset[j].hiv[i].y;
})
// create global data array
global[i] = {
date: years[i],
value: yearTotals[i]
}
})
var maxY = d3.max(yearTotals)
xScale.domain([minX, maxX]);
yScale.domain([maxY, 0]);
svg.append('g')
.attr('transform', 'translate(' + margin.left + ',' + (height - margin.top ) + ')')
.attr('class', 'x axis')
.call(xAxis)
.attr('opacity', 0)
.transition().attr('opacity', 1).ease('quad').duration(500);
svg.append('g')
.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')')
.attr('class', 'y axis')
.call(yAxis)
.attr('opacity', 0)
.transition().attr('opacity', 1).ease('quad').duration(500);
var chart = svg.append('g')
.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
//create path for global total
var linePath = chart.append('path')
.attr("d", lineGlobal(global))
.attr('class', 'globalPath');
//animate path
var totalLength = linePath.node().getTotalLength();
linePath.attr("stroke-dasharray", totalLength + " " + totalLength)
.attr("stroke-dashoffset", totalLength)
.transition()
.delay(500)
.duration(1500)
.ease("quad")
.attr("stroke-dashoffset", 0);
var paths = chart.selectAll('path')
.data(dataset)
.enter()
.append('path')
.attr('class', 'area')
.attr('opacity', 0)
.attr('fill', function(d) { if(d.country === 'Nigeria' || d.country === 'South Africa') {return '#9e2f50';}else {return color(d.country); }} )
.attr('d', function(d) {
return area(d.hiv);
});
paths.transition()
.duration(300)
.delay(function(d, i) { return (i * 20) + 2000; })
.attr('opacity', function(d) { if(d.country === 'Nigeria' || d.country === 'South Africa') {return 0.8;}else {return 0.4; }});
chart.append('text')
.attr('transform', 'translate(' + (width - margin.right - 20) + ',' + 202 + ')')
.attr('class', 'cLabel')
.text('Nigeria');
chart.append('text')
.attr('transform', 'translate(' + (width - margin.right - 20) + ',' + 392 + ')')
.attr('class', 'cLabel')
.text('South Africa');
var tt = d3.select('.tooltip');
var overFlag = false;
setTimeout(function() {
d3.select('.globalPath').style('visibility', 'hidden');
paths.style('cursor', 'pointer');
paths.on('mouseover', function(d) {
areaColor = d3.select(this).attr('fill');
console.log(d3.select(this));
paths
.attr('opacity', 0.2)
d3.select(this)
.classed('hover', true)
.attr('opacity', 0.8)
.attr('fill', '#9e2f50')
});
paths.on('mousemove', function (d) {
if (overFlag === false) {
areaColor = d3.select(this).attr('fill');
}
overFlag = true;
var mousex = d3.mouse(this);
mousex = mousex[0] + 10;
var invertedx = xScale.invert(mousex);
invertedx = invertedx.getFullYear();
var selected = (d.hiv);
mousedate = years.indexOf(String(invertedx));
pro = d.hiv[mousedate].y;
function checkValue(pro) {
if (pro < 1) {
var proThousands = pro * 1000000
return numFormat(proThousands);
} else {
return pro.toFixed(1) + 'm'
}
}
tt.html('<span class="country">' + d.country + '</span><br/>' + 'HIV population, ' + invertedx + ': <span class="dataNum">' + checkValue(pro) + '</span>')
.style('top', d3.event.pageY - 12 + 'px')
.style('visibility', 'visible')
var toolW = d3.select('.tooltip').node().getBoundingClientRect().width;
if(d3.event.pageX > (width - toolW)) {
tt.style('left', d3.event.pageX - toolW - 30 + 'px')
} else {
tt.style('left', d3.event.pageX + 30 + 'px')
}
});
paths.on('mouseout', function(d) {
d3.select(this)
.classed('hover', false)
.attr('fill', areaColor);
paths
.attr('opacity', function(d) { if(d.country === 'Nigeria' || d.country === 'South Africa') {return 0.8;} else {return 0.4; }});
tt.style('visibility', 'hidden');
});
}, 5240)
});
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment