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 data
4
var data = [
5
{
6
id: "1",
7
name: "Development",
8
actualStart: "2018-01-15",
9
actualEnd: "2018-03-10",
10
children: [
11
{
12
id: "1_1",
13
name: "Analysis",
14
actualStart: "2018-01-15",
15
actualEnd: "2018-01-25"
16
},
17
{
18
id: "1_2",
19
name: "Design",
20
actualStart: "2018-01-20",
21
actualEnd: "2018-02-04"
22
},
23
{
24
id: "1_3",
25
name: "Meeting",
26
actualStart: "2018-02-05",
27
actualEnd: "2018-02-05"
28
},
29
{
30
id: "1_4",
31
name: "Implementation",
32
actualStart: "2018-02-05",
33
actualEnd: "2018-02-24"
34
},
35
{
36
id: "1_5",
37
name: "Testing",
38
actualStart: "2018-02-25",
39
actualEnd: "2018-03-10"
40
}
41
]}
42
];
43
44
// create a data tree
45
var treeData = anychart.data.tree(data, "as-tree");
46
47
// create a chart
48
var chart = anychart.ganttProject();
49
50
// set the data
51
chart.data(treeData);
52
53
// create and configure a custom data grid column
54
var newColumn = chart.dataGrid().column(2);
55
newColumn.width(90);
56
newColumn.title("Start");
57
newColumn.title().fontColor("#64b5f6");
58
newColumn.title().fontWeight(600);
59
newColumn.labels().fontColor("#64b5f6");
60
newColumn.labels().format("{%actualStart}{dateTimeFormat:dd MMM}");
61
newColumn.depthPaddingMultiplier(20);
62
newColumn.collapseExpandButtons(true);
63
64
// set the indent for nested labels in the second column
65
chart.dataGrid().column(1).depthPaddingMultiplier(20);
66
67
// set the position of the splitter
68
chart.splitterPosition("42%");
69
70
// configure the scale
71
chart.getTimeline().scale().maximum("2018-03-15");
72
73
// set the container id
74
chart.container("container");
75
76
// initiate drawing the chart
77
chart.draw();
78
79
// fit elements to the width of the timeline
80
chart.fitAll();
81
});