<!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>
html,
body {
height: 100%;
width: 100%;
margin: 0;
padding: 0;
}
#myChart {
height: 100%;
width: 100%;
min-height: 150px;
}
</style>
</head>
<body>
<div id="myChart"></div>
<script>
ZC.LICENSE = ["569d52cefae586f634c54f86dc99e6a9", "b55b025e438fa8a98e32482b5f768ff5"];
let chartConfig = {
type: 'ring',
title: {
text: 'Drilldown Pie'
},
plot: {
detach: false,
cursor: 'hand',
shadow: 8,
valueBox: {
placement: 'out'
}
},
tooltip: {
text: '%t: %v (%npv%)',
borderRadius: 5
},
series: [{
values: [69],
backgroundColor: '#F44336',
text: 'Visualization<br>Tools',
'data-id': 'vt'
},
{
values: [69],
backgroundColor: '#009688',
text: 'Site<br>Performance',
'data-id': 'sp'
},
{
values: [69],
backgroundColor: '#00BCD4',
text: 'Dev<br>Tools',
'data-id': 'dt'
},
{
values: [69],
backgroundColor: '#03A9F4',
text: 'Security<br>Tools',
'data-id': 'st'
},
{
values: [69],
backgroundColor: '#673AB7',
text: 'Data<br>Management',
'data-id': 'dm'
}
],
shapes: [{
x: 25,
y: 20,
size: 10,
angle: -90,
type: 'triangle',
backgroundColor: '#C4C4C4',
padding: 5,
cursor: 'hand',
id: 'backwards',
hoverState: {
borderWidth: 1,
borderColor: '#000'
}
}]
}
zingchart.render({
id: 'myChart',
data: chartConfig,
height: '100%',
width: '100%'
});
/**
* Create associative array to manage drilldown config
*/
let drilldownDataStructure = [];
drilldownDataStructure['vt'] = {
series: [{
values: [10],
backgroundColor: '#EF5350'
},
{
values: [25],
backgroundColor: '#E53935'
},
{
values: [34],
backgroundColor: '#C62828'
}
]
};
drilldownDataStructure['sp'] = {
series: [{
values: [15],
backgroundColor: '#26A69A'
},
{
values: [5],
backgroundColor: '#80CBC4'
},
{
values: [35],
backgroundColor: '#00695C'
},
{
values: [20],
backgroundColor: '#00897B'
}
]
};
drilldownDataStructure['dt'] = {
series: [{
values: [20],
backgroundColor: '#26C6DA'
},
{
values: [8],
backgroundColor: '#80DEEA'
},
{
values: [35],
backgroundColor: '#00838F'
},
{
values: [20],
backgroundColor: '#00ACC1'
}
]
};
drilldownDataStructure['st'] = {
series: [{
values: [35],
backgroundColor: '#1565C0'
},
{
values: [15],
backgroundColor: '#42A5F5'
},
{
values: [25],
backgroundColor: '#1E88E5'
},
{
values: [10],
backgroundColor: '#90CAF9'
}
]
};
drilldownDataStructure['dm'] = {
series: [{
values: [10],
backgroundColor: '#5E35B1'
},
{
values: [25],
backgroundColor: '#4527A0'
},
{
values: [35],
backgroundColor: '#7E57C2'
}
]
};
/*
* Built in zingchart API event used to capture node click events.
* Starting from this scope you will handle drilldown functionality.
*/
zingchart.node_click = function(p) {
// You could use this data to help construct drilldown graphs check it out...
if (drilldownDataStructure[p['data-id']]) {
zingchart.exec('myChart', 'setseriesdata', {
data: drilldownDataStructure[p['data-id']]['series']
});
}
}
/*
* Handle history buttons. You can assign
* shapes id's and based on id you can go
* 'forward' or 'backwards'. You could
* also handle this with HTML and register
* click events to those DOM elements.
*/
zingchart.shape_click = function(p) {
let shapeId = p.shapeid;
switch (shapeId) {
case 'forwards':
case 'backwards':
case 'default':
zingchart.exec('myChart', 'destroy');
zingchart.render({
id: 'myChart',
data: chartConfig,
height: '100%',
width: '100%'
});
break;
}
}
</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>
html,
body {
height: 100%;
width: 100%;
margin: 0;
padding: 0;
}
#myChart {
height: 100%;
width: 100%;
min-height: 150px;
}
let chartConfig = {
type: 'ring',
title: {
text: 'Drilldown Pie'
},
plot: {
detach: false,
cursor: 'hand',
shadow: 8,
valueBox: {
placement: 'out'
}
},
tooltip: {
text: '%t: %v (%npv%)',
borderRadius: 5
},
series: [{
values: [69],
backgroundColor: '#F44336',
text: 'Visualization<br>Tools',
'data-id': 'vt'
},
{
values: [69],
backgroundColor: '#009688',
text: 'Site<br>Performance',
'data-id': 'sp'
},
{
values: [69],
backgroundColor: '#00BCD4',
text: 'Dev<br>Tools',
'data-id': 'dt'
},
{
values: [69],
backgroundColor: '#03A9F4',
text: 'Security<br>Tools',
'data-id': 'st'
},
{
values: [69],
backgroundColor: '#673AB7',
text: 'Data<br>Management',
'data-id': 'dm'
}
],
shapes: [{
x: 25,
y: 20,
size: 10,
angle: -90,
type: 'triangle',
backgroundColor: '#C4C4C4',
padding: 5,
cursor: 'hand',
id: 'backwards',
hoverState: {
borderWidth: 1,
borderColor: '#000'
}
}]
}
zingchart.render({
id: 'myChart',
data: chartConfig,
height: '100%',
width: '100%'
});
/**
* Create associative array to manage drilldown config
*/
let drilldownDataStructure = [];
drilldownDataStructure['vt'] = {
series: [{
values: [10],
backgroundColor: '#EF5350'
},
{
values: [25],
backgroundColor: '#E53935'
},
{
values: [34],
backgroundColor: '#C62828'
}
]
};
drilldownDataStructure['sp'] = {
series: [{
values: [15],
backgroundColor: '#26A69A'
},
{
values: [5],
backgroundColor: '#80CBC4'
},
{
values: [35],
backgroundColor: '#00695C'
},
{
values: [20],
backgroundColor: '#00897B'
}
]
};
drilldownDataStructure['dt'] = {
series: [{
values: [20],
backgroundColor: '#26C6DA'
},
{
values: [8],
backgroundColor: '#80DEEA'
},
{
values: [35],
backgroundColor: '#00838F'
},
{
values: [20],
backgroundColor: '#00ACC1'
}
]
};
drilldownDataStructure['st'] = {
series: [{
values: [35],
backgroundColor: '#1565C0'
},
{
values: [15],
backgroundColor: '#42A5F5'
},
{
values: [25],
backgroundColor: '#1E88E5'
},
{
values: [10],
backgroundColor: '#90CAF9'
}
]
};
drilldownDataStructure['dm'] = {
series: [{
values: [10],
backgroundColor: '#5E35B1'
},
{
values: [25],
backgroundColor: '#4527A0'
},
{
values: [35],
backgroundColor: '#7E57C2'
}
]
};
/*
* Built in zingchart API event used to capture node click events.
* Starting from this scope you will handle drilldown functionality.
*/
zingchart.node_click = function(p) {
// You could use this data to help construct drilldown graphs check it out...
if (drilldownDataStructure[p['data-id']]) {
zingchart.exec('myChart', 'setseriesdata', {
data: drilldownDataStructure[p['data-id']]['series']
});
}
}
/*
* Handle history buttons. You can assign
* shapes id's and based on id you can go
* 'forward' or 'backwards'. You could
* also handle this with HTML and register
* click events to those DOM elements.
*/
zingchart.shape_click = function(p) {
let shapeId = p.shapeid;
switch (shapeId) {
case 'forwards':
case 'backwards':
case 'default':
zingchart.exec('myChart', 'destroy');
zingchart.render({
id: 'myChart',
data: chartConfig,
height: '100%',
width: '100%'
});
break;
}
}