您需要可视化哪些类型的数据?
在开始列出解决方案之前,我建议您先问自己以下问题:
- 我想要什么样的可视化?
- 我用于可视化的时间/金钱预算是多少?
- 用户应该与可视化交互吗?
我将尝试根据上述问题的答案对主要部分中的决策进行分组。
这是基于我所知道的 JS 库的总体解释,但一般论述适用于任何语言(我希望)。
还要记住,如果您必须将可视化交付给客户,您也可能会提供支持,因此在这种情况下,社区类型的支持可能不是最适合您的。
您想要快速创建特定可视化的东西
对于条形图/饼图/直方图,有很多库可以用几行代码创建一些非常酷的东西。
你可以开始看看Google charts https://developers.google.com/chart/对于简单且相对可定制的图表,通过vega http://trifacta.github.io/vega/并以解决方案结束,例如chart.js http://www.chartjs.org/哪些是构建在之上的库d3.js
。
所有这些库都是免费的,最后两个库有开源许可证。
还有HighCharts http://www.highcharts.com/ and Tableau http://www.tableausoftware.com/public/它提供了像 Google Chart 这样更具个性化的商业解决方案。
如果您需要网络可视化库,我会推荐SigmaJS http://sigmajs.org/ and KeyLines http://keylines.com/.
虽然前者非常适合简单的网络可视化,但第二个也有更高级的工具(例如组合和 SNA 指标)来创建增强的可视化。
SigmaJs 是免费且开源的,而 KeyLines 则拥有商业许可证。
要创建地理类型的可视化,我建议MapBox https://www.mapbox.com/ and CartoDB http://cartodb.com/它提供了创建地图的好工具。它们建立在leaflet.js
。
在这种情况下,许可证是商业许可证,同时它们还为小型开发人员提供免费/廉价帐户。
如果你需要进行 3D 可视化,我认为答案是:Three.js http://threejs.org/.
虽然您可以找到大量示例,但如果您不是矩阵或 OpenGL 的亲密朋友,有时创建一个很酷的可视化可能需要大量时间......Three.js
是一个免费的开源库。
上面提到的所有库都允许您将回调绑定到事件,一些绑定到特定事件,另一些绑定到高级事件。
如果您正在寻找更具体的东西 - 例如时间序列等... - 您可能还可以找到其他特定的库。
您需要特定类型的图表,并且您有足够的时间可以花费,但没有钱
好吧,在这种情况下,我会推荐上面的所有开源库,以及以下内容:
-
nvd3.js http://nvd3.org/它是建立在
d3.js
与类似的解决方案相比,让您有更多的自由chartjs
or vega
。免费且开源。
-
VivaGraph.js https://github.com/anvaka/VivaGraphJS用于网络可视化解决方案。免费且开源。
-
leaflet.js http://leafletjs.com/对于地理方面的东西 - 及其所有插件宇宙。免费且开源。
-
“卡图仪” http://kartograph.org/- 适用于 JS 和 Python - 适用于地理类型的可视化。免费且开源。
您有充足的时间,并且想要创造一些独特的东西 - 当然是免费的!
JS 中有通用可视化项目的库,例如d3.js http://d3js.org/, Raphael.js http://raphaeljs.com/, processing.js http://processingjs.org/ and paper.js http://paperjs.org/它让您可以通过对语言(Javascript)和框架本身的不那么明显的了解来创建您想要的基本上每种类型(基于网络)的可视化。
以及时间:很多时间取决于您想要的可视化的复杂性。
Note
加工 http://processing.org/是上述 JS 版本的 Java(类似)父版本,是基于 Web 的解决方案的一个很好的替代方案。
免责声明
我是其中的一部分Keylines http://keylines.com/开发团队。
更具体的东西:
以下是特定语言即库的一些答案:
* Python 可视化库 https://stackoverflow.com/questions/2677410/any-pretty-data-visualization-libraries-for-python
* Java 可视化库 https://stackoverflow.com/questions/6162618/java-graph-library-for-dynamic-visualisation