Divergent Stacked Bars
by Suman Kumar
HTML
<script src="https://cdn.amcharts.com/lib/5/index.js"></script>
<script src="https://cdn.amcharts.com/lib/5/xy.js"></script>
<script src="https://cdn.amcharts.com/lib/5/themes/Animated.js"></script>
<div id="chartdiv"></div>
CSS
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}
#chartdiv {
width: 100%;
height: 500px;
}
JavaScript
/**
* ---------------------------------------
* This demo was created using amCharts 5.
*
* For more information visit:
* https://www.amcharts.com/
*
* Documentation is available at:
* https://www.amcharts.com/docs/v5/
* ---------------------------------------
*/
// Create root element
// https://www.amcharts.com/docs/v5/getting-started/#Root_element
var root = am5.Root.new("chartdiv");
// Set themes
// https://www.amcharts.com/docs/v5/concepts/themes/
root.setThemes([
am5themes_Animated.new(root)
]);
// Create chart
// https://www.amcharts.com/docs/v5/charts/xy-chart/
var chart = root.container.children.push(
am5xy.XYChart.new(root, {
panX: false,
panY: false,
wheelX: "panX",
wheelY: "zoomX",
layout: root.horizontalLayout,
arrangeTooltips: false
})
);
// Use only absolute numbers
root.numberFormatter.set("numberFormat", "#.#s'%");
// Add legend
// https://www.amcharts.com/docs/v5/charts/xy-chart/legend-xy-series/
var legend = chart.children.push(
am5.Legend.new(root, {
centerX: am5.p50,
x: am5.p50
})
);
// Data
var data = [{
category: "Search engines",
negative1: -0.1,
negative2: -0.9,
positive1: 5,
positive2: 94
}, {
category: "Online encyclopedias",
negative1: -2,
negative2: -4,
positive1: 19,
positive2: 75
}, {
category: "Peers",
negative1: -2,
negative2: -10,
positive1: 46,
positive2: 42
}, {
category: "Social media",
negative1: -2,
negative2: -13,
positive1: 33,
positive2: 52
}, {
category: "Study guides",
negative1: -6,
negative2: -19,
positive1: 34,
positive2: 41
}, {
category: "News websites",
negative1: -3,
negative2: -23,
positive1: 49,
positive2: 25
}, {
category: "Textbooks",
negative1: -5,
negative2: -28,
positive1: 49,
positive2: 18
}, {
category: "Librarian",
negative1: -14,
negative2: -34,
positive1: 37,
positive2: 16
}, {
category: "Printed books",
negative1: -9,
negative2: -41,
positive1: 38,
...