<!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> .zc-body { background: #fff; } .chart--container { height: 100%; width: 100%; min-height: 530px; } .zc-ref { display: none; } </style> </head> <body class="zc-body"> <div id="myChart" class="chart--container"> <a href="https://www.zingchart.com/" rel="noopener" class="zc-ref">Powered by ZingChart</a> </div> <script> ZC.LICENSE = ["569d52cefae586f634c54f86dc99e6a9", "b55b025e438fa8a98e32482b5f768ff5"]; // DEFINE CHART LOCATIONS (IDS) // ----------------------------- // Main chart render location let chartId = 'myChart'; // VARS // ----------------------------- let N = 250000, n, x, y, v; zingchart.TIMEOUT = 1; // CHART CONFIG // ----------------------------- let chartConfig = { flat: true, type: 'scatter', heatmap: { tooltip: { text: '[%scale-key-value / %scale-value-value]: %value', callout: true, calloutHeight: 6, calloutPosition: 'bottom', jsRule: 'myHeatmapTooltipJsRule()', }, brushType: 'square', alpha: 1, async: true, blur: 0, gradientColors: '#fff #900 #090 #009 #909', gradientStops: '0 0.25 0.5 0.75 1', graph: true, size: 2, }, plot: {}, plotarea: { margin: '40px', }, scaleX: { values: '0:1000:0.1', guide: { visible: false, }, item: { fontSize: '9px', }, normalize: 1, offset: 0, zooming: 1, zoomSnap: true, }, scaleY: { values: '0:100:1', guide: { visible: false, }, item: { fontSize: '9px', }, normalize: 1, offset: 0, zooming: 1, zoomSnap: true, }, zoom: { label: {}, }, series: [{}], }; // RENDER CHARTS // ----------------------------- zingchart.bind(chartId, 'load', function() { console.time('data-generation'); let aData = new Array(N * 4); for (n = 0; n < N; n++) { x = ZC._r_(0, 100000) / 100; y = 50 + (ZC._r_(100, 800 * Math.sin(x / 100)) / 10) * Math.cos(x / 50); v = 1; aData[N * 0 + n] = [ parseFloat(x.toFixed(1)), parseFloat(y.toFixed(1)), v, { text: 'Apple', color: '#900' }, ]; } for (n = 0; n < N; n++) { x = ZC._r_(0, 150000) / 150; y = 50 + (ZC._r_(200, 600 * Math.sin(x / 150)) / 10) * Math.cos(x / 100); v = 2; aData[N * 1 + n] = [ parseFloat(x.toFixed(1)), parseFloat(y.toFixed(1)), v, { text: 'Dell', color: '#090' }, ]; } for (n = 0; n < N; n++) { x = ZC._r_(0, 90000) / 90; y = 30 + (ZC._r_(300, 500 * Math.sin(x / 110)) / 10) * Math.cos(x / 120); v = 3; aData[N * 2 + n] = [ parseFloat(x.toFixed(1)), parseFloat(y.toFixed(1)), v, { text: 'Microsoft', color: '#009' }, ]; } for (n = 0; n < N; n++) { x = ZC._r_(0, 200000) / 200; y = 60 + (ZC._r_(100, 300 * Math.sin(x / 120)) / 10) * Math.cos(x / 80); v = 4; aData[N * 3 + n] = [ parseFloat(x.toFixed(1)), parseFloat(y.toFixed(1)), v, { text: 'IBM', color: '#909' }, ]; } console.timeEnd('data-generation'); zingchart.exec(chartId, 'heatmap.setdata', { data: aData, }); }); zingchart.loadModules('heatmap', function() { zingchart.render({ id: chartId, width: '100%', height: '560px', output: 'canvas', data: chartConfig, modules: 'heatmap', }); }); // HELPER FNS // ----------------------------- function myHeatmapTooltipJsRule(p, info) { let obj = {}; if (info) { obj['border-color'] = info['color']; obj['text'] = '<span style="font-weight:900;color:' + info['color'] + '">' + info['text'] + ':</span> ' + p['key'] + '/' + p['val']; } return obj; } </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 class="zc-body"> <div id="myChart" class="chart--container"> <a href="https://www.zingchart.com/" rel="noopener" class="zc-ref">Powered by ZingChart</a> </div> </body> </html>
.zc-body { background: #fff; } .chart--container { height: 100%; width: 100%; min-height: 530px; } .zc-ref { display: none; }
// DEFINE CHART LOCATIONS (IDS) // ----------------------------- // Main chart render location let chartId = 'myChart'; // VARS // ----------------------------- let N = 250000, n, x, y, v; zingchart.TIMEOUT = 1; // CHART CONFIG // ----------------------------- let chartConfig = { flat: true, type: 'scatter', heatmap: { tooltip: { text: '[%scale-key-value / %scale-value-value]: %value', callout: true, calloutHeight: 6, calloutPosition: 'bottom', jsRule: 'myHeatmapTooltipJsRule()', }, brushType: 'square', alpha: 1, async: true, blur: 0, gradientColors: '#fff #900 #090 #009 #909', gradientStops: '0 0.25 0.5 0.75 1', graph: true, size: 2, }, plot: {}, plotarea: { margin: '40px', }, scaleX: { values: '0:1000:0.1', guide: { visible: false, }, item: { fontSize: '9px', }, normalize: 1, offset: 0, zooming: 1, zoomSnap: true, }, scaleY: { values: '0:100:1', guide: { visible: false, }, item: { fontSize: '9px', }, normalize: 1, offset: 0, zooming: 1, zoomSnap: true, }, zoom: { label: {}, }, series: [{}], }; // RENDER CHARTS // ----------------------------- zingchart.bind(chartId, 'load', function() { console.time('data-generation'); let aData = new Array(N * 4); for (n = 0; n < N; n++) { x = ZC._r_(0, 100000) / 100; y = 50 + (ZC._r_(100, 800 * Math.sin(x / 100)) / 10) * Math.cos(x / 50); v = 1; aData[N * 0 + n] = [ parseFloat(x.toFixed(1)), parseFloat(y.toFixed(1)), v, { text: 'Apple', color: '#900' }, ]; } for (n = 0; n < N; n++) { x = ZC._r_(0, 150000) / 150; y = 50 + (ZC._r_(200, 600 * Math.sin(x / 150)) / 10) * Math.cos(x / 100); v = 2; aData[N * 1 + n] = [ parseFloat(x.toFixed(1)), parseFloat(y.toFixed(1)), v, { text: 'Dell', color: '#090' }, ]; } for (n = 0; n < N; n++) { x = ZC._r_(0, 90000) / 90; y = 30 + (ZC._r_(300, 500 * Math.sin(x / 110)) / 10) * Math.cos(x / 120); v = 3; aData[N * 2 + n] = [ parseFloat(x.toFixed(1)), parseFloat(y.toFixed(1)), v, { text: 'Microsoft', color: '#009' }, ]; } for (n = 0; n < N; n++) { x = ZC._r_(0, 200000) / 200; y = 60 + (ZC._r_(100, 300 * Math.sin(x / 120)) / 10) * Math.cos(x / 80); v = 4; aData[N * 3 + n] = [ parseFloat(x.toFixed(1)), parseFloat(y.toFixed(1)), v, { text: 'IBM', color: '#909' }, ]; } console.timeEnd('data-generation'); zingchart.exec(chartId, 'heatmap.setdata', { data: aData, }); }); zingchart.loadModules('heatmap', function() { zingchart.render({ id: chartId, width: '100%', height: '560px', output: 'canvas', data: chartConfig, modules: 'heatmap', }); }); // HELPER FNS // ----------------------------- function myHeatmapTooltipJsRule(p, info) { let obj = {}; if (info) { obj['border-color'] = info['color']; obj['text'] = '<span style="font-weight:900;color:' + info['color'] + '">' + info['text'] + ':</span> ' + p['key'] + '/' + p['val']; } return obj; }