Convert Scatterchart Into Linechart
I have a scatterChart with too many points in nvd3 that looks like that: It is very computationally intense task for the browser to render a plenty of points, so I want to actuall
Solution 1:
I suggest to use Highcharts with boost feature which renders chart series by WebGL instead of the default SVG:
Here is a snippet showing a Scatter Chart with 5 series for 1000000 points total:
// Prepare the datavar n = 1000000/5,
i, k,
s = 5;
var series = [];
for (k = 0; k < s; k += 1) {
var data = [];
var cx = Math.random()* 90,
cy = Math.random()* 90,
radius = 10+Math.random()*30for (i = 0; i < n; i += 1) {
var pt_angle = Math.random() * 2 * Math.PI;
var pt_radius_sq = Math.random() * radius * radius;
var x = Math.sqrt(pt_radius_sq) * Math.cos(pt_angle);
var y = Math.sqrt(pt_radius_sq) * Math.sin(pt_angle);
data.push([cx+x, cy+y]);
}
console.log('serie'+k,'nr. points',data.length);
series.push({
type: 'scatter',
data: data,
marker: {
radius: 0.1
},
tooltip: {
followPointer: false,
pointFormat: '[{point.x:.1f}, {point.y:.1f}]'
}
});
}
if (!Highcharts.Series.prototype.renderCanvas) {
throw'Module not loaded';
}
console.time('scatter');
Highcharts.chart('container', {
chart: {
zoomType: 'xy',
height: '100%'
},
colors: ['#2f7ed8', '#0d233a', '#8bbc21', '#910000', '#1aadce',
'#492970', '#f28f43', '#77a1e5', '#c42525', '#a6c96a'],
boost: {
useGPUTranslations: true,
usePreAllocated: true
},
xAxis: {
min: 0,
max: 100,
gridLineWidth: 1
},
yAxis: {
// Renders faster when we don't have to compute min and maxmin: 0,
max: 100,
minPadding: 0,
maxPadding: 0,
title: {
text: null
}
},
title: {
text: 'Scatter chart with 1 million points'
},
legend: {
enabled: false
},
credits: {
enabled: false
},
series: series
});
console.timeEnd('scatter');
#container {
min-width: 380;
max-width: 600px;
margin: 0 auto;
}
<scriptsrc="https://code.highcharts.com/highcharts.js"></script><scriptsrc="https://code.highcharts.com/modules/boost.js"></script><scriptsrc="https://code.highcharts.com/modules/exporting.js"></script><divid="container"></div>
Jsfiddle Scatter Chart with 1000000 points: http://jsfiddle.net/beaver71/zyzpwgbv/
Post a Comment for "Convert Scatterchart Into Linechart"