我目前正在启动我的新项目。这是一个数据可视化项目,我想在这里开发一个可以可视化数据的应用程序(无论数据来自哪里)。
现在,我正在尝试找到一个我可以使用的可视化库。你推荐哪一种?
对我来说,主要的库看起来像是javascript(D3.js)。我想开发一个桌面应用程序,但也许我应该面对它,转而使用基于web的应用程序?
我有java,python和C#的经验。
发布于 2014-02-17 20:01:57
您需要可视化哪些类型的数据?
在开始列出一系列解决方案之前,我建议您先问自己以下问题:
交互
我将尝试根据上述问题的答案,在主要部分中对这些决定进行分组。
这是我所知道的基于JS库的总体解释,但一般的论述将适用于任何语言(我希望如此)。
Bare还请记住,如果您必须将您的可视化交付给客户,您可能还会提供支持,因此在这种情况下,社区类型的支持可能不是最适合您的。
你想要一些东西来快速地创建一个特定的可视化效果
对于条形图/饼图/直方图,有很多库可以在几行代码中创建一些非常酷的东西。
您可以开始查看Google charts,以获得简单且相对可定制的图表,通过vega,并以chart.js等解决方案结束,这些解决方案是构建在d3.js之上的库。所有这些库都是免费的,最后两个库都有开源许可证。
还有HighCharts和Tableau,它们提供了像Google Chart这样更加个性化的商业解决方案。
如果你需要一个网络可视化库,我推荐你使用SigmaJS和KeyLines。
前者非常适合于简单的网络可视化,而第二个则具有更高级的工具,如Combos和SNA指标,以创建增强的viz。SigmaJs是免费和开源的,而KeyLines则拥有商业许可。
为了创建地理可视化,我推荐MapBox和CartoDB,它们提供了很好的工具来创建地图。它们是建立在leaflet.js之上的。这种情况下的许可证是商业的,同时它们也为小型开发人员提供了免费/廉价的帐户。
如果你需要做3D可视化,老实说,我认为答案是:Three.js。
虽然你可以找到大量的例子,但如果你不是矩阵或OpenGL的好朋友,有时创建一个很酷的可视化效果可能需要很多时间……Three.js是一个免费的开源库。
上面提到的所有库都可以让你将回调绑定到事件,一些绑定到特定的事件,另一些绑定到高级事件。
如果你正在寻找更具体的东西--比如时间序列,等等。-您可能还可以找到其他特定的库。
你需要特定类型的图表,而且你有足够的时间来花费,但没有钱。
好吧,在这种情况下,我会推荐上面所有的开源库,外加以下内容:
nvd3.js构建在d3.js之上,与chartjs或vega等解决方案相比,它可以让您拥有更多的自由。免费开放的source.VivaGraph.js网络可视化解决方案。免费开放的地理source.leaflet.js --以及它所有的插件世界。免费和开放的source.你有足够的时间,你想创造一些独特的东西--当然是免费的!
JS中有一些用于通用可视化项目的库,比如d3.js、Raphael.js、processing.js和paper.js,这些库可以让你用不那么明显的语言知识-- Javascript --和框架本身,创建基本上所有你想要的(基于web的)可视化。
和time:根据你脑海中的viz的复杂程度,大量的时间。
注Processing是上述JS版本的Java(-like)父版本,是基于web的解决方案的一个很好的替代方案。
免责声明
我是Keylines开发团队的一员。
更具体的东西:
以下是针对特定语言viz库的一些答案:
发布于 2014-02-18 14:42:16
如果您使用桌面选项,在JFreeChart FAQ中有一个免费/开放源码的Java图表库列表。当然,我希望你会选择JFreeChart。
如果你选择web选项并想要3D图表,可以看看Orson Charts for HTML5 (不是开源的,但你可以使用免费版本,它在图表上放了一个到object-refinery.com的链接)。
发布于 2014-02-17 18:09:55
如果你想在图表中可视化你的数据,那么你可以选择Charts.js,或者在http://www.chartjs.org/或highcharts上。这可能有助于您在web.
上以图形格式表示数据
https://stackoverflow.com/questions/21825302
复制相似问题