HTML散点图(Scatter Plot)的三种不同实现方式性能比较

本文对比了基于SVG、SVG+d3.js和HTML5 Canvas三种方式实现的散点图在性能上的差异。结果显示,SVG在渲染清晰度和高分辨率上表现优秀,而Canvas在渲染速度上有显著优势。对于性能要求高的场景,建议使用Canvas;对于高质量图形需求,SVG是更好的选择。
摘要由CSDN通过智能技术生成

介绍

相对于其他图表类型而言,散点图往往会接收大数据做为输入,而需要同时显示上万甚至上百万的数据点在图上。对于基于HTML的散点图来说,其性能无疑是一个非常重要的考虑因素。

下面就对比一下3种不同的散点图实现,来看看其性能如何。实现的源码可在这儿下载。为了有可比性,这儿的散点图都是在一个500*500的区域内,绘制10,0000个半径为1的绿色点。其位置完全随机。

 

散点图实现 

1. 基于SVG的散点图实现

SVG被广泛用于 基于HTML的图表实现。而用SVG实现散点图也很简单。在HTML中建一个<svg>节点,再生成相应数量的<circle>节点就可以。

因为要生成的节点比较多,因此这儿借用了node.js,先在服务器端用d3+jsdom生成了HTML页面[1],再在浏览器上直接加载。

pre-render.js

		var el = window.document.querySelector('#dataviz-container')
			, body = window.document.querySelector('body')
			, circleId = 'a2324'  // say, this value was dynamically retrieved from some database

		
		// set sample data
		data 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值