Last active
April 2, 2016 12:28
-
-
Save LuisSevillano/48d3cfbbf70d6dd06b2b to your computer and use it in GitHub Desktop.
Line chart of population evolution
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
license: mit | |
height: 650 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="utf-8"> | |
<title>Line chart</title> | |
<link href="https://fonts.googleapis.com/css?family=Roboto:400,300" rel="stylesheet" type="text/css"> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.6/d3.min.js" charset="utf-8"></script> | |
<style media="screen"> | |
body { | |
font-family: "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif; | |
color: rgb(128,128,128); | |
} | |
h1{ | |
font-weight: normal; | |
font-size: 25px; | |
color: #777; | |
} | |
.axis path, | |
.axis line { | |
fill: none; | |
stroke: #777; | |
shape-rendering: crispEdges; | |
} | |
.axis text { | |
font-size: 12px; | |
} | |
</style> | |
</head> | |
<body> | |
<h1></h1> | |
<script type="text/javascript"> | |
//margin convention | |
var margin = {top: 10, right: 20, bottom: 60, left: 30}, | |
width = 960 - margin.left - margin.right, | |
height = 650 - margin.top - margin.bottom; | |
//create x and y scale. We'll set the domain later | |
var xScale = d3.time.scale() | |
.range([ margin.bottom, width - margin.top - margin.bottom ]); | |
var yScale = d3.scale.linear() | |
.range([ height - margin.right, margin.top]); | |
// data formatting and years | |
var dateFormat = d3.time.format("%Y"); | |
//d3 functions to format numbers https://github.com/mbostock/d3/wiki/Formatting | |
var format = d3.format("s"); | |
var formatComma = d3.format(","); | |
//create x axis | |
var xAxis = d3.svg.axis() | |
.scale(xScale) | |
.orient("bottom") | |
.ticks(8) | |
.tickFormat(function(d) { | |
return dateFormat(d); | |
}); | |
//Germany line | |
var lineGermany = d3.svg.line() | |
.x(function(d) { | |
return xScale(dateFormat.parse(d.year)); | |
}) | |
.y(function(d) { | |
return yScale(d.Germany); | |
}); | |
//Japan line | |
var lineJapan = d3.svg.line() | |
.x(function(d) { | |
return xScale(dateFormat.parse(d.year)); | |
}) | |
.y(function(d) { | |
return yScale(d.Japan); | |
}); | |
//Italy line | |
var lineItaly = d3.svg.line() | |
.x(function(d) { | |
return xScale(dateFormat.parse(d.year)); | |
}) | |
.y(function(d) { | |
return yScale(d.Italy); | |
}); | |
//UnitedKingdom line | |
var lineUnitedKingdom = d3.svg.line() | |
.x(function(d) { | |
return xScale(dateFormat.parse(d.year)); | |
}) | |
.y(function(d) { | |
return yScale(d.UnitedKingdom); | |
}); | |
//UnitedStates line | |
var lineUnitedStates = d3.svg.line() | |
.x(function(d) { | |
return xScale(dateFormat.parse(d.year)); | |
}) | |
.y(function(d) { | |
return yScale(d.UnitedStates); | |
}); | |
//create y axis | |
var yAxis = d3.svg.axis() | |
.scale(yScale) | |
.orient("left") | |
.tickFormat(function(d) { | |
return format(d); | |
}); | |
//create svg container | |
var svg = d3.select("body") | |
.append("svg") | |
.attr("width", width + margin.left + margin.right) | |
.attr("height", height + margin.top + margin.bottom) | |
.append("g") | |
.attr("transform", "translate(" + margin.left + "," + margin.top + ")"); | |
//load data | |
d3.csv("population.csv", function (data){ | |
//convert strings to number | |
data.forEach(function(d){ | |
d.Germany = +d.Germany; | |
d.Italy = +d.Italy; | |
d.Japan = +d.Japan; | |
d.UnitedKingdom = +d.UnitedKingdom; | |
d.UnitedStates = +d.UnitedStates; | |
}); | |
var trans = 15; | |
/*//color scale, no significant here | |
var color = d3.scale.linear() | |
.domain(d3.extent(data, function(d) { | |
return d.value; | |
})) | |
.range(["rgb(223, 196, 149)", "rgb(143, 86, 11)"]) | |
*/ | |
//set scales domain | |
xScale.domain([ | |
d3.min(data, function(d) { | |
return dateFormat.parse(d.year); | |
}), | |
d3.max(data, function(d) { | |
return dateFormat.parse(d.year); | |
}) | |
]); | |
var totalData = | |
yScale.domain([0, d3.max(data, function(d) { | |
return d.UnitedStates; | |
})]); | |
// Germany line | |
var germany = svg.append("path"); | |
germany.datum(data) | |
.attr("class", "GermanyLine") | |
.attr("d", lineGermany) | |
.attr("fill", "none") | |
.attr("stroke", "steelblue") | |
.append("title") | |
.text("Germany"); | |
// Italy line | |
var italy = svg.append("path"); | |
italy.datum(data) | |
.attr("class", "ItalyLine") | |
.attr("d", lineItaly) | |
.attr("fill", "none") | |
.attr("stroke", "red") | |
.append("title") | |
.text("Italy"); | |
// Japan line | |
var japan = svg.append("path"); | |
japan.datum(data) | |
.attr("class", "Japan") | |
.attr("d", lineJapan) | |
.attr("fill", "none") | |
.attr("stroke", "orange") | |
.append("title") | |
.text("Japan"); | |
// UnitedKingdom line | |
var uk = svg.append("path"); | |
uk.datum(data) | |
.attr("class", "UnitedKingdom") | |
.attr("d", lineUnitedKingdom) | |
.attr("fill", "none") | |
.attr("stroke", "brown") | |
.append("title") | |
.text("United Kingdom"); | |
// UnitedStates line | |
var us = svg.append("path"); | |
us.datum(data) | |
.attr("class", "UnitedStates") | |
.attr("d", lineUnitedStates) | |
.attr("fill", "none") | |
.attr("stroke", "green") | |
.append("title") | |
.text("United States"); | |
//create axis | |
svg.append("g") | |
.attr("class", "x axis") | |
.attr("transform", "translate(0," + (height) + ")") | |
.call(xAxis) | |
.append("text") | |
.attr("y", 35) | |
.attr("x",width/2-margin.left) | |
.attr("dy", ".5em") | |
.text("from 1960 to 2030"); | |
svg.append("g") | |
.attr("class", "y axis") | |
.attr("transform", "translate(" + (margin.bottom - trans) + ",0)") | |
.call(yAxis) | |
.append("text") | |
.attr("transform", "rotate(-90)") | |
.attr("y",-55) | |
.attr("x",-(height/2)-margin.top) | |
.attr("dx", "1em") | |
.text("Total population"); | |
}); | |
</script> | |
</body> | |
</html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
year | Germany | Italy | Japan | UnitedKingdom | UnitedStates | |
---|---|---|---|---|---|---|
1600 | 16000000 | 13100000 | 18500000 | 5458466 | 1500000 | |
1700 | 15000000 | 13300000 | 27000000 | 7195297 | 1000000 | |
1820 | 24905000 | 20176000 | 31000000 | 16186397 | 9980510 | |
1821 | 25260000 | 20306000 | 31032824 | 16427955 | 10298969 | |
1822 | 25620000 | 20437000 | 31065683 | 16661282 | 10625503 | |
1823 | 25969000 | 20568000 | 31098577 | 16897898 | 10951077 | |
1824 | 26307000 | 20701000 | 31131506 | 17139513 | 11276695 | |
1825 | 26650000 | 20834000 | 31164470 | 17381418 | 11602355 | |
1826 | 26964000 | 20968000 | 31197468 | 17629610 | 11928057 | |
1827 | 27249000 | 21103000 | 31230502 | 17858803 | 12250905 | |
1828 | 27540000 | 21239000 | 31263570 | 18093284 | 12580590 | |
1829 | 27807000 | 21376000 | 31296674 | 18329053 | 12906416 | |
1830 | 28045000 | 21513000 | 31329812 | 18569823 | 13240314 | |
1831 | 28283000 | 21652000 | 31362986 | 18811881 | 13658580 | |
1832 | 28535000 | 21791000 | 31396194 | 19028016 | 14077890 | |
1833 | 28801000 | 21932000 | 31429438 | 19246151 | 14496235 | |
1834 | 29071000 | 22073000 | 31462717 | 19468285 | 14914618 | |
1835 | 29390000 | 22215000 | 31496031 | 19691420 | 15334042 | |
1836 | 29702000 | 22358000 | 31529381 | 19918844 | 15752501 | |
1837 | 30013000 | 22502000 | 31562766 | 20136267 | 16170997 | |
1838 | 30365000 | 22647000 | 31596186 | 20354979 | 16590533 | |
1839 | 30746000 | 22793000 | 31629642 | 20578690 | 17009101 | |
1840 | 31126000 | 22939000 | 31663133 | 20804402 | 17443768 | |
1841 | 31475000 | 23087000 | 31696659 | 21027114 | 18056100 | |
1842 | 31787000 | 23236000 | 31730221 | 21284460 | 18667464 | |
1843 | 32086000 | 23385000 | 31763819 | 21504941 | 19278865 | |
1844 | 32394000 | 23536000 | 31797452 | 21751903 | 19890301 | |
1845 | 32743000 | 23687000 | 31831121 | 21994095 | 20502776 | |
1846 | 33059000 | 23840000 | 31864825 | 22231076 | 21114282 | |
1847 | 33231000 | 23993000 | 31898565 | 22279863 | 21725822 | |
1848 | 33289000 | 24148000 | 31932341 | 22246880 | 22337396 | |
1849 | 33452000 | 24303000 | 31966153 | 22266109 | 22950007 | |
1850 | 33746000 | 24460000 | 32000000 | 22287069 | 23579718 | |
1851 | 34055000 | 24617000 | 32117649 | 22310067 | 24405303 | |
1852 | 34290000 | 24776000 | 32235730 | 22567009 | 25230918 | |
1853 | 34422000 | 24935000 | 32354246 | 22837200 | 26156953 | |
1854 | 34531000 | 25096000 | 32473197 | 23117738 | 26882238 | |
1855 | 34586000 | 25257000 | 32592585 | 23417123 | 27707943 | |
1856 | 34715000 | 25420000 | 32712413 | 23728007 | 28534680 | |
1857 | 34979000 | 25584000 | 32832681 | 23974430 | 29360442 | |
1858 | 35278000 | 25748000 | 32953391 | 24230353 | 30186232 | |
1859 | 35633000 | 25914000 | 33074545 | 24488987 | 31012051 | |
1860 | 36049000 | 26081000 | 33196144 | 24746160 | 31838901 | |
1861 | 36435000 | 26249000 | 33318191 | 25009641 | 32677742 | |
1862 | 36788000 | 26418000 | 33440686 | 25291179 | 33515609 | |
1863 | 37184000 | 26610000 | 33563632 | 25561448 | 34354509 | |
1864 | 37602000 | 26814000 | 33687029 | 25828236 | 35192433 | |
1865 | 37955000 | 27023000 | 33810880 | 26107967 | 36031388 | |
1866 | 38193000 | 27256000 | 33935187 | 26385197 | 36869368 | |
1867 | 38440000 | 27411000 | 34059950 | 26667813 | 37708378 | |
1868 | 38637000 | 27501000 | 34185173 | 26955755 | 38546412 | |
1869 | 38914000 | 27681000 | 34310855 | 27249851 | 39385476 | |
1870 | 39231000 | 27888000 | 34437000 | 27544197 | 40240630 | |
1871 | 39456000 | 28063000 | 34648000 | 27844139 | 41098000 | |
1872 | 39691000 | 28233000 | 34859000 | 28050928 | 42136000 | |
1873 | 40017000 | 28387000 | 35070000 | 28385947 | 43174000 | |
1874 | 40450000 | 28505000 | 35235000 | 28730581 | 44212000 | |
1875 | 40897000 | 28630000 | 35436000 | 29082812 | 45245000 | |
1876 | 41491000 | 28837000 | 35713000 | 29444523 | 46287000 | |
1877 | 42034000 | 29067000 | 36018000 | 29814831 | 47325000 | |
1878 | 42546000 | 29252000 | 36315000 | 30173677 | 48362000 | |
1879 | 43052000 | 29425000 | 36557000 | 30557062 | 49400000 | |
1880 | 43500000 | 29534000 | 36807000 | 30920888 | 50458000 | |
1881 | 43827000 | 29672000 | 37112000 | 31273446 | 51743000 | |
1882 | 44112000 | 29898000 | 37414000 | 31576465 | 53027000 | |
1883 | 44404000 | 30113000 | 37766000 | 31875253 | 54311000 | |
1884 | 44777000 | 30366000 | 38138000 | 32184118 | 55595000 | |
1885 | 45084000 | 30644000 | 38427000 | 32500733 | 56879000 | |
1886 | 45505000 | 30857000 | 38622000 | 32822214 | 58164000 | |
1887 | 46001000 | 31049000 | 38866000 | 33142079 | 59448000 | |
1888 | 46538000 | 31243000 | 39251000 | 33464925 | 60732000 | |
1889 | 47083000 | 31468000 | 39688000 | 33793233 | 62016000 | |
1890 | 47607000 | 31702000 | 40077000 | 34127982 | 63302000 | |
1891 | 48129000 | 31892000 | 40380000 | 34472021 | 64612000 | |
1892 | 48633000 | 32091000 | 40684000 | 34836751 | 65922000 | |
1893 | 49123000 | 32303000 | 41001000 | 35211963 | 67231000 | |
1894 | 49703000 | 32513000 | 41350000 | 35593770 | 68541000 | |
1895 | 50363000 | 32689000 | 41775000 | 35976405 | 69851000 | |
1896 | 51111000 | 32863000 | 42196000 | 36367212 | 71161000 | |
1897 | 51921000 | 33078000 | 42643000 | 36763751 | 72471000 | |
1898 | 52753000 | 33285000 | 43145000 | 37166289 | 73781000 | |
1899 | 53592000 | 33487000 | 43626000 | 37569674 | 75091000 | |
1900 | 54388000 | 33672000 | 44103000 | 37975154 | 76391000 | |
1901 | 55214000 | 33877000 | 44662000 | 38373808 | 77888000 | |
1902 | 56104000 | 34166000 | 45255000 | 38737346 | 79469000 | |
1903 | 56963000 | 34436000 | 45841000 | 39102443 | 80946000 | |
1904 | 57806000 | 34715000 | 46378000 | 39474558 | 82485000 | |
1905 | 58644000 | 35011000 | 46829000 | 39850962 | 84147000 | |
1906 | 59481000 | 35297000 | 47227000 | 40231673 | 85770000 | |
1907 | 60341000 | 35594000 | 47691000 | 40614789 | 87339000 | |
1908 | 61187000 | 35899000 | 48260000 | 41003923 | 89055000 | |
1909 | 62038000 | 36213000 | 48869000 | 41398500 | 90845000 | |
1910 | 62884000 | 36572000 | 49518000 | 41795923 | 92767000 | |
1911 | 63852000 | 36917000 | 50215000 | 42150769 | 94234000 | |
1912 | 64457000 | 37150000 | 50941000 | 42318019 | 95703000 | |
1913 | 65058000 | 37248000 | 51672000 | 42556673 | 97606000 | |
1914 | 66096000 | 37526000 | 52396000 | 42965211 | 99505000 | |
1915 | 66230000 | 37982000 | 53124000 | 43296057 | 100941000 | |
1916 | 66076000 | 38142000 | 53815000 | 43473615 | 102364000 | |
1917 | 65763000 | 37981000 | 54437000 | 43573615 | 103817000 | |
1918 | 65237000 | 37520000 | 54886000 | 43529634 | 104958000 | |
1919 | 60547000 | 37250000 | 55253000 | 43437404 | 105473000 | |
1920 | 60894000 | 37398000 | 55818000 | 43718000 | 106881000 | |
1921 | 61573000 | 37691000 | 56490000 | 44072000 | 108964000 | |
1922 | 61900000 | 38086000 | 57209000 | 44372000 | 110484000 | |
1923 | 62307000 | 38460000 | 57937000 | 44596000 | 112387000 | |
1924 | 62697000 | 38810000 | 58686000 | 44915000 | 114558000 | |
1925 | 63166000 | 39165000 | 59522000 | 45059000 | 116284000 | |
1926 | 63630000 | 39502000 | 60490000 | 45232000 | 117857000 | |
1927 | 64023000 | 39848000 | 61430000 | 45389000 | 119502000 | |
1928 | 64393000 | 40186000 | 62361000 | 45578000 | 120971000 | |
1929 | 64739000 | 40469000 | 63244000 | 45672000 | 122245000 | |
1930 | 65084000 | 40791000 | 64203000 | 45866000 | 123668000 | |
1931 | 65423000 | 41132000 | 65205000 | 46074000 | 124633000 | |
1932 | 65716000 | 41431000 | 66189000 | 46335000 | 125436000 | |
1933 | 66027000 | 41753000 | 67182000 | 46520000 | 126180000 | |
1934 | 66409000 | 42093000 | 68090000 | 46666000 | 126978000 | |
1935 | 66871000 | 42429000 | 69238000 | 46868000 | 127859000 | |
1936 | 67349000 | 42750000 | 70171000 | 47081000 | 128681000 | |
1937 | 67831000 | 43068000 | 71278000 | 47289000 | 129464000 | |
1938 | 68558000 | 43419000 | 71879000 | 47494000 | 130476000 | |
1939 | 69286000 | 43865000 | 72364000 | 47991000 | 131539000 | |
1940 | 69835000 | 44341000 | 72967000 | 48226000 | 132637000 | |
1941 | 70244000 | 44734000 | 74005000 | 48216000 | 133922000 | |
1942 | 70834000 | 45004000 | 75029000 | 48400000 | 135386000 | |
1943 | 70411000 | 45177000 | 76005000 | 48789000 | 137272000 | |
1944 | 69865000 | 45290000 | 77178000 | 49016000 | 138937000 | |
1945 | 67000000 | 45442000 | 76224000 | 49182000 | 140474000 | |
1946 | 64678000 | 45725000 | 77199000 | 49217000 | 141940000 | |
1947 | 66094000 | 46040000 | 78119000 | 49519000 | 144688000 | |
1948 | 67295000 | 46381000 | 80155000 | 50014000 | 147203000 | |
1949 | 67991000 | 46733000 | 81971000 | 50312000 | 149770000 | |
1950 | 68374572 | 47105000 | 83805000 | 50127000 | 152271000 | |
1951 | 68875884 | 47418000 | 85163848 | 50290000 | 154878000 | |
1952 | 69145952 | 47666000 | 86459025 | 50430000 | 157553000 | |
1953 | 69550236 | 47957000 | 87655163 | 50593000 | 160184000 | |
1954 | 69868115 | 48299000 | 88753892 | 50765000 | 163026000 | |
1955 | 70195612 | 48633000 | 89815060 | 50946000 | 165931000 | |
1956 | 70602518 | 48921000 | 90766211 | 51184000 | 168903000 | |
1957 | 71019069 | 49182000 | 91563009 | 51430000 | 171984000 | |
1958 | 71488167 | 49476000 | 92388772 | 51652000 | 174882000 | |
1959 | 72013853 | 49832000 | 93296566 | 51956000 | 177830000 | |
1960 | 72480869 | 50197600 | 94091638 | 52372000 | 180671000 | |
1961 | 73123148 | 50523200 | 94943293 | 52807000 | 183691000 | |
1962 | 73739117 | 50843200 | 95831757 | 53292000 | 186538000 | |
1963 | 74340260 | 51198300 | 96811940 | 53625000 | 189242000 | |
1964 | 74954262 | 51600200 | 97826267 | 53991000 | 191889000 | |
1965 | 75638851 | 51987100 | 98882534 | 54350000 | 194303000 | |
1966 | 76206173 | 52331600 | 99790308 | 54643000 | 196560000 | |
1967 | 76368453 | 52667100 | 100825279 | 54959000 | 198712000 | |
1968 | 76584401 | 52986600 | 101960672 | 55214000 | 200706000 | |
1969 | 77143888 | 53317000 | 103171831 | 55461000 | 202677000 | |
1970 | 77783164 | 53661100 | 104344973 | 55632000 | 205052000 | |
1971 | 78354709 | 54005500 | 105696786 | 55907000 | 207661000 | |
1972 | 78717088 | 54365564 | 107188273 | 56079000 | 209896000 | |
1973 | 78950220 | 54796843 | 108706797 | 56210000 | 211909000 | |
1974 | 78966137 | 55226259 | 110162302 | 56224000 | 213854000 | |
1975 | 78682325 | 55571894 | 111573116 | 56215000 | 215973000 | |
1976 | 78298957 | 55838536 | 112774841 | 56206000 | 218035000 | |
1977 | 78160773 | 56059245 | 113872473 | 56179000 | 220239000 | |
1978 | 78066074 | 56240143 | 114912911 | 56167000 | 222585000 | |
1979 | 78081292 | 56367710 | 115890431 | 56228000 | 225055000 | |
1980 | 78297904 | 56451247 | 116807309 | 56314000 | 227726463 | |
1981 | 78401830 | 56502489 | 117648092 | 56382597 | 229966237 | |
1982 | 78335266 | 56535636 | 118454974 | 56339704 | 232187835 | |
1983 | 78121655 | 56630129 | 119269949 | 56382623 | 234307207 | |
1984 | 77855422 | 56696963 | 120034697 | 56462228 | 236348292 | |
1985 | 77684907 | 56731215 | 120754335 | 56620240 | 238466283 | |
1986 | 77713485 | 56733833 | 121491913 | 56796260 | 240650755 | |
1987 | 77718298 | 56729703 | 122091325 | 56981620 | 242803533 | |
1988 | 78030572 | 56734027 | 122613000 | 57159603 | 245021414 | |
1989 | 78644914 | 56737529 | 123107500 | 57324472 | 247341697 | |
1990 | 79380394 | 56742886 | 123537399 | 57493307 | 250131894 | |
1991 | 79984244 | 56747462 | 123946268 | 57665646 | 253492503 | |
1992 | 80597764 | 56840847 | 124329269 | 57866349 | 256894189 | |
1993 | 81132272 | 57026746 | 124668019 | 58026920 | 260255352 | |
1994 | 81414164 | 57179460 | 125014050 | 58212518 | 263435673 | |
1995 | 81653702 | 57274531 | 125341354 | 58426014 | 266557091 | |
1996 | 81890667 | 57367032 | 125645311 | 58618663 | 269667391 | |
1997 | 82011073 | 57479469 | 125956499 | 58808266 | 272911760 | |
1998 | 82023672 | 57550318 | 126246096 | 59035652 | 276115288 | |
1999 | 82074778 | 57603634 | 126494403 | 59293320 | 279294713 | |
2000 | 82187909 | 57719337 | 126699784 | 59522468 | 282338631 | |
2001 | 82280551 | 57844924 | 126891645 | 59723243 | 285023886 | |
2002 | 82350671 | 57926999 | 127065841 | 59912431 | 287675526 | |
2003 | 82398326 | 57998353 | 127214499 | 60094648 | 290342554 | |
2004 | 82424609 | 58057477 | 127333002 | 60270708 | 293027571 | |
2005 | 82431390 | 58103033 | 127417244 | 60441457 | 295734134 | |
2006 | 82422299 | 58133509 | 127463611 | 60609153 | 298444215 | |
2007 | 82400996 | 58147733 | 127467972 | 60776238 | 301139947 | |
2008 | 82369548 | 58145321 | 127425722 | 60943912 | 303824646 | |
2030 | 79572500 | 55359830 | 116338080 | 64303846 | 363811435 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment