(function () {
var script = document.getElementById('highcharts-script');
function addChart() {
function parseData(completeHandler, chartOptions) {
try {
var dataOptions = {
"seriesMapping": [
{
"x": 0
}
],
"columnTypes": [
"float",
"float"
],
"csv": "Year,Turnout\n1789,11.6\n1792,6.3\n1796,20.1\n1800,32.3\n1804,23.8\n1808,36.8\n1812,40.4\n1816,16.9\n1820,10.1\n1824,26.9\n1828,57.3\n1832,57\n1836,56.5\n1840,80.3\n1844,79.2\n1848,72.8\n1852,69.5\n1856,79.4\n1860,81.8\n1864,76.3\n1868,80.9\n1872,72.1\n1876,82.6\n1880,80.5\n1884,78.2\n1888,80.5\n1892,75.8\n1896,79.6\n1900,73.7\n1904,65.5\n1908,65.7\n1912,59\n1916,61.8\n1920,49.2\n1924,48.9\n1928,56.9\n1932,56.9\n1936,61\n1940,62.4\n1944,55.9\n1948,52.2\n1952,62.3\n1956,60.2\n1960,63.8\n1964,62.8\n1968,62.5\n1972,56.2\n1976,54.8\n1980,54.2\n1984,55.2\n1988,52.8\n1992,58.1\n1996,51.7\n2000,54.2\n2004,60.1\n2008,61.6\n2012,58.6\n2016,57.9"
};
dataOptions.sort = true
dataOptions.complete = completeHandler;
Highcharts.data(dataOptions, chartOptions);
} catch (error) {
console.log(error);
completeHandler(undefined);
}
}
var shareUrl = 'https://app.everviz.com/show/elocesu';
var encodedUrl = encodeURIComponent(shareUrl);
var template = {
chart: {
renderTo: 'highcharts-elocesu'
},
navigation: {
menuItemStyle: {
fontFamily: Highcharts.SVGRenderer.prototype.getStyle().fontFamily,
padding: '2px 10px'
}
},
exporting: {
buttons: {
contextButton: {
menuItems: [{
text: '' +
'Share on Facebook'
}, {
text: '' +
'Share on Google+'
}, {
text: '' +
'Share on Twitter'
}, {
text: '' +
'Share on LinkedIn'
}, {
separator: true
}]
.concat(Highcharts.getOptions().exporting.buttons.contextButton.menuItems)
.concat([{
separator: true
}, {
text: '' + 'Edit chart'
}, {
text: '' + 'Create chart'
}])
}
}
}
};
var chartOptions = {
"plotOptions": {
"line": {
"marker": {
"symbol": "diamond"
},
"pointInterval": 2
}
},
"yAxis": {
"title": {
"text": null
}
},
"exporting": {
"enabled": false
},
"credits": {
"style": {
"fontFamily": "arial",
"fontSize": "12px",
"fontColor": "#666666"
},
"href": "https://www.electproject.org/national-1789-present",
"text": "Source: US Elections Project"
},
"legend": {
"borderColor": "#ffffff",
"itemStyle": {
"fontColor": "#666666",
"fontStyle": "italic"
},
"align": "left",
"enabled": false
},
"series": [
{
"color": "#f24425",
"tooltip": {
"valueSuffix": "%"
},
"index": 0,
"negativeColor": "#f24425",
"type": "line"
}
],
"subtitle": {
"style": {
"color": "#666666",
"fontSize": "16px"
},
"text": "Proportion of voting eligible population casting ballots",
"align": "left"
},
"tooltip": {
"shared": true,
"borderColor": "#bbbbbb",
"backgroundColor": "#ffffff",
"borderRadius": 0,
"shadow": false,
"borderWidth": 2,
"hideDelay": 300
},
"title": {
"style": {
"fontSize": "20px",
"fontWeight": "normal"
},
"text": "Voter turnout in presidential elections",
"align": "left"
},
"chart": {
"selectionMarkerFill": "#dddddd",
"borderColor": "#dddddd",
"spacingBottom": 24,
"style": {
"fontFamily": "\"Austin News Text\", Times New Roman"
},
"plotBorderColor": "#dddddd",
"type": "spline"
}
};
parseData(function (dataOptions) {
// Merge series configs
if (chartOptions.series && dataOptions) {
Highcharts.each(chartOptions.series, function (series, i) {
chartOptions.series[i] = Highcharts.merge(series, dataOptions.series[i]);
});
}
var options = Highcharts.merge(dataOptions, chartOptions, template);
var chart = new Highcharts['Chart'](options);
}, chartOptions);
}
// Load the Highcharts script if undefined, and add the chart
if (typeof Highcharts !== 'undefined') {
addChart();
} else if (script) {
script.deferredCharts.push(addChart);
} else {
script = document.createElement('script');
script.id = 'highcharts-script';
script.src = '//app.everviz.com/resources/js/highstock-cloud-5.0.7.js';
script.type = 'text/javascript';
script.deferredCharts = [addChart];
script.onload = function () {
// Prevent double firing of event in IE9/IE10
if (!script.chartsAdded) {
script.chartsAdded = true;
while(script.deferredCharts.length) {
script.deferredCharts.shift()();
}
}
};
script.onreadystatechange = function() {
if (this.readyState == 'complete' || this.readyState == 'loaded') {
script.onload();
}
};
document.getElementsByTagName('head')[0].appendChild(script);
}
}());