我需要选择一个用于“标准”图表的库:饼图、折线图和条形图。
根据我的阅读,在我看来最好的格式是 SVG/VML,例如 Highcharts。现在 IE 9 接受了 SVG,它正在成为所有主要浏览器的标准。重新缩放和导出似乎比 Canvas 更容易。
不过,我发现有几个图表库依赖于 Canvas。我错过了什么吗?对于此类应用程序,是否有理由考虑使用 Canvas 而不是 SVG?
通常,您可以使用任一方法获得相同的结果。两者最终都会为用户在屏幕上绘制像素。主要区别在于 HTML5 Canvas 为您提供对结果(读取和写入)的像素级控制,而 SVG 是保留模式图形 API这使得使用 JavaScript 或 SMIL 动画处理事件或操作图稿变得非常容易,并且所有重绘都会为您处理。
一般来说,如果您满足以下条件,我建议您使用 HTML5 Canvas:
- 需要对效果进行像素级控制(例如模糊或blending https://github.com/Phrogz/context-blender)
- 有大量的数据点将呈现一次(并且可能平移),但在其他方面是静态的
如果您满足以下条件,请使用 SVG:
- 希望在屏幕上绘制的复杂对象与事件相关联(例如,移动数据点以查看工具提示)
- 希望结果能以高分辨率打印
- 需要独立地对各个图形部分的形状进行动画处理
- 将在输出中包含您希望被搜索引擎索引的文本
- 想要使用 XML 和/或 XSLT 生成输出
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)