数据可视化库

时间:2014-02-17 09:32:28

标签: data-visualization

我目前正处于新项目的启动阶段。它是一个数据可视化项目,我想开发一个可以显示数据的应用程序(无论它来自哪里)。

现在,我正在尝试找到一个可以使用的可视化库。你推荐哪一个?

对我而言,主要的库看起来像是javascript(D3.js)。我想开发一个桌面应用程序,但也许我应该面对它并切换到基于Web的应用程序?

我有java,python和C#的经验。

3 个答案:

答案 0 :(得分:3)

您有什么样的数据可视化?

在开始提供解决方案列表之前,我建议您自问以下问题:

  • 我想要什么样的可视化?
  • 可视化的时间/金钱预算是多少?
  • 用户应该与可视化进行交互吗?

我会尝试根据上述问题的答案将主要部分的决策分组 这是基于我所知道的JS库的整体解释,但一般话语将适用于任何语言(我希望)。

另外请注意,如果您必须向客户发送可视化,那么您也可能提供支持,因此在这种情况下,社区支持可能不适合您。

您希望快速创建特定的可视化内容

对于条形图/馅饼/直方图,有很多库可以在几行中创建非常酷的东西 您可以开始查看Google charts以获取简单且相对可自定义的图表,通过vega并以chart.js之类的解决方案结束,这些解决方案是在d3.js之上构建的库。 所有这些图书馆都是免费的,最后两个图书馆都有开源许可证 还有HighChartsTableau提供了一个商业解决方案,如Google Chart,更具个性化。

如果您需要网络可视化库,我建议SigmaJSKeyLines 虽然前者非常适合简单的网络可视化,但第二个也有更高级的工具,如Combos和SNA指标,以创建增强的即时。 SigmaJs既是免费的,也是开源的,而KeyLines则拥有商业许可。

要创建地理类型的可视化,我建议使用MapBoxCartoDB来提供创建地图的好工具。它们建立在leaflet.js之上。 在这种情况下,许可证是商业许可证,同时它们还为小型开发商提供免费/廉价帐户。

如果您需要进行3D可视化,我认为答案是诚实的:Three.js 虽然你可以找到大量的例子,但如果你不是矩阵或OpenGL的密友,有时创建一个很酷的可视化可能需要很多时间...... Three.js是一个免费的开源库。

上面提到的所有库都允许你将回调绑定到事件,一些绑定到特定的,另一些绑定到高级的。

如果您正在寻找更具体的内容 - 这样的时间序列等等 - 您也可以找到其他特定的库。

你需要特定种类的图表,而且你有足够的时间花钱,但没有钱

嗯,在这种情况下,我会推荐上面的所有开源库,以及以下内容:

  • nvd3.js构建于d3.js之上,与chartjsvega等解决方案相比,您可以获得更多自由。免费开源。
  • VivaGraph.js用于网络可视化解决方案。免费开源。
  • leaflet.js用于地理资料 - 包含所有插件世界。免费开源。
  • 'Kartograph' - 对于JS和Python - 用于地理类型的可视化。免费开源。

你有充足的时间,你想创造一些独特的东西 - 当然是免费的!

JS中有通用可视化项目的库,例如d3.jsRaphael.jsprocessing.jspaper.js,它们可以让您创建基本上所有类型的(基于Web的)你想要的可视化与不那么明显的语言知识 - Javascript - 和框架本身 时间:很多时间取决于你想到的复杂性。

请注意 Processing是上面JS版本的Java(类似)父级,是基于Web的解决方案的一个很好的替代方案。

声明

我是Keylines开发团队的成员。

更具体的内容:

以下是特定语言库的一些答案:
* Python viz library
* Java viz library

答案 1 :(得分:1)

如果您使用桌面选项,JFreeChart FAQ中有一个免费/开源Java图表库列表。我希望你当然会选择JFreeChart。

如果您选择网页选项并想要3D图表,请查看Orson Charts for HTML5(非开源,但您可以使用在图表上添加指向object-refinery.com的链接的免费版本)

答案 2 :(得分:0)

  

如果您想要在图表中可视化您的数据,那么您可以使用Charts.js或http://www.chartjs.org/或highcharts。这可能有助于您在网络上以grafical格式表示数据。