HTMLcopy
1
<div id="container"></div>
CSScopy
6
1
html, body, #container {
2
width: 100%;
3
height: 100%;
4
margin: 0;
5
padding: 0;
6
}
JavaScriptcopy
x
1
anychart.onDocumentReady(function () {
2
3
// create a stage
4
var stage = anychart.graphics.create("container");
5
6
// data set
7
var data = [
8
{x:"2000", value: 10048, qtrBreakdown: [["Q1", 761], ["Q2", 530], ["Q3", 890], ["Q4", 979]]},
9
{x:"2001", value: 10938, qtrBreakdown: [["Q1", 886], ["Q2", 580], ["Q3", 990], ["Q4", 997]]},
10
{x:"2002", value: 9989, qtrBreakdown: [["Q1", 832], ["Q2", 740], ["Q3", 912], ["Q4", 850]]},
11
{x:"2003", value: 10226, qtrBreakdown: [["Q1", 904], ["Q2", 912], ["Q3", 914], ["Q4", 899]]},
12
{x:"2004", value: 11004, qtrBreakdown: [["Q1", 886], ["Q2", 980], ["Q3", 109], ["Q4", 812]]},
13
{x:"2005", value: 10934, qtrBreakdown: [["Q1", 902], ["Q2", 867], ["Q3", 830], ["Q4", 993]]},
14
{x:"2006", value: 11275, qtrBreakdown: [["Q1", 104], ["Q2", 839], ["Q3", 854], ["Q4", 993]]},
15
{x:"2007", value: 11945, qtrBreakdown: [["Q1", 855], ["Q2", 103], ["Q3", 982], ["Q4", 100]]},
16
{x:"2008", value: 12245, qtrBreakdown: [["Q1", 934], ["Q2", 982], ["Q3", 973], ["Q4", 999]]},
17
{x:"2009", value: 12056, qtrBreakdown: [["Q1", 134], ["Q2", 873], ["Q3", 109], ["Q4", 903]]},
18
{x:"2010", value: 11734, qtrBreakdown: [["Q1", 928], ["Q2", 103], ["Q3", 793], ["Q4", 887]]},
19
{x:"2011", value: 12337, qtrBreakdown: [["Q1", 934], ["Q2", 982], ["Q3", 973], ["Q4", 124]]},
20
{x:"2012", value: 12761, qtrBreakdown: [["Q1", 982], ["Q2", 965], ["Q3", 100], ["Q4", 183]]},
21
{x:"2013", value: 13390, qtrBreakdown: [["Q1", 182], ["Q2", 110], ["Q3", 995], ["Q4", 999]]},
22
{x:"2014", value: 13818, qtrBreakdown: [["Q1", 400], ["Q2", 507], ["Q3", 380], ["Q4", 620]]},
23
{x:"2015", value: 13188, qtrBreakdown: [["Q1", 156], ["Q2", 120], ["Q3", 100], ["Q4", 890]]}
24
];
25
26
// ]creat]e two] charts
27
mainChart = anychart.column();
28
detailsChart = anychart.line();
29
30
// create column series on the main chart
31
mainChart.column(data).name("ACME Corp. sales");
32
33
// chart titles and settings
34
mainChart.title('Sales volume: ACME Corp.');
35
detailsChart.title('Quarters Breakdown');
36
detailsChart.legend(true);
37
38
detailsChart.tooltip().titleFormat('Sales');
39
40
mainChart.listen("pointsSelect", drillDownFunction);
41
42
43
mainChart.bounds("0", "0", "50%", "100%");
44
detailsChart.bounds("50%", "0", "50%", "100%");
45
// draw charts
46
mainChart.container(stage).draw();
47
detailsChart.container(stage).draw();
48
49
// select a point and draw for the first time
50
mainChart.getSeries(0).select(0);
51
drillDownFunction();
52
});
53
54
function drillDownFunction() {
55
// clear the chart with details
56
detailsChart.removeAllSeries();
57
58
// points = e.points;
59
points = mainChart.getSelectedPoints();
60
// go through selected points and add proper data
61
for (i=0;i<points.length;i++){
62
detailsChart.line(points[i].get('qtrBreakdown')).name(points[i].get('x'));
63
};
64
}