HTMLcopy
1
<div id="container"></div>
CSScopy
8
1
html,
2
body,
3
#container {
4
width: 100%;
5
height: 100%;
6
margin: 0;
7
padding: 0;
8
}
JavaScriptcopy
x
1
anychart.onDocumentReady(function () {
2
// create data set on our data
3
var dataSet = anychart.data.set([
4
//['Material', Argentina, Australia, Belgium, Bolivia, Brazil, Canada, Chile, China, DR Congo, Germany, Guinea-Bissau, India, Indonesia, Japan, Kazakhstan, Madagascar, Mexico, Mongolia, Mozambique, Myanmar, Nigeria, Norway, Peru, Russia, Rwanda, Ukraine, United States, Vietnam, Zambia, Zimbabwe, Rest of the World]
5
['Germanium', , , 5.6, , , , , 116.2, , 4.2, , , , , , , , , , , , , , 7, , , , , , , 7],
6
['Platinum', , , , , , 48.698, , , , , , , , , , , , , , , , , , 20.0411, , , 33.714, , , 14.984, 69.5629],
7
['Gallium', , , , , , , , 272.6, , , , , , , , , , , , , , , , , , , , , , , 17.4],
8
['Beryllium', , , , , , , , 85.8, , , , , , , , , , , 13.2, , , , , , , , 221.1, , , , 9.9],
9
['Indium', , , , , , 37.126, , 649.705, , , , , , 53.735, , , , 200.285, , , , , , , , , , , , , 36.149],
10
['Tantalum', , , , , 360, , , 79, 980, , , , , , , , , , , , 110, , , , 520, , , , , , 360],
11
['Dysprosium', , 135, , , , , , 1800, , , , , , , , , , , , 285, , , , , , , 322.5, , , , 107.5],
12
['Neodymium', , 3069, , , , , , 40920, , , , , , , , , , , , 6479, , , , , , , 7331.5, , , , 2441.5],
13
['Tungsten/Wolfram', , , , , , , , 67080, , , , , , , , , , , , , , , , 2340, , , 3120, 2340, , , 3120],
14
['Niobium', , , , , 76360, 5810, , , , , , , , , , , , , , , , , , , , , , , , , 830],
15
['Lithium', 19800, , , , , , 57600, 100800, , , , , , , , , , , , , , , , , , , , , , , 1800],
16
['Titanium Metal', , , , , , , , 120000, , , , , , 35000, 16000, , , , , , , , , 27000, , 5400, , , , , 250],
17
['Cobalt', , 5900, , , , , , , 170000, , , , 17000, , , , , , , , , , , 7500, , , , , , , 20200],
18
['Magnesium', , , , , , , , 1019200, , , , , , , , , , , , , , , , , , , 33600, , , , 67200],
19
['Graphite', , , , , 73000, , , 1230000, , , , , , , , 100000, , , 96000, , , , , , , , , , , , 88650],
20
['Nickel', , 165000, , , , 198000, , 1089000, , , , , 396000, 297000, , , , , , , , , , 231000, , , , , , , 924000],
21
['Silicon Metal', , , , , 200000, , , 3000000, , , , , , , , , , , , , , 140000, , , , , , , , , 421000],
22
['Zinc', , 1300000, , 494000, , , , 4199000, , , , 806000, , , , , 715000, , , , , , 1599000, , , , 741000, , , , 3146000],
23
['Copper', , 880000, , , , , 5060000, 1760000, 2420000, , , , 880000, , 660000, , 660000, , , , , , 2640000, 880000, , , 1100000, , 660000, , 4400000],
24
['Aluminium/Bauxite', , 19600000, , , 6000000, , , 13600000, , , 19400000, 5200000, 4200000, , , , , , , , , , , , , , , , , , 3700000]
25
]);
26
27
// map data for the first series, take x from the zero column and value from the first column of data set
28
var ArgentinaData = dataSet.mapAs({ x: 0, value: 1});
29
var AustraliaData = dataSet.mapAs({ x: 0, value: 2});
30
var BelgiumData = dataSet.mapAs({ x: 0, value: 3});
31
var BoliviaData = dataSet.mapAs({ x: 0, value: 4});
32
var BrazilData = dataSet.mapAs({ x: 0, value: 5});
33
var CanadaData = dataSet.mapAs({ x: 0, value: 6});
34
var ChileData = dataSet.mapAs({ x: 0, value: 7});
35
var ChinaData = dataSet.mapAs({ x: 0, value: 8});
36
var DRCongoData = dataSet.mapAs({ x: 0, value: 9});
37
var GermanyData = dataSet.mapAs({ x: 0, value: 10});
38
var GuineaBissauData = dataSet.mapAs({ x: 0, value: 11});
39
var IndiaData = dataSet.mapAs({ x: 0, value: 12});
40
var IndonesiaData = dataSet.mapAs({ x: 0, value: 13});
41
var JapanData = dataSet.mapAs({ x: 0, value: 14});
42
var KazakhstanData = dataSet.mapAs({ x: 0, value: 15});
43
var MadagascarData = dataSet.mapAs({ x: 0, value: 16});
44
var MexicoData = dataSet.mapAs({ x: 0, value: 17});
45
var MongoliaData = dataSet.mapAs({ x: 0, value: 18});
46
var MozambiqueData = dataSet.mapAs({ x: 0, value: 19});
47
var MyanmarData = dataSet.mapAs({ x: 0, value: 20});
48
var NigeriaData = dataSet.mapAs({ x: 0, value: 21});
49
var NorwayData = dataSet.mapAs({ x: 0, value: 22});
50
var PeruData = dataSet.mapAs({ x: 0, value: 23});
51
var RussiaData = dataSet.mapAs({ x: 0, value: 24});
52
var RwandaData = dataSet.mapAs({ x: 0, value: 25});
53
var UkraineData = dataSet.mapAs({ x: 0, value: 26});
54
var UnitedStatesData = dataSet.mapAs({ x: 0, value: 27});
55
var VietnamData = dataSet.mapAs({ x: 0, value: 28});
56
var ZambiaData = dataSet.mapAs({ x: 0, value: 29});
57
var ZimbabweData = dataSet.mapAs({ x: 0, value: 30});
58
var RestoftheWorldData = dataSet.mapAs({ x: 0, value: 31});
59
60
61
62
63
64
65
// create bar chart
66
var chart = anychart.column();
67
68
anychart.theme(anychart.themes.marketForecast);
69
70
chart.xAxis().labels().rotation(-90);
71
72
73
// force chart to stack values by Y scale.
74
chart.yScale().stackMode('percent');
75
76
77
78
chart
79
.title()
80
.enabled(true)
81
.useHtml(true)
82
.padding([0, 0, 10, 0])
83
.text(
84
'<span style="font-size: 16px;font-weight:bold;">Critical Raw Materials</span>' +
85
'<br/><span style="color:#929292; font-size: 12px;">' +
86
'Combat Aircraft</span>'
87
);
88
89
90
// set yAxis labels formatting, force it to add % to values
91
chart.yAxis(0).labels().format('{%Value}%');
92
93
// helper function to setup label settings for all series
94
var setupSeries = function (series, name) {
95
series.name(name).stroke('2 #fff 1');
96
series.hovered().stroke('2 #fff 1');
97
};
98
99
// temp variable to store series instance
100
var series;
101
102
series = chart.column(ArgentinaData); setupSeries(series, 'Argentina');
103
series = chart.column(AustraliaData); setupSeries(series, 'Australia');
104
series = chart.column(BelgiumData); setupSeries(series, 'Belgium');
105
series = chart.column(BoliviaData); setupSeries(series, 'Bolivia');
106
series = chart.column(BrazilData); setupSeries(series, 'Brazil');
107
series = chart.column(CanadaData); setupSeries(series, 'Canada');
108
series = chart.column(ChileData); setupSeries(series, 'Chile');
109
series = chart.column(ChinaData); setupSeries(series, 'China');
110
series = chart.column(DRCongoData); setupSeries(series, 'DR Congo');
111
series = chart.column(GermanyData); setupSeries(series, 'Germany');
112
series = chart.column(GuineaBissauData); setupSeries(series, 'Guinea-Bissau');
113
series = chart.column(IndiaData); setupSeries(series, 'India');
114
series = chart.column(IndonesiaData); setupSeries(series, 'Indonesia');
115
series = chart.column(JapanData); setupSeries(series, 'Japan');
116
series = chart.column(KazakhstanData); setupSeries(series, 'Kazakhstan');
117
series = chart.column(MadagascarData); setupSeries(series, 'Madagascar');
118
series = chart.column(MexicoData); setupSeries(series, 'Mexico');
119
series = chart.column(MongoliaData); setupSeries(series, 'Mongolia');
120
series = chart.column(MozambiqueData); setupSeries(series, 'Mozambique');
121
series = chart.column(MyanmarData); setupSeries(series, 'Myanmar');
122
series = chart.column(NigeriaData); setupSeries(series, 'Nigeria');
123
series = chart.column(NorwayData); setupSeries(series, 'Norway');
124
series = chart.column(PeruData); setupSeries(series, 'Peru');
125
series = chart.column(RussiaData); setupSeries(series, 'Russia');
126
series = chart.column(RwandaData); setupSeries(series, 'Rwanda');
127
series = chart.column(UkraineData); setupSeries(series, 'Ukraine');
128
series = chart.column(UnitedStatesData); setupSeries(series, 'United States');
129
series = chart.column(VietnamData); setupSeries(series, 'Vietnam');
130
series = chart.column(ZambiaData); setupSeries(series, 'Zambia');
131
series = chart.column(ZimbabweData); setupSeries(series, 'Zimbabwe');
132
series = chart.column(RestoftheWorldData); setupSeries(series, 'Rest of the World');
133
134
135
// turn on legend
136
// Set chart legend settings
137
chart.legend().enabled(true).fontSize(14).padding([0, 0, 15, 0]).itemsLayout("horizontal-expandable") ;
138
139
140
141
// set container id for the chart
142
chart.container('container');
143
144
// initiate chart drawing
145
chart.draw();
146
});