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
81
1
anychart.onDocumentReady(function() {
2
3
// data
4
var dataSet = anychart.data.set([
5
{x: "P1", value: 10},
6
{x: "P2", value: 2},
7
{x: "P3", value: 15},
8
{x: "P4", value: 10}
9
]);
10
// set chart type
11
var chart = anychart.column();
12
13
chart.title().text("Click on Button to Add a Point");
14
15
// set data
16
chart.column(dataSet);
17
18
// create new button
19
var triggerButton = document.createElement("div");
20
21
// set button style
22
triggerButton.style.top = "5px";
23
triggerButton.style.right = "5px";
24
triggerButton.style.width = "auto";
25
triggerButton.style.height = "auto";
26
triggerButton.style.backgroundColor = "#444444";
27
triggerButton.style.color = "white";
28
triggerButton.style.position = "absolute";
29
triggerButton.style.zIndex = 2;
30
triggerButton.style.transition = "0.5s";
31
triggerButton.style.textAlign = "center";
32
triggerButton.style.border = "3px solid #444444";
33
triggerButton.style.borderRadius = "7px 7px 7px 7px";
34
triggerButton.style.fontSize = "18px";
35
triggerButton.style.cursor = "pointer";
36
triggerButton.style.MozUserSelect= "none";
37
triggerButton.style.KhtmlUserSelect= "none";
38
triggerButton.style.WebkitUserSelect= "none";
39
triggerButton.style.userSelect= "none";
40
triggerButton.innerHTML = "Add Point";
41
triggerButton.onclick = function() {
42
addPoint();
43
};
44
45
// append button to container
46
container.appendChild(triggerButton);
47
48
// function, if listener triggers
49
function addPoint(e) {
50
var view = dataSet.mapAs();
51
52
// set default color for each point
53
for (var i = 0;i<view.getRowsCount();i++)
54
view.set(i,"fill","");
55
56
// get random position in range of chart length
57
var randomIndex = Math.floor((Math.random() * (view.getRowsCount())) + 1);
58
59
// insert data
60
dataSet.insert(
61
{
62
x: "P" + ((randomIndex)+1), // set name
63
value : Math.floor((Math.random() * 100)+ 1), // set random value in range 1 - 100
64
fill: "red" // set red color to define inserted column from others
65
},
66
randomIndex // position for inserting column
67
);
68
69
// get all columns after inserted one and change x value
70
for(var indexCounter = randomIndex; indexCounter < view.getRowsCount(); indexCounter++){
71
view.set(
72
(indexCounter), // column index
73
"x", // parameter to adjust
74
"P" + (indexCounter+1) // set as new parameter
75
);
76
}
77
}
78
79
// set container and draw chart
80
chart.container("container").draw();
81
});