我打算使用 D3 或 Dojo GFX 中的一种来创建一些大数据视觉效果,例如 TreeMap、Wave-forms 等。D3 的优点在于,许多这些可视化效果已经可以作为示例实现用于快速开发。它的进入-更新-退出范式也非常适合我的数据集。但是,如果据说 Dojo GFX 更稳定且更适合移动设备,我并不反对使用 Dojo GFX(并编写我自己的 Treemap 等实现)。
寻求建议和比较...
我打算使用 D3 或 Dojo GFX 中的一种来创建一些大数据视觉效果,例如 TreeMap、Wave-forms 等。D3 的优点在于,许多这些可视化效果已经可以作为示例实现用于快速开发。它的进入-更新-退出范式也非常适合我的数据集。但是,如果据说 Dojo GFX 更稳定且更适合移动设备,我并不反对使用 Dojo GFX(并编写我自己的 Treemap 等实现)。
寻求建议和比较...
简而言之,答案很简单:如果您使用的是 dojo,请使用 GFX 模块。如果您不使用 dojo,请使用 D3。
更重要的是,GFX 和 D3 实际上是同一件事:低级绘图 API(此处为可视化工具包),两者都可以与更大的 javascript 框架一起使用。实际上,GFX必须在 dojo 中使用。
由于图形/图表/绘图/其他通常只是 Web 应用程序的一部分,因此底层框架架构应该是选择可视化工具包的驱动力。所以基本上,如果你去 dojo 与否,将为你回答这个问题,如果你这样做,GFX 是一个很好的选择,因为它已经被烘焙了(尽管我应该提到 D3 可以包装在 AMD 中,如此处所引用)。
如果您认为可视化工具包是选择 javascript 框架的驱动力,而不是相反,那么这里有一些关于 GFX 与 D3 的想法:
社区支持:越来越多的人正在开发 D3 并提出问题。查看 github watchs/stars/forks,D3以 1.9k/22.7k/4.7k 领先GFX 的54/52/91(dojox 是 GFX 的父模块)。在 stackoverflow 上,与GFX 的26 个相比,D3有近 7k 个标签。
特点: GFX 可以使用 SVG、VML、canvas 甚至 silverlight 进行渲染。由此,GFX 拥有卓越的跨平台、浏览器和版本支持。除此之外,这两个可视化工具包都可以访问您在以声明方式编写可视化时获得的每个功能。
Learning Curve: Both toolkits are very low level APIs that are complicated to learn. D3's enter-update-exit pattern may be especially confusing for those not familiar with extensive method chaining.
Frameworks: Both of these visualization toolkits are used in larger charting frameworks. GFX is used by Dojo Charting, D3 is used by many including NVD3, D3plus, and Vega to name a few.