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
// The data that have been used for this sample can be taken from the CDN
3
// https://cdn.anychart.com/csv-data/msft-daily-short.js
4
// https://cdn.anychart.com/csv-data/orcl-daily-short.js
5
// https://cdn.anychart.com/csv-data/csco-daily-short.js
6
// https://cdn.anychart.com/csv-data/ibm-daily-short.js
7
8
// create data tables on loaded data
9
var msftDataTable = anychart.data.table();
10
msftDataTable.addData(get_msft_daily_short_data()); // eslint-disable-line no-undef
11
12
var orclDataTable = anychart.data.table();
13
orclDataTable.addData(get_orcl_daily_short_data()); // eslint-disable-line no-undef
14
15
var cscoDataTable = anychart.data.table();
16
cscoDataTable.addData(get_csco_daily_short_data()); // eslint-disable-line no-undef
17
18
var ibmDataTable = anychart.data.table();
19
ibmDataTable.addData(get_ibm_daily_short_data()); // eslint-disable-line no-undef
20
21
// create stock chart
22
var chart = anychart.stock();
23
24
// create plot on the chart
25
var plotFirst = chart.plot(0);
26
27
// create plot series with mapped data
28
var ORCL = plotFirst.line(orclDataTable.mapAs({ value: 4 }));
29
ORCL.name('ORCL').stroke('#455a64');
30
ORCL.tooltip().format(function () {
31
return tooltipFormatter(this, false);
32
});
33
34
var CSCO = plotFirst.line(cscoDataTable.mapAs({ value: 4 }));
35
CSCO.name('CSCO').stroke('#96a6a6');
36
CSCO.tooltip().format(function () {
37
return tooltipFormatter(this, false);
38
});
39
40
var MSFT = plotFirst
41
.candlestick(
42
msftDataTable.mapAs({
43
open: 1,
44
high: 2,
45
low: 3,
46
close: 4
47
})
48
)
49
.name('MSFT');
50
MSFT.legendItem().iconType('rising-falling');
51
MSFT.tooltip().format(function () {
52
return tooltipFormatter(this, true);
53
});
54
55
// create second plot on the chart
56
var plotSecond = chart.plot(1);
57
plotSecond.height('30%');
58
59
// create plot series with mapped data
60
var IBM = plotSecond
61
.ohlc(
62
ibmDataTable.mapAs({
63
open: 1,
64
high: 2,
65
low: 3,
66
close: 4
67
})
68
)
69
.name('IBM');
70
IBM.legendItem().iconType('rising-falling');
71
IBM.tooltip().format(function () {
72
return tooltipFormatter(this, true);
73
});
74
75
// create scroller series with mapped data
76
chart.scroller().candlestick(
77
msftDataTable.mapAs({
78
open: 1,
79
high: 2,
80
low: 3,
81
close: 4
82
})
83
);
84
chart.tooltip().useHtml(true);
85
86
// set chart selected date/time range
87
chart.selectRange('2006-04-01', '2007-09-28');
88
// set container id for the chart
89
chart.container('container');
90
// initiate chart drawing
91
chart.draw();
92
93
// create range picker
94
var rangePicker = anychart.ui.rangePicker();
95
// init range picker
96
rangePicker.render(chart);
97
98
// create range selector
99
var rangeSelector = anychart.ui.rangeSelector();
100
// init range selector
101
rangeSelector.render(chart);
102
});
103
104
function tooltipFormatter(item, isOHLC) {
105
if (isOHLC) {
106
return (
107
'<br/><br><span>' +
108
item.seriesName +
109
'</span><br/>' +
110
'<span style="color: #ccc">Open</span>: ' +
111
item.open +
112
'<br/><span style="color: #ccc">High</span>: ' +
113
item.high +
114
'<br/><span style="color: #ccc">Low</span>: ' +
115
item.low +
116
'<br/><span style="color: #ccc">Close</span>: ' +
117
item.close
118
);
119
}
120
if (item.seriesName === 'CSCO') {
121
return (
122
'<br/><span style="color: #ccc">' +
123
item.seriesName +
124
'</span>: ' +
125
item.value
126
);
127
}
128
return (
129
'<span style="color: #ccc">' +
130
item.seriesName +
131
'</span>: ' +
132
item.value
133
);
134
}