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
// The data used in this sample can be obtained from the CDN
3
// https://cdn.anychart.com/samples/bullet-chart/horizontal-bullet-chart-with-negative-values/data.json
4
anychart.data.loadJsonFile('https://cdn.anychart.com/samples/bullet-chart/horizontal-bullet-chart-with-negative-values/data.json', function (data) {
5
var dataSet = data;
6
7
var table = anychart.standalones.table();
8
9
10
table.contents([
11
[null, null, null, null, null],
12
[null, 'Region', null, null, null],
13
[null, 'Alabama', createBulletChart('Alabama'), calculatePercentToTarget('Alabama'), null],
14
[null, 'Alaska', createBulletChart('Alaska'), calculatePercentToTarget('Alaska'), null],
15
[null, 'Arizona', createBulletChart('Arizona'), calculatePercentToTarget('Arizona'), null],
16
[null, 'Idaho', createBulletChart('Idaho'), calculatePercentToTarget('Idaho'), null],
17
[null, 'Illinois', createBulletChart('Illinois'), calculatePercentToTarget('Illinois'), null],
18
[null, 'Indiana', createBulletChart('Indiana'), calculatePercentToTarget('Indiana'), null],
19
[null, 'Ohio', createBulletChart('Ohio'), calculatePercentToTarget('Ohio'), null],
20
[null, 'Alabama', createBulletChart('Alabama'), calculatePercentToTarget('Alabama'), null],
21
[null, 'Alaska', createBulletChart('Alaska'), calculatePercentToTarget('Alaska'), null],
22
[null, 'Arizona', createBulletChart('Arizona'), calculatePercentToTarget('Arizona'), null],
23
[null, 'Idaho', createBulletChart('Idaho'), calculatePercentToTarget('Idaho'), null],
24
[null, 'Illinois', createBulletChart('Illinois'), calculatePercentToTarget('Illinois'), null],
25
[null, 'Indiana', createBulletChart('Indiana'), calculatePercentToTarget('Indiana'), null],
26
[null, 'Ohio', createBulletChart('Ohio'), calculatePercentToTarget('Ohio'), null],
27
[null, 'Alabama', createBulletChart('Alabama'), calculatePercentToTarget('Alabama'), null],
28
[null, 'Alaska', createBulletChart('Alaska'), calculatePercentToTarget('Alaska'), null],
29
[null, 'Arizona', createBulletChart('Arizona'), calculatePercentToTarget('Arizona'), null],
30
[null, 'Idaho', createBulletChart('Idaho'), calculatePercentToTarget('Idaho'), null],
31
[null, 'Illinois', createBulletChart('Illinois'), calculatePercentToTarget('Illinois'), null],
32
[null, 'Indiana', createBulletChart('Indiana'), calculatePercentToTarget('Indiana'), null],
33
[null, 'Ohio', createBulletChart('Ohio'), calculatePercentToTarget('Ohio'), null],
34
[null, 'Alabama', createBulletChart('Alabama'), calculatePercentToTarget('Alabama'), null],
35
[null, 'Alaska', createBulletChart('Alaska'), calculatePercentToTarget('Alaska'), null],
36
[null, 'Arizona', createBulletChart('Arizona'), calculatePercentToTarget('Arizona'), null],
37
[null, 'Idaho', createBulletChart('Idaho'), calculatePercentToTarget('Idaho'), null],
38
[null, 'Illinois', createBulletChart('Illinois'), calculatePercentToTarget('Illinois'), null],
39
[null, 'Indiana', createBulletChart('Indiana'), calculatePercentToTarget('Indiana'), null],
40
[null, 'Ohio', createBulletChart('Ohio'), calculatePercentToTarget('Ohio'), null],
41
[null, 'Alabama', createBulletChart('Alabama'), calculatePercentToTarget('Alabama'), null],
42
[null, 'Alaska', createBulletChart('Alaska'), calculatePercentToTarget('Alaska'), null],
43
[null, 'Arizona', createBulletChart('Arizona'), calculatePercentToTarget('Arizona'), null],
44
[null, 'Idaho', createBulletChart('Idaho'), calculatePercentToTarget('Idaho'), null],
45
[null, 'Illinois', createBulletChart('Illinois'), calculatePercentToTarget('Illinois'), null],
46
[null, 'Indiana', createBulletChart('Indiana'), calculatePercentToTarget('Indiana'), null],
47
[null, 'Ohio', createBulletChart('Ohio'), calculatePercentToTarget('Ohio'), null],
48
[null, 'Alabama', createBulletChart('Alabama'), calculatePercentToTarget('Alabama'), null],
49
[null, 'Alaska', createBulletChart('Alaska'), calculatePercentToTarget('Alaska'), null],
50
[null, 'Arizona', createBulletChart('Arizona'), calculatePercentToTarget('Arizona'), null],
51
[null, 'Idaho', createBulletChart('Idaho'), calculatePercentToTarget('Idaho'), null],
52
[null, 'Illinois', createBulletChart('Illinois'), calculatePercentToTarget('Illinois'), null],
53
[null, 'Indiana', createBulletChart('Indiana'), calculatePercentToTarget('Indiana'), null],
54
[null, 'Ohio', createBulletChart('Ohio'), calculatePercentToTarget('Ohio'), null],
55
[null, 'Oklahoma', createBulletChart('Oklahoma'), calculatePercentToTarget('Oklahoma'), null],
56
[null, 'Oregon', createBulletChart('Oregon'), calculatePercentToTarget('Oregon'), null],
57
[null, 'Vermont', createBulletChart('Vermont'), calculatePercentToTarget('Vermont'), null],
58
[null, 'Virginia', createBulletChart('Virginia'), calculatePercentToTarget('Virginia'), null],
59
[null, 'Washington', createBulletChart('Washington'), calculatePercentToTarget('Washington'), null],
60
[null, null, null, null, null]
61
]);
62
63
64
65
table.container('container');
66
table.draw();
67
68
function createBulletChart(name) {
69
var data = dataSet[name];
70
var target = eval(data['toGoal'].join('+'));
71
var actual = eval(data['actualSales'].join('+'));
72
var bullet = anychart.bullet([
73
{
74
value: Math.round(actual),
75
type: 'bar',
76
77
fill: '#545f69',
78
stroke: null
79
},
80
{
81
value: Math.round(target),
82
type: 'line',
83
84
}
85
]);
86
bullet.axis(null)
87
.title(false)
88
89
return bullet;
90
}
91
92
function calculatePercentToTarget(name) {
93
var data = dataSet[name];
94
var target = eval(data['toGoal'].join('+'));
95
var actual = eval(data['actualSales'].join('+'));
96
var diff = 100 - Math.round(actual * 100 / target);
97
}
98
});
99
100
});