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
5
var rangeData1 = [
6
{name: "Task 1", start: Date.UTC(2004,0,4), end: Date.UTC(2004,7,1),
7
manager: "John Doe"},
8
{name: "Task 2", start: Date.UTC(2004,7,1), end: Date.UTC(2005,8,10),
9
manager: "Richard Roe"}
10
];
11
12
var rangeData2 = [
13
{name: "New Task 1", start: Date.UTC(2005,10,1), end: Date.UTC(2006,5,1),
14
manager: "Larry Loe"},
15
{name: "New Task 2", start: Date.UTC(2006,5,15), end: Date.UTC(2006,11,1),
16
manager: "Marta Moe"}
17
];
18
19
var momentData1 = [
20
[Date.UTC(2004,2,21), "Meeting 1"],
21
[Date.UTC(2005,3,19), "Meeting 2"],
22
[Date.UTC(2006,1,1), "Meeting 3"]
23
];
24
25
var momentData2 = [
26
[Date.UTC(2004,5,12), "Training 1"],
27
[Date.UTC(2005,5,1), "Training 2"],
28
[Date.UTC(2006,1,26), "Training 3"]
29
];
30
31
// create a chart
32
var chart = anychart.timeline();
33
34
// prevent zooming the chart with the mouse wheel
35
chart.interactivity().zoomOnMouseWheel(false);
36
37
// create the first range series, set the data and name
38
var rangeSeries1 = chart.range(rangeData1);
39
rangeSeries1.name("Tasks");
40
41
// create the second range series, set the data and name
42
var rangeSeries2 = chart.range(rangeData2);
43
rangeSeries2.name("New Tasks");
44
45
// create the first moment series, set the data and name
46
var momentSeries1 = chart.moment(momentData1);
47
momentSeries1.name("Meetings");
48
49
// create the second moment series, set the data and name
50
var momentSeries2 = chart.moment(momentData2);
51
momentSeries2.name("Trainings");
52
53
// a function for formatting labels of range series
54
function rangeLabelFormat() {
55
return this.getData("name").toUpperCase();
56
}
57
58
// format labels of range series
59
rangeSeries1.labels().format(rangeLabelFormat);
60
rangeSeries2.labels().format(rangeLabelFormat);
61
62
// configure labels of range series
63
rangeSeries1.labels().fontColor("#64b5f6");
64
rangeSeries2.labels().fontColor("#1976d2");
65
66
// a functions for formatting labels of moment series
67
function momentLabelFormat() {
68
return this.value.toUpperCase();
69
}
70
71
// format labels of moment series
72
momentSeries1.labels().format(momentLabelFormat);
73
momentSeries2.labels().format(momentLabelFormat);
74
75
// configure labels of moment series
76
momentSeries1.labels().width(80);
77
momentSeries2.labels().width(80);
78
momentSeries1.labels().fontColor("#96a6a6");
79
momentSeries2.labels().fontColor("#96a6a6");
80
momentSeries1.labels().background().stroke("#ffa000", 2);
81
momentSeries2.labels().background().stroke("#ffd54f", 2);
82
83
// format labels of the axis
84
chart.axis().labels().format(function(){
85
return this.value.substr(2);
86
});
87
88
// a function for formatting tooltips of range series
89
function rangeTooltipFormat() {
90
var duration = (this.end - this.start) / 1000 / 3600 / 24;
91
var start = anychart.format.dateTime(this.start, "dd MMM");
92
var end = anychart.format.dateTime(this.end, "dd MMM");
93
return "<span style='font-weight:600;font-size:12pt'>" +
94
this.getData("name").toUpperCase() + "</span>" +
95
"<br><br>Dates: " + start + " - " + end +
96
"<br>Duration: " + duration + " days" +
97
"<br>Group: " + this.seriesName +
98
"<br><br>Manager: " + this.getData("manager");
99
}
100
101
// format tooltips of range series
102
rangeSeries1.tooltip().useHtml(true);
103
rangeSeries2.tooltip().useHtml(true);
104
rangeSeries1.tooltip().format(rangeTooltipFormat);
105
rangeSeries2.tooltip().format(rangeTooltipFormat);
106
107
// configure tooltips of range series
108
rangeSeries1.tooltip().title().enabled(false);
109
rangeSeries2.tooltip().title().enabled(false);
110
rangeSeries1.tooltip().separator().enabled(false);
111
rangeSeries2.tooltip().separator().enabled(false);
112
113
// a function for formatting tooltips of range series
114
function momentTooltipFormat() {
115
var date = anychart.format.dateTime(this.x, "dd MMM");
116
return "<span style='font-weight:600;font-size:12pt'>" +
117
this.value.toUpperCase() + "</span>" +
118
"<br><br>Date: " + date +
119
"<br>Group: " + this.seriesName;
120
}
121
122
// format tooltips of moment series
123
momentSeries1.tooltip().useHtml(true);
124
momentSeries2.tooltip().useHtml(true);
125
momentSeries1.tooltip().format(momentTooltipFormat);
126
momentSeries2.tooltip().format(momentTooltipFormat);
127
128
// configure tooltips of moment series
129
momentSeries1.tooltip().title().enabled(false);
130
momentSeries2.tooltip().title().enabled(false);
131
momentSeries1.tooltip().separator().enabled(false);
132
momentSeries2.tooltip().separator().enabled(false);
133
134
// set the chart title
135
chart.title("Timeline Chart: Labels and Tooltips (Formatting Functions)");
136
137
// set the container id
138
chart.container("container");
139
140
// initiate drawing the chart
141
chart.draw();
142
});