我必须使用python后端在浏览器上绘制图表(此处可能无关紧要)。有许多库,例如JQPlot,D3,Google Charts可以实现此目的。
但是,如果您对它们进行分类,则它们要么基于HTML5 Canvas,要么基于SVG。两者都是各自领域中的重要技术。但
for charting as a subject, shall I go with SVG based libraries or
HTML5 Canvas based libraries. What are downside and benefits of
both approaches.
我没有任何图表制作经验,也不想在启动项目后碰壁。
具有大量数据的项目可能更喜欢画布。SVG方法通常会为每个点创建一个DOM节点(除非您创建路径),这可能导致:
DOM树大小的爆炸式增长
性能问题
使用路径,您可以解决此问题,但随后会失去交互性。
假设您正在建立股票图表。如果您谈论的图表最多只能使用5年且仅在交易数据样本的结尾,我认为答案显然是SVG。如果您要谈论的是从交易的第一天开始查看沃尔玛的历史数据或每分钟进行完整的交易信息,那么您将必须非常仔细地查看SVG。由于SVG会分崩离析,特别是如果您将一个样本带到一个SVG节点,则可能必须采用高级内存管理和按需获取方法。
如果需要交互性,则给定以下条件,SVG很容易拥有优势:
当然,您会看到,如果需要完全的交互性,则可能会与允许SVG扩展的机制(例如路径崩溃)背道而驰,因此这里存在固有的压力。
在极端情况下将需要权衡。如果尺寸很小,答案是SVG实用。如果尺寸很大且没有交互性,那么答案是仅使用路径绘制或使用Canvas的SVG。如果尺寸很大且需要交互性,则必须使用画布或棘手的SVG,这两种情况都很复杂。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句