<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ZingSoft Demo</title>
<script nonce="undefined" src="https://cdn.zingchart.com/zingchart.min.js"></script>
<style></style>
</head>
<body>
<div id='myChart'></div>
<script>
ZC.LICENSE = ["569d52cefae586f634c54f86dc99e6a9", "b55b025e438fa8a98e32482b5f768ff5"];
var myConfig = {
type: "scatter",
utc: true,
labels: [],
title: {
text: 'Click On A Node!',
},
plot: {
marker: {
size: 12
}
},
plotarea: {
margin: '35 dynamic'
},
scaleY: {
label: {
text: "Sales"
},
format: '$%v',
},
scaleX: {
guide: {
"visible": false
},
label: {
text: "time"
},
minValue: 1420070400000,
step: 86400000,
transform: {
type: "date",
all: "%h:%i:%s<br>%d %M, %Y",
item: {
"visible": false
}
}
},
tooltip: {
text: '%t <br> Sales: $%v'
},
series: [{
values: [
[1420070400000, 35],
[1420156800000, 42],
[1420243200000, 67],
[1420329600000, 89],
[1420416000000, 25],
[1420502400000, 50],
[1420588800000, 75]
],
text: 'Department 1'
},
{
values: [
[1420070400000, 135],
[1420156800000, 142],
[1420243200000, 167],
[1420329600000, 189],
[1420416000000, 125],
[1420502400000, 150],
[1420588800000, 175]
],
text: 'Department 2'
}
]
};
zingchart.render({
id: 'myChart',
data: myConfig,
height: 400,
width: '100%'
});
/*
* define NodeLabel class to construct
* node labels on the fly easier.
*/
function NodeLabel(hook, plotIndex) {
return {
text: hook,
hook: hook,
fontColor: '#fff',
fontSize: 15,
padding: 5,
offsetY: -35,
callout: true,
position: 'bottom',
backgroundColor: plotIndex == 0 ? '#2196f3' : '#e91e63'
}
}
// global array for NodeLabels since you can only update the whole array
var nodeLabelsArray = [];
// hash table for markers
var nodeLabelsHashTable = {};
nodeLabelsHashTable['plotindex_0'] = {};
nodeLabelsHashTable['plotindex_1'] = {};
/*
* Register a node_click event and then render a chart with the markers
*/
zingchart.bind('myChart', 'node_click', function(e) {
/*
* example output: node:plot=2;index=9
*/
var labelHookString = 'node:plot=' + e.plotindex + ';index=' + e.nodeindex;
// check hash table. Add marker
if (!nodeLabelsHashTable['plotindex_' + e.plotindex][e.value]) {
// create a marker
var newNodeLabel = new NodeLabel(labelHookString, e.plotindex);
nodeLabelsHashTable['plotindex_' + e.plotindex][e.value] = true;
nodeLabelsArray.push(newNodeLabel);
// render the marker
myConfig.labels = nodeLabelsArray;
zingchart.exec('myChart', 'setdata', {
data: myConfig
});
}
});
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ZingSoft Demo</title>
<script src="https://cdn.zingchart.com/zingchart.min.js"></script>
</head>
<body>
<div id='myChart'></div>
</body>
</html>
var myConfig = {
type: "scatter",
utc: true,
labels: [],
title: {
text: 'Click On A Node!',
},
plot: {
marker: {
size: 12
}
},
plotarea: {
margin: '35 dynamic'
},
scaleY: {
label: {
text: "Sales"
},
format: '$%v',
},
scaleX: {
guide: {
"visible": false
},
label: {
text: "time"
},
minValue: 1420070400000,
step: 86400000,
transform: {
type: "date",
all: "%h:%i:%s<br>%d %M, %Y",
item: {
"visible": false
}
}
},
tooltip: {
text: '%t <br> Sales: $%v'
},
series: [{
values: [
[1420070400000, 35],
[1420156800000, 42],
[1420243200000, 67],
[1420329600000, 89],
[1420416000000, 25],
[1420502400000, 50],
[1420588800000, 75]
],
text: 'Department 1'
},
{
values: [
[1420070400000, 135],
[1420156800000, 142],
[1420243200000, 167],
[1420329600000, 189],
[1420416000000, 125],
[1420502400000, 150],
[1420588800000, 175]
],
text: 'Department 2'
}
]
};
zingchart.render({
id: 'myChart',
data: myConfig,
height: 400,
width: '100%'
});
/*
* define NodeLabel class to construct
* node labels on the fly easier.
*/
function NodeLabel(hook, plotIndex) {
return {
text: hook,
hook: hook,
fontColor: '#fff',
fontSize: 15,
padding: 5,
offsetY: -35,
callout: true,
position: 'bottom',
backgroundColor: plotIndex == 0 ? '#2196f3' : '#e91e63'
}
}
// global array for NodeLabels since you can only update the whole array
var nodeLabelsArray = [];
// hash table for markers
var nodeLabelsHashTable = {};
nodeLabelsHashTable['plotindex_0'] = {};
nodeLabelsHashTable['plotindex_1'] = {};
/*
* Register a node_click event and then render a chart with the markers
*/
zingchart.bind('myChart', 'node_click', function(e) {
/*
* example output: node:plot=2;index=9
*/
var labelHookString = 'node:plot=' + e.plotindex + ';index=' + e.nodeindex;
// check hash table. Add marker
if (!nodeLabelsHashTable['plotindex_' + e.plotindex][e.value]) {
// create a marker
var newNodeLabel = new NodeLabel(labelHookString, e.plotindex);
nodeLabelsHashTable['plotindex_' + e.plotindex][e.value] = true;
nodeLabelsArray.push(newNodeLabel);
// render the marker
myConfig.labels = nodeLabelsArray;
zingchart.exec('myChart', 'setdata', {
data: myConfig
});
}
});