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
// Helper function to create gauge
3
function createGaugeBase() {
4
// Create gauge
5
var gauge = anychart.gauges.linear();
6
gauge
7
.layout('horizontal')
8
.background({ stroke: '10 #545f69', fill: '#ffffff' })
9
.margin([30, 45, 30, 30])
10
.padding(0);
11
12
// Set gauge tooltip
13
gauge.tooltip().useHtml(true).format('Value: {%Value}%');
14
15
// Create label to make gauge look like battery
16
var label = gauge.label();
17
label
18
.text(null)
19
.position('right-center')
20
.anchor('right-center')
21
.width(20)
22
.height('30%')
23
.offsetX('20px')
24
.background({ enabled: true, fill: '#545f69' });
25
26
// Set axis scale
27
var scale = gauge.scale();
28
scale.minimum(0).maximum(100).ticks({ interval: 10 });
29
30
return gauge;
31
}
32
33
function batteryBar(value) {
34
// Create gauge
35
var gauge = createGaugeBase();
36
gauge.data([value]);
37
38
// Create bar pointer
39
var batteryEnergy = gauge.bar(0);
40
batteryEnergy
41
.name('Energy')
42
.width('90%')
43
.offset(0)
44
.fill(function () {
45
if (gauge.data().get(0, 'value') >= 25) return '#545f69';
46
return '#D81F05';
47
})
48
.stroke(null)
49
.zIndex(11);
50
return gauge;
51
}
52
53
function batteryLED(value) {
54
// Create gauge
55
var gauge = createGaugeBase();
56
gauge.data([value]);
57
58
// Create LED pointer
59
var batteryEnergy = gauge.led(0);
60
61
batteryEnergy
62
.size(null)
63
.name('Energy')
64
.width(90)
65
.count(10)
66
// Set gap
67
.gap(1)
68
// Color settings
69
.dimmer(function () {
70
return '#ffffff';
71
});
72
73
if (value < 25) {
74
batteryEnergy.colorScale().colors(['#D81F05', '#D81F05']);
75
} else {
76
batteryEnergy.colorScale().colors(['#545f69', '#545f69']);
77
}
78
79
return gauge;
80
}
81
82
// Create layout table and set some settings
83
var layoutTable = anychart.standalones.table();
84
layoutTable
85
.hAlign('center')
86
.vAlign('middle')
87
.useHtml(true)
88
.fontSize(16)
89
.cellBorder(null);
90
91
// Put gauges into the layout table
92
layoutTable.contents([
93
['Battery', null],
94
[
95
'Gauge with Bar Pointer<br>' +
96
'<span style="color: #212121; font-size: 12px">Charged 5%</span>',
97
'Gauge with Bar Pointer<br>' +
98
'<span style="color: #212121; font-size: 12px">Charged 75 %</span>'
99
],
100
[batteryBar(5), batteryBar(75)],
101
[
102
'Gauge with LED Pointer<br>' +
103
'<span style="color: #212121; font-size: 12px">Charged 20%</span>',
104
'Gauge with LED Pointer<br>' +
105
'<span style="color: #212121; font-size: 12px">Charged 100%</span>'
106
],
107
[batteryLED(20), batteryLED(100)]
108
]);
109
110
// Set height for first row in layout table
111
layoutTable.getRow(0).height(40).fontSize(18);
112
layoutTable.getRow(1).height(50);
113
layoutTable.getRow(3).height(50);
114
115
// Merge cells in layout table where needed
116
layoutTable.getCell(0, 0).colSpan(2);
117
118
// Set container id and initiate drawing
119
layoutTable.container('container');
120
layoutTable.draw();
121
});