├── .gitignore
├── src
├── scripts
│ ├── utils
│ │ ├── numberWithCommas.js
│ │ ├── hexToRgb.js
│ │ ├── throttle.js
│ │ └── shuffle.js
│ ├── flow-map.js
│ └── modules
│ │ ├── social-media.js
│ │ └── flow-map.js
└── styles
│ ├── utilities
│ ├── _functions.scss
│ ├── _mixins.scss
│ ├── _bem.scss
│ └── _reset.scss
│ ├── index.scss
│ ├── _config.scss
│ └── modules
│ ├── _flow-map.scss
│ ├── _key.scss
│ ├── _timeline.scss
│ └── _social-media.scss
├── img
└── play.svg
├── gulpfile.js
├── tasks
│ ├── clean.js
│ ├── watch.js
│ ├── webserver.js
│ ├── styles.js
│ ├── scripts.js
│ └── data.js
├── utilities
│ └── errorHandler.js
├── config.js
└── index.js
├── .eslintrc.json
├── package.json
├── index.html
├── README.md
├── dist
└── css
│ └── index.css
└── data
└── african-aid.csv
/.gitignore:
--------------------------------------------------------------------------------
1 | .sass-cache/
2 | node_modules/
3 | *.log
4 | .DS_Store
5 |
--------------------------------------------------------------------------------
/src/scripts/utils/numberWithCommas.js:
--------------------------------------------------------------------------------
1 | function numberWithCommas(x) {
2 | var parts = x.toString().split('.')
3 | parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',')
4 | return parts.join('.')
5 | }
6 |
7 | export default numberWithCommas
8 |
--------------------------------------------------------------------------------
/src/scripts/flow-map.js:
--------------------------------------------------------------------------------
1 | import $ from 'jquery'
2 | import FlowMap from './modules/flow-map'
3 |
4 | const $map = $('.flow-map')
5 | $map.each((index, element) => {
6 | const flowMap = new FlowMap(element)
7 | flowMap.init()
8 | })
9 |
--------------------------------------------------------------------------------
/img/play.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/gulpfile.js/tasks/clean.js:
--------------------------------------------------------------------------------
1 | var del = require('del');
2 | var config = require('../config');
3 |
4 | module.exports = {
5 | js: function(cb) {
6 | return del([config.scripts.dist], cb);
7 | },
8 | css: function(cb) {
9 | return del([config.styles.dist], cb);
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/gulpfile.js/tasks/watch.js:
--------------------------------------------------------------------------------
1 | var config = require('../config');
2 | var gulp = require('gulp');
3 | var path = require('path');
4 |
5 | module.exports = function() {
6 | gulp.watch(path.join(config.scripts.src, '**', '*.js'), ['scripts:bundle']);
7 | gulp.watch(path.join(config.styles.src, '**', '*.scss'), ['styles']);
8 | };
9 |
--------------------------------------------------------------------------------
/gulpfile.js/tasks/webserver.js:
--------------------------------------------------------------------------------
1 | var gulp = require('gulp');
2 | var webserver = require('gulp-webserver');
3 |
4 | module.exports = function() {
5 | gulp.src('./')
6 | .pipe(webserver({
7 | livereload: true,
8 | directoryListing: true,
9 | open: true,
10 | fallback: 'index.html'
11 | }));
12 | };
13 |
--------------------------------------------------------------------------------
/gulpfile.js/utilities/errorHandler.js:
--------------------------------------------------------------------------------
1 | var config = require('../config')
2 | var gutil = require('gulp-util');
3 |
4 | module.exports = function(error) {
5 | gutil.log(gutil.colors.red.bold('Error' + (error.plugin ? ': ' + error.plugin : '')), '\n\n' + error.message, (error.codeFrame ? '\n' + error.codeFrame : ''));
6 |
7 | process.exit(1);
8 |
9 | return;
10 | };
11 |
--------------------------------------------------------------------------------
/src/styles/utilities/_functions.scss:
--------------------------------------------------------------------------------
1 | // -----------------------------------------------------------------------------
2 | // Functions
3 | // -----------------------------------------------------------------------------
4 |
5 |
6 | // Calculates REM unit
7 | // -----------------------------------------------------------------------------
8 |
9 | @function rem($unit) {
10 | @return ($unit / 16) + 0rem;
11 | }
12 |
13 | @function em($unit) {
14 | @return ($unit / 16) + 0em;
15 | }
--------------------------------------------------------------------------------
/gulpfile.js/config.js:
--------------------------------------------------------------------------------
1 | var path = require('path');
2 |
3 | module.exports = {
4 | autoprefixer: {
5 | browsers: [
6 | 'last 2 versions',
7 | 'Android 4',
8 | 'ie >= 9',
9 | 'iOS >= 6'
10 | ]
11 | },
12 | sass: {
13 | errLogToConsole: true
14 | },
15 | scripts: {
16 | dist: path.join('dist', 'javascript'),
17 | src: 'src/scripts'
18 | },
19 | styles: {
20 | dist: path.join('dist', 'css'),
21 | src: 'src/styles'
22 | },
23 | production: true
24 | };
25 |
--------------------------------------------------------------------------------
/src/scripts/utils/hexToRgb.js:
--------------------------------------------------------------------------------
1 | function hexToRgb(hex) {
2 | // Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF")
3 | let shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i
4 | hex = hex.replace(shorthandRegex, (m, r, g, b) => {
5 | return r + r + g + g + b + b
6 | })
7 |
8 | let result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex)
9 | return result ? {
10 | r: parseInt(result[1], 16),
11 | g: parseInt(result[2], 16),
12 | b: parseInt(result[3], 16)
13 | } : null
14 | }
15 |
16 | export default hexToRgb
17 |
--------------------------------------------------------------------------------
/src/scripts/utils/throttle.js:
--------------------------------------------------------------------------------
1 | /*
2 | Event throttle using requestAnimationFrame
3 | Author: Mike Simmonds - https://gist.github.com/simmo/34a18a0b98547c16c071
4 | */
5 |
6 | function throttle(type, name, obj = window) {
7 | let running = false
8 |
9 | let func = () => {
10 | if (running) {
11 | return
12 | }
13 |
14 | running = true
15 |
16 | requestAnimationFrame(() => {
17 | obj.dispatchEvent(new CustomEvent(name))
18 | running = false
19 | })
20 | }
21 |
22 | obj.addEventListener(type, func)
23 | }
24 |
25 | export default throttle
26 |
--------------------------------------------------------------------------------
/src/scripts/utils/shuffle.js:
--------------------------------------------------------------------------------
1 | function shuffle(array) {
2 | let currentIndex = array.length
3 | let temporaryValue
4 | let randomIndex
5 |
6 | // While there remain elements to shuffle...
7 | while (0 !== currentIndex) {
8 |
9 | // Pick a remaining element...
10 | randomIndex = Math.floor(Math.random() * currentIndex)
11 | currentIndex -= 1
12 |
13 | // And swap it with the current element.
14 | temporaryValue = array[currentIndex]
15 | array[currentIndex] = array[randomIndex]
16 | array[randomIndex] = temporaryValue
17 | }
18 |
19 | return array
20 | }
21 |
22 | export default shuffle
23 |
--------------------------------------------------------------------------------
/src/styles/utilities/_mixins.scss:
--------------------------------------------------------------------------------
1 | // -----------------------------------------------------------------------------
2 | // Mixins
3 | // -----------------------------------------------------------------------------
4 |
5 |
6 | // Breakpoints
7 | // -----------------------------------------------------------------------------
8 | @mixin bp($point) {
9 | @media screen and (max-width: $point) {
10 | @content
11 | }
12 | }
13 |
14 |
15 | // Polyfills
16 | // -----------------------------------------------------------------------------
17 |
18 | @mixin clearfix() {
19 | *zoom: 1;
20 |
21 | &:before,
22 | &:after {
23 | content: "";
24 | display: table;
25 |
26 | line-height: 0;
27 | }
28 |
29 | &:after {
30 | clear: both;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/styles/index.scss:
--------------------------------------------------------------------------------
1 | // -----------------------------------------------------------------------------
2 | // Visa Olympic Timeline
3 | // -----------------------------------------------------------------------------
4 |
5 |
6 | // Initialize
7 | // -----------------------------------------------------------------------------
8 |
9 | @import "utilities/functions";
10 | @import "config";
11 |
12 |
13 | // Utilities
14 | // -----------------------------------------------------------------------------
15 |
16 | @import "utilities/bem";
17 | @import "utilities/mixins";
18 | @import "utilities/reset";
19 |
20 |
21 |
22 |
23 | // Modules
24 | // -----------------------------------------------------------------------------
25 |
26 | @import "modules/flow-map";
27 | @import "modules/key";
28 | @import "modules/social-media";
29 | @import "modules/timeline";
30 |
--------------------------------------------------------------------------------
/gulpfile.js/index.js:
--------------------------------------------------------------------------------
1 | var config = require('./config');
2 | var gulp = require('gulp');
3 |
4 | // Load tasks
5 | var clean = require('./tasks/clean');
6 | var scripts = require('./tasks/scripts');
7 | var styles = require('./tasks/styles');
8 | var watch = require('./tasks/watch');
9 | var webserver = require('./tasks/webserver');
10 | var data = require('./tasks/data');
11 |
12 | // Define tasks and dependencies
13 | gulp.task('clean:css', clean.css);
14 | gulp.task('clean:js', clean.js);
15 |
16 | gulp.task('data', data.sort);
17 |
18 | gulp.task('scripts:lint', scripts.lint);
19 | gulp.task('scripts:bundle', ['scripts:lint'], scripts.bundle);
20 | gulp.task('styles', styles);
21 |
22 | gulp.task('watch', watch);
23 |
24 | // Build
25 | gulp.task('build', ['clean:css', 'clean:js'], function() {
26 | gulp.start(['scripts:bundle', 'styles']);
27 | });
28 |
29 | gulp.task('webserver', webserver);
30 |
31 | gulp.task('default', ['watch', 'webserver']);
32 |
33 |
--------------------------------------------------------------------------------
/src/styles/_config.scss:
--------------------------------------------------------------------------------
1 | // -----------------------------------------------------------------------------
2 | // Config
3 | // -----------------------------------------------------------------------------
4 |
5 | // Breakpoints
6 | // --------------------------------------------------------------------------
7 |
8 | $tablet: 1024;
9 | $mobile: 750;
10 | $min-width: 320;
11 |
12 | // Colours
13 | // --------------------------------------------------------------------------
14 |
15 |
16 |
17 | // Fonts
18 | // --------------------------------------------------------------------------
19 |
20 | $font-stack: "proxima-nova",sans-serif;
21 | $font-size: rem(16);
22 | $line-height: 1.25;
23 | $font-weight: normal;
24 |
25 |
26 | html, body {
27 | min-height: 100%;
28 | }
29 |
30 | body {
31 | height: 100%;
32 | }
33 |
--------------------------------------------------------------------------------
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "ecmaFeatures": {
3 | "modules": true,
4 | "jsx": false
5 | },
6 | "parserOptions": {
7 | "sourceType": "module"
8 | },
9 | "env": {
10 | "browser": true,
11 | "node": true,
12 | "es6": true
13 | },
14 | "globals": {
15 | "__ENV__": true
16 | },
17 | "rules": {
18 | "complexity": [1, 10],
19 | "no-bitwise": 2,
20 | "camelcase": [2, { "properties": "never" }],
21 | "curly": [2, "all"],
22 | "eqeqeq": 2,
23 | "wrap-iife": 2,
24 | "indent": 2,
25 | "no-use-before-define": 2,
26 | "new-cap": 2,
27 | "no-caller": 2,
28 | "quotes": [2, "single"],
29 | "strict": [2, "global"],
30 | "no-undef": 2,
31 | "no-unused-vars": 2,
32 | "no-empty": 2,
33 | "comma-dangle": [2, "never"],
34 | "max-len": [1, 220],
35 | "comma-style": [2, "last"],
36 | "dot-notation": 2,
37 | "brace-style": [2, "1tbs", { "allowSingleLine": false }],
38 | "one-var": [2, "never"],
39 | "operator-linebreak": [2, "after"],
40 | "space-infix-ops": 2,
41 | "space-before-blocks": [2, "always"],
42 | "semi": [2, "never"],
43 | "eol-last": 2
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "BubbleNetwork",
3 | "title": "Emma Lewis",
4 | "version": "0.1.0",
5 | "description": "Re-usable bubble network diagram",
6 | "contributors": [
7 | "Emma Lewis"
8 | ],
9 | "company": "Code For Africa",
10 | "devDependencies": {
11 | "babel-core": "^6.9.1",
12 | "babel-eslint": "^6.0.4",
13 | "babel-preset-es2015": "^6.9.0",
14 | "babelify": "^7.3.0",
15 | "browserify": "^13.0.1",
16 | "csv": "^1.1.1",
17 | "del": "^2.2.0",
18 | "fs": "0.0.2",
19 | "gulp": "^3.9.1",
20 | "gulp-autoprefixer": "^3.1.0",
21 | "gulp-compile-handlebars": "^0.6.1",
22 | "gulp-cssnano": "^2.1.2",
23 | "gulp-eslint": "^2.0.0",
24 | "gulp-handlebars": "^4.0.0",
25 | "gulp-pixrem": "^1.0.0",
26 | "gulp-rename": "^1.2.2",
27 | "gulp-sass": "^2.3.1",
28 | "gulp-sourcemaps": "^1.6.0",
29 | "gulp-streamify": "^1.0.2",
30 | "gulp-uglify": "^1.5.3",
31 | "gulp-util": "^3.0.7",
32 | "gulp-webserver": "^0.9.1",
33 | "topojson": "^3.0.2",
34 | "vinyl-source-stream": "^1.1.0"
35 | },
36 | "dependencies": {
37 | "d3": "^4.2.2",
38 | "jquery": "^3.0.0",
39 | "pubsub-js": "^1.5.7"
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Network diagram
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/gulpfile.js/tasks/styles.js:
--------------------------------------------------------------------------------
1 | var autoprefixer = require('gulp-autoprefixer');
2 | var config = require('../config');
3 | var errorHandler = require('../utilities/errorHandler');
4 | var gulp = require('gulp');
5 | var join = require('path').join;
6 | var cssnano = require('gulp-cssnano');
7 | var sass = require('gulp-sass');
8 | var sourcemaps = require('gulp-sourcemaps');
9 | var gutil = require('gulp-util');
10 | var pixrem = require('gulp-pixrem');
11 |
12 | module.exports = function() {
13 |
14 | // What mode?
15 | gutil.log('Bundling CSS in', (config.production ? gutil.colors.red.bold('production') : gutil.colors.green.bold('development')), 'mode...');
16 |
17 | return gulp.src(join(config.styles.src, '*.scss'))
18 | .pipe(config.production ? gutil.noop() : sourcemaps.init())
19 | .pipe(sass(config.sass))
20 | .on('error', errorHandler)
21 | .pipe(autoprefixer(config.autoprefixer))
22 | .on('error', errorHandler)
23 | .pipe(pixrem({ rootValue: '16px' }))
24 | .pipe(config.production ? gutil.noop() : sourcemaps.write())
25 | .pipe(config.production ? cssnano({ autoprefixer: config.autoprefixer }) : gutil.noop())
26 | .pipe(gulp.dest(join(config.styles.dist)))
27 |
28 | };
29 |
--------------------------------------------------------------------------------
/src/styles/modules/_flow-map.scss:
--------------------------------------------------------------------------------
1 | .flow-map {
2 | &__header {
3 | background: inherit;
4 | overflow: hidden;
5 | padding: rem(60) rem(20) rem(20);
6 |
7 | @media (min-width: 550px) {
8 | padding: rem(60) rem(55) rem(20);
9 | }
10 | }
11 |
12 | &__heading {
13 | @media (min-width: 550px) {
14 | float: left;
15 | margin-right: rem(80);
16 | }
17 | }
18 |
19 | &__title {
20 | font-size: rem(32);
21 | line-height: rem(40);
22 | }
23 |
24 | &__description {
25 | font-size: rem(14);
26 | font-weight: 200;
27 | line-height: rem(17);
28 | }
29 |
30 | &__svg {
31 | display: block;
32 | height: 100%;
33 | // left: 0;
34 | margin: 0 auto;
35 | // position: absolute;
36 | // right: 0;
37 | width: auto;
38 | }
39 |
40 | &__zoom-wrapper {
41 | bottom: 0;
42 | left: 0;
43 | position: absolute;
44 | right: 0;
45 | top: 0;
46 | }
47 |
48 | &__svg-wrapper {
49 | display: block;
50 | height: 0;
51 | margin-bottom: rem(32);
52 | overflow: hidden;
53 | padding-bottom: 42.7%;
54 | position: relative;
55 | width: 100%;
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/src/styles/modules/_key.scss:
--------------------------------------------------------------------------------
1 | .key {
2 | margin-top: rem(20);
3 |
4 | @media (min-width: 550px) {
5 | float: left;
6 | line-height: rem(48);
7 | margin-right: rem(80);
8 | margin-top: 0;
9 | }
10 |
11 | &__item {
12 | display: inline-block;
13 | font-weight: 200;
14 | vertical-align: middle;
15 |
16 | &:hover {
17 | cursor: pointer;
18 | }
19 |
20 | &.active {
21 | font-weight: 700;
22 |
23 | &:hover {
24 | cursor: default;
25 | }
26 | }
27 | }
28 |
29 | &__lozenge {
30 | background: #3C5468;
31 | border-radius: rem(7);
32 | display: inline-block;
33 | height: rem(14);
34 | margin-left: rem(16);
35 | margin-right: rem(16);
36 | position: relative;
37 | vertical-align: middle;
38 | width: rem(44);
39 |
40 | &:hover {
41 | cursor: pointer;
42 | }
43 |
44 | .key__lozenge-disc {
45 | border-radius: 50%;
46 | display: block;
47 | height: rem(14);
48 | position: absolute;
49 | right: 0;
50 | width: rem(14);
51 |
52 | .key__item--sending.active + & {
53 | left: 0;
54 | right: auto;
55 | }
56 | }
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/gulpfile.js/tasks/scripts.js:
--------------------------------------------------------------------------------
1 | var gulp = require('gulp');
2 | var fs = require("fs");
3 | var browserify = require("browserify");
4 | var babelify = require("babelify");
5 | var source = require('vinyl-source-stream');
6 | var config = require('../config');
7 | var errorHandler = require('../utilities/errorHandler');
8 | var uglify = require('gulp-uglify');
9 | var streamify = require('gulp-streamify');
10 | var gutil = require('gulp-util');
11 | var join = require('path').join;
12 | var eslint = require('gulp-eslint');
13 |
14 |
15 | module.exports = {
16 | bundle: function(){
17 |
18 | var files = [
19 | 'flow-map.js'
20 | ];
21 | // map them to our stream function
22 | var tasks = files.map(function(entry) {
23 | return browserify({ debug: true, entries: join(config.scripts.src, entry) })
24 | .transform(babelify, {presets: ['es2015']})
25 | .require(join(config.scripts.src, entry), { entry: true })
26 | .bundle()
27 | .on('error', errorHandler)
28 | .pipe(source(join(config.scripts.dist, 'flow-map.min.js')))
29 | .pipe(config.production ? streamify(uglify()) : gutil.noop())
30 | .pipe(gulp.dest('./'));
31 | })
32 | // create a merged stream
33 | // return es.merge.apply(null, tasks);
34 | },
35 | lint: function() {
36 | gulp.src([join(config.scripts.src, '*.js'), join(config.scripts.src, '**/*.js')])
37 | .pipe(eslint())
38 | .pipe(eslint.format('stylish'));
39 | }
40 | };
41 |
--------------------------------------------------------------------------------
/src/scripts/modules/social-media.js:
--------------------------------------------------------------------------------
1 | import $ from 'jquery'
2 |
3 | export default () => {
4 | let buttons = {
5 | twitter: $('#twitter-button'),
6 | facebook: $('#facebook-button'),
7 | whatsapp: $('#whatsapp-button'),
8 | share: $('#share-button'),
9 | close: $('#share-close-button')
10 | }
11 |
12 | buttons.twitter.on('click', (event) => {
13 | event.preventDefault()
14 |
15 | let url = 'https://twitter.com/intent/tweet?text=...'
16 | let name = 'twitter-share-dialog'
17 | let options = 'menubar=no, toolbar=no, resizable=no, scrollbar=no, height=400, width=500'
18 |
19 | window.open(url, name, options)
20 | })
21 |
22 | buttons.facebook.on('click', (event) => {
23 | event.preventDefault()
24 |
25 | let url = 'https://facebook.com/sharer.php?u=' + encodeURIComponent('https://codeforafrica.github.io/GenderGapClock/dist/')
26 | let name = 'facebook-share-dialog'
27 | let options = 'menubar=no, toolbar=no, resizable=no, scrollbar=no, height=400, width=500'
28 |
29 | window.open(url, name, options)
30 | })
31 |
32 | buttons.share.on('click', (event) => {
33 | event.preventDefault()
34 |
35 | if (window.matchMedia('(min-width: 550px)').matches) {
36 | return
37 | } else {
38 | $('.social-media__buttons').addClass('active')
39 | }
40 | })
41 |
42 | buttons.close.on('click', (event) => {
43 | event.preventDefault()
44 | $('.social-media__buttons').removeClass('active')
45 | })
46 | }
47 |
--------------------------------------------------------------------------------
/src/styles/utilities/_bem.scss:
--------------------------------------------------------------------------------
1 | // -----------------------------------------------------------------------------
2 | // BEM
3 | // -----------------------------------------------------------------------------
4 |
5 |
6 | // Options
7 | // -----------------------------------------------------------------------------
8 |
9 | $bem-element-separator: '__' !default;
10 | $bem-modifier-separator: '--' !default;
11 |
12 |
13 | // Block (New)
14 | // -----------------------------------------------------------------------------
15 |
16 | @mixin new($name, $description: '') {
17 | @if $description != '' {
18 | $description: ': ' + $description;
19 | }
20 |
21 | @at-root {
22 | /* #{$name}#{$description} */
23 | .#{$name} {
24 | @content;
25 | }
26 | }
27 | }
28 |
29 |
30 | // Element (Has)
31 | // -----------------------------------------------------------------------------
32 |
33 | @mixin has($name) {
34 | $selector: nth(#{&}, 1);
35 |
36 | @if str-index($selector, $bem-element-separator) {
37 | @error '#{$selector} is already an element';
38 | }
39 |
40 | {$bem-element-separator}#{$name} {
41 | @content;
42 | }
43 | }
44 |
45 |
46 | // Modifier (When)
47 | // -----------------------------------------------------------------------------
48 |
49 | @mixin when($name) {
50 | $selector: nth(#{&}, 1);
51 |
52 | @if str-index(#{&}, $bem-modifier-separator) {
53 | @error '#{$selector} is already modified';
54 | }
55 |
56 | // Add the modifier and rules
57 | {$bem-modifier-separator}#{$name} {
58 | @extend #{$selector};
59 | @content;
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/gulpfile.js/tasks/data.js:
--------------------------------------------------------------------------------
1 | var fs = require("fs");
2 | var join = require('path').join;
3 | var config = require('../config');
4 | var parse = require('csv-parse');
5 |
6 | module.exports = {
7 | sort: function() {
8 | var betterData = new Array();
9 | var columns = ['region','region_id','region_to','region_to_id','sending_name','sending_code','receiving_name','receiving_code','value','value2','value3','value4','amount_1990','amount_1995','amount_2000','amount_2005','notes']
10 | fs.readFile('data/immigration.csv', 'utf8', function(err, data) {
11 | parse(data, {columns: columns, trim: true}, (err, output) => {
12 | console.log(output)
13 | for(var i = 0; i < output.length; i++) {
14 | betterData.push([1990, output[i].sending_name, output[i].receiving_name, output[i].amount_1990]);
15 | betterData.push([1995, output[i].sending_name, output[i].receiving_name, output[i].amount_1995]);
16 | betterData.push([2000, output[i].sending_name, output[i].receiving_name, output[i].amount_2000]);
17 | betterData.push([2005, output[i].sending_name, output[i].receiving_name, output[i].amount_2005]);
18 | }
19 | console.log(betterData)
20 | var csvContent = "data:text/csv;charset=utf-8,";
21 | var dataString = '';
22 | betterData.forEach(function(infoArray, index){
23 | dataString = infoArray.join(",");
24 | csvContent += index < betterData.length ? dataString+ "\n" : dataString;
25 |
26 | });
27 |
28 | fs.writeFile('data/immigration-fixed.csv', csvContent, function(err) {
29 | console.log(err);
30 | });
31 | });
32 |
33 |
34 | });
35 | }
36 | };
37 |
--------------------------------------------------------------------------------
/src/styles/modules/_timeline.scss:
--------------------------------------------------------------------------------
1 | .timeline {
2 | bottom: 0;
3 | left: 0;
4 | overflow: hidden;
5 | position: fixed;
6 | right: 0;
7 |
8 | &__play {
9 | background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16.67 16.67'%3E%3Ctitle%3Eicon_play%3C/title%3E%3Cpolygon fill='%23000000' points='13.39 8.33 5.28 13.02 5.28 3.65 13.39 8.33'/%3E%3C/svg%3E");
10 | background-repeat:no-repeat;
11 | background-position: 50% 50%;
12 | background-size: auto 20px;
13 | float: left;
14 | height: rem(32);
15 | width: rem(55);
16 |
17 | &.timeline__pause {
18 | background-image: url("data:image/svg+xml;charset=utf8,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' width='16.667px' height='16.667px' viewBox='0 0 16.667 16.667' enable-background='new 0 0 16.667 16.667' xml:space='preserve'%3E%3Cline fill='none' stroke='%23000000' stroke-width='2' stroke-miterlimit='10' x1='6.333' y1='4.166' x2='6.333' y2='12.5'/%3E%3Cline fill='none' stroke='%23000000' stroke-width='2' stroke-miterlimit='10' x1='10.333' y1='4.166' x2='10.333' y2='12.5'/%3E%3C/svg%3E");
19 | }
20 |
21 | &.timeline__reset {
22 | background-image: url("data:image/svg+xml;charset=utf8,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' width='16.667px' height='16.667px' viewBox='0 0 16.667 16.667' enable-background='new 0 0 16.667 16.667' xml:space='preserve'%3E%3Cg%3E%3Cg%3E%3Cpath fill='none' stroke='%23000000' stroke-linecap='square' stroke-miterlimit='10' d='M10.456,12.063 c-0.626,0.357-1.351,0.562-2.123,0.562c-2.37,0-4.292-1.921-4.292-4.292s1.921-4.292,4.292-4.292s4.292,1.921,4.292,4.292'/%3E%3Cg%3E%3Cpolygon fill='%23000000' points='15.061,8.007 10.201,8.007 12.631,10.437 '/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
23 | }
24 |
25 | &:hover {
26 | cursor: pointer;
27 | }
28 | }
29 |
30 | &__years {
31 | float: left;
32 | width: calc(100% - #{rem(55)});
33 | }
34 |
35 | &__year {
36 | box-sizing: border-box;
37 | color: black;
38 | display: inline-block;
39 | font-size: rem(14);
40 | font-weight: 700;
41 | height: rem(32);
42 | line-height: rem(32);
43 | text-align: center;
44 |
45 | &:hover {
46 | cursor: pointer;
47 | text-decoration: underline;
48 | }
49 |
50 | &--active {
51 | border-bottom: 4px solid black;
52 |
53 | &:hover {
54 | cursor: default;
55 | text-decoration: none;
56 | }
57 | }
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/src/styles/utilities/_reset.scss:
--------------------------------------------------------------------------------
1 | // -----------------------------------------------------------------------------
2 | // Reset
3 | // -----------------------------------------------------------------------------
4 | // Based on Eric Meyer's reset CSS - http://meyerweb.com/eric/tools/css/reset
5 | // -----------------------------------------------------------------------------
6 |
7 |
8 | html,
9 | body,
10 | div,
11 | span,
12 | applet,
13 | object,
14 | iframe,
15 | h1,
16 | h2,
17 | h3,
18 | h4,
19 | h5,
20 | h6,
21 | p,
22 | blockquote,
23 | pre,
24 | a,
25 | abbr,
26 | acronym,
27 | address,
28 | big,
29 | cite,
30 | code,
31 | del,
32 | dfn,
33 | em,
34 | img,
35 | ins,
36 | kbd,
37 | q,
38 | s,
39 | samp,
40 | small,
41 | strike,
42 | strong,
43 | sub,
44 | sup,
45 | tt,
46 | var,
47 | b,
48 | u,
49 | i,
50 | center,
51 | dl,
52 | dt,
53 | dd,
54 | ol,
55 | ul,
56 | li,
57 | fieldset,
58 | form,
59 | label,
60 | legend,
61 | table,
62 | caption,
63 | tbody,
64 | tfoot,
65 | thead,
66 | tr,
67 | th,
68 | td,
69 | article,
70 | aside,
71 | canvas,
72 | details,
73 | embed,
74 | figure,
75 | figcaption,
76 | footer,
77 | header,
78 | hgroup,
79 | menu,
80 | nav,
81 | output,
82 | ruby,
83 | section,
84 | summary,
85 | time,
86 | mark,
87 | audio,
88 | video {
89 | padding: 0;
90 | border: 0;
91 | margin: 0;
92 |
93 | font: inherit;
94 | vertical-align: baseline;
95 | }
96 |
97 | article,
98 | aside,
99 | details,
100 | figcaption,
101 | figure,
102 | footer,
103 | header,
104 | hgroup,
105 | main,
106 | menu,
107 | nav,
108 | section {
109 | display: block;
110 | }
111 |
112 | body {
113 | -webkit-tap-highlight-color: transparent;
114 | font-family: $font-stack;
115 | font-size: $font-size;
116 | font-weight: $font-weight;
117 | line-height: $line-height;
118 | min-width: rem($min-width);
119 | }
120 |
121 | ul, ol {
122 | list-style: none;
123 | }
124 |
125 | blockquote,
126 | q {
127 | quotes: none;
128 |
129 | &:before,
130 | &:after {
131 | content: '';
132 | content: none;
133 | }
134 | }
135 |
136 | table {
137 | border-collapse: collapse;
138 | border-spacing: 0;
139 | }
140 |
141 | h1 {
142 | font-size: rem(24);
143 | line-height: rem(30);
144 | }
145 |
146 | h2 {
147 | font-size: rem(18);
148 | line-height: rem(30);
149 | }
150 |
151 | a,
152 | button,
153 | input {
154 | -webkit-tap-highlight-color: transparent;
155 | text-decoration: none;
156 | }
157 |
158 | .visuallyhidden {
159 | background-color: transparent;
160 | background-repeat: no-repeat;
161 | background-position: 0 0;
162 | border: 0;
163 | color: transparent;
164 | display: block;
165 | font: 0/0 a;
166 | text-shadow: none;
167 | }
168 |
--------------------------------------------------------------------------------
/src/styles/modules/_social-media.scss:
--------------------------------------------------------------------------------
1 | $number-of-links: 3;
2 | $number-of-links-mobile: 4;
3 |
4 | .social-media {
5 | background: inherit;
6 |
7 | @media (min-width: 550px) {
8 | float: right;
9 | margin-top: rem(10);
10 | }
11 | }
12 |
13 | .social-media__title {
14 | display: inline-block;
15 | font-size: rem(14);
16 | font-weight: 300;
17 | pointer-events: all;
18 | position: absolute;
19 | right: rem(16);
20 | text-transform: uppercase;
21 | top: rem(30);
22 | vertical-align: middle;
23 | z-index: 1;
24 |
25 |
26 | @media (min-width: 550px) {
27 | font-size: rem(18);
28 | font-weight: 600;
29 | line-height: rem(24);
30 | pointer-events: none;
31 | position: static;
32 | }
33 | }
34 |
35 | .social-media__buttons {
36 | background: inherit;
37 | bottom: 0;
38 | left: 0;
39 | margin-bottom: 0;
40 | margin-top: 0;
41 | padding-left: 0;
42 | padding-top: rem(30);
43 | position: fixed;
44 | top: 0;
45 | transform: translateX(100%);
46 | transition: transform 350ms;
47 | width: 100%;
48 | z-index: 2;
49 |
50 | .section__header {
51 | margin-bottom: 30px;
52 |
53 | @media (min-width: 550px) {
54 | flex: 0 1 auto;
55 | height: 158px;
56 | margin-bottom: 16px;
57 | }
58 |
59 | .logo {
60 | width: 180px;
61 | }
62 | }
63 |
64 | ul {
65 | list-style-type: none;
66 | margin-top: 120px;
67 | }
68 |
69 | &.active {
70 | box-sizing: border-box;
71 | padding: rem(30);
72 | transform: translateX(0);
73 | }
74 |
75 | @media (min-width: 550px) {
76 | background: none;
77 | display: inline-block;
78 | height: rem(24);
79 | padding-top: 0;
80 | position: static;
81 | transform: none;
82 | transition: none;
83 | vertical-align: middle;
84 | width: auto;
85 |
86 | .section__header {
87 | display: none;
88 | }
89 |
90 | ul {
91 | margin-top: 0;
92 | padding-left: 0;
93 | }
94 | }
95 | }
96 |
97 | .social-media__close {
98 | display: block;
99 | height: rem(25);
100 | position: absolute;
101 | right: rem(20);
102 | top: rem(30);
103 | width: rem(25);
104 |
105 | @media (min-width: 550px) {
106 | display: none;
107 | }
108 | }
109 |
110 | .social-media__button {
111 | display: block;
112 |
113 | @media (min-width: 550px) {
114 | display: inline-block;
115 | margin-left: rem(40);
116 |
117 | &:last-child {
118 | display: none
119 | }
120 | }
121 | }
122 |
123 | .social-media__link {
124 | align-items: center;
125 | color: inherit;
126 | display: block;
127 | height: 100%;
128 | margin-bottom: rem(40);
129 | text-decoration: none;
130 | transition: opacity 350ms;
131 |
132 | &:hover {
133 | cursor: pointer;
134 | opacity: 0.6;
135 | }
136 |
137 | @media (min-width: 550px) {
138 | margin-bottom: 0;
139 | }
140 | }
141 |
142 | .social-media__title-text {
143 | display: inline-block;
144 | vertical-align: middle;
145 | }
146 |
147 | .social-media__title-icon {
148 | display: inline-block;
149 | height: rem(16);
150 | margin-left: rem(4);
151 | margin-top: rem(-2);
152 | vertical-align: middle;
153 | width: rem(16);
154 |
155 | @media (min-width: 550px) {
156 | display: none;
157 | }
158 | }
159 |
160 | .social-media__icon {
161 | display: inline-block;
162 | height: rem(20);
163 | margin-right: rem(40);
164 | vertical-align: middle;
165 | width: rem(20);
166 |
167 | @media (min-width: 550px) {
168 | margin-right: 0;
169 | }
170 | }
171 |
172 | .social-media__text {
173 | display: inline-block;
174 | font-size: rem(19);
175 | font-weight: 300;
176 | vertical-align: middle;
177 |
178 | @media (min-width: 550px) {
179 | display: none;
180 | }
181 | }
182 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Flow maps
2 |
3 | Flow maps shows bilateral movement between geographical areas over time. The default map is a world map that can show movement between countries, but this map can be replaced by other maps to produce movements on different scales at any location.
4 |
5 |
6 | ## Usage
7 |
8 | ```html
9 |
10 |
11 |
12 | ```
13 |
14 | 
15 |
16 | ## API Reference
17 |
18 | By default a world map will be displayed. To change this, link to an external TopoJSON file or overwrite the file at `/data/topojson.json` (see [data-topojson](#topojson) for more information). To add your dataset link to an external csv file or overwrite the file at `/data/data.csv` (see [data-data](#data) for more information). A second example dataset is saved at `/data/african-aid.csv`.
19 |
20 | Flow maps uses [data attributes](https://developer.mozilla.org/en/docs/Web/Guide/HTML/Using_data_attributes) to personalise the visualisation.
21 |
22 | ### data-start-year [required]
23 |
24 | #### Description
25 |
26 | The first year for which data is present
27 |
28 | ### data-end-year [required]
29 |
30 | #### Description
31 |
32 | The last year for which data is present
33 |
34 | ### data-title [required]
35 |
36 | #### Description
37 |
38 | Title for the map
39 |
40 | ### data-description [required]
41 |
42 | #### Description
43 |
44 | Description for the map
45 |
46 | ### data-year-gap [optional]
47 |
48 | #### Description
49 |
50 | The number of years between each dataset. Default: 1
51 |
52 | ### data-bg-color [optional]
53 |
54 | #### Description
55 |
56 | Background colour for the map. Default: '#192A3A'
57 |
58 | ### data-text-color [optional]
59 |
60 | #### Description
61 |
62 | Text colour for the title, description, switch and social menu. Default: '#EFEFEF'
63 |
64 | ### data-map-color [optional]
65 |
66 | #### Description
67 |
68 | Color for the map. Default: '#EFEFEF'
69 |
70 | ### data-sending-color [optional]
71 |
72 | #### Description
73 |
74 | Sending colour for the map. Default: '#7E4C7F'
75 |
76 | ### data-receiving-color [optional]
77 |
78 | #### Description
79 |
80 | Receiving colour for the map. Default: '#23787A'
81 |
82 | ### data-sending-text [optional]
83 |
84 | #### Description
85 |
86 | Label for "sending" direction switch option. Default: 'Sending'
87 |
88 | ### data-receiving-text [optional]
89 |
90 | #### Description
91 |
92 | Label for "receiving" direction switch option. Default: 'Receiving'
93 |
94 | ### data-show-social [optional]
95 |
96 | #### Description
97 |
98 | Whether or not to show the social menu. If set to true, the icons will populate the share content based on the og/meta tags in your website's `` tag. Default: false
99 |
100 | ### data-overlay-text-pre [optional]
101 |
102 | #### Description
103 |
104 | Text to appear on the overlay before the number, e.g. '£'. Default: ''
105 |
106 | ### data-overlay-text-post [optional]
107 |
108 | #### Description
109 |
110 | Text to appear on the overlay after the number, e.g. ' people'. Default: ''
111 |
112 | ### data-ratio [optional]
113 |
114 | #### Description
115 |
116 | A number to describe the ratio of map width to map height. For a full view of the world map this should always be the default 2.3415. Default: 2.3415
117 |
118 | ### data-zoom [optional]
119 |
120 | #### Description
121 |
122 | Magnification factor to display a zoomed map. Default: 1
123 |
124 | ### data-zoom-x [optional]
125 |
126 | #### Description
127 |
128 | X position of the centre of zoom. Default: '50%'
129 |
130 | ### data-zoom-y [optional]
131 |
132 | #### Description
133 |
134 | Y position of the centre of zoom. Default: '50%'
135 |
136 | ### data-topojson [optional]
137 |
138 | #### Description
139 |
140 | Link to an external TopoJSON file defining the map to be displayed. By default the world map will be displayed. You can also change the TopoJSON file by simply replacing the file in `/data/topojson.json`. The TopoJSON file must be valid TopoJSON and have exactly one geometry object named `subunits` and with type `GeometryCollection`.
141 |
142 | ### data-data [optional]
143 |
144 | #### Description
145 |
146 | Link to an external csv file containing the data to be visualized. By default the data will be pulled from `/data/data.csv`. You can replace this file with your own dataset. The data headings should be as follows: `year,sending_name,receiving_name,amount`.
147 |
--------------------------------------------------------------------------------
/dist/css/index.css:
--------------------------------------------------------------------------------
1 | body,html{min-height:100%}body{height:100%}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{padding:0;border:0;margin:0;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section{display:block}body{-webkit-tap-highlight-color:transparent;font-family:proxima-nova,sans-serif;font-size:16px;font-size:1rem;font-weight:400;line-height:1.25;min-width:320px;min-width:20rem}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}table{border-collapse:collapse;border-spacing:0}h1{font-size:24px;font-size:1.5rem}h1,h2{line-height:30px;line-height:1.875rem}h2{font-size:18px;font-size:1.125rem}a,button,input{-webkit-tap-highlight-color:transparent;text-decoration:none}.visuallyhidden{background-color:transparent;background-repeat:no-repeat;background-position:0 0;border:0;color:transparent;display:block;font:0/0 a;text-shadow:none}.flow-map__header{background:inherit;overflow:hidden;padding:60px 20px 20px;padding:3.75rem 1.25rem 1.25rem}@media (min-width:550px){.flow-map__header{padding:3.75rem 3.4375rem 1.25rem}}@media (min-width:550px){.flow-map__heading{float:left;margin-right:5rem}}.flow-map__title{font-size:32px;font-size:2rem;line-height:40px;line-height:2.5rem}.flow-map__description{font-size:14px;font-size:.875rem;font-weight:200;line-height:17px;line-height:1.0625rem}.flow-map__svg{display:block;height:100%;margin:0 auto;width:auto}.flow-map__zoom-wrapper{bottom:0;left:0;position:absolute;right:0;top:0}.flow-map__svg-wrapper{display:block;height:0;margin-bottom:32px;margin-bottom:2rem;overflow:hidden;padding-bottom:42.7%;position:relative;width:100%}.key{margin-top:20px;margin-top:1.25rem}@media (min-width:550px){.key{float:left;line-height:3rem;margin-right:5rem;margin-top:0}}.key__item{display:inline-block;font-weight:200;vertical-align:middle}.key__item:hover{cursor:pointer}.key__item.active{font-weight:700}.key__item.active:hover{cursor:default}.key__lozenge{background:#3c5468;border-radius:.4375rem;display:inline-block;height:14px;height:.875rem;margin-left:16px;margin-left:1rem;margin-right:16px;margin-right:1rem;position:relative;vertical-align:middle;width:44px;width:2.75rem}.key__lozenge:hover{cursor:pointer}.key__lozenge .key__lozenge-disc{border-radius:50%;display:block;height:14px;height:.875rem;position:absolute;right:0;width:14px;width:.875rem}.key__item--sending.active+.key__lozenge .key__lozenge-disc{left:0;right:auto}.social-media{background:inherit}@media (min-width:550px){.social-media{float:right;margin-top:.625rem}}.social-media__title{display:inline-block;font-size:14px;font-size:.875rem;font-weight:300;pointer-events:all;position:absolute;right:16px;right:1rem;text-transform:uppercase;top:30px;top:1.875rem;vertical-align:middle;z-index:1}@media (min-width:550px){.social-media__title{font-size:1.125rem;font-weight:600;line-height:1.5rem;pointer-events:none;position:static}}.social-media__buttons{background:inherit;bottom:0;left:0;margin-bottom:0;margin-top:0;padding-left:0;padding-top:30px;padding-top:1.875rem;position:fixed;top:0;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);-webkit-transition:-webkit-transform .35s;transition:-webkit-transform .35s;transition:transform .35s;transition:transform .35s,-webkit-transform .35s;width:100%;z-index:2}.social-media__buttons .section__header{margin-bottom:30px}@media (min-width:550px){.social-media__buttons .section__header{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;height:158px;margin-bottom:16px}}.social-media__buttons .section__header .logo{width:180px}.social-media__buttons ul{list-style-type:none;margin-top:120px}.social-media__buttons.active{box-sizing:border-box;padding:30px;padding:1.875rem;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}@media (min-width:550px){.social-media__buttons{background:none;display:inline-block;height:1.5rem;padding-top:0;position:static;-webkit-transform:none;-ms-transform:none;transform:none;-webkit-transition:none;transition:none;vertical-align:middle;width:auto}.social-media__buttons .section__header{display:none}.social-media__buttons ul{margin-top:0;padding-left:0}}.social-media__close{display:block;height:25px;height:1.5625rem;position:absolute;right:20px;right:1.25rem;top:30px;top:1.875rem;width:25px;width:1.5625rem}@media (min-width:550px){.social-media__close{display:none}}.social-media__button{display:block}@media (min-width:550px){.social-media__button{display:inline-block;margin-left:2.5rem}.social-media__button:last-child{display:none}}.social-media__link{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;color:inherit;display:block;height:100%;margin-bottom:40px;margin-bottom:2.5rem;text-decoration:none;-webkit-transition:opacity .35s;transition:opacity .35s}.social-media__link:hover{cursor:pointer;opacity:.6}@media (min-width:550px){.social-media__link{margin-bottom:0}}.social-media__title-icon,.social-media__title-text{display:inline-block;vertical-align:middle}.social-media__title-icon{height:16px;height:1rem;margin-left:4px;margin-left:.25rem;margin-top:-2px;margin-top:-.125rem;width:16px;width:1rem}@media (min-width:550px){.social-media__title-icon{display:none}}.social-media__icon{display:inline-block;height:20px;height:1.25rem;margin-right:40px;margin-right:2.5rem;vertical-align:middle;width:20px;width:1.25rem}@media (min-width:550px){.social-media__icon{margin-right:0}}.social-media__text{display:inline-block;font-size:19px;font-size:1.1875rem;font-weight:300;vertical-align:middle}@media (min-width:550px){.social-media__text{display:none}}.timeline{bottom:0;left:0;overflow:hidden;position:fixed;right:0}.timeline__play{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16.67 16.67'%3E%3Ctitle%3Eicon_play%3C/title%3E%3Cpolygon fill='%23000000' points='13.39 8.33 5.28 13.02 5.28 3.65 13.39 8.33'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:50% 50%;background-size:auto 20px;float:left;height:32px;height:2rem;width:55px;width:3.4375rem}.timeline__play.timeline__pause{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' width='16.667px' height='16.667px' viewBox='0 0 16.667 16.667' enable-background='new 0 0 16.667 16.667' xml:space='preserve'%3E%3Cline fill='none' stroke='%23000000' stroke-width='2' stroke-miterlimit='10' x1='6.333' y1='4.166' x2='6.333' y2='12.5'/%3E%3Cline fill='none' stroke='%23000000' stroke-width='2' stroke-miterlimit='10' x1='10.333' y1='4.166' x2='10.333' y2='12.5'/%3E%3C/svg%3E")}.timeline__play.timeline__reset{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' width='16.667px' height='16.667px' viewBox='0 0 16.667 16.667' enable-background='new 0 0 16.667 16.667' xml:space='preserve'%3E%3Cg%3E%3Cg%3E%3Cpath fill='none' stroke='%23000000' stroke-linecap='square' stroke-miterlimit='10' d='M10.456,12.063 c-0.626,0.357-1.351,0.562-2.123,0.562c-2.37,0-4.292-1.921-4.292-4.292s1.921-4.292,4.292-4.292s4.292,1.921,4.292,4.292'/%3E%3Cg%3E%3Cpolygon fill='%23000000' points='15.061,8.007 10.201,8.007 12.631,10.437 '/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.timeline__play:hover{cursor:pointer}.timeline__years{float:left;width:-webkit-calc(100% - 3.4375rem);width:calc(100% - 3.4375rem)}.timeline__year{box-sizing:border-box;color:#000;display:inline-block;font-size:14px;font-size:.875rem;font-weight:700;height:32px;height:2rem;line-height:32px;line-height:2rem;text-align:center}.timeline__year:hover{cursor:pointer;text-decoration:underline}.timeline__year--active{border-bottom:4px solid #000}.timeline__year--active:hover{cursor:default;text-decoration:none}
--------------------------------------------------------------------------------
/src/scripts/modules/flow-map.js:
--------------------------------------------------------------------------------
1 | import $ from 'jquery'
2 | import * as d3 from 'd3'
3 | import * as topojson from 'topojson'
4 | import shuffle from '../utils/shuffle'
5 | import throttle from '../utils/throttle'
6 | import hexToRgb from '../utils/hexToRgb'
7 | import socialMedia from './social-media'
8 | import numberWithCommas from '../utils/numberWithCommas'
9 |
10 | // const WIDTH = 960
11 | const HEIGHT = 410
12 | const COLOR_TEXT = '#192A3A'
13 |
14 | class FlowMap {
15 | constructor(map) {
16 | this.map = map
17 | this.$map = $(map)
18 | this.mode = 'receiving'
19 | this.yearInterval = null
20 | this.startYear = this.$map.data('startYear')
21 | this.endYear = this.$map.data('endYear')
22 | this.yearGap = this.$map.data('yearGap') || 1
23 | this.year = this.startYear
24 | this.colorBG = this.$map.data('bgColor') || '#192A3A'
25 | this.colorText = this.$map.data('textColor') || '#EFEFEF'
26 | this.colorMap = this.$map.data('mapColor') || '#EFEFEF'
27 | this.colorSending = this.$map.data('sendingColor') || '#7E4C7F'
28 | this.colorReceiving = this.$map.data('receivingColor') || '#23787A'
29 | this.receivingText = this.$map.data('receivingText') || 'Receiving'
30 | this.sendingText = this.$map.data('sendingText') || 'Sending'
31 | this.showSocial = this.$map.data('showSocial') || false
32 | this.overlayTextPre = this.$map.data('overlayTextPre') || ''
33 | this.overlayTextPost = this.$map.data('overlayTextPost') || ''
34 | this.zoom = this.$map.data('zoom') || 1
35 | this.zoomX = this.$map.data('zoomX') || '50%'
36 | this.zoomY = this.$map.data('zoomY') || '50%'
37 | this.width = 410 * this.$map.data('ratio') || 960
38 | this.dataArray = []
39 | this.radiusScale = d3.scaleLinear()
40 | this.$window = $(window)
41 | this.multipleTimelineLines = false
42 | }
43 |
44 | init() {
45 | $('html, body').css('background', this.colorBG)
46 | this.addMarkup()
47 | this.setupGradient()
48 | this.svg.append('rect').attr('width', this.width).attr('height', HEIGHT).attr('fill', this.colorBG)
49 | if (this.zoom !== 1) {
50 | $('.flow-map__zoom-wrapper').css({
51 | 'transform': `scale(${this.zoom})`,
52 | 'transform-origin': `${this.zoomX} ${this.zoomY}`
53 | })
54 | }
55 | this.drawMap()
56 | this.checkHeight()
57 |
58 | this.$start.on('click', this.timeline.bind(this))
59 | this.$map.on('click', '.key__item', this.clickKeyItem.bind(this))
60 | this.$map.on('click', '.key__lozenge', this.clickKeyLozenge.bind(this))
61 |
62 | this.$timelineYears.on('click', (e) => {
63 | const $target = $(e.currentTarget)
64 | if ($target.hasClass('timeline__year--active')) {
65 | return false
66 | } else {
67 | $target.addClass('timeline__year--active').siblings().removeClass('timeline__year--active')
68 | this.moveToYear($target.data('year'))
69 | }
70 | })
71 |
72 | throttle('resize', 'resize.map')
73 | this.$window.on('resize.map', () => {
74 | this.checkHeight()
75 | this.checkWidth()
76 | })
77 |
78 | socialMedia()
79 | }
80 |
81 | setupGradient() {
82 | const svgDefs = this.svg.append('defs')
83 |
84 | const sendingGradient = svgDefs.append('linearGradient')
85 | .attr('id', 'flow-gradient-sending')
86 | const receivingGradient = svgDefs.append('linearGradient')
87 | .attr('id', 'flow-gradient-receiving')
88 |
89 | // Create the stops of the main gradient. Each stop will be assigned
90 | // a class to style the stop using CSS.
91 | sendingGradient.append('stop')
92 | .attr('stop-color', this.colorReceiving)
93 | .attr('offset', '0%')
94 |
95 | sendingGradient.append('stop')
96 | .attr('stop-color', this.colorSending)
97 | .attr('offset', '100%')
98 |
99 | receivingGradient.append('stop')
100 | .attr('stop-color', this.colorSending)
101 | .attr('offset', '0%')
102 |
103 | receivingGradient.append('stop')
104 | .attr('stop-color', this.colorReceiving)
105 | .attr('offset', '100%')
106 | }
107 |
108 | addMarkup() {
109 | this.$map.css('background', this.colorBG)
110 | this.$map.css('color', this.colorText)
111 | this.$map.css('fill', this.colorText)
112 | this.$map.css('stroke', this.colorText)
113 | const modeColor = this.mode === 'receiving' ? this.colorReceiving : this.colorSending
114 | let header = ''
182 | this.$map.append(header)
183 | this.$map.append($(''))
184 |
185 | this.svg = d3.select('.flow-map__zoom-wrapper').append('svg').attr('viewBox', `0 0 ${this.width} ${HEIGHT}`).attr('class', 'flow-map__svg').attr('stroke', 'none')
186 | this.numberOfYears = (this.endYear - this.startYear) / this.yearGap + 1
187 | this.$header = $('.flow-map__header')
188 | this.$visualisation = $('.flow-map__visualisation')
189 |
190 | if (this.numberOfYears > 1) {
191 | let timeline = ``
192 | this.yearFraction = 1 / this.numberOfYears
193 | if (this.yearFraction * (this.$window.outerWidth() - 55) < 50) {
194 | let maxPerRow = Math.floor(this.$window.outerWidth() - 55) / 50
195 | let rows = Math.ceil(this.numberOfYears / maxPerRow)
196 | this.multipleTimelineLines = true
197 | this.yearFraction = 1 / Math.floor(this.numberOfYears / rows)
198 | }
199 | this.opacities = shuffle(Array.from(new Array((this.endYear - this.startYear) / this.yearGap + 1), (val,index) => (index + 1) * this.yearFraction))
200 | const hex = hexToRgb(modeColor)
201 | for (let i = this.startYear; i < this.endYear + 1; i += this.yearGap) {
202 | const className = i === this.startYear ? 'timeline__year timeline__year--active' : 'timeline__year'
203 | timeline += `${i}`
204 | }
205 | timeline += '
'
206 | this.$visualisation.append($(timeline))
207 | }
208 |
209 | this.$svgWrapper = $('.flow-map__svg-wrapper')
210 | this.$svg = $('.flow-map__svg')
211 | this.$timeline = $('.timeline')
212 | this.$timelineYears = this.$timeline.find('.timeline__year')
213 | this.$start = $('.timeline__play')
214 | }
215 |
216 | checkHeight() {
217 | const WINDOW_HEIGHT = this.$window.outerHeight()
218 | const CONTENT_HEIGHT = this.$svgWrapper.outerHeight() + this.$timeline.outerHeight() + this.$header.outerHeight()
219 | if (CONTENT_HEIGHT < WINDOW_HEIGHT) {
220 | this.$svgWrapper.css('margin-top', `${(WINDOW_HEIGHT - CONTENT_HEIGHT) / 2}px`)
221 | }
222 | }
223 |
224 | checkWidth() {
225 | if (this.yearFraction * (this.$window.outerWidth() - 55) < 50) {
226 | let maxPerRow = Math.floor(this.$window.outerWidth() - 55) / 50
227 | let rows = Math.ceil(this.numberOfYears / maxPerRow)
228 | this.yearFraction = 1 / Math.floor(this.numberOfYears / rows)
229 | this.multipleTimelineLines = true
230 | this.$timelineYears.css('width', `${100 * this.yearFraction}%`)
231 | } else if (this.multipleTimelineLines && this.yearFraction * (this.$window.outerWidth() - 55) >= 50) {
232 | let maxPerRow = Math.floor(this.$window.outerWidth() - 55) / 50
233 | let rows = Math.ceil(this.numberOfYears / maxPerRow)
234 | if (rows === 1) {
235 | this.multipleTimelineLines = false
236 | }
237 | this.yearFraction = 1 / Math.floor(this.numberOfYears / rows)
238 | this.$timelineYears.css('width', `${100 * this.yearFraction}%`)
239 | }
240 | }
241 |
242 | clickKeyItem(e) {
243 | const $TARGET = $(e.currentTarget)
244 | if ($TARGET.hasClass('active')) {
245 | return
246 | }
247 |
248 | $TARGET.addClass('active').siblings('.key__item').removeClass('active')
249 | this.switchMode()
250 | }
251 |
252 | clickKeyLozenge(e) {
253 | const $TARGET = $(e.currentTarget)
254 | $TARGET.siblings('.key__item').toggleClass('active')
255 | this.switchMode()
256 | }
257 |
258 | switchMode() {
259 | this.mode = this.mode === 'receiving' ? 'sending' : 'receiving'
260 | const color = this.mode === 'receiving' ? this.colorReceiving : this.colorSending
261 | $('.key__lozenge-disc').css('background', color)
262 |
263 | this.circles
264 | .transition()
265 | .duration(300)
266 | .attr('r', (d) => {
267 | if (d[this.year] !== undefined) {
268 | if (this.mode === 'receiving') {
269 | return d[this.year].receiving_total > 0 ? this.radiusScale(parseFloat(d[this.year].receiving_total)) : 0
270 | } else {
271 | return d[this.year].sending_total > 0 ? this.radiusScale(parseFloat(d[this.year].sending_total)) : 0
272 | }
273 | } else {
274 | return 0
275 | }
276 | })
277 | .attr('fill', color)
278 |
279 | const hex = hexToRgb(color)
280 |
281 | this.$timelineYears.each((index, element) => {
282 | $(element).css('background', `rgba(${hex.r}, ${hex.g}, ${hex.b}, ${this.opacities[index]})`)
283 | })
284 | }
285 |
286 | drawMap() {
287 | const projection = d3.geoEquirectangular()
288 |
289 | const PATH = d3.geoPath()
290 | .projection(projection)
291 |
292 | const BASE_URL = window.location.href.split('/').slice(0, -1).join('/')
293 | let mapUrl = this.$map.data('topojson') ? this.$map.data('topojson') : BASE_URL + '/data/topojson.json'
294 | let dataUrl = this.$map.data('data') ? this.$map.data('data') : BASE_URL + '/data/data.csv'
295 | d3.json(mapUrl, (error, map) => {
296 | const COUNTRIES = topojson.feature(map, map.objects.subunits).features
297 |
298 | const COUNTRY_PATHS = this.svg.selectAll('.flow-map__country')
299 | .data(COUNTRIES)
300 | .enter().append('path')
301 | .attr('class', 'map__country')
302 | .attr('d', PATH)
303 | .attr('stroke', this.colorBG)
304 | .attr('stroke-width', 0.5)
305 | .attr('fill', this.colorMap)
306 | .attr('data-name', (d) => d.name)
307 | .on('mouseover', this.activateCountry.bind(this))
308 | .on('mouseout', this.deactivateCountry.bind(this))
309 |
310 | d3.csv(dataUrl, (error, data) => {
311 | let maxAmount = 0
312 | let minAmount = 0
313 | let sendingCountryEntry
314 | let receivingCountryEntry
315 | for (let i = 0; i < data.length; i++) {
316 | sendingCountryEntry = this.dataArray.find(o => o.name === data[i].sending_name)
317 | receivingCountryEntry = this.dataArray.find(o => o.name === data[i].receiving_name)
318 | minAmount += parseFloat(data[i].amount)
319 |
320 | if (sendingCountryEntry !== undefined) {
321 | if (sendingCountryEntry[data[i].year] !== undefined) {
322 | sendingCountryEntry[data[i].year].sending_total += parseFloat(data[i].amount)
323 | sendingCountryEntry[data[i].year].receiving_countries.push(data[i].receiving_name)
324 | sendingCountryEntry[data[i].year].amounts_sent.push(parseFloat(data[i].amount))
325 | } else {
326 | sendingCountryEntry[data[i].year] = {
327 | 'sending_total': parseFloat(data[i].amount),
328 | 'receiving_countries': [data[i].receiving_name],
329 | 'amounts_sent': [parseFloat(data[i].amount)],
330 | 'receiving_total': 0,
331 | 'sending_countries': [],
332 | 'amounts_received': []
333 | }
334 | }
335 | } else {
336 | const COUNTRY_PATH = COUNTRY_PATHS.filter((x) => {
337 | return x.properties.name === data[i].sending_name
338 | })
339 |
340 | const object = {
341 | 'name': data[i].sending_name,
342 | 'id': `${i}-s`,
343 | 'center': PATH.centroid(COUNTRY_PATH.data()[0])
344 | }
345 | object[data[i].year] = {
346 | 'sending_total': parseFloat(data[i].amount),
347 | 'receiving_countries': [data[i].receiving_name],
348 | 'amounts_sent': [parseFloat(data[i].amount)],
349 | 'receiving_total': 0,
350 | 'sending_countries': [],
351 | 'amounts_received': []
352 | }
353 | this.dataArray.push(object)
354 | }
355 |
356 | if (receivingCountryEntry !== undefined) {
357 | if (receivingCountryEntry[data[i].year] !== undefined) {
358 | receivingCountryEntry[data[i].year].receiving_total += parseFloat(data[i].amount)
359 | receivingCountryEntry[data[i].year].sending_countries.push(data[i].sending_name)
360 | receivingCountryEntry[data[i].year].amounts_received.push(parseFloat(data[i].amount))
361 | } else {
362 | receivingCountryEntry[data[i].year] = {
363 | 'receiving_total': parseFloat(data[i].amount),
364 | 'sending_countries': [data[i].sending_name],
365 | 'amounts_received': [parseFloat(data[i].amount)],
366 | 'sending_total': 0,
367 | 'receiving_countries': [],
368 | 'amounts_sent': []
369 | }
370 | }
371 | } else {
372 | const COUNTRY_PATH = COUNTRY_PATHS.filter((x) => {
373 | return x.properties.name === data[i].receiving_name
374 | })
375 |
376 | const object = {
377 | 'name': data[i].receiving_name,
378 | 'id': `${i}-r`,
379 | 'center': PATH.centroid(COUNTRY_PATH.data()[0])
380 | }
381 | object[data[i].year] = {
382 | 'receiving_total': parseFloat(data[i].amount),
383 | 'sending_countries': [data[i].sending_name],
384 | 'amounts_received': [parseFloat(data[i].amount)],
385 | 'sending_total': 0,
386 | 'receiving_countries': [],
387 | 'amounts_sent': []
388 | }
389 | this.dataArray.push(object)
390 | }
391 | }
392 |
393 | for (let j = 0; j < this.dataArray.length; j++) {
394 | for (let key in this.dataArray[j]) {
395 | if (key !== 'name') {
396 | if(this.dataArray[j][key].sending_total > maxAmount) {
397 | maxAmount = this.dataArray[j][key].sending_total
398 | }
399 |
400 | if (this.dataArray[j][key].sending_total < minAmount && this.dataArray[j][key].sending_total !== 0) {
401 | minAmount = this.dataArray[j][key].sending_total
402 | }
403 |
404 | if(this.dataArray[j][key].receiving_total > maxAmount) {
405 | maxAmount = this.dataArray[j][key].receiving_total
406 | }
407 |
408 | if (this.dataArray[j][key].receiving_total < minAmount && this.dataArray[j][key].receiving_total !== 0) {
409 | minAmount = this.dataArray[j][key].receiving_total
410 | }
411 | }
412 | }
413 | }
414 |
415 | this.radiusScale.domain([minAmount, maxAmount]).range([2, 25])
416 | this.circleGroups = this.svg.selectAll('.flow-map__group')
417 | .data(this.dataArray)
418 | .enter().append('g')
419 | .attr('transform', (d) => `translate(${d.center})`)
420 | .attr('data-x', (d) => d.center[0])
421 | .attr('data-y', (d) => d.center[1])
422 | .attr('class', 'flow-map__group')
423 | .attr('id', (d) => `group-${d.id}`)
424 | .attr('data-sending', (d) => d[this.year] !== undefined && d[this.year].sending_total > 0)
425 | .attr('data-receiving', (d) => d[this.year] !== undefined && d[this.year].receiving_total > 0)
426 | .on('mouseover', this.activateGroup.bind(this))
427 | .on('mouseout', this.deactivateGroup.bind(this))
428 |
429 |
430 | this.circles = this.circleGroups.append('circle')
431 | .attr('r', (d) => {
432 | if (d[this.year] !== undefined) {
433 | if (this.mode === 'receiving') {
434 | return d[this.year].receiving_total > 0 ? this.radiusScale(parseFloat(d[this.year].receiving_total)) : 0
435 | } else {
436 | return d[this.year].sending_total > 0 ? this.radiusScale(parseFloat(d[this.year].sending_total)) : 0
437 | }
438 | } else {
439 | return 0
440 | }
441 | })
442 | .attr('opacity', 0.82)
443 | .attr('fill', () => {
444 | if (this.mode === 'receiving') {
445 | return this.colorReceiving
446 | } else {
447 | return this.colorSending
448 | }
449 | })
450 | .attr('class', 'flow-map__sending-circle')
451 | .attr('id', (d) => `circle-${d.id}`)
452 | })
453 | })
454 | }
455 |
456 | activateCountry(d) {
457 | let name = d.properties.name
458 | let data = this.dataArray.find((element) => element.name === name)
459 | if (data !== undefined) {
460 | let group = $(`#group-${data.id}`)
461 | if (group.length > 0 && group.data(this.mode) === true) {
462 | this.activateGroup(data)
463 | }
464 | }
465 | }
466 |
467 | deactivateCountry(d) {
468 | let name = d.properties.name
469 | let data = this.dataArray.find((element) => element.name === name)
470 | if (data !== undefined) {
471 | this.deactivateGroup(data)
472 | }
473 | }
474 |
475 | activateGroup(d) {
476 | let group = $(`#group-${d.id}`)
477 | this.circles.filter((data) => data.id !== d.id)
478 | .transition()
479 | .duration(300)
480 | .attr('r', (data) => {
481 | if (this.mode === 'receiving' && d[this.year].sending_countries.indexOf(data.name) >= 0) {
482 | const index = data[this.year].receiving_countries.indexOf(d.name)
483 | return data[this.year].amounts_sent[index] > 0 ? this.radiusScale(parseFloat(data[this.year].amounts_sent[index])) : 0
484 | } else if (this.mode === 'sending' && d[this.year].receiving_countries.indexOf(data.name) >= 0) {
485 | const index = data[this.year].sending_countries.indexOf(d.name)
486 | return data[this.year].amounts_received[index] > 0 ? this.radiusScale(parseFloat(data[this.year].amounts_received[index])) : 0
487 | } else {
488 | return 0
489 | }
490 | })
491 | .attr('fill', this.mode === 'receiving' ? this.colorSending : this.colorReceiving)
492 | .attr('opacity', 1)
493 |
494 | d3.select(`#group-${d.id}`).raise().select('circle')
495 | .transition()
496 | .duration(300)
497 | .attr('r', () => {
498 | if (this.mode === 'receiving') {
499 | return d[this.year].receiving_total > 0 ? this.radiusScale(parseFloat(d[this.year].receiving_total)) : 0
500 | } else {
501 | return d[this.year].sending_total > 0 ? this.radiusScale(parseFloat(d[this.year].sending_total)) : 0
502 | }
503 | })
504 | .attr('fill', this.mode === 'receiving' ? this.colorReceiving : this.colorSending)
505 | .attr('opacity', 1)
506 |
507 | this.circleGroups.filter((data) => {
508 | if ((this.mode === 'receiving' && d[this.year].sending_countries.indexOf(data.name) >= 0) || (this.mode === 'sending' && d[this.year].receiving_countries.indexOf(data.name) >= 0)) {
509 | return true
510 | } else {
511 | return false
512 | }
513 | }).insert('line', ':first-child')
514 | .attr('x1', 0)
515 | .attr('y1', 0)
516 | .attr('x2', (data) => {
517 | const length = Math.sqrt((parseInt(group.data('x')) - parseInt(data.center[0])) * (parseInt(group.data('x')) - parseInt(data.center[0])) + (parseInt(group.data('y')) - parseInt(data.center[1])) * (parseInt(group.data('y')) - parseInt(data.center[1])))
518 | return length
519 | })
520 | .attr('y2', 0.1)
521 | .attr('stroke-width', 2)
522 | .attr('stroke', this.mode === 'receiving' ? 'url(#flow-gradient-receiving)' : 'url(#flow-gradient-sending)')
523 | .attr('transform', (data) => {
524 | let angle = Math.atan((group.data('y') - data.center[1]) / (group.data('x') - data.center[0]))
525 | if (group.data('x') < data.center[0]) {
526 | angle += Math.PI
527 | }
528 | return `rotate(${angle * 180 / Math.PI}, 0, 0)`
529 | })
530 | .attr('class', 'flow-map__line')
531 | .attr('stroke-dasharray', (data) => {
532 | const length = Math.sqrt((parseInt(group.data('x')) - parseInt(data.center[0])) * (parseInt(group.data('x')) - parseInt(data.center[0])) + (parseInt(group.data('y')) - parseInt(data.center[1])) * (parseInt(group.data('y')) - parseInt(data.center[1])))
533 | return `${length}, ${length}`
534 | })
535 | .attr('stroke-dashoffset', (data) => {
536 | const length = Math.sqrt((parseInt(group.data('x')) - parseInt(data.center[0])) * (parseInt(group.data('x')) - parseInt(data.center[0])) + (parseInt(group.data('y')) - parseInt(data.center[1])) * (parseInt(group.data('y')) - parseInt(data.center[1])))
537 | return this.mode === 'receiving' ? length : -length
538 | })
539 | .transition()
540 | .delay(300)
541 | .duration(500)
542 | .attr('stroke-dashoffset', 0)
543 |
544 | this.showOverlay(d, group)
545 | }
546 |
547 | deactivateGroup(d) {
548 | this.hideOverlay(d)
549 | d3.selectAll('.flow-map__line').remove()
550 |
551 | this.circles.transition()
552 | .duration(300)
553 | .attr('r', (data) => {
554 | if (data[this.year] !== undefined) {
555 | if (this.mode === 'receiving') {
556 | return data[this.year].receiving_total > 0 ? this.radiusScale(parseFloat(data[this.year].receiving_total)) : 0
557 | } else {
558 | return data[this.year].sending_total > 0 ? this.radiusScale(parseFloat(data[this.year].sending_total)) : 0
559 | }
560 | } else {
561 | return 0
562 | }
563 | })
564 | .attr('fill', this.mode === 'receiving' ? this.colorReceiving : this.colorSending)
565 | .attr('opacity', 0.82)
566 | }
567 |
568 | hideOverlay(d) {
569 | d3.select(`#overlay-${d.id}`).remove()
570 | }
571 |
572 | showOverlay(d, group) {
573 | if (window.matchMedia('(max-width: 640px)').matches) {
574 | return
575 | }
576 | let X = parseInt(group.data('x'))
577 | const Y = parseInt(group.data('y'))
578 | let offLeft = false
579 | let offRight = false
580 |
581 | if (X < 80) {
582 | X = X + 80
583 | offLeft = true
584 | } else if (X > this.width - 80) {
585 | X = X - 80
586 | offRight = true
587 | }
588 |
589 | this.addOverlayGroup(X, Y, d)
590 | this.addOverlayBox()
591 | this.addOverlayNubbin(offLeft, offRight)
592 | this.addOverlayCountryText(d)
593 | this.addOverlayCountryType(d)
594 | }
595 |
596 | addOverlayGroup(X, Y, d) {
597 | let radius = 0
598 | if (this.mode === 'receiving') {
599 | radius = this.radiusScale(parseFloat(d[this.year].receiving_total))
600 | } else {
601 | radius = this.radiusScale(parseFloat(d[this.year].sending_total))
602 | }
603 | this.overlay = this.svg.append('g')
604 | .attr('id', `overlay-${d.id}`)
605 | .attr('transform', `translate(${X - 80}, ${Y - 48 - radius})`)
606 | }
607 |
608 | addOverlayBox() {
609 | this.overlay.append('rect')
610 | .attr('width', 160)
611 | .attr('height', 40)
612 | .attr('x', 0)
613 | .attr('y', 0)
614 | .attr('rx', 5)
615 | .attr('ry', 5)
616 | .attr('fill', '#FFFFFF')
617 | }
618 |
619 | addOverlayNubbin(offLeft, offRight) {
620 | if (offLeft) {
621 | this.overlay.append('polyline')
622 | .attr('fill', '#FFFFFF')
623 | .attr('points', '0 30 10 39 0 45')
624 | } else if (offRight) {
625 | this.overlay.append('polyline')
626 | .attr('fill', '#FFFFFF')
627 | .attr('points', '150 39 160 30 160 45')
628 | } else {
629 | this.overlay.append('polyline')
630 | .attr('fill', '#FFFFFF')
631 | .attr('points', '75 39 85 39 80 45')
632 | }
633 | }
634 |
635 | addOverlayCountryText(d) {
636 | this.overlay.append('text')
637 | .text(d.name.toUpperCase())
638 | .attr('font-size', d.name.length > 22 ? '7' : '11')
639 | .attr('font-family', 'proxima-nova')
640 | .attr('font-weight', 'light')
641 | .attr('x', 80)
642 | .attr('y', 18)
643 | .attr('fill', COLOR_TEXT)
644 | .attr('text-anchor', 'middle')
645 | }
646 |
647 | addOverlayCountryType(d) {
648 | let amount = this.mode === 'receiving' ? d[this.year].receiving_total : d[this.year].sending_total
649 | if (Math.round(amount) >= 10) {
650 | amount = numberWithCommas(Math.round(amount))
651 | } else {
652 | amount = Math.round(amount * 10) / 10
653 | }
654 |
655 | amount = this.overlayTextPre + amount + this.overlayTextPost
656 | this.overlay.append('text')
657 | .text(amount)
658 | .attr('font-family', 'proxima-nova')
659 | .attr('font-size', '9')
660 | .attr('font-weight', 'bold')
661 | .attr('x', 80)
662 | .attr('y', 30)
663 | .attr('fill', COLOR_TEXT)
664 | .attr('text-anchor', 'middle')
665 | }
666 |
667 | timeline(e) {
668 | const $TARGET = $(e.currentTarget)
669 |
670 | if ($TARGET.hasClass('timeline__pause')) {
671 | $TARGET.removeClass('timeline__pause')
672 | clearInterval(this.yearInterval)
673 | if (this.year === this.endYear) {
674 | $TARGET.addClass('timeline__reset')
675 | } else {
676 | $TARGET.removeClass('timeline__reset')
677 | }
678 | } else if ($TARGET.hasClass('timeline__reset')) {
679 | this.$timelineYears.filter(`[data-year=${this.startYear}]`).addClass('timeline__year--active').siblings().removeClass('timeline__year--active')
680 | this.moveToYear(this.startYear)
681 | } else {
682 | $TARGET.removeClass('timeline__reset')
683 | $TARGET.addClass('timeline__pause')
684 | this.yearInterval = setInterval(() => {
685 | this.year += this.yearGap
686 | this.$timelineYears.filter(`[data-year=${this.year}]`).addClass('timeline__year--active').siblings().removeClass('timeline__year--active')
687 | this.circles
688 | .transition()
689 | .duration(300)
690 | .attr('r', (d) => {
691 | if (d[this.year] !== undefined) {
692 | if (this.mode === 'receiving') {
693 | return d[this.year].receiving_total > 0 ? this.radiusScale(parseFloat(d[this.year].receiving_total)) : 0
694 | } else {
695 | return d[this.year].sending_total > 0 ? this.radiusScale(parseFloat(d[this.year].sending_total)) : 0
696 | }
697 | } else {
698 | return 0
699 | }
700 | })
701 |
702 | if(this.year >= this.endYear) {
703 | clearInterval(this.yearInterval)
704 | $TARGET.removeClass('timeline__pause')
705 | $TARGET.addClass('timeline__reset')
706 | }
707 | }, 1000)
708 | }
709 | }
710 |
711 | moveToYear(year) {
712 | this.year = parseInt(year)
713 | clearInterval(this.yearInterval)
714 | this.$start.removeClass('timeline__pause')
715 | if (this.year === this.endYear) {
716 | this.$start.addClass('timeline__reset')
717 | } else {
718 | this.$start.removeClass('timeline__reset')
719 | }
720 |
721 | this.circles
722 | .transition()
723 | .duration(300)
724 | .attr('r', (d) => {
725 | if (d[this.year] !== undefined) {
726 | if (this.mode === 'receiving') {
727 | return d[this.year].receiving_total > 0 ? this.radiusScale(parseFloat(d[this.year].receiving_total)) : 0
728 | } else {
729 | return d[this.year].sending_total > 0 ? this.radiusScale(parseFloat(d[this.year].sending_total)) : 0
730 | }
731 | } else {
732 | return 0
733 | }
734 | })
735 | }
736 | }
737 |
738 | export default FlowMap
739 |
--------------------------------------------------------------------------------
/data/african-aid.csv:
--------------------------------------------------------------------------------
1 | year,sending_name,amount,receiving_name
2 | 2014,Austria,0.164,Algeria
3 | 2014,Austria,0.259,Libya
4 | 2014,Austria,0.243,Morocco
5 | 2014,Austria,0.595,Tunisia
6 | 2014,Austria,3.053,Egypt
7 | 2014,Austria,0.403,South Africa
8 | 2014,Austria,0.024,Angola
9 | 2014,Austria,0.075,Burundi
10 | 2014,Austria,0.28,Cameroon
11 | 2014,Austria,0.265,Cabo Verde
12 | 2014,Austria,1.04,Central African Republic
13 | 2014,Austria,0.273,Chad
14 | 2014,Austria,0.011,Congo
15 | 2014,Austria,0.418,Democratic Republic of the Congo
16 | 2014,Austria,0.035,Benin
17 | 2014,Austria,9.673,Ethiopia
18 | 2014,Austria,0.093,Gabon
19 | 2014,Austria,0.08,Gambia
20 | 2014,Austria,3.264,Ghana
21 | 2014,Austria,0.027,Guinea
22 | 2014,Austria,0.024,Equatorial Guinea
23 | 2014,Austria,0.056,Côte d'Ivoire
24 | 2014,Austria,2.063,Kenya
25 | 2014,Austria,0.035,Madagascar
26 | 2014,Austria,0.08,Malawi
27 | 2014,Austria,0.414,Mali
28 | 2014,Austria,0.012,Mauritania
29 | 2014,Austria,0.011,Mauritius
30 | 2014,Austria,7.094,Mozambique
31 | 2014,Austria,0.062,Niger
32 | 2014,Austria,0.862,Nigeria
33 | 2014,Austria,0.347,Zimbabwe
34 | 2014,Austria,0.136,Rwanda
35 | 2014,Austria,0.012,São Tomé and Principe
36 | 2014,Austria,2.159,Senegal
37 | 2014,Austria,0.771,Sierra Leone
38 | 2014,Austria,0.154,Somalia
39 | 2014,Austria,0.037,Namibia
40 | 2014,Austria,0.296,Sudan
41 | 2014,Austria,1.359,South Sudan
42 | 2014,Austria,2.774,Tanzania
43 | 2014,Austria,0.075,Togo
44 | 2014,Austria,12.157,Uganda
45 | 2014,Austria,4.866,Burkina Faso
46 | 2014,Austria,0.024,Zambia
47 | 2014,Belgium,9.11,Algeria
48 | 2014,Belgium,0.1,Libya
49 | 2014,Belgium,19.57,Morocco
50 | 2014,Belgium,0.66,Tunisia
51 | 2014,Belgium,0.95,Egypt
52 | 2014,Belgium,19.25,South Africa
53 | 2014,Belgium,0.33,Angola
54 | 2014,Belgium,62.41,Burundi
55 | 2014,Belgium,9.56,Cameroon
56 | 2014,Belgium,6.45,Central African Republic
57 | 2014,Belgium,0.15,Comoros
58 | 2014,Belgium,0.01,Congo
59 | 2014,Belgium,150.61,Democratic Republic of the Congo
60 | 2014,Belgium,21.25,Benin
61 | 2014,Belgium,3.36,Ethiopia
62 | 2014,Belgium,0.27,Gambia
63 | 2014,Belgium,2.72,Ghana
64 | 2014,Belgium,3.74,Guinea
65 | 2014,Belgium,0.47,Guinea-Bissau
66 | 2014,Belgium,0.59,Côte d'Ivoire
67 | 2014,Belgium,8.59,Kenya
68 | 2014,Belgium,7,Liberia
69 | 2014,Belgium,3.19,Madagascar
70 | 2014,Belgium,8.34,Malawi
71 | 2014,Belgium,19.34,Mali
72 | 2014,Belgium,0.58,Mauritania
73 | 2014,Belgium,21.09,Mozambique
74 | 2014,Belgium,17.38,Niger
75 | 2014,Belgium,0.15,Nigeria
76 | 2014,Belgium,3.86,Zimbabwe
77 | 2014,Belgium,42.19,Rwanda
78 | 2014,Belgium,18.49,Senegal
79 | 2014,Belgium,0.01,Seychelles
80 | 2014,Belgium,1.37,Sierra Leone
81 | 2014,Belgium,0.02,Somalia
82 | 2014,Belgium,0.2,Namibia
83 | 2014,Belgium,0.91,Sudan
84 | 2014,Belgium,5.73,South Sudan
85 | 2014,Belgium,16.96,Tanzania
86 | 2014,Belgium,0.79,Togo
87 | 2014,Belgium,24.17,Uganda
88 | 2014,Belgium,10.57,Burkina Faso
89 | 2014,Belgium,1.15,Zambia
90 | 2014,Belgium,3.16,Kenya
91 | 2014,Belgium,0.98,Senegal
92 | 2014,Denmark,2.127,Libya
93 | 2014,Denmark,0.055,Morocco
94 | 2014,Denmark,5.75,Tunisia
95 | 2014,Denmark,3.221,Egypt
96 | 2014,Denmark,2.331,South Africa
97 | 2014,Denmark,0.516,Burundi
98 | 2014,Denmark,4.877,Central African Republic
99 | 2014,Denmark,0.73,Benin
100 | 2014,Denmark,16.872,Ethiopia
101 | 2014,Denmark,47.942,Ghana
102 | 2014,Denmark,0.133,Guinea-Bissau
103 | 2014,Denmark,0.748,Côte d'Ivoire
104 | 2014,Denmark,49.605,Kenya
105 | 2014,Denmark,0.204,Liberia
106 | 2014,Denmark,0.082,Malawi
107 | 2014,Denmark,34.959,Mali
108 | 2014,Denmark,67.635,Mozambique
109 | 2014,Denmark,10.46,Niger
110 | 2014,Denmark,32.424,Zimbabwe
111 | 2014,Denmark,4.147,Sierra Leone
112 | 2014,Denmark,36.333,Somalia
113 | 2014,Denmark,8.365,Sudan
114 | 2014,Denmark,38.433,South Sudan
115 | 2014,Denmark,70.769,Tanzania
116 | 2014,Denmark,51.258,Uganda
117 | 2014,Denmark,70.422,Burkina Faso
118 | 2014,Denmark,42.374,Zambia
119 | 2014,Denmark,1.255,Angola
120 | 2014,Denmark,4.355,Kenya
121 | 2014,Denmark,0.18,Uganda
122 | 2014,France,128.64,Algeria
123 | 2014,France,4.49,Libya
124 | 2014,France,201.14,Morocco
125 | 2014,France,93.72,Tunisia
126 | 2014,France,46.53,Egypt
127 | 2014,France,10.14,South Africa
128 | 2014,France,5.32,Angola
129 | 2014,France,0.77,Botswana
130 | 2014,France,12.17,Burundi
131 | 2014,France,131.11,Cameroon
132 | 2014,France,2.08,Cabo Verde
133 | 2014,France,49.1,Central African Republic
134 | 2014,France,33.53,Chad
135 | 2014,France,27.85,Comoros
136 | 2014,France,47.47,Congo
137 | 2014,France,39.72,Democratic Republic of the Congo
138 | 2014,France,42.99,Benin
139 | 2014,France,14.35,Ethiopia
140 | 2014,France,32.05,Gabon
141 | 2014,France,0.35,Gambia
142 | 2014,France,5,Ghana
143 | 2014,France,103.08,Guinea
144 | 2014,France,3.37,Guinea-Bissau
145 | 2014,France,4.05,Equatorial Guinea
146 | 2014,France,334.86,Côte d'Ivoire
147 | 2014,France,14.97,Kenya
148 | 2014,France,0.14,Lesotho
149 | 2014,France,1.48,Liberia
150 | 2014,France,69.52,Madagascar
151 | 2014,France,3.89,Malawi
152 | 2014,France,79.49,Mali
153 | 2014,France,30.48,Mauritania
154 | 2014,France,13.92,Mauritius
155 | 2014,France,10.94,Mozambique
156 | 2014,France,58.18,Niger
157 | 2014,France,7.59,Nigeria
158 | 2014,France,2.65,Zimbabwe
159 | 2014,France,7.24,Rwanda
160 | 2014,France,1.53,São Tomé and Principe
161 | 2014,France,108.08,Senegal
162 | 2014,France,2.04,Seychelles
163 | 2014,France,0.22,Eritrea
164 | 2014,France,0.19,Sierra Leone
165 | 2014,France,1.61,Somalia
166 | 2014,France,41.43,Djibouti
167 | 2014,France,0.74,Namibia
168 | 2014,France,4.76,Sudan
169 | 2014,France,2.89,South Sudan
170 | 2014,France,0.15,Swaziland
171 | 2014,France,3.32,Tanzania
172 | 2014,France,35.44,Togo
173 | 2014,France,1.47,Uganda
174 | 2014,France,68.97,Burkina Faso
175 | 2014,France,0.47,Zambia
176 | 2014,France,493.4,Morocco
177 | 2014,France,81.45,Tunisia
178 | 2014,France,65.06,Egypt
179 | 2014,France,128.05,South Africa
180 | 2014,France,91.14,Cameroon
181 | 2014,France,7.43,Cabo Verde
182 | 2014,France,4.07,Congo
183 | 2014,France,0.26,Democratic Republic of the Congo
184 | 2014,France,46.74,Ethiopia
185 | 2014,France,69.97,Gabon
186 | 2014,France,66.54,Ghana
187 | 2014,France,112.72,Kenya
188 | 2014,France,34.5,Mali
189 | 2014,France,0.36,Mauritania
190 | 2014,France,78.69,Mauritius
191 | 2014,France,74.57,Mozambique
192 | 2014,France,0.95,Niger
193 | 2014,France,74.27,Nigeria
194 | 2014,France,207.15,Senegal
195 | 2014,France,0.51,Seychelles
196 | 2014,France,19.48,Tanzania
197 | 2014,France,0.93,Togo
198 | 2014,France,8.22,Uganda
199 | 2014,France,7.7,Burkina Faso
200 | 2014,France,24.85,Zambia
201 | 2014,Germany,7.182,Algeria
202 | 2014,Germany,5.803,Libya
203 | 2014,Germany,55.657,Morocco
204 | 2014,Germany,59.225,Tunisia
205 | 2014,Germany,151.947,Egypt
206 | 2014,Germany,75.746,South Africa
207 | 2014,Germany,4.235,Angola
208 | 2014,Germany,0.231,Botswana
209 | 2014,Germany,25.851,Burundi
210 | 2014,Germany,88.31,Cameroon
211 | 2014,Germany,0.489,Cabo Verde
212 | 2014,Germany,27.858,Central African Republic
213 | 2014,Germany,13.615,Chad
214 | 2014,Germany,0.649,Congo
215 | 2014,Germany,91.548,Democratic Republic of the Congo
216 | 2014,Germany,77.705,Benin
217 | 2014,Germany,59.555,Ethiopia
218 | 2014,Germany,1.814,Gabon
219 | 2014,Germany,0.356,Gambia
220 | 2014,Germany,34.35,Ghana
221 | 2014,Germany,14.631,Guinea
222 | 2014,Germany,0.3,Guinea-Bissau
223 | 2014,Germany,0.05,Equatorial Guinea
224 | 2014,Germany,18.732,Côte d'Ivoire
225 | 2014,Germany,78.652,Kenya
226 | 2014,Germany,4.298,Lesotho
227 | 2014,Germany,41.001,Liberia
228 | 2014,Germany,18.177,Madagascar
229 | 2014,Germany,33.975,Malawi
230 | 2014,Germany,74.656,Mali
231 | 2014,Germany,14.442,Mauritania
232 | 2014,Germany,0.476,Mauritius
233 | 2014,Germany,78.095,Mozambique
234 | 2014,Germany,26.889,Niger
235 | 2014,Germany,48.266,Nigeria
236 | 2014,Germany,35.587,Zimbabwe
237 | 2014,Germany,35.768,Rwanda
238 | 2014,Germany,0.002,São Tomé and Principe
239 | 2014,Germany,22.768,Senegal
240 | 2014,Germany,0.011,Seychelles
241 | 2014,Germany,0.489,Eritrea
242 | 2014,Germany,25.048,Sierra Leone
243 | 2014,Germany,26.645,Somalia
244 | 2014,Germany,1.101,Djibouti
245 | 2014,Germany,40.072,Namibia
246 | 2014,Germany,17.502,Sudan
247 | 2014,Germany,91.73,South Sudan
248 | 2014,Germany,0.252,Swaziland
249 | 2014,Germany,52.123,Tanzania
250 | 2014,Germany,28.792,Togo
251 | 2014,Germany,48.216,Uganda
252 | 2014,Germany,49.846,Burkina Faso
253 | 2014,Germany,38.18,Zambia
254 | 2014,Germany,421.478,Morocco
255 | 2014,Germany,15.228,Tunisia
256 | 2014,Germany,123.94,Egypt
257 | 2014,Germany,68.981,South Africa
258 | 2014,Germany,0.245,Cameroon
259 | 2014,Germany,0.967,Democratic Republic of the Congo
260 | 2014,Germany,2.349,Ghana
261 | 2014,Germany,43.546,Kenya
262 | 2014,Germany,0.002,Mozambique
263 | 2014,Germany,13.931,Nigeria
264 | 2014,Germany,0.119,Namibia
265 | 2014,Italy,0.76,Algeria
266 | 2014,Italy,0.73,Libya
267 | 2014,Italy,3.1,Morocco
268 | 2014,Italy,3.94,Tunisia
269 | 2014,Italy,21.85,Egypt
270 | 2014,Italy,10.19,South Africa
271 | 2014,Italy,1.67,Angola
272 | 2014,Italy,0.52,Burundi
273 | 2014,Italy,3.09,Cameroon
274 | 2014,Italy,0.03,Cabo Verde
275 | 2014,Italy,0.9,Central African Republic
276 | 2014,Italy,0.23,Chad
277 | 2014,Italy,0.09,Comoros
278 | 2014,Italy,0.69,Congo
279 | 2014,Italy,8.45,Democratic Republic of the Congo
280 | 2014,Italy,1.42,Benin
281 | 2014,Italy,30.09,Ethiopia
282 | 2014,Italy,0.08,Gabon
283 | 2014,Italy,0.02,Gambia
284 | 2014,Italy,1.4,Ghana
285 | 2014,Italy,2.2,Guinea
286 | 2014,Italy,0.99,Guinea-Bissau
287 | 2014,Italy,0.54,Côte d'Ivoire
288 | 2014,Italy,7.56,Kenya
289 | 2014,Italy,4.53,Madagascar
290 | 2014,Italy,0.34,Malawi
291 | 2014,Italy,2.69,Mali
292 | 2014,Italy,1.05,Mauritania
293 | 2014,Italy,23.66,Mozambique
294 | 2014,Italy,3.44,Niger
295 | 2014,Italy,0.12,Nigeria
296 | 2014,Italy,0.19,Zimbabwe
297 | 2014,Italy,2.96,Rwanda
298 | 2014,Italy,7.16,Senegal
299 | 2014,Italy,0.09,Seychelles
300 | 2014,Italy,0.97,Eritrea
301 | 2014,Italy,9.96,Sierra Leone
302 | 2014,Italy,7.6,Somalia
303 | 2014,Italy,0.21,Djibouti
304 | 2014,Italy,0.2,Namibia
305 | 2014,Italy,8.83,Sudan
306 | 2014,Italy,8.04,South Sudan
307 | 2014,Italy,0.19,Swaziland
308 | 2014,Italy,4.96,Tanzania
309 | 2014,Italy,1.1,Togo
310 | 2014,Italy,7.08,Uganda
311 | 2014,Italy,7.37,Burkina Faso
312 | 2014,Italy,0.38,Zambia
313 | 2014,Italy,19.07,Tunisia
314 | 2014,Netherlands,0.066,Algeria
315 | 2014,Netherlands,0.382,Libya
316 | 2014,Netherlands,1.285,Morocco
317 | 2014,Netherlands,2.106,Tunisia
318 | 2014,Netherlands,0.878,Egypt
319 | 2014,Netherlands,3.103,South Africa
320 | 2014,Netherlands,0.051,Angola
321 | 2014,Netherlands,0.169,Botswana
322 | 2014,Netherlands,27.642,Burundi
323 | 2014,Netherlands,17.498,Central African Republic
324 | 2014,Netherlands,9.942,Democratic Republic of the Congo
325 | 2014,Netherlands,42.579,Benin
326 | 2014,Netherlands,89.953,Ethiopia
327 | 2014,Netherlands,31.041,Ghana
328 | 2014,Netherlands,32.534,Kenya
329 | 2014,Netherlands,6.791,Liberia
330 | 2014,Netherlands,44.363,Mali
331 | 2014,Netherlands,47.675,Mozambique
332 | 2014,Netherlands,2.588,Nigeria
333 | 2014,Netherlands,2.002,Zimbabwe
334 | 2014,Netherlands,50.656,Rwanda
335 | 2014,Netherlands,4.251,Senegal
336 | 2014,Netherlands,7.954,Sierra Leone
337 | 2014,Netherlands,6.243,Somalia
338 | 2014,Netherlands,1.327,Djibouti
339 | 2014,Netherlands,0.122,Namibia
340 | 2014,Netherlands,5.907,Sudan
341 | 2014,Netherlands,54.803,South Sudan
342 | 2014,Netherlands,0.596,Tanzania
343 | 2014,Netherlands,21.923,Uganda
344 | 2014,Netherlands,0.042,Zambia
345 | 2014,Norway,0.055,Algeria
346 | 2014,Norway,0.497,Morocco
347 | 2014,Norway,1.051,Tunisia
348 | 2014,Norway,2.595,Egypt
349 | 2014,Norway,9.844,South Africa
350 | 2014,Norway,12.226,Angola
351 | 2014,Norway,0.141,Botswana
352 | 2014,Norway,7.228,Burundi
353 | 2014,Norway,1.065,Cameroon
354 | 2014,Norway,0.058,Cabo Verde
355 | 2014,Norway,18.458,Central African Republic
356 | 2014,Norway,0.486,Congo
357 | 2014,Norway,36.445,Democratic Republic of the Congo
358 | 2014,Norway,60.68,Ethiopia
359 | 2014,Norway,0.097,Gabon
360 | 2014,Norway,0.197,Gambia
361 | 2014,Norway,6.495,Ghana
362 | 2014,Norway,0.657,Guinea
363 | 2014,Norway,0.022,Guinea-Bissau
364 | 2014,Norway,1.092,Côte d'Ivoire
365 | 2014,Norway,16.925,Kenya
366 | 2014,Norway,1.124,Lesotho
367 | 2014,Norway,38.528,Liberia
368 | 2014,Norway,11.376,Madagascar
369 | 2014,Norway,84.96,Malawi
370 | 2014,Norway,20.172,Mali
371 | 2014,Norway,0.762,Mauritania
372 | 2014,Norway,0.113,Mauritius
373 | 2014,Norway,59.294,Mozambique
374 | 2014,Norway,10.399,Niger
375 | 2014,Norway,12.658,Nigeria
376 | 2014,Norway,21.477,Zimbabwe
377 | 2014,Norway,2.287,Rwanda
378 | 2014,Norway,0.335,São Tomé and Principe
379 | 2014,Norway,1.009,Senegal
380 | 2014,Norway,0.135,Eritrea
381 | 2014,Norway,1.489,Sierra Leone
382 | 2014,Norway,63.379,Somalia
383 | 2014,Norway,0.476,Djibouti
384 | 2014,Norway,1.49,Namibia
385 | 2014,Norway,28.884,Sudan
386 | 2014,Norway,95.939,South Sudan
387 | 2014,Norway,0.694,Swaziland
388 | 2014,Norway,72.04,Tanzania
389 | 2014,Norway,0.17,Togo
390 | 2014,Norway,65.25,Uganda
391 | 2014,Norway,0.745,Burkina Faso
392 | 2014,Norway,31.036,Zambia
393 | 2014,Portugal,0.081,Algeria
394 | 2014,Portugal,0.494,Morocco
395 | 2014,Portugal,0.072,Tunisia
396 | 2014,Portugal,0.123,Egypt
397 | 2014,Portugal,1.621,South Africa
398 | 2014,Portugal,4.899,Angola
399 | 2014,Portugal,0.073,Botswana
400 | 2014,Portugal,0.028,Cameroon
401 | 2014,Portugal,30.341,Cabo Verde
402 | 2014,Portugal,0.139,Central African Republic
403 | 2014,Portugal,0.025,Congo
404 | 2014,Portugal,0.028,Democratic Republic of the Congo
405 | 2014,Portugal,0.049,Ethiopia
406 | 2014,Portugal,0.004,Gambia
407 | 2014,Portugal,0.008,Ghana
408 | 2014,Portugal,0.043,Guinea
409 | 2014,Portugal,11.158,Guinea-Bissau
410 | 2014,Portugal,0.136,Equatorial Guinea
411 | 2014,Portugal,0.09,Côte d'Ivoire
412 | 2014,Portugal,0.116,Mali
413 | 2014,Portugal,0.004,Mauritania
414 | 2014,Portugal,29.126,Mozambique
415 | 2014,Portugal,0.013,Nigeria
416 | 2014,Portugal,0.084,Zimbabwe
417 | 2014,Portugal,0.206,Rwanda
418 | 2014,Portugal,13.383,São Tomé and Principe
419 | 2014,Portugal,0.078,Senegal
420 | 2014,Portugal,0.088,Sierra Leone
421 | 2014,Portugal,0.069,Somalia
422 | 2014,Portugal,0.361,Namibia
423 | 2014,Portugal,0.124,Swaziland
424 | 2014,Portugal,0.008,Tanzania
425 | 2014,Portugal,0.004,Togo
426 | 2014,Portugal,111.335,Cabo Verde
427 | 2014,Portugal,35.615,Mozambique
428 | 2014,Sweden,0.833,Algeria
429 | 2014,Sweden,7.22,Libya
430 | 2014,Sweden,0.278,Morocco
431 | 2014,Sweden,6.128,Tunisia
432 | 2014,Sweden,11.17,Egypt
433 | 2014,Sweden,7.38,South Africa
434 | 2014,Sweden,1.452,Angola
435 | 2014,Sweden,0.572,Botswana
436 | 2014,Sweden,1.284,Burundi
437 | 2014,Sweden,2.243,Cameroon
438 | 2014,Sweden,0.129,Cabo Verde
439 | 2014,Sweden,12.871,Central African Republic
440 | 2014,Sweden,10.272,Chad
441 | 2014,Sweden,0.468,Congo
442 | 2014,Sweden,61.943,Democratic Republic of the Congo
443 | 2014,Sweden,0.858,Benin
444 | 2014,Sweden,35.266,Ethiopia
445 | 2014,Sweden,0.628,Gambia
446 | 2014,Sweden,0.827,Ghana
447 | 2014,Sweden,2.173,Guinea
448 | 2014,Sweden,0.207,Guinea-Bissau
449 | 2014,Sweden,1.804,Côte d'Ivoire
450 | 2014,Sweden,73.111,Kenya
451 | 2014,Sweden,0.12,Lesotho
452 | 2014,Sweden,39.498,Liberia
453 | 2014,Sweden,1.019,Madagascar
454 | 2014,Sweden,2.412,Malawi
455 | 2014,Sweden,33.893,Mali
456 | 2014,Sweden,2.633,Mauritania
457 | 2014,Sweden,119.783,Mozambique
458 | 2014,Sweden,7.545,Niger
459 | 2014,Sweden,1.032,Nigeria
460 | 2014,Sweden,34.85,Zimbabwe
461 | 2014,Sweden,39.086,Rwanda
462 | 2014,Sweden,1.074,Senegal
463 | 2014,Sweden,0.747,Eritrea
464 | 2014,Sweden,3.162,Sierra Leone
465 | 2014,Sweden,83.054,Somalia
466 | 2014,Sweden,2.205,Djibouti
467 | 2014,Sweden,2.173,Namibia
468 | 2014,Sweden,23.367,Sudan
469 | 2014,Sweden,56.577,South Sudan
470 | 2014,Sweden,2.428,Swaziland
471 | 2014,Sweden,54.193,Tanzania
472 | 2014,Sweden,1.302,Togo
473 | 2014,Sweden,36.242,Uganda
474 | 2014,Sweden,19.743,Burkina Faso
475 | 2014,Sweden,52.155,Zambia
476 | 2014,Switzerland,4.04,Algeria
477 | 2014,Switzerland,4.55,Libya
478 | 2014,Switzerland,8.17,Morocco
479 | 2014,Switzerland,18.11,Tunisia
480 | 2014,Switzerland,24.06,Egypt
481 | 2014,Switzerland,11.23,South Africa
482 | 2014,Switzerland,0.19,Angola
483 | 2014,Switzerland,10.46,Burundi
484 | 2014,Switzerland,3.21,Cameroon
485 | 2014,Switzerland,0.14,Cabo Verde
486 | 2014,Switzerland,7.67,Central African Republic
487 | 2014,Switzerland,31.39,Chad
488 | 2014,Switzerland,0.06,Comoros
489 | 2014,Switzerland,0.18,Congo
490 | 2014,Switzerland,19.44,Democratic Republic of the Congo
491 | 2014,Switzerland,19.59,Benin
492 | 2014,Switzerland,14.26,Ethiopia
493 | 2014,Switzerland,0.01,Gabon
494 | 2014,Switzerland,0,Gambia
495 | 2014,Switzerland,18.16,Ghana
496 | 2014,Switzerland,5.35,Guinea
497 | 2014,Switzerland,0.65,Guinea-Bissau
498 | 2014,Switzerland,0.01,Equatorial Guinea
499 | 2014,Switzerland,2.56,Côte d'Ivoire
500 | 2014,Switzerland,9.53,Kenya
501 | 2014,Switzerland,0.79,Lesotho
502 | 2014,Switzerland,14.02,Liberia
503 | 2014,Switzerland,6.93,Madagascar
504 | 2014,Switzerland,0.84,Malawi
505 | 2014,Switzerland,37.78,Mali
506 | 2014,Switzerland,0.32,Mauritania
507 | 2014,Switzerland,37.24,Mozambique
508 | 2014,Switzerland,27.29,Niger
509 | 2014,Switzerland,2.34,Nigeria
510 | 2014,Switzerland,15.38,Zimbabwe
511 | 2014,Switzerland,8.12,Rwanda
512 | 2014,Switzerland,3.02,Senegal
513 | 2014,Switzerland,0.3,Eritrea
514 | 2014,Switzerland,2.8,Sierra Leone
515 | 2014,Switzerland,20.23,Somalia
516 | 2014,Switzerland,0.01,Djibouti
517 | 2014,Switzerland,0.76,Namibia
518 | 2014,Switzerland,14.39,Sudan
519 | 2014,Switzerland,25.98,South Sudan
520 | 2014,Switzerland,0.12,Swaziland
521 | 2014,Switzerland,30.82,Tanzania
522 | 2014,Switzerland,2.74,Togo
523 | 2014,Switzerland,1.14,Uganda
524 | 2014,Switzerland,32.85,Burkina Faso
525 | 2014,Switzerland,0.56,Zambia
526 | 2014,United Kingdom,5.216,Algeria
527 | 2014,United Kingdom,47.786,Libya
528 | 2014,United Kingdom,6.606,Morocco
529 | 2014,United Kingdom,11.278,Tunisia
530 | 2014,United Kingdom,14.006,Egypt
531 | 2014,United Kingdom,36.807,South Africa
532 | 2014,United Kingdom,1.508,Angola
533 | 2014,United Kingdom,1.028,Botswana
534 | 2014,United Kingdom,10.056,Burundi
535 | 2014,United Kingdom,18.262,Cameroon
536 | 2014,United Kingdom,0.131,Cabo Verde
537 | 2014,United Kingdom,26.448,Central African Republic
538 | 2014,United Kingdom,0.01,Comoros
539 | 2014,United Kingdom,274.199,Democratic Republic of the Congo
540 | 2014,United Kingdom,532.281,Ethiopia
541 | 2014,United Kingdom,16.289,Gambia
542 | 2014,United Kingdom,100.052,Ghana
543 | 2014,United Kingdom,0.462,Guinea
544 | 2014,United Kingdom,0.121,Guinea-Bissau
545 | 2014,United Kingdom,0.13,Côte d'Ivoire
546 | 2014,United Kingdom,210.349,Kenya
547 | 2014,United Kingdom,0.383,Lesotho
548 | 2014,United Kingdom,9.542,Liberia
549 | 2014,United Kingdom,1.828,Madagascar
550 | 2014,United Kingdom,120.658,Malawi
551 | 2014,United Kingdom,3.341,Mali
552 | 2014,United Kingdom,0.94,Mauritania
553 | 2014,United Kingdom,1.342,Mauritius
554 | 2014,United Kingdom,136.92,Mozambique
555 | 2014,United Kingdom,0.007,Niger
556 | 2014,United Kingdom,387.881,Nigeria
557 | 2014,United Kingdom,165.273,Zimbabwe
558 | 2014,United Kingdom,78.997,Rwanda
559 | 2014,United Kingdom,0.157,São Tomé and Principe
560 | 2014,United Kingdom,2.911,Senegal
561 | 2014,United Kingdom,0.626,Seychelles
562 | 2014,United Kingdom,9.676,Eritrea
563 | 2014,United Kingdom,391.403,Sierra Leone
564 | 2014,United Kingdom,205.751,Somalia
565 | 2014,United Kingdom,0.478,Namibia
566 | 2014,United Kingdom,124.715,Saint Helena
567 | 2014,United Kingdom,82.655,Sudan
568 | 2014,United Kingdom,275.313,South Sudan
569 | 2014,United Kingdom,0.069,Swaziland
570 | 2014,United Kingdom,244.209,Tanzania
571 | 2014,United Kingdom,198.188,Uganda
572 | 2014,United Kingdom,0.448,Burkina Faso
573 | 2014,United Kingdom,137.388,Zambia
574 | 2014,United Kingdom,11.011,Algeria
575 | 2014,United Kingdom,6.696,Morocco
576 | 2014,United Kingdom,1.956,Tunisia
577 | 2014,United Kingdom,0.535,Egypt
578 | 2014,United Kingdom,47.886,South Africa
579 | 2014,United Kingdom,69.976,Cameroon
580 | 2014,United Kingdom,1.041,Democratic Republic of the Congo
581 | 2014,United Kingdom,1.717,Ethiopia
582 | 2014,United Kingdom,9.899,Ghana
583 | 2014,United Kingdom,6.352,Côte d'Ivoire
584 | 2014,United Kingdom,21.635,Kenya
585 | 2014,United Kingdom,0.664,Malawi
586 | 2014,United Kingdom,0.124,Mali
587 | 2014,United Kingdom,1.465,Mauritius
588 | 2014,United Kingdom,1.378,Mozambique
589 | 2014,United Kingdom,0.175,Niger
590 | 2014,United Kingdom,18.859,Nigeria
591 | 2014,United Kingdom,6.149,Zimbabwe
592 | 2014,United Kingdom,0.169,Rwanda
593 | 2014,United Kingdom,0.178,Sierra Leone
594 | 2014,United Kingdom,1.499,Swaziland
595 | 2014,United Kingdom,1.905,Tanzania
596 | 2014,United Kingdom,3.899,Uganda
597 | 2014,United Kingdom,0.248,Burkina Faso
598 | 2014,United Kingdom,12.845,Zambia
599 | 2014,Finland,0.201,Algeria
600 | 2014,Finland,1.131,Libya
601 | 2014,Finland,0.468,Morocco
602 | 2014,Finland,0.749,Tunisia
603 | 2014,Finland,2.245,Egypt
604 | 2014,Finland,3.183,South Africa
605 | 2014,Finland,0.791,Angola
606 | 2014,Finland,0.48,Botswana
607 | 2014,Finland,0.858,Burundi
608 | 2014,Finland,2.537,Cameroon
609 | 2014,Finland,6.061,Central African Republic
610 | 2014,Finland,3.108,Chad
611 | 2014,Finland,0.013,Comoros
612 | 2014,Finland,3.841,Democratic Republic of the Congo
613 | 2014,Finland,0.11,Benin
614 | 2014,Finland,38.446,Ethiopia
615 | 2014,Finland,0.01,Gabon
616 | 2014,Finland,0.318,Gambia
617 | 2014,Finland,1.64,Ghana
618 | 2014,Finland,0.04,Guinea
619 | 2014,Finland,0.494,Côte d'Ivoire
620 | 2014,Finland,38.885,Kenya
621 | 2014,Finland,0.119,Lesotho
622 | 2014,Finland,0.289,Liberia
623 | 2014,Finland,0.154,Madagascar
624 | 2014,Finland,1.828,Malawi
625 | 2014,Finland,0.934,Mali
626 | 2014,Finland,0.245,Mauritania
627 | 2014,Finland,0.75,Mauritius
628 | 2014,Finland,28.489,Mozambique
629 | 2014,Finland,0.94,Nigeria
630 | 2014,Finland,0.484,Zimbabwe
631 | 2014,Finland,0.089,Rwanda
632 | 2014,Finland,1.064,Senegal
633 | 2014,Finland,2.286,Sierra Leone
634 | 2014,Finland,27.473,Somalia
635 | 2014,Finland,0.009,Djibouti
636 | 2014,Finland,5.499,Namibia
637 | 2014,Finland,9.084,Sudan
638 | 2014,Finland,4.57,South Sudan
639 | 2014,Finland,0.436,Swaziland
640 | 2014,Finland,54.041,Tanzania
641 | 2014,Finland,0.294,Togo
642 | 2014,Finland,4.654,Uganda
643 | 2014,Finland,0.262,Burkina Faso
644 | 2014,Finland,28.638,Zambia
645 | 2014,Finland,1.475,South Africa
646 | 2014,Finland,2.439,Ethiopia
647 | 2014,Finland,17.982,Kenya
648 | 2014,Finland,0.2,Mauritius
649 | 2014,Finland,0.18,Sierra Leone
650 | 2014,Finland,0.179,Tanzania
651 | 2014,Iceland,0.056,South Africa
652 | 2014,Iceland,0.111,Central African Republic
653 | 2014,Iceland,0.416,Ethiopia
654 | 2014,Iceland,0.093,Guinea-Bissau
655 | 2014,Iceland,5.288,Malawi
656 | 2014,Iceland,2.747,Mozambique
657 | 2014,Iceland,0.214,Sierra Leone
658 | 2014,Iceland,0.076,Namibia
659 | 2014,Iceland,0.104,South Sudan
660 | 2014,Iceland,3.335,Uganda
661 | 2014,Ireland,0.82,Egypt
662 | 2014,Ireland,6.16,South Africa
663 | 2014,Ireland,0.6,Angola
664 | 2014,Ireland,1.2,Burundi
665 | 2014,Ireland,0.76,Cameroon
666 | 2014,Ireland,7.7,Central African Republic
667 | 2014,Ireland,2.12,Chad
668 | 2014,Ireland,9.83,Congo
669 | 2014,Ireland,0.15,Benin
670 | 2014,Ireland,48.27,Ethiopia
671 | 2014,Ireland,0.01,Gabon
672 | 2014,Ireland,0.07,Gambia
673 | 2014,Ireland,1.05,Ghana
674 | 2014,Ireland,0.48,Guinea
675 | 2014,Ireland,0.31,Guinea-Bissau
676 | 2014,Ireland,8.63,Kenya
677 | 2014,Ireland,1.75,Lesotho
678 | 2014,Ireland,8.56,Liberia
679 | 2014,Ireland,25.81,Malawi
680 | 2014,Ireland,1.45,Mali
681 | 2014,Ireland,0.31,Mauritania
682 | 2014,Ireland,53.27,Mozambique
683 | 2014,Ireland,3.02,Niger
684 | 2014,Ireland,0.65,Nigeria
685 | 2014,Ireland,8.81,Zimbabwe
686 | 2014,Ireland,3.13,Rwanda
687 | 2014,Ireland,0.34,Senegal
688 | 2014,Ireland,0.17,Eritrea
689 | 2014,Ireland,16.26,Sierra Leone
690 | 2014,Ireland,7.62,Somalia
691 | 2014,Ireland,0.18,Djibouti
692 | 2014,Ireland,0.03,Namibia
693 | 2014,Ireland,7.89,Sudan
694 | 2014,Ireland,12.82,South Sudan
695 | 2014,Ireland,0.03,Swaziland
696 | 2014,Ireland,33.13,Tanzania
697 | 2014,Ireland,37.04,Uganda
698 | 2014,Ireland,0.41,Burkina Faso
699 | 2014,Ireland,23.24,Zambia
700 | 2014,Luxembourg,0.268,Libya
701 | 2014,Luxembourg,0.168,Morocco
702 | 2014,Luxembourg,1.541,Tunisia
703 | 2014,Luxembourg,0.144,Egypt
704 | 2014,Luxembourg,0.315,South Africa
705 | 2014,Luxembourg,0.991,Burundi
706 | 2014,Luxembourg,0.538,Cameroon
707 | 2014,Luxembourg,15.169,Cabo Verde
708 | 2014,Luxembourg,3.722,Central African Republic
709 | 2014,Luxembourg,0.085,Comoros
710 | 2014,Luxembourg,0.093,Congo
711 | 2014,Luxembourg,3.582,Democratic Republic of the Congo
712 | 2014,Luxembourg,1.443,Benin
713 | 2014,Luxembourg,0.883,Ethiopia
714 | 2014,Luxembourg,0.286,Gambia
715 | 2014,Luxembourg,0.25,Ghana
716 | 2014,Luxembourg,0.705,Guinea
717 | 2014,Luxembourg,0.008,Guinea-Bissau
718 | 2014,Luxembourg,0.156,Côte d'Ivoire
719 | 2014,Luxembourg,0.432,Kenya
720 | 2014,Luxembourg,0.254,Liberia
721 | 2014,Luxembourg,0.278,Madagascar
722 | 2014,Luxembourg,0.262,Malawi
723 | 2014,Luxembourg,13.364,Mali
724 | 2014,Luxembourg,19.761,Niger
725 | 2014,Luxembourg,0.332,Nigeria
726 | 2014,Luxembourg,0.482,Rwanda
727 | 2014,Luxembourg,22.119,Senegal
728 | 2014,Luxembourg,0.176,Sierra Leone
729 | 2014,Luxembourg,0.423,Somalia
730 | 2014,Luxembourg,1.328,Sudan
731 | 2014,Luxembourg,3.467,South Sudan
732 | 2014,Luxembourg,0.172,Swaziland
733 | 2014,Luxembourg,0.072,Tanzania
734 | 2014,Luxembourg,1.049,Togo
735 | 2014,Luxembourg,0.114,Uganda
736 | 2014,Luxembourg,31.069,Burkina Faso
737 | 2014,Luxembourg,0.153,Zambia
738 | 2014,Cyprus,0.006,Uganda
739 | 2014,Greece,0.168,Algeria
740 | 2014,Greece,0.045,Libya
741 | 2014,Greece,0.039,Morocco
742 | 2014,Greece,0.274,Tunisia
743 | 2014,Greece,0.732,Egypt
744 | 2014,Greece,0.09,South Africa
745 | 2014,Greece,0.007,Angola
746 | 2014,Greece,0.018,Burundi
747 | 2014,Greece,0.133,Cameroon
748 | 2014,Greece,0.011,Cabo Verde
749 | 2014,Greece,0.066,Central African Republic
750 | 2014,Greece,0.008,Chad
751 | 2014,Greece,0.254,Congo
752 | 2014,Greece,0.835,Democratic Republic of the Congo
753 | 2014,Greece,0.09,Ethiopia
754 | 2014,Greece,0.018,Gambia
755 | 2014,Greece,0.007,Guinea
756 | 2014,Greece,0.018,Guinea-Bissau
757 | 2014,Greece,0.008,Côte d'Ivoire
758 | 2014,Greece,0.044,Kenya
759 | 2014,Greece,0.066,Mali
760 | 2014,Greece,0.004,Mauritania
761 | 2014,Greece,0.002,Mauritius
762 | 2014,Greece,0.035,Nigeria
763 | 2014,Greece,0.05,Zimbabwe
764 | 2014,Greece,0.022,São Tomé and Principe
765 | 2014,Greece,0.008,Senegal
766 | 2014,Greece,0.022,Sierra Leone
767 | 2014,Greece,0.008,Somalia
768 | 2014,Greece,0.007,Djibouti
769 | 2014,Greece,0.081,Sudan
770 | 2014,Greece,0.018,Togo
771 | 2014,Greece,0.045,Uganda
772 | 2014,Greece,0.008,Burkina Faso
773 | 2014,Greece,0.004,Zambia
774 | 2014,Malta,0.01,Morocco
775 | 2014,Malta,0.03,Central African Republic
776 | 2014,Malta,0.03,Chad
777 | 2014,Malta,0.05,Ethiopia
778 | 2014,Malta,0.04,Kenya
779 | 2014,Malta,0.03,Madagascar
780 | 2014,Malta,0.07,Somalia
781 | 2014,Malta,0.02,Tanzania
782 | 2014,Malta,0.01,Togo
783 | 2014,Malta,0.06,Uganda
784 | 2014,Spain,1.147,Algeria
785 | 2014,Spain,24.197,Morocco
786 | 2014,Spain,0.436,Tunisia
787 | 2014,Spain,1.708,Egypt
788 | 2014,Spain,0.031,South Africa
789 | 2014,Spain,0.252,Angola
790 | 2014,Spain,0.01,Botswana
791 | 2014,Spain,0.222,Burundi
792 | 2014,Spain,1.066,Cameroon
793 | 2014,Spain,0.547,Cabo Verde
794 | 2014,Spain,1.421,Central African Republic
795 | 2014,Spain,0.849,Chad
796 | 2014,Spain,0.304,Congo
797 | 2014,Spain,5.308,Democratic Republic of the Congo
798 | 2014,Spain,0.613,Benin
799 | 2014,Spain,7.965,Ethiopia
800 | 2014,Spain,0.009,Gabon
801 | 2014,Spain,0.263,Gambia
802 | 2014,Spain,0.144,Ghana
803 | 2014,Spain,4.262,Guinea
804 | 2014,Spain,0.467,Guinea-Bissau
805 | 2014,Spain,1.918,Equatorial Guinea
806 | 2014,Spain,0.489,Côte d'Ivoire
807 | 2014,Spain,0.65,Kenya
808 | 2014,Spain,2.539,Liberia
809 | 2014,Spain,0.807,Madagascar
810 | 2014,Spain,0.319,Malawi
811 | 2014,Spain,12.656,Mali
812 | 2014,Spain,8.028,Mauritania
813 | 2014,Spain,11.513,Mozambique
814 | 2014,Spain,17.437,Niger
815 | 2014,Spain,0.149,Nigeria
816 | 2014,Spain,0.225,Zimbabwe
817 | 2014,Spain,0.803,Rwanda
818 | 2014,Spain,12.562,Senegal
819 | 2014,Spain,7.731,Sierra Leone
820 | 2014,Spain,0.027,Somalia
821 | 2014,Spain,0.045,Namibia
822 | 2014,Spain,0.029,Sudan
823 | 2014,Spain,2.503,South Sudan
824 | 2014,Spain,0.017,Swaziland
825 | 2014,Spain,1.006,Tanzania
826 | 2014,Spain,0.752,Togo
827 | 2014,Spain,0.193,Uganda
828 | 2014,Spain,2.026,Burkina Faso
829 | 2014,Spain,1.493,Angola
830 | 2014,Spain,0.242,Mauritania
831 | 2014,Turkey,3.29,Algeria
832 | 2014,Turkey,12.87,Libya
833 | 2014,Turkey,2.67,Morocco
834 | 2014,Turkey,3.17,Tunisia
835 | 2014,Turkey,5.32,Egypt
836 | 2014,Turkey,1.09,South Africa
837 | 2014,Turkey,0.06,Angola
838 | 2014,Turkey,0.08,Botswana
839 | 2014,Turkey,0.72,Burundi
840 | 2014,Turkey,1.98,Cameroon
841 | 2014,Turkey,0.04,Cabo Verde
842 | 2014,Turkey,1.49,Central African Republic
843 | 2014,Turkey,1.4,Chad
844 | 2014,Turkey,0.43,Comoros
845 | 2014,Turkey,0.25,Congo
846 | 2014,Turkey,1.36,Democratic Republic of the Congo
847 | 2014,Turkey,0.59,Benin
848 | 2014,Turkey,3.65,Ethiopia
849 | 2014,Turkey,0.36,Gabon
850 | 2014,Turkey,1.83,Gambia
851 | 2014,Turkey,3.01,Ghana
852 | 2014,Turkey,0.9,Guinea
853 | 2014,Turkey,1.17,Guinea-Bissau
854 | 2014,Turkey,0.02,Equatorial Guinea
855 | 2014,Turkey,1.2,Côte d'Ivoire
856 | 2014,Turkey,3.32,Kenya
857 | 2014,Turkey,0.12,Lesotho
858 | 2014,Turkey,0.77,Liberia
859 | 2014,Turkey,0.63,Madagascar
860 | 2014,Turkey,0.36,Malawi
861 | 2014,Turkey,1.53,Mali
862 | 2014,Turkey,4.48,Mauritania
863 | 2014,Turkey,0.19,Mauritius
864 | 2014,Turkey,0.75,Mozambique
865 | 2014,Turkey,4.13,Niger
866 | 2014,Turkey,0.98,Nigeria
867 | 2014,Turkey,0.51,Zimbabwe
868 | 2014,Turkey,0.61,Rwanda
869 | 2014,Turkey,0.24,São Tomé and Principe
870 | 2014,Turkey,2.85,Senegal
871 | 2014,Turkey,0.04,Seychelles
872 | 2014,Turkey,0.12,Eritrea
873 | 2014,Turkey,0.45,Sierra Leone
874 | 2014,Turkey,74.35,Somalia
875 | 2014,Turkey,2.97,Djibouti
876 | 2014,Turkey,0.15,Namibia
877 | 2014,Turkey,9.36,Sudan
878 | 2014,Turkey,1.5,South Sudan
879 | 2014,Turkey,0.15,Swaziland
880 | 2014,Turkey,1.72,Tanzania
881 | 2014,Turkey,0.3,Togo
882 | 2014,Turkey,2.01,Uganda
883 | 2014,Turkey,4.15,Burkina Faso
884 | 2014,Turkey,0.53,Zambia
885 | 2014,Turkey,197.53,Tunisia
886 | 2014,Slovenia,0.028,Egypt
887 | 2014,Slovenia,0.04,Burundi
888 | 2014,Slovenia,0.017,Cabo Verde
889 | 2014,Slovenia,0.04,Central African Republic
890 | 2014,Slovenia,0.08,Rwanda
891 | 2014,Slovenia,0.04,South Sudan
892 | 2014,Slovenia,0.04,Uganda
893 | 2014,Czech Republic,0.1,Algeria
894 | 2014,Czech Republic,0.05,Libya
895 | 2014,Czech Republic,0.01,Morocco
896 | 2014,Czech Republic,0.071,Tunisia
897 | 2014,Czech Republic,0.296,Egypt
898 | 2014,Czech Republic,0.017,South Africa
899 | 2014,Czech Republic,0.056,Angola
900 | 2014,Czech Republic,0.02,Cameroon
901 | 2014,Czech Republic,0.005,Cabo Verde
902 | 2014,Czech Republic,0.361,Central African Republic
903 | 2014,Czech Republic,0.096,Chad
904 | 2014,Czech Republic,0.014,Congo
905 | 2014,Czech Republic,0.07,Democratic Republic of the Congo
906 | 2014,Czech Republic,0.023,Benin
907 | 2014,Czech Republic,3.725,Ethiopia
908 | 2014,Czech Republic,0.165,Ghana
909 | 2014,Czech Republic,0.285,Guinea
910 | 2014,Czech Republic,0.01,Guinea-Bissau
911 | 2014,Czech Republic,0.03,Côte d'Ivoire
912 | 2014,Czech Republic,0.053,Kenya
913 | 2014,Czech Republic,0.302,Liberia
914 | 2014,Czech Republic,0.009,Mali
915 | 2014,Czech Republic,0.298,Nigeria
916 | 2014,Czech Republic,0.102,Zimbabwe
917 | 2014,Czech Republic,0.085,Rwanda
918 | 2014,Czech Republic,0.028,Senegal
919 | 2014,Czech Republic,0.01,Eritrea
920 | 2014,Czech Republic,0.165,Sierra Leone
921 | 2014,Czech Republic,0.01,Somalia
922 | 2014,Czech Republic,0.032,Djibouti
923 | 2014,Czech Republic,0.108,Namibia
924 | 2014,Czech Republic,0.042,Sudan
925 | 2014,Czech Republic,0.289,South Sudan
926 | 2014,Czech Republic,0.02,Tanzania
927 | 2014,Czech Republic,0.01,Togo
928 | 2014,Czech Republic,0.009,Uganda
929 | 2014,Czech Republic,0.67,Zambia
930 | 2014,Slovakia,0.12,Tunisia
931 | 2014,Slovakia,0.01,Burundi
932 | 2014,Slovakia,0.02,Benin
933 | 2014,Slovakia,0.02,Ethiopia
934 | 2014,Slovakia,1.24,Kenya
935 | 2014,Slovakia,0.02,Lesotho
936 | 2014,Slovakia,0.05,Liberia
937 | 2014,Slovakia,0.01,Madagascar
938 | 2014,Slovakia,0.01,Rwanda
939 | 2014,Slovakia,0.01,Namibia
940 | 2014,Slovakia,0.02,Sudan
941 | 2014,Slovakia,0.39,South Sudan
942 | 2014,Slovakia,0.01,Tanzania
943 | 2014,Slovakia,0.01,Uganda
944 | 2014,Hungary,0.254,Algeria
945 | 2014,Hungary,0.036,Morocco
946 | 2014,Hungary,0.107,Tunisia
947 | 2014,Hungary,0.09,Egypt
948 | 2014,Hungary,0.053,Angola
949 | 2014,Hungary,0.032,Democratic Republic of the Congo
950 | 2014,Hungary,0.033,Ethiopia
951 | 2014,Hungary,0.01,Gambia
952 | 2014,Hungary,0.022,Kenya
953 | 2014,Hungary,0.19,Nigeria
954 | 2014,Hungary,0.007,Somalia
955 | 2014,Hungary,0.005,Namibia
956 | 2014,Hungary,0.01,Sudan
957 | 2014,Hungary,0.011,Tanzania
958 | 2014,Hungary,0.048,Uganda
959 | 2014,Poland,0.01,Libya
960 | 2014,Poland,0.34,Tunisia
961 | 2014,Poland,0.06,Egypt
962 | 2014,Poland,0.05,South Africa
963 | 2014,Poland,0.26,Angola
964 | 2014,Poland,0.02,Botswana
965 | 2014,Poland,0.15,Burundi
966 | 2014,Poland,0.02,Cameroon
967 | 2014,Poland,0.03,Congo
968 | 2014,Poland,0.01,Democratic Republic of the Congo
969 | 2014,Poland,0.25,Ethiopia
970 | 2014,Poland,0.04,Ghana
971 | 2014,Poland,1.12,Kenya
972 | 2014,Poland,0.03,Madagascar
973 | 2014,Poland,0.01,Mali
974 | 2014,Poland,0.06,Nigeria
975 | 2014,Poland,0.06,Rwanda
976 | 2014,Poland,0.16,Senegal
977 | 2014,Poland,0.12,Somalia
978 | 2014,Poland,0.02,Namibia
979 | 2014,Poland,0.01,Sudan
980 | 2014,Poland,0.21,Tanzania
981 | 2014,Poland,0.36,Uganda
982 | 2014,Poland,0.01,Burkina Faso
983 | 2014,Poland,0.07,Zambia
984 | 2014,Poland,14.63,Angola
985 | 2014,Poland,23.23,Ethiopia
986 | 2014,Romania,0.013,Algeria
987 | 2014,Romania,0.014,Libya
988 | 2014,Romania,0.131,Morocco
989 | 2014,Romania,0.019,Tunisia
990 | 2014,Romania,0.08,Egypt
991 | 2014,Romania,0.14,Angola
992 | 2014,Romania,0.003,Botswana
993 | 2014,Romania,0.014,Burundi
994 | 2014,Romania,0.015,Cameroon
995 | 2014,Romania,0.01,Congo
996 | 2014,Romania,0.001,Benin
997 | 2014,Romania,0.002,Ethiopia
998 | 2014,Romania,0.001,Gabon
999 | 2014,Romania,0.008,Ghana
1000 | 2014,Romania,0.001,Guinea
1001 | 2014,Romania,0.007,Côte d'Ivoire
1002 | 2014,Romania,0.018,Kenya
1003 | 2014,Romania,0.049,Mauritius
1004 | 2014,Romania,0.094,Nigeria
1005 | 2014,Romania,0.016,Zimbabwe
1006 | 2014,Romania,0.002,Rwanda
1007 | 2014,Romania,0.009,Senegal
1008 | 2014,Romania,0.004,Somalia
1009 | 2014,Romania,0.023,Sudan
1010 | 2014,Romania,0.008,Tanzania
1011 | 2014,Romania,0.002,Uganda
1012 | 2014,Estonia,0.003,Algeria
1013 | 2014,Estonia,0.119,Tunisia
1014 | 2014,Estonia,0.016,Egypt
1015 | 2014,Estonia,0.133,Central African Republic
1016 | 2014,Estonia,0.027,Ethiopia
1017 | 2014,Estonia,0.003,Ghana
1018 | 2014,Estonia,0.008,Guinea
1019 | 2014,Estonia,0.036,Senegal
1020 | 2014,Estonia,0.005,Eritrea
1021 | 2014,Estonia,0.05,Sierra Leone
1022 | 2014,Estonia,0.102,Sudan
1023 | 2014,Estonia,0.265,South Sudan
1024 | 2014,Estonia,0.046,Uganda
1025 | 2014,Lithuania,0.027,Central African Republic
1026 | 2014,Russia,1.5,Morocco
1027 | 2014,Russia,5.65,Tunisia
1028 | 2014,Russia,6.32,Cameroon
1029 | 2014,Russia,3.04,Ghana
1030 | 2014,Russia,16.79,Guinea
1031 | 2014,Russia,2,Kenya
1032 | 2014,Russia,2.07,Liberia
1033 | 2014,Russia,2,Mali
1034 | 2014,Russia,8,Mozambique
1035 | 2014,Russia,1.5,Sierra Leone
1036 | 2014,Russia,1,Somalia
1037 | 2014,Russia,0.05,Sudan
1038 | 2014,Russia,5.01,South Sudan
1039 | 2014,Russia,1.37,Tanzania
1040 | 2014,Russia,1.57,Uganda
1041 | 2014,Canada,0.147,Algeria
1042 | 2014,Canada,0.207,Libya
1043 | 2014,Canada,10.567,Morocco
1044 | 2014,Canada,1.065,Tunisia
1045 | 2014,Canada,8.102,Egypt
1046 | 2014,Canada,6.787,South Africa
1047 | 2014,Canada,0.287,Angola
1048 | 2014,Canada,1.065,Botswana
1049 | 2014,Canada,5.08,Burundi
1050 | 2014,Canada,2.527,Cameroon
1051 | 2014,Canada,0.067,Cabo Verde
1052 | 2014,Canada,16.174,Central African Republic
1053 | 2014,Canada,7.196,Chad
1054 | 2014,Canada,39.953,Democratic Republic of the Congo
1055 | 2014,Canada,5.432,Benin
1056 | 2014,Canada,108.169,Ethiopia
1057 | 2014,Canada,0.158,Gabon
1058 | 2014,Canada,0.215,Gambia
1059 | 2014,Canada,78.572,Ghana
1060 | 2014,Canada,12.45,Guinea
1061 | 2014,Canada,0.061,Guinea-Bissau
1062 | 2014,Canada,0.046,Equatorial Guinea
1063 | 2014,Canada,5.709,Côte d'Ivoire
1064 | 2014,Canada,46.033,Kenya
1065 | 2014,Canada,0.139,Lesotho
1066 | 2014,Canada,11.603,Liberia
1067 | 2014,Canada,4.413,Madagascar
1068 | 2014,Canada,13.353,Malawi
1069 | 2014,Canada,99.897,Mali
1070 | 2014,Canada,0.395,Mauritania
1071 | 2014,Canada,0.099,Mauritius
1072 | 2014,Canada,75.678,Mozambique
1073 | 2014,Canada,7.339,Niger
1074 | 2014,Canada,20.715,Nigeria
1075 | 2014,Canada,7.036,Zimbabwe
1076 | 2014,Canada,5.19,Rwanda
1077 | 2014,Canada,0.045,São Tomé and Principe
1078 | 2014,Canada,73.562,Senegal
1079 | 2014,Canada,0.936,Eritrea
1080 | 2014,Canada,9.916,Sierra Leone
1081 | 2014,Canada,30.407,Somalia
1082 | 2014,Canada,1.561,Djibouti
1083 | 2014,Canada,0.168,Namibia
1084 | 2014,Canada,14.463,Sudan
1085 | 2014,Canada,87.011,South Sudan
1086 | 2014,Canada,1.918,Swaziland
1087 | 2014,Canada,85.785,Tanzania
1088 | 2014,Canada,0.459,Togo
1089 | 2014,Canada,7.347,Uganda
1090 | 2014,Canada,37.554,Burkina Faso
1091 | 2014,Canada,7.843,Zambia
1092 | 2014,United States,0.43,Algeria
1093 | 2014,United States,20.74,Libya
1094 | 2014,United States,25.44,Morocco
1095 | 2014,United States,18.62,Tunisia
1096 | 2014,United States,87.3,Egypt
1097 | 2014,United States,516.08,South Africa
1098 | 2014,United States,60.84,Angola
1099 | 2014,United States,57.2,Botswana
1100 | 2014,United States,40.79,Burundi
1101 | 2014,United States,40.75,Cameroon
1102 | 2014,United States,7.46,Cabo Verde
1103 | 2014,United States,62.11,Central African Republic
1104 | 2014,United States,50.87,Chad
1105 | 2014,United States,0.34,Comoros
1106 | 2014,United States,1.68,Congo
1107 | 2014,United States,385.41,Democratic Republic of the Congo
1108 | 2014,United States,39.3,Benin
1109 | 2014,United States,666.72,Ethiopia
1110 | 2014,United States,6.94,Gabon
1111 | 2014,United States,2,Gambia
1112 | 2014,United States,143.32,Ghana
1113 | 2014,United States,41.86,Guinea
1114 | 2014,United States,2.75,Guinea-Bissau
1115 | 2014,United States,0.18,Equatorial Guinea
1116 | 2014,United States,112.91,Côte d'Ivoire
1117 | 2014,United States,810.63,Kenya
1118 | 2014,United States,39,Lesotho
1119 | 2014,United States,211.02,Liberia
1120 | 2014,United States,64.75,Madagascar
1121 | 2014,United States,200.91,Malawi
1122 | 2014,United States,166.58,Mali
1123 | 2014,United States,14.59,Mauritania
1124 | 2014,United States,0.15,Mauritius
1125 | 2014,United States,399.45,Mozambique
1126 | 2014,United States,80.49,Niger
1127 | 2014,United States,486.17,Nigeria
1128 | 2014,United States,178.21,Zimbabwe
1129 | 2014,United States,159.98,Rwanda
1130 | 2014,United States,0.75,São Tomé and Principe
1131 | 2014,United States,272.05,Senegal
1132 | 2014,United States,0.07,Seychelles
1133 | 2014,United States,0.15,Eritrea
1134 | 2014,United States,15.31,Sierra Leone
1135 | 2014,United States,203.64,Somalia
1136 | 2014,United States,8.15,Djibouti
1137 | 2014,United States,156.49,Namibia
1138 | 2014,United States,261.55,Sudan
1139 | 2014,United States,797.2,South Sudan
1140 | 2014,United States,44.03,Swaziland
1141 | 2014,United States,509.76,Tanzania
1142 | 2014,United States,3.27,Togo
1143 | 2014,United States,471.49,Uganda
1144 | 2014,United States,213.79,Burkina Faso
1145 | 2014,United States,326.83,Zambia
1146 | 2014,Israel,0.07,Morocco
1147 | 2014,Israel,0.28,South Africa
1148 | 2014,Israel,0.02,Angola
1149 | 2014,Israel,0.11,Botswana
1150 | 2014,Israel,0.01,Burundi
1151 | 2014,Israel,0.09,Cameroon
1152 | 2014,Israel,0.01,Central African Republic
1153 | 2014,Israel,0.01,Congo
1154 | 2014,Israel,0.01,Benin
1155 | 2014,Israel,0.35,Ethiopia
1156 | 2014,Israel,0.01,Gambia
1157 | 2014,Israel,0.61,Ghana
1158 | 2014,Israel,0.03,Côte d'Ivoire
1159 | 2014,Israel,0.59,Kenya
1160 | 2014,Israel,0.13,Liberia
1161 | 2014,Israel,0.11,Malawi
1162 | 2014,Israel,0.07,Nigeria
1163 | 2014,Israel,0.02,Rwanda
1164 | 2014,Israel,0.27,Senegal
1165 | 2014,Israel,0.01,Seychelles
1166 | 2014,Israel,0.14,Sierra Leone
1167 | 2014,Israel,0.01,Sudan
1168 | 2014,Israel,0.02,Tanzania
1169 | 2014,Israel,0.06,Togo
1170 | 2014,Israel,0.04,Uganda
1171 | 2014,Israel,0.16,Burkina Faso
1172 | 2014,Israel,0.01,Zambia
1173 | 2014,Kuwait,61.355,Morocco
1174 | 2014,Kuwait,0.182,Egypt
1175 | 2014,Kuwait,0.178,Gambia
1176 | 2014,Kuwait,0.593,Liberia
1177 | 2014,Kuwait,0.131,Mauritania
1178 | 2014,Kuwait,0.01,Niger
1179 | 2014,Kuwait,0.074,Sierra Leone
1180 | 2014,Kuwait,2.201,Somalia
1181 | 2014,Kuwait,0.021,Djibouti
1182 | 2014,Kuwait,3.5,Sudan
1183 | 2014,Kuwait,0,Swaziland
1184 | 2014,Kuwait,1.457,Burkina Faso
1185 | 2014,Kuwait,41.177,Morocco
1186 | 2014,Kuwait,19.727,Tunisia
1187 | 2014,Kuwait,45.431,Egypt
1188 | 2014,Kuwait,0.015,Cameroon
1189 | 2014,Kuwait,1.628,Cabo Verde
1190 | 2014,Kuwait,7.8,Benin
1191 | 2014,Kuwait,6.598,Ethiopia
1192 | 2014,Kuwait,0.897,Gabon
1193 | 2014,Kuwait,2.444,Gambia
1194 | 2014,Kuwait,1.418,Guinea
1195 | 2014,Kuwait,3.868,Côte d'Ivoire
1196 | 2014,Kuwait,1.667,Kenya
1197 | 2014,Kuwait,6.623,Lesotho
1198 | 2014,Kuwait,0.319,Madagascar
1199 | 2014,Kuwait,3.648,Malawi
1200 | 2014,Kuwait,6.118,Mali
1201 | 2014,Kuwait,21.398,Mauritania
1202 | 2014,Kuwait,2.148,Mozambique
1203 | 2014,Kuwait,4.552,Rwanda
1204 | 2014,Kuwait,8.097,Senegal
1205 | 2014,Kuwait,3.849,Sierra Leone
1206 | 2014,Kuwait,14.751,Djibouti
1207 | 2014,Kuwait,1.845,Swaziland
1208 | 2014,Kuwait,11.009,Tanzania
1209 | 2014,Kuwait,0.422,Togo
1210 | 2014,Kuwait,1.79,Uganda
1211 | 2014,Kuwait,3.069,Burkina Faso
1212 | 2014,United Arab Emirates,0.044,Algeria
1213 | 2014,United Arab Emirates,50.896,Libya
1214 | 2014,United Arab Emirates,472.194,Morocco
1215 | 2014,United Arab Emirates,27.342,Tunisia
1216 | 2014,United Arab Emirates,3134.49,Egypt
1217 | 2014,United Arab Emirates,0.559,South Africa
1218 | 2014,United Arab Emirates,0.1,Burundi
1219 | 2014,United Arab Emirates,0.219,Cameroon
1220 | 2014,United Arab Emirates,0.045,Central African Republic
1221 | 2014,United Arab Emirates,1.526,Chad
1222 | 2014,United Arab Emirates,2.166,Comoros
1223 | 2014,United Arab Emirates,0.365,Congo
1224 | 2014,United Arab Emirates,0.027,Democratic Republic of the Congo
1225 | 2014,United Arab Emirates,0.138,Benin
1226 | 2014,United Arab Emirates,2.417,Ethiopia
1227 | 2014,United Arab Emirates,0.13,Gambia
1228 | 2014,United Arab Emirates,1.397,Ghana
1229 | 2014,United Arab Emirates,3.11,Guinea
1230 | 2014,United Arab Emirates,0.695,Côte d'Ivoire
1231 | 2014,United Arab Emirates,2.3,Kenya
1232 | 2014,United Arab Emirates,1,Liberia
1233 | 2014,United Arab Emirates,0.085,Madagascar
1234 | 2014,United Arab Emirates,1.466,Malawi
1235 | 2014,United Arab Emirates,0.2,Mali
1236 | 2014,United Arab Emirates,1.008,Mauritania
1237 | 2014,United Arab Emirates,0.314,Mozambique
1238 | 2014,United Arab Emirates,0.531,Niger
1239 | 2014,United Arab Emirates,0.144,Nigeria
1240 | 2014,United Arab Emirates,0.012,Zimbabwe
1241 | 2014,United Arab Emirates,0.448,Rwanda
1242 | 2014,United Arab Emirates,0.785,Senegal
1243 | 2014,United Arab Emirates,2.855,Seychelles
1244 | 2014,United Arab Emirates,0.002,Eritrea
1245 | 2014,United Arab Emirates,1,Sierra Leone
1246 | 2014,United Arab Emirates,23.441,Somalia
1247 | 2014,United Arab Emirates,0.658,Djibouti
1248 | 2014,United Arab Emirates,0.571,Namibia
1249 | 2014,United Arab Emirates,5.589,Sudan
1250 | 2014,United Arab Emirates,0.993,South Sudan
1251 | 2014,United Arab Emirates,0.813,Tanzania
1252 | 2014,United Arab Emirates,0.24,Togo
1253 | 2014,United Arab Emirates,0.334,Uganda
1254 | 2014,United Arab Emirates,0.365,Burkina Faso
1255 | 2014,United Arab Emirates,0.012,Zambia
1256 | 2014,United Arab Emirates,11.18,Algeria
1257 | 2014,United Arab Emirates,19.679,Morocco
1258 | 2014,United Arab Emirates,1.84,Tunisia
1259 | 2014,United Arab Emirates,36.986,Egypt
1260 | 2014,United Arab Emirates,2.698,Benin
1261 | 2014,United Arab Emirates,0.841,Gambia
1262 | 2014,United Arab Emirates,8.432,Lesotho
1263 | 2014,United Arab Emirates,0.555,Malawi
1264 | 2014,United Arab Emirates,0.406,Mauritania
1265 | 2014,United Arab Emirates,0.033,Eritrea
1266 | 2014,United Arab Emirates,1.462,Sierra Leone
1267 | 2014,United Arab Emirates,0.351,Tanzania
1268 | 2014,United Arab Emirates,2.017,Burkina Faso
1269 | 2014,Kazakhstan,0.05,Central African Republic
1270 | 2014,Japan,2.75,Algeria
1271 | 2014,Japan,5.6,Libya
1272 | 2014,Japan,12.37,Morocco
1273 | 2014,Japan,13.23,Tunisia
1274 | 2014,Japan,33.35,Egypt
1275 | 2014,Japan,8.28,South Africa
1276 | 2014,Japan,8,Angola
1277 | 2014,Japan,4.55,Botswana
1278 | 2014,Japan,9.04,Burundi
1279 | 2014,Japan,14.62,Cameroon
1280 | 2014,Japan,0.62,Cabo Verde
1281 | 2014,Japan,9.29,Central African Republic
1282 | 2014,Japan,11.19,Chad
1283 | 2014,Japan,3.45,Comoros
1284 | 2014,Japan,6.39,Congo
1285 | 2014,Japan,53.8,Democratic Republic of the Congo
1286 | 2014,Japan,10.2,Benin
1287 | 2014,Japan,82.77,Ethiopia
1288 | 2014,Japan,4.98,Gabon
1289 | 2014,Japan,0.35,Gambia
1290 | 2014,Japan,41.25,Ghana
1291 | 2014,Japan,22.99,Guinea
1292 | 2014,Japan,8.03,Guinea-Bissau
1293 | 2014,Japan,26.59,Côte d'Ivoire
1294 | 2014,Japan,60.87,Kenya
1295 | 2014,Japan,2.29,Lesotho
1296 | 2014,Japan,30.26,Liberia
1297 | 2014,Japan,10.28,Madagascar
1298 | 2014,Japan,42.45,Malawi
1299 | 2014,Japan,24.29,Mali
1300 | 2014,Japan,22.46,Mauritania
1301 | 2014,Japan,3.34,Mauritius
1302 | 2014,Japan,51.17,Mozambique
1303 | 2014,Japan,32.05,Niger
1304 | 2014,Japan,35.15,Nigeria
1305 | 2014,Japan,5.18,Zimbabwe
1306 | 2014,Japan,22.61,Rwanda
1307 | 2014,Japan,2.46,São Tomé and Principe
1308 | 2014,Japan,45.06,Senegal
1309 | 2014,Japan,0.66,Seychelles
1310 | 2014,Japan,1.32,Eritrea
1311 | 2014,Japan,13.28,Sierra Leone
1312 | 2014,Japan,32.58,Somalia
1313 | 2014,Japan,26.46,Djibouti
1314 | 2014,Japan,5.31,Namibia
1315 | 2014,Japan,52.51,Sudan
1316 | 2014,Japan,43.28,South Sudan
1317 | 2014,Japan,0.5,Swaziland
1318 | 2014,Japan,60.27,Tanzania
1319 | 2014,Japan,10.17,Togo
1320 | 2014,Japan,48.74,Uganda
1321 | 2014,Japan,23.55,Burkina Faso
1322 | 2014,Japan,39.38,Zambia
1323 | 2014,Japan,68.35,Morocco
1324 | 2014,Japan,83.4,Tunisia
1325 | 2014,Japan,79.27,Egypt
1326 | 2014,Japan,0.18,Botswana
1327 | 2014,Japan,10.42,Cameroon
1328 | 2014,Japan,10.39,Cabo Verde
1329 | 2014,Japan,51.19,Kenya
1330 | 2014,Japan,0.27,Mauritius
1331 | 2014,Japan,34.11,Mozambique
1332 | 2014,Japan,53.72,Tanzania
1333 | 2014,Japan,36.99,Uganda
1334 | 2014,Japan,10.74,Zambia
1335 | 2014,Korea,3.842,Algeria
1336 | 2014,Korea,1.213,Libya
1337 | 2014,Korea,4.051,Morocco
1338 | 2014,Korea,4.705,Tunisia
1339 | 2014,Korea,3.638,Egypt
1340 | 2014,Korea,0.194,South Africa
1341 | 2014,Korea,0.873,Angola
1342 | 2014,Korea,0.121,Botswana
1343 | 2014,Korea,0.577,Burundi
1344 | 2014,Korea,6.717,Cameroon
1345 | 2014,Korea,0.022,Cabo Verde
1346 | 2014,Korea,1.011,Central African Republic
1347 | 2014,Korea,0.097,Chad
1348 | 2014,Korea,0.1,Comoros
1349 | 2014,Korea,0.022,Congo
1350 | 2014,Korea,11.518,Democratic Republic of the Congo
1351 | 2014,Korea,0.096,Benin
1352 | 2014,Korea,19.34,Ethiopia
1353 | 2014,Korea,0.298,Gabon
1354 | 2014,Korea,0.038,Gambia
1355 | 2014,Korea,12.483,Ghana
1356 | 2014,Korea,0.307,Guinea
1357 | 2014,Korea,0.151,Guinea-Bissau
1358 | 2014,Korea,0.03,Equatorial Guinea
1359 | 2014,Korea,2.555,Côte d'Ivoire
1360 | 2014,Korea,3.997,Kenya
1361 | 2014,Korea,0.231,Lesotho
1362 | 2014,Korea,0.066,Liberia
1363 | 2014,Korea,0.505,Madagascar
1364 | 2014,Korea,2.021,Malawi
1365 | 2014,Korea,0.678,Mali
1366 | 2014,Korea,0.02,Mauritius
1367 | 2014,Korea,4.245,Mozambique
1368 | 2014,Korea,0.502,Niger
1369 | 2014,Korea,3.04,Nigeria
1370 | 2014,Korea,4.243,Zimbabwe
1371 | 2014,Korea,16.457,Rwanda
1372 | 2014,Korea,11.635,Senegal
1373 | 2014,Korea,6.3,Sierra Leone
1374 | 2014,Korea,0.582,Somalia
1375 | 2014,Korea,0.017,Namibia
1376 | 2014,Korea,3.204,Sudan
1377 | 2014,Korea,2.064,South Sudan
1378 | 2014,Korea,0.12,Swaziland
1379 | 2014,Korea,12.895,Tanzania
1380 | 2014,Korea,0.328,Togo
1381 | 2014,Korea,11.364,Uganda
1382 | 2014,Korea,0.196,Burkina Faso
1383 | 2014,Korea,0.132,Zambia
1384 | 2014,Korea,5.017,Angola
1385 | 2014,Korea,4.642,Cameroon
1386 | 2014,Korea,23.569,Ethiopia
1387 | 2014,Korea,6.559,Ghana
1388 | 2014,Korea,0.083,Kenya
1389 | 2014,Korea,6.516,Mali
1390 | 2014,Korea,52.267,Mozambique
1391 | 2014,Korea,8.224,Senegal
1392 | 2014,Korea,1.207,Sierra Leone
1393 | 2014,Korea,66.943,Tanzania
1394 | 2014,Korea,1.096,Uganda
1395 | 2014,Thailand,0.02,Egypt
1396 | 2014,Thailand,0.01,Botswana
1397 | 2014,Thailand,0.01,Burundi
1398 | 2014,Thailand,0.04,Ethiopia
1399 | 2014,Thailand,0.09,Gambia
1400 | 2014,Thailand,0.01,Guinea
1401 | 2014,Thailand,0.08,Kenya
1402 | 2014,Thailand,0.01,Madagascar
1403 | 2014,Thailand,0.08,Malawi
1404 | 2014,Thailand,0.02,Mauritius
1405 | 2014,Thailand,0.22,Mozambique
1406 | 2014,Thailand,0.01,Nigeria
1407 | 2014,Thailand,0.04,Senegal
1408 | 2014,Thailand,0.03,Seychelles
1409 | 2014,Thailand,0.04,Eritrea
1410 | 2014,Thailand,0.02,Sudan
1411 | 2014,Thailand,0.01,Swaziland
1412 | 2014,Thailand,0.08,Tanzania
1413 | 2014,Thailand,0.05,Uganda
1414 | 2014,Thailand,0.01,Zambia
1415 | 2014,Timor Leste,0.5,Cabo Verde
1416 | 2014,Timor Leste,0.7,Guinea-Bissau
1417 | 2014,Australia,0.24,Algeria
1418 | 2014,Australia,0.35,Morocco
1419 | 2014,Australia,0.34,Tunisia
1420 | 2014,Australia,3.62,Egypt
1421 | 2014,Australia,2.44,South Africa
1422 | 2014,Australia,0.12,Angola
1423 | 2014,Australia,1.28,Botswana
1424 | 2014,Australia,0.96,Burundi
1425 | 2014,Australia,0.83,Cameroon
1426 | 2014,Australia,0.12,Cabo Verde
1427 | 2014,Australia,3.71,Central African Republic
1428 | 2014,Australia,0.05,Chad
1429 | 2014,Australia,0.1,Comoros
1430 | 2014,Australia,0.16,Congo
1431 | 2014,Australia,4.62,Democratic Republic of the Congo
1432 | 2014,Australia,0.05,Benin
1433 | 2014,Australia,9.94,Ethiopia
1434 | 2014,Australia,0.01,Gabon
1435 | 2014,Australia,0.42,Gambia
1436 | 2014,Australia,3.09,Ghana
1437 | 2014,Australia,0.07,Guinea
1438 | 2014,Australia,0.01,Equatorial Guinea
1439 | 2014,Australia,0.12,Côte d'Ivoire
1440 | 2014,Australia,8.67,Kenya
1441 | 2014,Australia,1.15,Lesotho
1442 | 2014,Australia,1.99,Liberia
1443 | 2014,Australia,0.2,Madagascar
1444 | 2014,Australia,5.62,Malawi
1445 | 2014,Australia,0.3,Mali
1446 | 2014,Australia,0.03,Mauritania
1447 | 2014,Australia,0.51,Mauritius
1448 | 2014,Australia,4.44,Mozambique
1449 | 2014,Australia,0.33,Niger
1450 | 2014,Australia,2.38,Nigeria
1451 | 2014,Australia,15.04,Zimbabwe
1452 | 2014,Australia,1.4,Rwanda
1453 | 2014,Australia,0.06,São Tomé and Principe
1454 | 2014,Australia,0.05,Senegal
1455 | 2014,Australia,0.74,Seychelles
1456 | 2014,Australia,1.61,Sierra Leone
1457 | 2014,Australia,13.07,Somalia
1458 | 2014,Australia,0.06,Djibouti
1459 | 2014,Australia,0.89,Namibia
1460 | 2014,Australia,1.96,Sudan
1461 | 2014,Australia,22.99,South Sudan
1462 | 2014,Australia,1.02,Swaziland
1463 | 2014,Australia,5.78,Tanzania
1464 | 2014,Australia,0.12,Togo
1465 | 2014,Australia,3.58,Uganda
1466 | 2014,Australia,0.11,Burkina Faso
1467 | 2014,Australia,3.3,Zambia
1468 | 2014,New Zealand,0.05,Morocco
1469 | 2014,New Zealand,0.28,South Africa
1470 | 2014,New Zealand,0.17,Botswana
1471 | 2014,New Zealand,0.03,Cameroon
1472 | 2014,New Zealand,0.41,Central African Republic
1473 | 2014,New Zealand,0.14,Comoros
1474 | 2014,New Zealand,0.21,Ethiopia
1475 | 2014,New Zealand,0.11,Ghana
1476 | 2014,New Zealand,0.05,Guinea-Bissau
1477 | 2014,New Zealand,1.03,Kenya
1478 | 2014,New Zealand,0.06,Malawi
1479 | 2014,New Zealand,0.03,Mauritius
1480 | 2014,New Zealand,0.11,Nigeria
1481 | 2014,New Zealand,0.4,Zimbabwe
1482 | 2014,New Zealand,0.2,Rwanda
1483 | 2014,New Zealand,0.05,Seychelles
1484 | 2014,New Zealand,1.7,Sierra Leone
1485 | 2014,New Zealand,0.07,Somalia
1486 | 2014,New Zealand,0.02,Namibia
1487 | 2014,New Zealand,0.58,South Sudan
1488 | 2014,New Zealand,0.05,Swaziland
1489 | 2014,New Zealand,0.83,Tanzania
1490 | 2014,New Zealand,0.03,Uganda
1491 | 2014,New Zealand,0.32,Zambia
1492 | 2015,Austria,0.119,Algeria
1493 | 2015,Austria,0.257,Libya
1494 | 2015,Austria,0.257,Morocco
1495 | 2015,Austria,0.507,Tunisia
1496 | 2015,Austria,3.541,Egypt
1497 | 2015,Austria,0.474,South Africa
1498 | 2015,Austria,0.01,Angola
1499 | 2015,Austria,0.02,Burundi
1500 | 2015,Austria,0.334,Cameroon
1501 | 2015,Austria,0.543,Cabo Verde
1502 | 2015,Austria,0.117,Central African Republic
1503 | 2015,Austria,0.084,Chad
1504 | 2015,Austria,0.018,Congo
1505 | 2015,Austria,0.377,Democratic Republic of the Congo
1506 | 2015,Austria,0.034,Benin
1507 | 2015,Austria,8.1,Ethiopia
1508 | 2015,Austria,0.373,Gabon
1509 | 2015,Austria,0.121,Gambia
1510 | 2015,Austria,1.458,Ghana
1511 | 2015,Austria,0.045,Guinea
1512 | 2015,Austria,0.02,Equatorial Guinea
1513 | 2015,Austria,0.035,Côte d'Ivoire
1514 | 2015,Austria,2.845,Kenya
1515 | 2015,Austria,0.055,Lesotho
1516 | 2015,Austria,0.056,Madagascar
1517 | 2015,Austria,0.059,Malawi
1518 | 2015,Austria,0.269,Mali
1519 | 2015,Austria,0.016,Mauritius
1520 | 2015,Austria,6.174,Mozambique
1521 | 2015,Austria,0.027,Niger
1522 | 2015,Austria,0.782,Nigeria
1523 | 2015,Austria,0.355,Zimbabwe
1524 | 2015,Austria,0.102,Rwanda
1525 | 2015,Austria,0.01,São Tomé and Principe
1526 | 2015,Austria,0.387,Senegal
1527 | 2015,Austria,0.192,Sierra Leone
1528 | 2015,Austria,0.172,Somalia
1529 | 2015,Austria,0.027,Namibia
1530 | 2015,Austria,0.153,Sudan
1531 | 2015,Austria,0.6,South Sudan
1532 | 2015,Austria,0.064,Swaziland
1533 | 2015,Austria,0.947,Tanzania
1534 | 2015,Austria,0.068,Togo
1535 | 2015,Austria,10.654,Uganda
1536 | 2015,Austria,4.452,Burkina Faso
1537 | 2015,Austria,0.032,Zambia
1538 | 2015,Belgium,3.001,Algeria
1539 | 2015,Belgium,0.078,Libya
1540 | 2015,Belgium,15.844,Morocco
1541 | 2015,Belgium,0.948,Tunisia
1542 | 2015,Belgium,0.506,Egypt
1543 | 2015,Belgium,13.323,South Africa
1544 | 2015,Belgium,49.135,Burundi
1545 | 2015,Belgium,3.403,Cameroon
1546 | 2015,Belgium,0.002,Cabo Verde
1547 | 2015,Belgium,7.254,Central African Republic
1548 | 2015,Belgium,0.333,Chad
1549 | 2015,Belgium,0.126,Comoros
1550 | 2015,Belgium,0.077,Congo
1551 | 2015,Belgium,89.448,Democratic Republic of the Congo
1552 | 2015,Belgium,19.643,Benin
1553 | 2015,Belgium,1.782,Ethiopia
1554 | 2015,Belgium,0.176,Gambia
1555 | 2015,Belgium,4.075,Ghana
1556 | 2015,Belgium,6.837,Guinea
1557 | 2015,Belgium,0.356,Guinea-Bissau
1558 | 2015,Belgium,0.4,Côte d'Ivoire
1559 | 2015,Belgium,5.379,Kenya
1560 | 2015,Belgium,1.479,Liberia
1561 | 2015,Belgium,2.083,Madagascar
1562 | 2015,Belgium,9.493,Malawi
1563 | 2015,Belgium,22.094,Mali
1564 | 2015,Belgium,0.651,Mauritania
1565 | 2015,Belgium,19.235,Mozambique
1566 | 2015,Belgium,17.126,Niger
1567 | 2015,Belgium,0.339,Nigeria
1568 | 2015,Belgium,2.193,Zimbabwe
1569 | 2015,Belgium,35.882,Rwanda
1570 | 2015,Belgium,17.024,Senegal
1571 | 2015,Belgium,0.007,Seychelles
1572 | 2015,Belgium,1.443,Sierra Leone
1573 | 2015,Belgium,0.293,Somalia
1574 | 2015,Belgium,0.084,Namibia
1575 | 2015,Belgium,0.008,Sudan
1576 | 2015,Belgium,4.36,South Sudan
1577 | 2015,Belgium,0.003,Swaziland
1578 | 2015,Belgium,12.428,Tanzania
1579 | 2015,Belgium,0.734,Togo
1580 | 2015,Belgium,16.795,Uganda
1581 | 2015,Belgium,10.653,Burkina Faso
1582 | 2015,Belgium,1.286,Zambia
1583 | 2015,Belgium,7.336,Kenya
1584 | 2015,Belgium,0.952,Senegal
1585 | 2015,Belgium,3.951,Sudan
1586 | 2015,Belgium,9.856,Togo
1587 | 2015,Denmark,0.031,Algeria
1588 | 2015,Denmark,0.164,Libya
1589 | 2015,Denmark,0.539,Morocco
1590 | 2015,Denmark,5.563,Tunisia
1591 | 2015,Denmark,1.35,Egypt
1592 | 2015,Denmark,2.299,South Africa
1593 | 2015,Denmark,1.487,Central African Republic
1594 | 2015,Denmark,0,Democratic Republic of the Congo
1595 | 2015,Denmark,6.084,Ethiopia
1596 | 2015,Denmark,38.172,Ghana
1597 | 2015,Denmark,51.757,Kenya
1598 | 2015,Denmark,0.591,Liberia
1599 | 2015,Denmark,26.409,Mali
1600 | 2015,Denmark,61.252,Mozambique
1601 | 2015,Denmark,12.815,Niger
1602 | 2015,Denmark,0.022,Nigeria
1603 | 2015,Denmark,26.786,Zimbabwe
1604 | 2015,Denmark,0.149,Sierra Leone
1605 | 2015,Denmark,15.016,Somalia
1606 | 2015,Denmark,4.446,Sudan
1607 | 2015,Denmark,15.928,South Sudan
1608 | 2015,Denmark,46.011,Tanzania
1609 | 2015,Denmark,29.59,Uganda
1610 | 2015,Denmark,41.572,Burkina Faso
1611 | 2015,Denmark,18.961,Zambia
1612 | 2015,Denmark,0.455,Egypt
1613 | 2015,Denmark,1.257,South Africa
1614 | 2015,Denmark,0.979,Ghana
1615 | 2015,Denmark,6.486,Kenya
1616 | 2015,Denmark,2.009,Mozambique
1617 | 2015,Denmark,0.668,Nigeria
1618 | 2015,France,97.6,Algeria
1619 | 2015,France,2.511,Libya
1620 | 2015,France,166.065,Morocco
1621 | 2015,France,71.361,Tunisia
1622 | 2015,France,27.868,Egypt
1623 | 2015,France,9.389,South Africa
1624 | 2015,France,4.981,Angola
1625 | 2015,France,0.595,Botswana
1626 | 2015,France,7.492,Burundi
1627 | 2015,France,42.263,Cameroon
1628 | 2015,France,1.426,Cabo Verde
1629 | 2015,France,37.993,Central African Republic
1630 | 2015,France,81.414,Chad
1631 | 2015,France,20.791,Comoros
1632 | 2015,France,54.754,Congo
1633 | 2015,France,63.815,Democratic Republic of the Congo
1634 | 2015,France,32.553,Benin
1635 | 2015,France,9.154,Ethiopia
1636 | 2015,France,22.422,Gabon
1637 | 2015,France,0.963,Gambia
1638 | 2015,France,3.918,Ghana
1639 | 2015,France,50.068,Guinea
1640 | 2015,France,0.539,Guinea-Bissau
1641 | 2015,France,3.372,Equatorial Guinea
1642 | 2015,France,278.76,Côte d'Ivoire
1643 | 2015,France,11.973,Kenya
1644 | 2015,France,0.158,Lesotho
1645 | 2015,France,1.025,Liberia
1646 | 2015,France,57.88,Madagascar
1647 | 2015,France,2.488,Malawi
1648 | 2015,France,139.634,Mali
1649 | 2015,France,18.768,Mauritania
1650 | 2015,France,12.78,Mauritius
1651 | 2015,France,8.655,Mozambique
1652 | 2015,France,47.947,Niger
1653 | 2015,France,7.484,Nigeria
1654 | 2015,France,1.815,Zimbabwe
1655 | 2015,France,4.565,Rwanda
1656 | 2015,France,0.616,São Tomé and Principe
1657 | 2015,France,92.795,Senegal
1658 | 2015,France,2.067,Seychelles
1659 | 2015,France,0.154,Eritrea
1660 | 2015,France,0.205,Sierra Leone
1661 | 2015,France,1.023,Somalia
1662 | 2015,France,32.201,Djibouti
1663 | 2015,France,0.609,Namibia
1664 | 2015,France,3.808,Sudan
1665 | 2015,France,0.842,South Sudan
1666 | 2015,France,0.097,Swaziland
1667 | 2015,France,2.516,Tanzania
1668 | 2015,France,30.304,Togo
1669 | 2015,France,1.698,Uganda
1670 | 2015,France,44.642,Burkina Faso
1671 | 2015,France,0.33,Zambia
1672 | 2015,France,206.993,Morocco
1673 | 2015,France,49.048,Tunisia
1674 | 2015,France,98.554,Egypt
1675 | 2015,France,192.865,South Africa
1676 | 2015,France,121.941,Cameroon
1677 | 2015,France,6.957,Cabo Verde
1678 | 2015,France,12.618,Ethiopia
1679 | 2015,France,63.74,Gabon
1680 | 2015,France,47.319,Ghana
1681 | 2015,France,90.642,Kenya
1682 | 2015,France,44.37,Madagascar
1683 | 2015,France,24.194,Mali
1684 | 2015,France,5.611,Mauritania
1685 | 2015,France,44.245,Mauritius
1686 | 2015,France,62.651,Mozambique
1687 | 2015,France,7.492,Niger
1688 | 2015,France,25.141,Nigeria
1689 | 2015,France,37.445,Senegal
1690 | 2015,France,25.261,Djibouti
1691 | 2015,France,25.569,Tanzania
1692 | 2015,France,1.442,Togo
1693 | 2015,France,8.874,Uganda
1694 | 2015,France,36.69,Burkina Faso
1695 | 2015,France,28.82,Zambia
1696 | 2015,Germany,6.965,Algeria
1697 | 2015,Germany,9.44,Libya
1698 | 2015,Germany,47.09,Morocco
1699 | 2015,Germany,55.037,Tunisia
1700 | 2015,Germany,76.199,Egypt
1701 | 2015,Germany,67.403,South Africa
1702 | 2015,Germany,2.228,Angola
1703 | 2015,Germany,0.106,Botswana
1704 | 2015,Germany,17.418,Burundi
1705 | 2015,Germany,73.167,Cameroon
1706 | 2015,Germany,0.286,Cabo Verde
1707 | 2015,Germany,37.671,Central African Republic
1708 | 2015,Germany,15.142,Chad
1709 | 2015,Germany,0.488,Congo
1710 | 2015,Germany,87.025,Democratic Republic of the Congo
1711 | 2015,Germany,38.38,Benin
1712 | 2015,Germany,49.122,Ethiopia
1713 | 2015,Germany,1.68,Gabon
1714 | 2015,Germany,0.256,Gambia
1715 | 2015,Germany,29.221,Ghana
1716 | 2015,Germany,12.762,Guinea
1717 | 2015,Germany,0.008,Guinea-Bissau
1718 | 2015,Germany,0.005,Equatorial Guinea
1719 | 2015,Germany,15.847,Côte d'Ivoire
1720 | 2015,Germany,66.604,Kenya
1721 | 2015,Germany,4.741,Lesotho
1722 | 2015,Germany,14.652,Liberia
1723 | 2015,Germany,19.976,Madagascar
1724 | 2015,Germany,41.38,Malawi
1725 | 2015,Germany,43.449,Mali
1726 | 2015,Germany,17.059,Mauritania
1727 | 2015,Germany,0.373,Mauritius
1728 | 2015,Germany,64.778,Mozambique
1729 | 2015,Germany,24.422,Niger
1730 | 2015,Germany,34.244,Nigeria
1731 | 2015,Germany,28.323,Zimbabwe
1732 | 2015,Germany,35.376,Rwanda
1733 | 2015,Germany,0.004,São Tomé and Principe
1734 | 2015,Germany,19.079,Senegal
1735 | 2015,Germany,0.023,Seychelles
1736 | 2015,Germany,0.603,Eritrea
1737 | 2015,Germany,25.28,Sierra Leone
1738 | 2015,Germany,29.146,Somalia
1739 | 2015,Germany,1.428,Djibouti
1740 | 2015,Germany,36.256,Namibia
1741 | 2015,Germany,16.825,Sudan
1742 | 2015,Germany,56.741,South Sudan
1743 | 2015,Germany,0.118,Swaziland
1744 | 2015,Germany,60.101,Tanzania
1745 | 2015,Germany,34.212,Togo
1746 | 2015,Germany,52.84,Uganda
1747 | 2015,Germany,47.39,Burkina Faso
1748 | 2015,Germany,31.994,Zambia
1749 | 2015,Germany,346,Morocco
1750 | 2015,Germany,55.796,Tunisia
1751 | 2015,Germany,153.12,Egypt
1752 | 2015,Germany,354.552,South Africa
1753 | 2015,Germany,29.093,Ghana
1754 | 2015,Germany,4.07,Kenya
1755 | 2015,Germany,14.204,Mozambique
1756 | 2015,Germany,27.732,Namibia
1757 | 2015,Germany,33.051,Tanzania
1758 | 2015,Italy,1.244,Algeria
1759 | 2015,Italy,1.705,Libya
1760 | 2015,Italy,10.092,Morocco
1761 | 2015,Italy,7.453,Tunisia
1762 | 2015,Italy,26.494,Egypt
1763 | 2015,Italy,0.933,South Africa
1764 | 2015,Italy,1.93,Angola
1765 | 2015,Italy,0.083,Botswana
1766 | 2015,Italy,1.365,Burundi
1767 | 2015,Italy,2.545,Cameroon
1768 | 2015,Italy,0.235,Cabo Verde
1769 | 2015,Italy,5.274,Central African Republic
1770 | 2015,Italy,0.792,Chad
1771 | 2015,Italy,0.017,Comoros
1772 | 2015,Italy,0.884,Congo
1773 | 2015,Italy,8.386,Democratic Republic of the Congo
1774 | 2015,Italy,2.369,Benin
1775 | 2015,Italy,30.493,Ethiopia
1776 | 2015,Italy,0.074,Gabon
1777 | 2015,Italy,0.004,Gambia
1778 | 2015,Italy,2.465,Ghana
1779 | 2015,Italy,0.122,Guinea
1780 | 2015,Italy,0.525,Guinea-Bissau
1781 | 2015,Italy,0.133,Equatorial Guinea
1782 | 2015,Italy,1.289,Côte d'Ivoire
1783 | 2015,Italy,20.86,Kenya
1784 | 2015,Italy,3.371,Madagascar
1785 | 2015,Italy,0.663,Malawi
1786 | 2015,Italy,4.124,Mali
1787 | 2015,Italy,2.068,Mauritania
1788 | 2015,Italy,19.558,Mozambique
1789 | 2015,Italy,2.658,Niger
1790 | 2015,Italy,0.718,Nigeria
1791 | 2015,Italy,0.571,Zimbabwe
1792 | 2015,Italy,2.644,Rwanda
1793 | 2015,Italy,0.29,São Tomé and Principe
1794 | 2015,Italy,14.38,Senegal
1795 | 2015,Italy,0.67,Eritrea
1796 | 2015,Italy,7.128,Sierra Leone
1797 | 2015,Italy,13.444,Somalia
1798 | 2015,Italy,4.263,Djibouti
1799 | 2015,Italy,0.016,Namibia
1800 | 2015,Italy,13.928,Sudan
1801 | 2015,Italy,12.758,South Sudan
1802 | 2015,Italy,0.024,Swaziland
1803 | 2015,Italy,4.814,Tanzania
1804 | 2015,Italy,2.1,Togo
1805 | 2015,Italy,3.462,Uganda
1806 | 2015,Italy,8.253,Burkina Faso
1807 | 2015,Italy,0.513,Zambia
1808 | 2015,Italy,22.015,Tunisia
1809 | 2015,Italy,4.437,Egypt
1810 | 2015,Italy,4.437,Ethiopia
1811 | 2015,Italy,0.053,Kenya
1812 | 2015,Italy,2.354,Senegal
1813 | 2015,Netherlands,0.014,Algeria
1814 | 2015,Netherlands,0.506,Libya
1815 | 2015,Netherlands,1.073,Morocco
1816 | 2015,Netherlands,0.317,Tunisia
1817 | 2015,Netherlands,0.778,Egypt
1818 | 2015,Netherlands,2.865,South Africa
1819 | 2015,Netherlands,0.005,Botswana
1820 | 2015,Netherlands,27.03,Burundi
1821 | 2015,Netherlands,11.862,Central African Republic
1822 | 2015,Netherlands,7.089,Democratic Republic of the Congo
1823 | 2015,Netherlands,17.753,Benin
1824 | 2015,Netherlands,80.48,Ethiopia
1825 | 2015,Netherlands,32.48,Ghana
1826 | 2015,Netherlands,19.193,Kenya
1827 | 2015,Netherlands,0.017,Liberia
1828 | 2015,Netherlands,37.466,Mali
1829 | 2015,Netherlands,35.083,Mozambique
1830 | 2015,Netherlands,7.44,Nigeria
1831 | 2015,Netherlands,1.553,Zimbabwe
1832 | 2015,Netherlands,40.83,Rwanda
1833 | 2015,Netherlands,0.026,Senegal
1834 | 2015,Netherlands,2.286,Somalia
1835 | 2015,Netherlands,3.589,Sudan
1836 | 2015,Netherlands,42.08,South Sudan
1837 | 2015,Netherlands,14.689,Uganda
1838 | 2015,Netherlands,0.01,Zambia
1839 | 2015,Norway,0.735,Algeria
1840 | 2015,Norway,0.029,Libya
1841 | 2015,Norway,0.382,Morocco
1842 | 2015,Norway,3.126,Tunisia
1843 | 2015,Norway,4.412,Egypt
1844 | 2015,Norway,9.83,South Africa
1845 | 2015,Norway,6.598,Angola
1846 | 2015,Norway,0.071,Botswana
1847 | 2015,Norway,5.469,Burundi
1848 | 2015,Norway,0.69,Cameroon
1849 | 2015,Norway,10.102,Central African Republic
1850 | 2015,Norway,0.744,Chad
1851 | 2015,Norway,0.24,Congo
1852 | 2015,Norway,24.427,Democratic Republic of the Congo
1853 | 2015,Norway,0.019,Benin
1854 | 2015,Norway,48.672,Ethiopia
1855 | 2015,Norway,0.065,Gabon
1856 | 2015,Norway,0.141,Gambia
1857 | 2015,Norway,4.1,Ghana
1858 | 2015,Norway,0.142,Guinea
1859 | 2015,Norway,0.165,Guinea-Bissau
1860 | 2015,Norway,1.078,Côte d'Ivoire
1861 | 2015,Norway,13.932,Kenya
1862 | 2015,Norway,0.726,Lesotho
1863 | 2015,Norway,36.084,Liberia
1864 | 2015,Norway,6.547,Madagascar
1865 | 2015,Norway,73.391,Malawi
1866 | 2015,Norway,17.272,Mali
1867 | 2015,Norway,0.766,Mauritania
1868 | 2015,Norway,32.79,Mozambique
1869 | 2015,Norway,11.196,Niger
1870 | 2015,Norway,17.684,Nigeria
1871 | 2015,Norway,16.577,Zimbabwe
1872 | 2015,Norway,2.197,Rwanda
1873 | 2015,Norway,0.333,Senegal
1874 | 2015,Norway,1.37,Eritrea
1875 | 2015,Norway,6.952,Sierra Leone
1876 | 2015,Norway,43.127,Somalia
1877 | 2015,Norway,0.254,Djibouti
1878 | 2015,Norway,1.412,Namibia
1879 | 2015,Norway,17.237,Sudan
1880 | 2015,Norway,62.243,South Sudan
1881 | 2015,Norway,0.626,Swaziland
1882 | 2015,Norway,48.46,Tanzania
1883 | 2015,Norway,0.644,Togo
1884 | 2015,Norway,46.545,Uganda
1885 | 2015,Norway,0.506,Burkina Faso
1886 | 2015,Norway,22.423,Zambia
1887 | 2015,Portugal,0.178,Algeria
1888 | 2015,Portugal,0.347,Morocco
1889 | 2015,Portugal,0.067,Tunisia
1890 | 2015,Portugal,0.111,Egypt
1891 | 2015,Portugal,1.259,South Africa
1892 | 2015,Portugal,4.952,Angola
1893 | 2015,Portugal,0.033,Botswana
1894 | 2015,Portugal,20.034,Cabo Verde
1895 | 2015,Portugal,0.065,Central African Republic
1896 | 2015,Portugal,0.025,Congo
1897 | 2015,Portugal,0.04,Democratic Republic of the Congo
1898 | 2015,Portugal,0.039,Ethiopia
1899 | 2015,Portugal,0.013,Gambia
1900 | 2015,Portugal,0.014,Ghana
1901 | 2015,Portugal,0.053,Guinea
1902 | 2015,Portugal,13.858,Guinea-Bissau
1903 | 2015,Portugal,0.071,Equatorial Guinea
1904 | 2015,Portugal,0.04,Côte d'Ivoire
1905 | 2015,Portugal,0.002,Liberia
1906 | 2015,Portugal,0.148,Mali
1907 | 2015,Portugal,0.004,Mauritania
1908 | 2015,Portugal,27.451,Mozambique
1909 | 2015,Portugal,0.002,Nigeria
1910 | 2015,Portugal,0.047,Zimbabwe
1911 | 2015,Portugal,0.215,Rwanda
1912 | 2015,Portugal,9.546,São Tomé and Principe
1913 | 2015,Portugal,0.295,Senegal
1914 | 2015,Portugal,0.016,Sierra Leone
1915 | 2015,Portugal,0.114,Somalia
1916 | 2015,Portugal,0.351,Namibia
1917 | 2015,Portugal,0.089,Swaziland
1918 | 2015,Portugal,0.008,Tanzania
1919 | 2015,Portugal,0.006,Togo
1920 | 2015,Portugal,0.002,Burkina Faso
1921 | 2015,Portugal,11.531,Morocco
1922 | 2015,Portugal,3.577,Angola
1923 | 2015,Portugal,31.932,Cabo Verde
1924 | 2015,Portugal,5.528,Mozambique
1925 | 2015,Portugal,15.616,São Tomé and Principe
1926 | 2015,Sweden,1.547,Algeria
1927 | 2015,Sweden,2.779,Libya
1928 | 2015,Sweden,0.313,Morocco
1929 | 2015,Sweden,3.641,Tunisia
1930 | 2015,Sweden,6.624,Egypt
1931 | 2015,Sweden,4.5,South Africa
1932 | 2015,Sweden,1.224,Angola
1933 | 2015,Sweden,0.3,Botswana
1934 | 2015,Sweden,0.275,Burundi
1935 | 2015,Sweden,1.674,Cameroon
1936 | 2015,Sweden,0.037,Cabo Verde
1937 | 2015,Sweden,9.448,Central African Republic
1938 | 2015,Sweden,7.071,Chad
1939 | 2015,Sweden,53.557,Democratic Republic of the Congo
1940 | 2015,Sweden,0.653,Benin
1941 | 2015,Sweden,35.138,Ethiopia
1942 | 2015,Sweden,0.701,Gambia
1943 | 2015,Sweden,0.852,Ghana
1944 | 2015,Sweden,1.007,Guinea
1945 | 2015,Sweden,0.109,Guinea-Bissau
1946 | 2015,Sweden,0.809,Côte d'Ivoire
1947 | 2015,Sweden,64.686,Kenya
1948 | 2015,Sweden,0.1,Lesotho
1949 | 2015,Sweden,27.588,Liberia
1950 | 2015,Sweden,1.135,Madagascar
1951 | 2015,Sweden,3.069,Malawi
1952 | 2015,Sweden,32.371,Mali
1953 | 2015,Sweden,0.691,Mauritania
1954 | 2015,Sweden,0.011,Mauritius
1955 | 2015,Sweden,94.604,Mozambique
1956 | 2015,Sweden,5.714,Niger
1957 | 2015,Sweden,5.27,Nigeria
1958 | 2015,Sweden,32.208,Zimbabwe
1959 | 2015,Sweden,32.785,Rwanda
1960 | 2015,Sweden,0.799,Senegal
1961 | 2015,Sweden,0.026,Eritrea
1962 | 2015,Sweden,2.213,Sierra Leone
1963 | 2015,Sweden,61.169,Somalia
1964 | 2015,Sweden,0.8,Djibouti
1965 | 2015,Sweden,1.102,Namibia
1966 | 2015,Sweden,23.025,Sudan
1967 | 2015,Sweden,39.575,South Sudan
1968 | 2015,Sweden,0.25,Swaziland
1969 | 2015,Sweden,109.244,Tanzania
1970 | 2015,Sweden,1.28,Togo
1971 | 2015,Sweden,41.779,Uganda
1972 | 2015,Sweden,12.701,Burkina Faso
1973 | 2015,Sweden,51.224,Zambia
1974 | 2015,Switzerland,3.874,Algeria
1975 | 2015,Switzerland,5.468,Libya
1976 | 2015,Switzerland,9.687,Morocco
1977 | 2015,Switzerland,26.866,Tunisia
1978 | 2015,Switzerland,19.778,Egypt
1979 | 2015,Switzerland,15.296,South Africa
1980 | 2015,Switzerland,0.252,Angola
1981 | 2015,Switzerland,7.206,Burundi
1982 | 2015,Switzerland,4.061,Cameroon
1983 | 2015,Switzerland,1.395,Cabo Verde
1984 | 2015,Switzerland,10.355,Central African Republic
1985 | 2015,Switzerland,26.821,Chad
1986 | 2015,Switzerland,0.302,Congo
1987 | 2015,Switzerland,21.512,Democratic Republic of the Congo
1988 | 2015,Switzerland,26.007,Benin
1989 | 2015,Switzerland,19.783,Ethiopia
1990 | 2015,Switzerland,0.009,Gabon
1991 | 2015,Switzerland,0.021,Gambia
1992 | 2015,Switzerland,18.511,Ghana
1993 | 2015,Switzerland,2.725,Guinea
1994 | 2015,Switzerland,0.416,Guinea-Bissau
1995 | 2015,Switzerland,2.503,Côte d'Ivoire
1996 | 2015,Switzerland,11.861,Kenya
1997 | 2015,Switzerland,0.473,Lesotho
1998 | 2015,Switzerland,5.531,Liberia
1999 | 2015,Switzerland,8.135,Madagascar
2000 | 2015,Switzerland,0.489,Malawi
2001 | 2015,Switzerland,36.164,Mali
2002 | 2015,Switzerland,0.682,Mauritania
2003 | 2015,Switzerland,41.126,Mozambique
2004 | 2015,Switzerland,31.175,Niger
2005 | 2015,Switzerland,7.673,Nigeria
2006 | 2015,Switzerland,11.717,Zimbabwe
2007 | 2015,Switzerland,4.787,Rwanda
2008 | 2015,Switzerland,3.22,Senegal
2009 | 2015,Switzerland,0.763,Eritrea
2010 | 2015,Switzerland,0.081,Sierra Leone
2011 | 2015,Switzerland,22.963,Somalia
2012 | 2015,Switzerland,0.139,Djibouti
2013 | 2015,Switzerland,0.442,Namibia
2014 | 2015,Switzerland,15.369,Sudan
2015 | 2015,Switzerland,31.996,South Sudan
2016 | 2015,Switzerland,0.549,Swaziland
2017 | 2015,Switzerland,32.56,Tanzania
2018 | 2015,Switzerland,2.095,Togo
2019 | 2015,Switzerland,2.403,Uganda
2020 | 2015,Switzerland,38.777,Burkina Faso
2021 | 2015,Switzerland,0.466,Zambia
2022 | 2015,United Kingdom,4.088,Algeria
2023 | 2015,United Kingdom,16.054,Libya
2024 | 2015,United Kingdom,5.462,Morocco
2025 | 2015,United Kingdom,9.642,Tunisia
2026 | 2015,United Kingdom,18.659,Egypt
2027 | 2015,United Kingdom,30.371,South Africa
2028 | 2015,United Kingdom,1.981,Angola
2029 | 2015,United Kingdom,1.614,Botswana
2030 | 2015,United Kingdom,0.313,Burundi
2031 | 2015,United Kingdom,9.508,Cameroon
2032 | 2015,United Kingdom,0.178,Cabo Verde
2033 | 2015,United Kingdom,27.937,Central African Republic
2034 | 2015,United Kingdom,0.007,Comoros
2035 | 2015,United Kingdom,218.568,Democratic Republic of the Congo
2036 | 2015,United Kingdom,518.167,Ethiopia
2037 | 2015,United Kingdom,14.58,Gambia
2038 | 2015,United Kingdom,96.834,Ghana
2039 | 2015,United Kingdom,0.483,Guinea
2040 | 2015,United Kingdom,0.027,Guinea-Bissau
2041 | 2015,United Kingdom,1.067,Côte d'Ivoire
2042 | 2015,United Kingdom,238.481,Kenya
2043 | 2015,United Kingdom,0.656,Lesotho
2044 | 2015,United Kingdom,16.305,Liberia
2045 | 2015,United Kingdom,2.043,Madagascar
2046 | 2015,United Kingdom,136.119,Malawi
2047 | 2015,United Kingdom,2.858,Mali
2048 | 2015,United Kingdom,0.181,Mauritania
2049 | 2015,United Kingdom,1.191,Mauritius
2050 | 2015,United Kingdom,77.195,Mozambique
2051 | 2015,United Kingdom,401.835,Nigeria
2052 | 2015,United Kingdom,142.362,Zimbabwe
2053 | 2015,United Kingdom,154.791,Rwanda
2054 | 2015,United Kingdom,1.666,Senegal
2055 | 2015,United Kingdom,0.494,Seychelles
2056 | 2015,United Kingdom,0.464,Eritrea
2057 | 2015,United Kingdom,340.03,Sierra Leone
2058 | 2015,United Kingdom,186.14,Somalia
2059 | 2015,United Kingdom,0.029,Djibouti
2060 | 2015,United Kingdom,0.454,Namibia
2061 | 2015,United Kingdom,93.673,Saint Helena
2062 | 2015,United Kingdom,83.614,Sudan
2063 | 2015,United Kingdom,318.13,South Sudan
2064 | 2015,United Kingdom,0.258,Swaziland
2065 | 2015,United Kingdom,313.028,Tanzania
2066 | 2015,United Kingdom,0.052,Togo
2067 | 2015,United Kingdom,188.969,Uganda
2068 | 2015,United Kingdom,0.135,Burkina Faso
2069 | 2015,United Kingdom,81.433,Zambia
2070 | 2015,Finland,0.147,Algeria
2071 | 2015,Finland,0.771,Libya
2072 | 2015,Finland,0.302,Morocco
2073 | 2015,Finland,0.652,Tunisia
2074 | 2015,Finland,1.952,Egypt
2075 | 2015,Finland,2.081,South Africa
2076 | 2015,Finland,0.526,Angola
2077 | 2015,Finland,0.412,Botswana
2078 | 2015,Finland,0.764,Burundi
2079 | 2015,Finland,0.609,Cameroon
2080 | 2015,Finland,2.596,Central African Republic
2081 | 2015,Finland,2.108,Chad
2082 | 2015,Finland,0.005,Comoros
2083 | 2015,Finland,0.022,Congo
2084 | 2015,Finland,3.757,Democratic Republic of the Congo
2085 | 2015,Finland,0.066,Benin
2086 | 2015,Finland,23.967,Ethiopia
2087 | 2015,Finland,0.454,Gambia
2088 | 2015,Finland,1.468,Ghana
2089 | 2015,Finland,0.031,Guinea
2090 | 2015,Finland,0.468,Côte d'Ivoire
2091 | 2015,Finland,21.204,Kenya
2092 | 2015,Finland,0.551,Liberia
2093 | 2015,Finland,0.233,Madagascar
2094 | 2015,Finland,1.644,Malawi
2095 | 2015,Finland,0.842,Mali
2096 | 2015,Finland,0.226,Mauritania
2097 | 2015,Finland,0.682,Mauritius
2098 | 2015,Finland,26.333,Mozambique
2099 | 2015,Finland,0.026,Niger
2100 | 2015,Finland,0.223,Nigeria
2101 | 2015,Finland,0.408,Zimbabwe
2102 | 2015,Finland,0.07,Rwanda
2103 | 2015,Finland,0.875,Senegal
2104 | 2015,Finland,2.655,Eritrea
2105 | 2015,Finland,0.841,Sierra Leone
2106 | 2015,Finland,17.752,Somalia
2107 | 2015,Finland,0.008,Djibouti
2108 | 2015,Finland,4.274,Namibia
2109 | 2015,Finland,4.498,Sudan
2110 | 2015,Finland,8.424,South Sudan
2111 | 2015,Finland,0.492,Swaziland
2112 | 2015,Finland,29.039,Tanzania
2113 | 2015,Finland,0.313,Togo
2114 | 2015,Finland,6.122,Uganda
2115 | 2015,Finland,0.525,Burkina Faso
2116 | 2015,Finland,15.892,Zambia
2117 | 2015,Finland,4.946,South Africa
2118 | 2015,Finland,0.781,Ethiopia
2119 | 2015,Finland,9.879,Kenya
2120 | 2015,Finland,0.8,Mauritius
2121 | 2015,Iceland,0.06,South Africa
2122 | 2015,Iceland,0.42,Ethiopia
2123 | 2015,Iceland,0.03,Gambia
2124 | 2015,Iceland,0.12,Guinea-Bissau
2125 | 2015,Iceland,4.59,Malawi
2126 | 2015,Iceland,3.22,Mozambique
2127 | 2015,Iceland,0.13,Somalia
2128 | 2015,Iceland,0.01,Togo
2129 | 2015,Iceland,3.38,Uganda
2130 | 2015,Ireland,1.22,Libya
2131 | 2015,Ireland,0.09,Egypt
2132 | 2015,Ireland,6.32,South Africa
2133 | 2015,Ireland,0.68,Angola
2134 | 2015,Ireland,0.08,Botswana
2135 | 2015,Ireland,1.55,Burundi
2136 | 2015,Ireland,0.55,Cameroon
2137 | 2015,Ireland,5.41,Central African Republic
2138 | 2015,Ireland,1.2,Chad
2139 | 2015,Ireland,0.11,Comoros
2140 | 2015,Ireland,1.92,Congo
2141 | 2015,Ireland,5.46,Democratic Republic of the Congo
2142 | 2015,Ireland,0.03,Benin
2143 | 2015,Ireland,38.78,Ethiopia
2144 | 2015,Ireland,0.18,Gambia
2145 | 2015,Ireland,0.43,Ghana
2146 | 2015,Ireland,0.38,Guinea
2147 | 2015,Ireland,0.27,Guinea-Bissau
2148 | 2015,Ireland,0.01,Côte d'Ivoire
2149 | 2015,Ireland,7.95,Kenya
2150 | 2015,Ireland,0.46,Lesotho
2151 | 2015,Ireland,7.66,Liberia
2152 | 2015,Ireland,21.94,Malawi
2153 | 2015,Ireland,1.37,Mali
2154 | 2015,Ireland,0.26,Mauritania
2155 | 2015,Ireland,40.92,Mozambique
2156 | 2015,Ireland,2.16,Niger
2157 | 2015,Ireland,1.3,Nigeria
2158 | 2015,Ireland,7.23,Zimbabwe
2159 | 2015,Ireland,2.37,Rwanda
2160 | 2015,Ireland,0.24,Senegal
2161 | 2015,Ireland,0.77,Eritrea
2162 | 2015,Ireland,11.45,Sierra Leone
2163 | 2015,Ireland,7.15,Somalia
2164 | 2015,Ireland,0.11,Djibouti
2165 | 2015,Ireland,5.78,Sudan
2166 | 2015,Ireland,12.21,South Sudan
2167 | 2015,Ireland,0.18,Swaziland
2168 | 2015,Ireland,31.59,Tanzania
2169 | 2015,Ireland,25.45,Uganda
2170 | 2015,Ireland,0.24,Burkina Faso
2171 | 2015,Ireland,19.29,Zambia
2172 | 2015,Luxembourg,0.195,Morocco
2173 | 2015,Luxembourg,0.53,Tunisia
2174 | 2015,Luxembourg,0.142,Egypt
2175 | 2015,Luxembourg,0.355,South Africa
2176 | 2015,Luxembourg,0.848,Burundi
2177 | 2015,Luxembourg,0.33,Cameroon
2178 | 2015,Luxembourg,15.18,Cabo Verde
2179 | 2015,Luxembourg,3.194,Central African Republic
2180 | 2015,Luxembourg,0.114,Chad
2181 | 2015,Luxembourg,3.186,Democratic Republic of the Congo
2182 | 2015,Luxembourg,1.042,Benin
2183 | 2015,Luxembourg,0.594,Ethiopia
2184 | 2015,Luxembourg,0.072,Gambia
2185 | 2015,Luxembourg,0.146,Ghana
2186 | 2015,Luxembourg,0.717,Guinea
2187 | 2015,Luxembourg,0.064,Côte d'Ivoire
2188 | 2015,Luxembourg,0.574,Kenya
2189 | 2015,Luxembourg,0.222,Lesotho
2190 | 2015,Luxembourg,0.282,Madagascar
2191 | 2015,Luxembourg,0.514,Malawi
2192 | 2015,Luxembourg,14.104,Mali
2193 | 2015,Luxembourg,0.111,Mauritania
2194 | 2015,Luxembourg,23.636,Niger
2195 | 2015,Luxembourg,0.832,Nigeria
2196 | 2015,Luxembourg,0.111,Zimbabwe
2197 | 2015,Luxembourg,0.39,Rwanda
2198 | 2015,Luxembourg,0.004,São Tomé and Principe
2199 | 2015,Luxembourg,20.249,Senegal
2200 | 2015,Luxembourg,0.011,Sierra Leone
2201 | 2015,Luxembourg,0.277,Somalia
2202 | 2015,Luxembourg,0.115,Namibia
2203 | 2015,Luxembourg,0.556,Sudan
2204 | 2015,Luxembourg,3.449,South Sudan
2205 | 2015,Luxembourg,0.222,Swaziland
2206 | 2015,Luxembourg,0.175,Tanzania
2207 | 2015,Luxembourg,1.102,Togo
2208 | 2015,Luxembourg,0.079,Uganda
2209 | 2015,Luxembourg,21.504,Burkina Faso
2210 | 2015,Cyprus,0.006,Madagascar
2211 | 2015,Cyprus,0.006,Malawi
2212 | 2015,Greece,0.137,Algeria
2213 | 2015,Greece,0.038,Libya
2214 | 2015,Greece,0.069,Morocco
2215 | 2015,Greece,0.215,Tunisia
2216 | 2015,Greece,0.487,Egypt
2217 | 2015,Greece,0.061,South Africa
2218 | 2015,Greece,0.005,Burundi
2219 | 2015,Greece,0.095,Cameroon
2220 | 2015,Greece,0.005,Cabo Verde
2221 | 2015,Greece,0.006,Central African Republic
2222 | 2015,Greece,0.006,Chad
2223 | 2015,Greece,0.231,Congo
2224 | 2015,Greece,0.596,Democratic Republic of the Congo
2225 | 2015,Greece,0.067,Ethiopia
2226 | 2015,Greece,0.005,Gambia
2227 | 2015,Greece,0.006,Côte d'Ivoire
2228 | 2015,Greece,0.034,Kenya
2229 | 2015,Greece,0.023,Nigeria
2230 | 2015,Greece,0.024,Zimbabwe
2231 | 2015,Greece,0.008,São Tomé and Principe
2232 | 2015,Greece,0.006,Senegal
2233 | 2015,Greece,0.008,Sierra Leone
2234 | 2015,Greece,0.006,Somalia
2235 | 2015,Greece,0.003,Djibouti
2236 | 2015,Greece,0.042,Sudan
2237 | 2015,Greece,0.011,Togo
2238 | 2015,Greece,0.037,Uganda
2239 | 2015,Greece,0.006,Burkina Faso
2240 | 2015,Greece,0.002,Zambia
2241 | 2015,Malta,0.008,Morocco
2242 | 2015,Malta,0.013,Egypt
2243 | 2015,Malta,0.037,Ethiopia
2244 | 2015,Malta,0.056,Kenya
2245 | 2015,Malta,0.003,Madagascar
2246 | 2015,Malta,0.017,Malawi
2247 | 2015,Malta,0.028,Somalia
2248 | 2015,Malta,0.05,South Sudan
2249 | 2015,Malta,0.047,Tanzania
2250 | 2015,Malta,0.036,Uganda
2251 | 2015,Spain,2.048,Algeria
2252 | 2015,Spain,0.256,Libya
2253 | 2015,Spain,25.381,Morocco
2254 | 2015,Spain,0.743,Tunisia
2255 | 2015,Spain,0.868,Egypt
2256 | 2015,Spain,0.051,South Africa
2257 | 2015,Spain,0.099,Angola
2258 | 2015,Spain,0,Botswana
2259 | 2015,Spain,0.373,Burundi
2260 | 2015,Spain,0.757,Cameroon
2261 | 2015,Spain,0.411,Cabo Verde
2262 | 2015,Spain,1.819,Central African Republic
2263 | 2015,Spain,0.321,Chad
2264 | 2015,Spain,0.123,Congo
2265 | 2015,Spain,4.325,Democratic Republic of the Congo
2266 | 2015,Spain,0.209,Benin
2267 | 2015,Spain,6.954,Ethiopia
2268 | 2015,Spain,0.019,Gabon
2269 | 2015,Spain,0.207,Gambia
2270 | 2015,Spain,0.111,Ghana
2271 | 2015,Spain,1.215,Guinea
2272 | 2015,Spain,1.565,Guinea-Bissau
2273 | 2015,Spain,2.194,Equatorial Guinea
2274 | 2015,Spain,0.449,Côte d'Ivoire
2275 | 2015,Spain,0.369,Kenya
2276 | 2015,Spain,0.734,Liberia
2277 | 2015,Spain,0.037,Madagascar
2278 | 2015,Spain,0.102,Malawi
2279 | 2015,Spain,9.587,Mali
2280 | 2015,Spain,15.922,Mauritania
2281 | 2015,Spain,0.001,Mauritius
2282 | 2015,Spain,11.817,Mozambique
2283 | 2015,Spain,7.445,Niger
2284 | 2015,Spain,0.327,Nigeria
2285 | 2015,Spain,0.251,Zimbabwe
2286 | 2015,Spain,0.568,Rwanda
2287 | 2015,Spain,12.051,Senegal
2288 | 2015,Spain,0.12,Eritrea
2289 | 2015,Spain,1.323,Sierra Leone
2290 | 2015,Spain,0.778,Somalia
2291 | 2015,Spain,0.016,Namibia
2292 | 2015,Spain,0.121,Sudan
2293 | 2015,Spain,0.801,South Sudan
2294 | 2015,Spain,0.431,Tanzania
2295 | 2015,Spain,0.255,Togo
2296 | 2015,Spain,0.178,Uganda
2297 | 2015,Spain,0.798,Burkina Faso
2298 | 2015,Spain,0.002,Zambia
2299 | 2015,Spain,1.132,Morocco
2300 | 2015,Spain,2.451,Tunisia
2301 | 2015,Spain,0.28,Cabo Verde
2302 | 2015,Spain,1.021,Ghana
2303 | 2015,Spain,0.203,Mauritania
2304 | 2015,Spain,0.952,Senegal
2305 | 2015,Turkey,1.59,Algeria
2306 | 2015,Turkey,0.94,Libya
2307 | 2015,Turkey,0.64,Morocco
2308 | 2015,Turkey,1.35,Tunisia
2309 | 2015,Turkey,0.08,Egypt
2310 | 2015,Turkey,0.4,South Africa
2311 | 2015,Turkey,0.08,Angola
2312 | 2015,Turkey,0.04,Botswana
2313 | 2015,Turkey,0.04,Burundi
2314 | 2015,Turkey,0.3,Cameroon
2315 | 2015,Turkey,0.43,Central African Republic
2316 | 2015,Turkey,0.48,Chad
2317 | 2015,Turkey,0.98,Comoros
2318 | 2015,Turkey,0.14,Congo
2319 | 2015,Turkey,0.17,Democratic Republic of the Congo
2320 | 2015,Turkey,0.3,Benin
2321 | 2015,Turkey,0.71,Ethiopia
2322 | 2015,Turkey,0.07,Gabon
2323 | 2015,Turkey,12.67,Gambia
2324 | 2015,Turkey,0.28,Ghana
2325 | 2015,Turkey,0.54,Guinea
2326 | 2015,Turkey,0.23,Guinea-Bissau
2327 | 2015,Turkey,0.18,Côte d'Ivoire
2328 | 2015,Turkey,0.19,Kenya
2329 | 2015,Turkey,0.02,Lesotho
2330 | 2015,Turkey,1.27,Liberia
2331 | 2015,Turkey,0.05,Madagascar
2332 | 2015,Turkey,0.71,Mali
2333 | 2015,Turkey,12.7,Mauritania
2334 | 2015,Turkey,0.04,Mozambique
2335 | 2015,Turkey,8.9,Niger
2336 | 2015,Turkey,0.06,Nigeria
2337 | 2015,Turkey,7.54,Senegal
2338 | 2015,Turkey,0.21,Seychelles
2339 | 2015,Turkey,0.6,Sierra Leone
2340 | 2015,Turkey,314.82,Somalia
2341 | 2015,Turkey,3.94,Djibouti
2342 | 2015,Turkey,0.65,Namibia
2343 | 2015,Turkey,21.96,Sudan
2344 | 2015,Turkey,0.72,South Sudan
2345 | 2015,Turkey,0.02,Swaziland
2346 | 2015,Turkey,0.35,Tanzania
2347 | 2015,Turkey,0.09,Togo
2348 | 2015,Turkey,0.31,Uganda
2349 | 2015,Turkey,0.91,Burkina Faso
2350 | 2015,Turkey,0.07,Zambia
2351 | 2015,Slovenia,0.026,Morocco
2352 | 2015,Slovenia,0.053,Egypt
2353 | 2015,Slovenia,0.073,Burundi
2354 | 2015,Slovenia,0.008,Cabo Verde
2355 | 2015,Slovenia,0.067,Kenya
2356 | 2015,Slovenia,0.033,Mali
2357 | 2015,Slovenia,0.027,Rwanda
2358 | 2015,Slovenia,0.033,South Sudan
2359 | 2015,Slovenia,0.027,Uganda
2360 | 2015,Czech Republic,0.016,Morocco
2361 | 2015,Czech Republic,0.055,Tunisia
2362 | 2015,Czech Republic,0.075,Egypt
2363 | 2015,Czech Republic,0.024,South Africa
2364 | 2015,Czech Republic,0.006,Angola
2365 | 2015,Czech Republic,0.017,Cabo Verde
2366 | 2015,Czech Republic,0.098,Central African Republic
2367 | 2015,Czech Republic,0.003,Democratic Republic of the Congo
2368 | 2015,Czech Republic,0.012,Benin
2369 | 2015,Czech Republic,3.231,Ethiopia
2370 | 2015,Czech Republic,0.038,Gabon
2371 | 2015,Czech Republic,0.04,Gambia
2372 | 2015,Czech Republic,0.015,Ghana
2373 | 2015,Czech Republic,0.096,Kenya
2374 | 2015,Czech Republic,0.067,Malawi
2375 | 2015,Czech Republic,0.068,Mozambique
2376 | 2015,Czech Republic,0.081,Niger
2377 | 2015,Czech Republic,0.019,Nigeria
2378 | 2015,Czech Republic,0.075,Zimbabwe
2379 | 2015,Czech Republic,0.036,Rwanda
2380 | 2015,Czech Republic,0.04,Senegal
2381 | 2015,Czech Republic,0.02,Djibouti
2382 | 2015,Czech Republic,0.053,Namibia
2383 | 2015,Czech Republic,0.011,Sudan
2384 | 2015,Czech Republic,0.215,South Sudan
2385 | 2015,Czech Republic,0.008,Tanzania
2386 | 2015,Czech Republic,0.081,Uganda
2387 | 2015,Czech Republic,0.598,Zambia
2388 | 2015,Slovakia,0.01,Benin
2389 | 2015,Slovakia,0.01,Ethiopia
2390 | 2015,Slovakia,1.32,Kenya
2391 | 2015,Slovakia,0.02,Lesotho
2392 | 2015,Slovakia,0.03,Rwanda
2393 | 2015,Slovakia,0.01,Sudan
2394 | 2015,Slovakia,0.17,South Sudan
2395 | 2015,Slovakia,0.02,Uganda
2396 | 2015,Bulgaria,0.03,Somalia
2397 | 2015,Hungary,0.724,Algeria
2398 | 2015,Hungary,0.02,Libya
2399 | 2015,Hungary,0.137,Morocco
2400 | 2015,Hungary,0.684,Tunisia
2401 | 2015,Hungary,0.035,Egypt
2402 | 2015,Hungary,0.003,South Africa
2403 | 2015,Hungary,0.103,Angola
2404 | 2015,Hungary,0,Burundi
2405 | 2015,Hungary,0.04,Cameroon
2406 | 2015,Hungary,0.001,Congo
2407 | 2015,Hungary,0.005,Democratic Republic of the Congo
2408 | 2015,Hungary,0,Benin
2409 | 2015,Hungary,0.057,Ethiopia
2410 | 2015,Hungary,0.031,Gambia
2411 | 2015,Hungary,0.023,Ghana
2412 | 2015,Hungary,0.002,Côte d'Ivoire
2413 | 2015,Hungary,0.035,Kenya
2414 | 2015,Hungary,0,Madagascar
2415 | 2015,Hungary,0.012,Mauritius
2416 | 2015,Hungary,0,Mozambique
2417 | 2015,Hungary,0,Niger
2418 | 2015,Hungary,0.951,Nigeria
2419 | 2015,Hungary,0.002,Zimbabwe
2420 | 2015,Hungary,0.002,Rwanda
2421 | 2015,Hungary,0,Senegal
2422 | 2015,Hungary,0.002,Seychelles
2423 | 2015,Hungary,0.002,Eritrea
2424 | 2015,Hungary,0.016,Sierra Leone
2425 | 2015,Hungary,0.018,Somalia
2426 | 2015,Hungary,0.036,Namibia
2427 | 2015,Hungary,0.036,Sudan
2428 | 2015,Hungary,0.011,South Sudan
2429 | 2015,Hungary,0.014,Tanzania
2430 | 2015,Hungary,0,Togo
2431 | 2015,Hungary,0.028,Uganda
2432 | 2015,Hungary,0,Burkina Faso
2433 | 2015,Hungary,0.001,Zambia
2434 | 2015,Poland,0.002,Algeria
2435 | 2015,Poland,0.004,Libya
2436 | 2015,Poland,0.023,Morocco
2437 | 2015,Poland,0.268,Tunisia
2438 | 2015,Poland,0.055,Egypt
2439 | 2015,Poland,0.061,South Africa
2440 | 2015,Poland,0.195,Angola
2441 | 2015,Poland,0.008,Burundi
2442 | 2015,Poland,0.012,Cameroon
2443 | 2015,Poland,0.002,Cabo Verde
2444 | 2015,Poland,0.002,Congo
2445 | 2015,Poland,0.014,Democratic Republic of the Congo
2446 | 2015,Poland,0.006,Benin
2447 | 2015,Poland,0.515,Ethiopia
2448 | 2015,Poland,0.002,Gambia
2449 | 2015,Poland,0.024,Ghana
2450 | 2015,Poland,0.002,Guinea
2451 | 2015,Poland,0.002,Equatorial Guinea
2452 | 2015,Poland,0.65,Kenya
2453 | 2015,Poland,0.01,Liberia
2454 | 2015,Poland,0.016,Malawi
2455 | 2015,Poland,0.009,Mali
2456 | 2015,Poland,0.021,Mauritania
2457 | 2015,Poland,0.019,Nigeria
2458 | 2015,Poland,0.024,Zimbabwe
2459 | 2015,Poland,0.124,Rwanda
2460 | 2015,Poland,0.002,Senegal
2461 | 2015,Poland,0.005,Sudan
2462 | 2015,Poland,0.009,South Sudan
2463 | 2015,Poland,0.46,Tanzania
2464 | 2015,Poland,0.232,Uganda
2465 | 2015,Poland,0.02,Burkina Faso
2466 | 2015,Poland,0.048,Zambia
2467 | 2015,Poland,14.607,Angola
2468 | 2015,Poland,26.772,Ethiopia
2469 | 2015,Romania,0.086,Algeria
2470 | 2015,Romania,0.019,Libya
2471 | 2015,Romania,0.851,Morocco
2472 | 2015,Romania,1.456,Tunisia
2473 | 2015,Romania,0.192,Egypt
2474 | 2015,Romania,0.209,Angola
2475 | 2015,Romania,0.001,Botswana
2476 | 2015,Romania,0.012,Burundi
2477 | 2015,Romania,0.037,Cameroon
2478 | 2015,Romania,0.002,Central African Republic
2479 | 2015,Romania,0.001,Chad
2480 | 2015,Romania,0.016,Congo
2481 | 2015,Romania,0.003,Benin
2482 | 2015,Romania,0.008,Ethiopia
2483 | 2015,Romania,0.003,Gabon
2484 | 2015,Romania,0.022,Ghana
2485 | 2015,Romania,0.011,Guinea
2486 | 2015,Romania,0.017,Côte d'Ivoire
2487 | 2015,Romania,0.032,Kenya
2488 | 2015,Romania,0.002,Madagascar
2489 | 2015,Romania,0.107,Mauritius
2490 | 2015,Romania,0.526,Nigeria
2491 | 2015,Romania,0.036,Zimbabwe
2492 | 2015,Romania,0.006,Rwanda
2493 | 2015,Romania,0.004,Senegal
2494 | 2015,Romania,0.001,Seychelles
2495 | 2015,Romania,0.006,Somalia
2496 | 2015,Romania,0.001,Namibia
2497 | 2015,Romania,0.037,Sudan
2498 | 2015,Romania,0.01,Tanzania
2499 | 2015,Romania,0.003,Togo
2500 | 2015,Romania,0.004,Uganda
2501 | 2015,Romania,0.002,Zambia
2502 | 2015,Estonia,0.099,Ethiopia
2503 | 2015,Estonia,0.02,Ghana
2504 | 2015,Estonia,0.006,Côte d'Ivoire
2505 | 2015,Estonia,0.032,Kenya
2506 | 2015,Estonia,0.014,São Tomé and Principe
2507 | 2015,Estonia,0.029,Sierra Leone
2508 | 2015,Estonia,0.088,Uganda
2509 | 2015,Latvia,0.013,Egypt
2510 | 2015,Lithuania,0,Morocco
2511 | 2015,Lithuania,0.011,Ethiopia
2512 | 2015,Lithuania,0.011,Malawi
2513 | 2015,Russia,0.6,Morocco
2514 | 2015,Russia,1.123,Tunisia
2515 | 2015,Russia,0.776,Egypt
2516 | 2015,Russia,0.056,Angola
2517 | 2015,Russia,0.113,Botswana
2518 | 2015,Russia,0.151,Cameroon
2519 | 2015,Russia,1.212,Congo
2520 | 2015,Russia,0.086,Benin
2521 | 2015,Russia,0.181,Ethiopia
2522 | 2015,Russia,6.255,Guinea
2523 | 2015,Russia,2.479,Liberia
2524 | 2015,Russia,7.996,Mozambique
2525 | 2015,Russia,2.479,Sierra Leone
2526 | 2015,Russia,0.059,Namibia
2527 | 2015,Russia,1.544,Sudan
2528 | 2015,Russia,1.368,Tanzania
2529 | 2015,Russia,1.084,Uganda
2530 | 2015,Canada,0.078,Algeria
2531 | 2015,Canada,1.267,Libya
2532 | 2015,Canada,6.08,Morocco
2533 | 2015,Canada,1.509,Tunisia
2534 | 2015,Canada,14.281,Egypt
2535 | 2015,Canada,4.36,South Africa
2536 | 2015,Canada,0.055,Angola
2537 | 2015,Canada,0.628,Botswana
2538 | 2015,Canada,4.205,Burundi
2539 | 2015,Canada,3.902,Cameroon
2540 | 2015,Canada,17.589,Central African Republic
2541 | 2015,Canada,5.367,Chad
2542 | 2015,Canada,0.324,Congo
2543 | 2015,Canada,34.876,Democratic Republic of the Congo
2544 | 2015,Canada,6.631,Benin
2545 | 2015,Canada,103.243,Ethiopia
2546 | 2015,Canada,0.107,Gabon
2547 | 2015,Canada,0.044,Gambia
2548 | 2015,Canada,74.718,Ghana
2549 | 2015,Canada,15.495,Guinea
2550 | 2015,Canada,0.1,Equatorial Guinea
2551 | 2015,Canada,3.594,Côte d'Ivoire
2552 | 2015,Canada,34.924,Kenya
2553 | 2015,Canada,0.017,Lesotho
2554 | 2015,Canada,6.683,Liberia
2555 | 2015,Canada,3.648,Madagascar
2556 | 2015,Canada,8.647,Malawi
2557 | 2015,Canada,87.995,Mali
2558 | 2015,Canada,0.774,Mauritania
2559 | 2015,Canada,0.036,Mauritius
2560 | 2015,Canada,42.425,Mozambique
2561 | 2015,Canada,10.53,Niger
2562 | 2015,Canada,28.777,Nigeria
2563 | 2015,Canada,4.536,Zimbabwe
2564 | 2015,Canada,3.047,Rwanda
2565 | 2015,Canada,0.098,São Tomé and Principe
2566 | 2015,Canada,57.815,Senegal
2567 | 2015,Canada,1.182,Eritrea
2568 | 2015,Canada,13.094,Sierra Leone
2569 | 2015,Canada,20.745,Somalia
2570 | 2015,Canada,0.782,Djibouti
2571 | 2015,Canada,12.653,Sudan
2572 | 2015,Canada,88.054,South Sudan
2573 | 2015,Canada,0.275,Swaziland
2574 | 2015,Canada,82.733,Tanzania
2575 | 2015,Canada,0.314,Togo
2576 | 2015,Canada,8.716,Uganda
2577 | 2015,Canada,24.307,Burkina Faso
2578 | 2015,Canada,2.802,Zambia
2579 | 2015,United States,4.876,Algeria
2580 | 2015,United States,20.761,Libya
2581 | 2015,United States,30.956,Morocco
2582 | 2015,United States,20.723,Tunisia
2583 | 2015,United States,106.55,Egypt
2584 | 2015,United States,336.773,South Africa
2585 | 2015,United States,63.742,Angola
2586 | 2015,United States,50.432,Botswana
2587 | 2015,United States,42.008,Burundi
2588 | 2015,United States,81.366,Cameroon
2589 | 2015,United States,11.761,Cabo Verde
2590 | 2015,United States,68.128,Central African Republic
2591 | 2015,United States,79.08,Chad
2592 | 2015,United States,1.06,Comoros
2593 | 2015,United States,2.542,Congo
2594 | 2015,United States,769.694,Democratic Republic of the Congo
2595 | 2015,United States,35.726,Benin
2596 | 2015,United States,747.617,Ethiopia
2597 | 2015,United States,8.635,Gabon
2598 | 2015,United States,2.328,Gambia
2599 | 2015,United States,184.991,Ghana
2600 | 2015,United States,76.737,Guinea
2601 | 2015,United States,3.4,Guinea-Bissau
2602 | 2015,United States,0.19,Equatorial Guinea
2603 | 2015,United States,69.477,Côte d'Ivoire
2604 | 2015,United States,714.049,Kenya
2605 | 2015,United States,26.523,Lesotho
2606 | 2015,United States,514.217,Liberia
2607 | 2015,United States,153.114,Madagascar
2608 | 2015,United States,249.166,Malawi
2609 | 2015,United States,162.775,Mali
2610 | 2015,United States,24.314,Mauritania
2611 | 2015,United States,0.157,Mauritius
2612 | 2015,United States,302.678,Mozambique
2613 | 2015,United States,112.026,Niger
2614 | 2015,United States,492.842,Nigeria
2615 | 2015,United States,155.849,Zimbabwe
2616 | 2015,United States,198.457,Rwanda
2617 | 2015,United States,0.707,São Tomé and Principe
2618 | 2015,United States,268.66,Senegal
2619 | 2015,United States,0.032,Seychelles
2620 | 2015,United States,0.08,Eritrea
2621 | 2015,United States,112.787,Sierra Leone
2622 | 2015,United States,207.205,Somalia
2623 | 2015,United States,5.657,Djibouti
2624 | 2015,United States,62.312,Namibia
2625 | 2015,United States,274.094,Sudan
2626 | 2015,United States,598.062,South Sudan
2627 | 2015,United States,36.098,Swaziland
2628 | 2015,United States,453.427,Tanzania
2629 | 2015,United States,3.043,Togo
2630 | 2015,United States,414.125,Uganda
2631 | 2015,United States,58.631,Burkina Faso
2632 | 2015,United States,267.928,Zambia
2633 | 2015,Israel,0.082,Morocco
2634 | 2015,Israel,0.333,South Africa
2635 | 2015,Israel,0.013,Angola
2636 | 2015,Israel,0.093,Botswana
2637 | 2015,Israel,0.007,Burundi
2638 | 2015,Israel,0.099,Cameroon
2639 | 2015,Israel,0.002,Cabo Verde
2640 | 2015,Israel,0.002,Central African Republic
2641 | 2015,Israel,0.003,Chad
2642 | 2015,Israel,0.007,Congo
2643 | 2015,Israel,0.003,Democratic Republic of the Congo
2644 | 2015,Israel,0.006,Benin
2645 | 2015,Israel,0.13,Ethiopia
2646 | 2015,Israel,0.002,Gambia
2647 | 2015,Israel,0.743,Ghana
2648 | 2015,Israel,0.022,Côte d'Ivoire
2649 | 2015,Israel,0.444,Kenya
2650 | 2015,Israel,0.015,Liberia
2651 | 2015,Israel,0.018,Madagascar
2652 | 2015,Israel,0.031,Malawi
2653 | 2015,Israel,0.002,Mali
2654 | 2015,Israel,0.057,Nigeria
2655 | 2015,Israel,0.007,Zimbabwe
2656 | 2015,Israel,0.021,Rwanda
2657 | 2015,Israel,0.095,Senegal
2658 | 2015,Israel,0.002,Seychelles
2659 | 2015,Israel,0.001,Eritrea
2660 | 2015,Israel,0.009,Sierra Leone
2661 | 2015,Israel,0.003,Djibouti
2662 | 2015,Israel,0.048,South Sudan
2663 | 2015,Israel,0.002,Swaziland
2664 | 2015,Israel,0.029,Tanzania
2665 | 2015,Israel,0.01,Togo
2666 | 2015,Israel,0.031,Uganda
2667 | 2015,Israel,0.341,Burkina Faso
2668 | 2015,Israel,0.003,Zambia
2669 | 2015,Kuwait,56.063,Morocco
2670 | 2015,Kuwait,0.858,Egypt
2671 | 2015,Kuwait,0.664,Central African Republic
2672 | 2015,Kuwait,0.03,Gambia
2673 | 2015,Kuwait,0.299,Liberia
2674 | 2015,Kuwait,1.457,Niger
2675 | 2015,Kuwait,1.078,Somalia
2676 | 2015,Kuwait,4.838,Djibouti
2677 | 2015,Kuwait,1.708,Sudan
2678 | 2015,Kuwait,0.127,Tanzania
2679 | 2015,Kuwait,50.306,Morocco
2680 | 2015,Kuwait,11.168,Tunisia
2681 | 2015,Kuwait,68.441,Egypt
2682 | 2015,Kuwait,0.764,Cabo Verde
2683 | 2015,Kuwait,6.64,Benin
2684 | 2015,Kuwait,9.34,Ethiopia
2685 | 2015,Kuwait,0.283,Gabon
2686 | 2015,Kuwait,8.386,Gambia
2687 | 2015,Kuwait,6.199,Guinea
2688 | 2015,Kuwait,0.112,Côte d'Ivoire
2689 | 2015,Kuwait,0.556,Kenya
2690 | 2015,Kuwait,3.236,Lesotho
2691 | 2015,Kuwait,0.144,Malawi
2692 | 2015,Kuwait,11.897,Mali
2693 | 2015,Kuwait,11.386,Mauritania
2694 | 2015,Kuwait,0.131,Mozambique
2695 | 2015,Kuwait,0.104,Niger
2696 | 2015,Kuwait,6.18,Rwanda
2697 | 2015,Kuwait,11.95,Senegal
2698 | 2015,Kuwait,1.766,Sierra Leone
2699 | 2015,Kuwait,10.41,Djibouti
2700 | 2015,Kuwait,81.055,Sudan
2701 | 2015,Kuwait,0.06,Swaziland
2702 | 2015,Kuwait,8.822,Togo
2703 | 2015,Kuwait,1.421,Uganda
2704 | 2015,Kuwait,1.614,Burkina Faso
2705 | 2015,United Arab Emirates,0.091,Algeria
2706 | 2015,United Arab Emirates,62.667,Libya
2707 | 2015,United Arab Emirates,64.976,Morocco
2708 | 2015,United Arab Emirates,10.066,Tunisia
2709 | 2015,United Arab Emirates,455.735,Egypt
2710 | 2015,United Arab Emirates,0.526,South Africa
2711 | 2015,United Arab Emirates,0.02,Botswana
2712 | 2015,United Arab Emirates,0.143,Burundi
2713 | 2015,United Arab Emirates,0.214,Cameroon
2714 | 2015,United Arab Emirates,0.036,Central African Republic
2715 | 2015,United Arab Emirates,2.02,Chad
2716 | 2015,United Arab Emirates,0.853,Comoros
2717 | 2015,United Arab Emirates,0.384,Congo
2718 | 2015,United Arab Emirates,0.007,Democratic Republic of the Congo
2719 | 2015,United Arab Emirates,0.297,Benin
2720 | 2015,United Arab Emirates,1.512,Ethiopia
2721 | 2015,United Arab Emirates,0.185,Gambia
2722 | 2015,United Arab Emirates,2.788,Ghana
2723 | 2015,United Arab Emirates,0.044,Guinea
2724 | 2015,United Arab Emirates,0.012,Guinea-Bissau
2725 | 2015,United Arab Emirates,0.451,Côte d'Ivoire
2726 | 2015,United Arab Emirates,2.132,Kenya
2727 | 2015,United Arab Emirates,0.005,Liberia
2728 | 2015,United Arab Emirates,0.098,Madagascar
2729 | 2015,United Arab Emirates,1.467,Malawi
2730 | 2015,United Arab Emirates,5.351,Mali
2731 | 2015,United Arab Emirates,35.929,Mauritania
2732 | 2015,United Arab Emirates,1,Mozambique
2733 | 2015,United Arab Emirates,0.651,Niger
2734 | 2015,United Arab Emirates,0.34,Nigeria
2735 | 2015,United Arab Emirates,0.003,Zimbabwe
2736 | 2015,United Arab Emirates,0.594,Rwanda
2737 | 2015,United Arab Emirates,0.816,Senegal
2738 | 2015,United Arab Emirates,1.657,Seychelles
2739 | 2015,United Arab Emirates,36.13,Eritrea
2740 | 2015,United Arab Emirates,19.322,Somalia
2741 | 2015,United Arab Emirates,12.92,Djibouti
2742 | 2015,United Arab Emirates,0.006,Namibia
2743 | 2015,United Arab Emirates,34.211,Sudan
2744 | 2015,United Arab Emirates,1.336,South Sudan
2745 | 2015,United Arab Emirates,2.536,Tanzania
2746 | 2015,United Arab Emirates,0.258,Togo
2747 | 2015,United Arab Emirates,1.025,Uganda
2748 | 2015,United Arab Emirates,0.742,Burkina Faso
2749 | 2015,United Arab Emirates,34.419,Morocco
2750 | 2015,United Arab Emirates,1.688,Tunisia
2751 | 2015,United Arab Emirates,2004.579,Egypt
2752 | 2015,United Arab Emirates,0.898,Benin
2753 | 2015,United Arab Emirates,0.738,Ethiopia
2754 | 2015,United Arab Emirates,0.022,Gambia
2755 | 2015,United Arab Emirates,5.913,Lesotho
2756 | 2015,United Arab Emirates,1.898,Malawi
2757 | 2015,United Arab Emirates,7.316,Mauritania
2758 | 2015,United Arab Emirates,3.158,Sierra Leone
2759 | 2015,United Arab Emirates,59.728,Sudan
2760 | 2015,United Arab Emirates,1.429,Tanzania
2761 | 2015,United Arab Emirates,1.375,Burkina Faso
2762 | 2015,Japan,1.44,Algeria
2763 | 2015,Japan,10.19,Morocco
2764 | 2015,Japan,6.73,Tunisia
2765 | 2015,Japan,27.2,Egypt
2766 | 2015,Japan,10.26,South Africa
2767 | 2015,Japan,1.94,Angola
2768 | 2015,Japan,3.74,Botswana
2769 | 2015,Japan,2.55,Burundi
2770 | 2015,Japan,27.28,Cameroon
2771 | 2015,Japan,4.2,Cabo Verde
2772 | 2015,Japan,18.17,Central African Republic
2773 | 2015,Japan,11.53,Chad
2774 | 2015,Japan,4.36,Comoros
2775 | 2015,Japan,0.94,Congo
2776 | 2015,Japan,43.83,Democratic Republic of the Congo
2777 | 2015,Japan,12.9,Benin
2778 | 2015,Japan,54.2,Ethiopia
2779 | 2015,Japan,2.71,Gabon
2780 | 2015,Japan,2.64,Gambia
2781 | 2015,Japan,25.22,Ghana
2782 | 2015,Japan,26.25,Guinea
2783 | 2015,Japan,3.49,Guinea-Bissau
2784 | 2015,Japan,0.02,Equatorial Guinea
2785 | 2015,Japan,22.03,Côte d'Ivoire
2786 | 2015,Japan,81.86,Kenya
2787 | 2015,Japan,1.9,Lesotho
2788 | 2015,Japan,17.2,Liberia
2789 | 2015,Japan,17.17,Madagascar
2790 | 2015,Japan,26.63,Malawi
2791 | 2015,Japan,20.96,Mali
2792 | 2015,Japan,19.92,Mauritania
2793 | 2015,Japan,1.82,Mauritius
2794 | 2015,Japan,57.21,Mozambique
2795 | 2015,Japan,27.69,Niger
2796 | 2015,Japan,17.02,Nigeria
2797 | 2015,Japan,6.68,Zimbabwe
2798 | 2015,Japan,16.39,Rwanda
2799 | 2015,Japan,1.53,São Tomé and Principe
2800 | 2015,Japan,37.62,Senegal
2801 | 2015,Japan,0.84,Seychelles
2802 | 2015,Japan,2.74,Eritrea
2803 | 2015,Japan,29.18,Sierra Leone
2804 | 2015,Japan,25.46,Somalia
2805 | 2015,Japan,17.84,Djibouti
2806 | 2015,Japan,3.91,Namibia
2807 | 2015,Japan,40.82,Sudan
2808 | 2015,Japan,91.23,South Sudan
2809 | 2015,Japan,0.94,Swaziland
2810 | 2015,Japan,42.38,Tanzania
2811 | 2015,Japan,4.24,Togo
2812 | 2015,Japan,37.06,Uganda
2813 | 2015,Japan,23.56,Burkina Faso
2814 | 2015,Japan,20.61,Zambia
2815 | 2015,Japan,80.07,Morocco
2816 | 2015,Japan,40.61,Tunisia
2817 | 2015,Japan,82.98,Egypt
2818 | 2015,Japan,195.37,Angola
2819 | 2015,Japan,0.69,Botswana
2820 | 2015,Japan,6.1,Cameroon
2821 | 2015,Japan,13.99,Cabo Verde
2822 | 2015,Japan,141.69,Kenya
2823 | 2015,Japan,0.31,Mauritius
2824 | 2015,Japan,5.44,Mozambique
2825 | 2015,Japan,68.31,Nigeria
2826 | 2015,Japan,52.46,Tanzania
2827 | 2015,Japan,33.42,Uganda
2828 | 2015,Japan,3.73,Zambia
2829 | 2015,Korea,3.969,Algeria
2830 | 2015,Korea,0.85,Libya
2831 | 2015,Korea,5.811,Morocco
2832 | 2015,Korea,4.847,Tunisia
2833 | 2015,Korea,1.749,Egypt
2834 | 2015,Korea,0.236,South Africa
2835 | 2015,Korea,1.591,Angola
2836 | 2015,Korea,0.014,Botswana
2837 | 2015,Korea,0.888,Burundi
2838 | 2015,Korea,4.777,Cameroon
2839 | 2015,Korea,0.534,Central African Republic
2840 | 2015,Korea,0.041,Chad
2841 | 2015,Korea,0.171,Comoros
2842 | 2015,Korea,0.112,Congo
2843 | 2015,Korea,9.705,Democratic Republic of the Congo
2844 | 2015,Korea,0.125,Benin
2845 | 2015,Korea,23.514,Ethiopia
2846 | 2015,Korea,0.323,Gabon
2847 | 2015,Korea,0.081,Gambia
2848 | 2015,Korea,10.674,Ghana
2849 | 2015,Korea,0.088,Guinea
2850 | 2015,Korea,0.14,Guinea-Bissau
2851 | 2015,Korea,0.029,Equatorial Guinea
2852 | 2015,Korea,3.538,Côte d'Ivoire
2853 | 2015,Korea,5.108,Kenya
2854 | 2015,Korea,0.209,Lesotho
2855 | 2015,Korea,1.306,Liberia
2856 | 2015,Korea,0.45,Madagascar
2857 | 2015,Korea,3.354,Malawi
2858 | 2015,Korea,0.99,Mali
2859 | 2015,Korea,0.012,Mauritius
2860 | 2015,Korea,8.934,Mozambique
2861 | 2015,Korea,0.534,Niger
2862 | 2015,Korea,5.528,Nigeria
2863 | 2015,Korea,2.517,Zimbabwe
2864 | 2015,Korea,20.261,Rwanda
2865 | 2015,Korea,6.763,Senegal
2866 | 2015,Korea,1.419,Sierra Leone
2867 | 2015,Korea,0.714,Somalia
2868 | 2015,Korea,0.081,Djibouti
2869 | 2015,Korea,0.016,Namibia
2870 | 2015,Korea,5.533,Sudan
2871 | 2015,Korea,3.064,South Sudan
2872 | 2015,Korea,0.716,Swaziland
2873 | 2015,Korea,19.514,Tanzania
2874 | 2015,Korea,0.499,Togo
2875 | 2015,Korea,14.67,Uganda
2876 | 2015,Korea,0.317,Burkina Faso
2877 | 2015,Korea,0.246,Zambia
2878 | 2015,Korea,12.024,Angola
2879 | 2015,Korea,11.919,Cameroon
2880 | 2015,Korea,22.502,Ethiopia
2881 | 2015,Korea,31.162,Ghana
2882 | 2015,Korea,0.816,Kenya
2883 | 2015,Korea,8.165,Mali
2884 | 2015,Korea,33.355,Mozambique
2885 | 2015,Korea,0.669,Rwanda
2886 | 2015,Korea,3.543,Senegal
2887 | 2015,Korea,51.779,Tanzania
2888 | 2015,Korea,8.564,Uganda
2889 | 2015,Thailand,0.017,Morocco
2890 | 2015,Thailand,0.025,Egypt
2891 | 2015,Thailand,0.029,Botswana
2892 | 2015,Thailand,0.01,Cameroon
2893 | 2015,Thailand,0.012,Comoros
2894 | 2015,Thailand,0.019,Congo
2895 | 2015,Thailand,0.027,Ethiopia
2896 | 2015,Thailand,0.078,Gambia
2897 | 2015,Thailand,0.007,Ghana
2898 | 2015,Thailand,0.031,Guinea
2899 | 2015,Thailand,0.02,Côte d'Ivoire
2900 | 2015,Thailand,0.084,Kenya
2901 | 2015,Thailand,0.017,Lesotho
2902 | 2015,Thailand,0.04,Madagascar
2903 | 2015,Thailand,0.112,Malawi
2904 | 2015,Thailand,0.008,Mauritania
2905 | 2015,Thailand,0.036,Mauritius
2906 | 2015,Thailand,0.105,Mozambique
2907 | 2015,Thailand,0.016,Nigeria
2908 | 2015,Thailand,0.057,Zimbabwe
2909 | 2015,Thailand,0.006,Senegal
2910 | 2015,Thailand,0.005,Seychelles
2911 | 2015,Thailand,0.078,Eritrea
2912 | 2015,Thailand,0.004,Somalia
2913 | 2015,Thailand,0.09,Sudan
2914 | 2015,Thailand,0.021,Swaziland
2915 | 2015,Thailand,0.177,Tanzania
2916 | 2015,Thailand,0.025,Togo
2917 | 2015,Thailand,0.109,Uganda
2918 | 2015,Thailand,0.018,Zambia
2919 | 2015,Timor Leste,0.5,Cabo Verde
2920 | 2015,Australia,0.031,Algeria
2921 | 2015,Australia,0.062,Morocco
2922 | 2015,Australia,0.068,Tunisia
2923 | 2015,Australia,1.526,Egypt
2924 | 2015,Australia,2.001,South Africa
2925 | 2015,Australia,0.05,Angola
2926 | 2015,Australia,1.146,Botswana
2927 | 2015,Australia,0.602,Burundi
2928 | 2015,Australia,1.152,Cameroon
2929 | 2015,Australia,0.115,Cabo Verde
2930 | 2015,Australia,1.546,Central African Republic
2931 | 2015,Australia,0.029,Chad
2932 | 2015,Australia,0.101,Comoros
2933 | 2015,Australia,0.105,Congo
2934 | 2015,Australia,0.522,Democratic Republic of the Congo
2935 | 2015,Australia,0.029,Benin
2936 | 2015,Australia,3.878,Ethiopia
2937 | 2015,Australia,0.019,Gabon
2938 | 2015,Australia,0.395,Gambia
2939 | 2015,Australia,2.977,Ghana
2940 | 2015,Australia,0.063,Guinea
2941 | 2015,Australia,0.006,Guinea-Bissau
2942 | 2015,Australia,0.027,Equatorial Guinea
2943 | 2015,Australia,0.185,Côte d'Ivoire
2944 | 2015,Australia,7.707,Kenya
2945 | 2015,Australia,1.039,Lesotho
2946 | 2015,Australia,1.563,Liberia
2947 | 2015,Australia,0.455,Madagascar
2948 | 2015,Australia,5.444,Malawi
2949 | 2015,Australia,0.221,Mali
2950 | 2015,Australia,0.054,Mauritania
2951 | 2015,Australia,0.591,Mauritius
2952 | 2015,Australia,3.381,Mozambique
2953 | 2015,Australia,0.273,Niger
2954 | 2015,Australia,2.09,Nigeria
2955 | 2015,Australia,8.15,Zimbabwe
2956 | 2015,Australia,1.546,Rwanda
2957 | 2015,Australia,0.036,São Tomé and Principe
2958 | 2015,Australia,0.201,Senegal
2959 | 2015,Australia,0.739,Seychelles
2960 | 2015,Australia,0.032,Eritrea
2961 | 2015,Australia,10.818,Sierra Leone
2962 | 2015,Australia,7.183,Somalia
2963 | 2015,Australia,0.035,Djibouti
2964 | 2015,Australia,0.406,Namibia
2965 | 2015,Australia,0.199,Sudan
2966 | 2015,Australia,8.027,South Sudan
2967 | 2015,Australia,0.8,Swaziland
2968 | 2015,Australia,5.684,Tanzania
2969 | 2015,Australia,0.192,Togo
2970 | 2015,Australia,3.719,Uganda
2971 | 2015,Australia,0.119,Burkina Faso
2972 | 2015,Australia,2.929,Zambia
2973 | 2015,New Zealand,0.03,Egypt
2974 | 2015,New Zealand,0.11,South Africa
2975 | 2015,New Zealand,0.61,Botswana
2976 | 2015,New Zealand,0.21,Cameroon
2977 | 2015,New Zealand,0.95,Comoros
2978 | 2015,New Zealand,0.24,Ethiopia
2979 | 2015,New Zealand,0.32,Ghana
2980 | 2015,New Zealand,1.25,Kenya
2981 | 2015,New Zealand,0.07,Malawi
2982 | 2015,New Zealand,0.1,Mauritius
2983 | 2015,New Zealand,0.17,Nigeria
2984 | 2015,New Zealand,0.26,Zimbabwe
2985 | 2015,New Zealand,0.21,Rwanda
2986 | 2015,New Zealand,0.06,Seychelles
2987 | 2015,New Zealand,0.01,Sierra Leone
2988 | 2015,New Zealand,0.04,Somalia
2989 | 2015,New Zealand,0.03,Namibia
2990 | 2015,New Zealand,0.04,Swaziland
2991 | 2015,New Zealand,0.75,Tanzania
2992 | 2015,New Zealand,0.12,Uganda
2993 | 2015,New Zealand,0.17,Zambia
2994 |
--------------------------------------------------------------------------------