数据可视化技术

9
我正在考虑提供几种可视化大量数据的方法。这可能包括但不限于简单的图表。我正在探索的技术将涉及形状、文本和线条。它还将涉及与元素的交互(隐藏、聚焦等)以及这些元素的动画效果(移动、拖动、系统重新组织等)。
SVG或Canvas似乎是明显的选择(与JS库-可能是jQuery-一起使用),但跨浏览器的可用性缺乏令人担忧。如果需要支持IE7 / 8,则我更愿意避免Flash / Flex,但目前这是我找到的唯一坚如磐石、跨浏览器的技术。
有没有其他建议或任何其他信息,可以使我列出的技术更具吸引力呢?
谢谢。
8个回答

2

请查看原始Processing.org网站。

他们使用Java小程序可能看起来有些奇怪/过时,但是他们能够通过Java获得比JavaScript更好的性能。这些小程序似乎可以在任何地方运行,并且您将可以访问许多优秀的Java库。


2

1

HighCharts是一款JavaScript、优秀、免费且跨浏览器的图表工具。

请查看Highcharts演示


很棒的东西,但似乎只支持传统的绘图。我需要支持云群、分形等等。相同的想法,但是视觉上超出了传统绘图包的模式。 - Rob Wilkerson

1

SVG 可以在除了 IE 之外的所有浏览器上使用,而 VML 可以在 IE 上使用(自 5.5 版本开始,如果我没记错的话)。如果你可以同时提供 SVG 和 VML,那么几乎每个人都能看到矢量图形。RaphaelJS 是一个 JavaScript 库,可以从同一段 JavaScript 代码生成这两种格式,但当然这只是其中一种方法。

Canvas 在除了 IE 之外的几乎所有浏览器上也可以使用,但有些疯狂的人编写了称为 excanvas 的东西,在 VML 中模拟 Canvas。从我的朋友和同事那里听说,它的性能比几乎任何其他浏览器图形解决方案都要差,但如果你想要可移植的位图图形,它几乎是唯一的非插件游戏。

你采取哪种路线——矢量还是光栅——真的取决于你的应用程序。


我的意图是走向矢量路线。因为这是一个自己解决自己问题的方案,我非常想避免同时实现SVG和VML,但如果我能找到一个好的包来实现它... - Rob Wilkerson

1

你可能想要看一下 RaphaelGRaphael。Raphael 允许你创建矢量图形,并在支持 SVG 的浏览器上使用 SVG,而在 IE 上自动切换到 VML。

你也可以看看基于 canvas 的 processing.js


它们都在列表上。谢谢。 - Rob Wilkerson
我想我会从Raphael开始。它是跨浏览器的(即:它可以在IE中工作),并且似乎非常强大。 - Rob Wilkerson

1

0

SVG和Canvas适用于相对简单的数据(即仅需要几条线的情况)。对于复杂的数据(例如频率分布或每个像素发射一个样本的情况),您应该在服务器上呈现普通图像。


目前,我正在尝试避免关于性能的问题(我假设这是您建议渲染图像的原因)。当然,如果性能成为问题,我们将不得不采取一些措施来“缓存”输出,这可能是创建图像并放弃实时准确性。如果您有其他想法,请详细说明。 - Rob Wilkerson
就像我说的,这取决于数据。如果您渲染超过10,000行,SVG和Canvas将开始变慢,因为您需要解析一个1MB的文档来获取坐标,而图像只需要几百KB。 - Aaron Digulla

0
如果您正在使用jQuery进行图形绘制,我强烈建议您查看Flot,它是一个跨浏览器的图形/图表库。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接