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
// The data used in this sample can be obtained from the CDN
2
// https://cdn.anychart.com/csv-data/aapl-daily.csv
3
anychart.data.loadCsvFile(
4
'https://cdn.anychart.com/csv-data/aapl-daily.csv',
5
function (data) {
6
// create data table on loaded data
7
var dataTable = anychart.data.table();
8
dataTable.addData(data);
9
10
// map loaded data
11
var mapping = dataTable.mapAs({value: 4});
12
var volumeMapping = dataTable.mapAs({value: 6});
13
14
// create stock chart
15
var chart = anychart.stock();
16
// set chart padding
17
chart.padding().right(60);
18
19
// create plot on the chart
20
var plot0 = chart.plot(0);
21
22
// enabled x-grid/y-grid
23
plot0.xGrid(true).yGrid(true);
24
25
// set orientation y-axis to the right side
26
plot0.yAxis().orientation('right');
27
28
// create candlestick series on the plot
29
var aaplSeries = plot0.column(mapping);
30
// set series settings
31
aaplSeries.name('AAPL').zIndex(50);
32
33
var previousValue = NaN;
34
chart.grouping().enabled(false);
35
var selectable = mapping.createSelectable();
36
var lastKey = selectable.search(999999999999999999, 'exact-or-prev').getKey();
37
38
aaplSeries.fill(function() {
39
//debugger;
40
if (isNaN(previousValue)) {
41
previousValue = +this.iterator.get('value');
42
return 'green';
43
}
44
45
var currentValue = +this.iterator.get('value');
46
var color;
47
if (currentValue >= previousValue) {
48
previousValue = +this.iterator.get('value');
49
color = 'green';
50
} else {
51
color = 'red';
52
}
53
54
if (lastKey === this.iterator.getKey()) {
55
previousValue = NaN;
56
}
57
return color;
58
});
59
60
// create volume series on the plot
61
var plot1 = chart.plot(1);
62
var volumeSeries = plot1.column(volumeMapping);
63
// set series settings
64
volumeSeries.name('Volume').zIndex(100).maxHeight('20%').bottom(0);
65
volumeSeries.legendItem({
66
iconEnabled: false,
67
textOverflow: ''
68
});
69
plot1.yScale().minimum(0).maximumGap(0);
70
plot1.height('20%');
71
plot1.yAxis().labels().format('{%tickValue}{scale:(1)(1000)(1000)(1000)|( d)( K)( M)( B)}');
72
73
74
75
// set chart selected date/time range
76
chart.selectRange('2016-07-01', '2016-12-30');
77
78
// set container id for the chart
79
chart.container('container');
80
81
// initiate chart drawing
82
chart.draw();
83
84
// create range picker
85
var rangePicker = anychart.ui.rangePicker();
86
// init range picker
87
rangePicker.render(chart);
88
89
// create range selector
90
var rangeSelector = anychart.ui.rangeSelector();
91
// init range selector
92
rangeSelector.render(chart);
93
}
94
);