数据可视化库 [英] Data Visualization libraries

查看:82
本文介绍了数据可视化库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在启动新项目。这是一个数据可视化项目,我想开发一个可以可视化数据的应用程序(无论数据来自何处)。



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



对我来说,似乎主库在javascript(D3.js)中。我想开发一个桌面应用程序,但是也许我应该面对它并切换到基于Web的应用程序?



我有Java,Python和C#的经验。

解决方案

您必须可视化哪种数据?



在从解决方案列表开始之前,我建议您向自己询问以下问题:




  • 我想要哪种可视化?

  • 我的可视化时间/金钱预算是多少?

  • 用户应该与可视化交互吗?



我将尝试在主要部分中对决策类型进行分组基于上述问题的答案。

这是基于我所知道的JS库的总体解释,但是一般的论述将适用于任何语言(我希望如此)。



还请记住,如果您必须将可视化内容交付给客户,您也可能会提供支持,因此在这种情况下,社区类型的支持可能不是最适合您的。

您想要一些东西来创建特定的快速可视化



对于条形图/饼图/直方图,有很多库可以在几行中创建非常酷的东西。

您可以开始轻松查看> Google图表 和相对自定义的图表,通过 vega 并以 chart.js 之类的解决方案结束在 d3.js 之上构建的库。
所有这些库都是免费的,后两个库具有开放源代码许可证。

还有 HighCharts Tableau ,它提供了像Google Chart这样的商业解决方案,具有更多的个性化设置。



如果您需要网络可视化库我建议 SigmaJS KeyLines

前者非常适合简单的网络可视化,第二个也具有更高级的工具,例如Combos和SNA指标,以创建增强的可视化。
SigmaJs是KeyLines的免费开放源代码,并具有商业许可证。



要创建地理可视化,我建议 MapBox CartoDB ,它提供了创建地图的好工具。它们建立在 leaflet.js 之上。
在这种情况下,许可证是商业性的,它们还为小型开发人员提供免费/廉价帐户。



如果您需要进行3D可视化,我认为答案是老实说是一个: Three.js

虽然您可以找到大量的示例,但是如果您通常不是矩阵或OpenGL的好朋友,有时创建很酷的可视化可能需要很多时间...
Three.js 是一个免费的开源库。



上面提到的所有库都允许您将回调绑定到事件,有些绑定到特定事件



如果您正在寻找更具体的内容(例如时间序列等),则可能还会找到其他特定的库。



您需要特定类型的图表,您有足够的时间花钱,但没有钱



,在这种情况下,我建议所有开放urce库,加上以下内容:




  • nvd3.js 是在 d3.js 之上构建的,与您相比,它拥有更多的自由解决诸如 chartjs vega 之类的解决方案。免费和开源。

  • VivaGraph.js 用于网络可视化解决方案。免费和开源。

  • leaflet.js 用于地理信息-及其所有插件范围。免费和开源。

  • Kartograph -适用于JS和Python -用于地理可视化。免费和开源。



您有足够的时间,并且想创建一些独特的东西-当然是免费的!



JS中有一些用于通用可视化项目的库,例如 d3.js Raphael.js processing.js 和< a href = http://paperjs.org/ rel = nofollow noreferrer> paper.js ,您基本上可以创建各种(基于)的可视化,但并不十分了解该语言-Javascript-和框架本身。

时间:时间,具体取决于您的复杂程度



注意
处理是上面的JS版本的Java(类似)父类,



免责声明



我是关键字开发团队。



更具体的内容:



以下是特定语言viz库的一些答案:

* Python Viz库

* Java Viz库


I am currently in the startup of my new project. It's a data visualisation project, where I want to develop an application that can visualise data (no matter where it comes from).

Right now,I am trying to find a visualisation library that I can use. Which one do you recommend?

For me it looks like the main libraries are in javascript(D3.js). I wanted to develop an desktop application, but maybe I should just face it and switch to web based?

I have experience in java,python and C#.

解决方案

What kind of data do you have to visualize?

Before starting with a list of solutions I would recommend to ask your self the following questions:

  • What kind of visualization do I want?
  • What is my time/money budget for the visualization?
  • Should the user interact with the visualization?

I'll try to group the kind of decisions in main sections based on the answers of the questions above.
This is an overall explanation based on JS libraries I know, but the general discourse will apply to any language (I hope).

Bare also in mind that if you have to ship your visualizations to customer you are likely to provide support as well, so in this case the community kind of support may not be the best fit for you.

You want something to create a specific visualization, quickly

For bar chart / pies / histograms charts there are plenty of libraries to create something very cool in few lines.
You can start to look at Google charts for easy and relatively customizable charts, passing through vega and ending with solutions like chart.js which are libraries built on top of d3.js. All those libraries are free, and the last two have a open source license.
There are also HighCharts and Tableau which provide a commercial solution like Google Chart with more personalization.

If you need a network visualization library instead I would recommend SigmaJS and KeyLines.
While the former is quite nice for simple network visualizations, the second one has more advanced tools such Combos and SNA metrics as well, to create enhanced viz. SigmaJs is both free and open source while KeyLines and has a commercial license.

To create instead geographic kind of visualization I would recommend MapBox and CartoDB which provide nice tools to create maps. They are built on top of leaflet.js. The licenses in this case are commercial while they provide also free/cheap accounts for small developers.

If you need to do 3D visualization I think that the answer is one honestly: Three.js.
While you can find a huge amount of examples, sometimes create a cool visualization can require a lot of time if you're not a close friend of matrices or OpenGL in general... Three.js is a free and open source library.

All the mentioned libraries above let you bind callback to events, some to specific ones, others to high level ones.

If you are looking for something even more specific - such time series, etc... - you can probably find other specific libraries as well.

You need specific kinds of charts and you have plenty of time to spend, but no money

Well, in this case I would recommend all the open source libraries above, plus the following:

  • nvd3.js which is built on top of d3.js and let you have more freedom compared to solution like chartjs or vega. Free and open source.
  • VivaGraph.js for network visualization solution. Free and open source.
  • leaflet.js for geographical stuff - with all its plugin universe. Free and open source.
  • 'Kartograph' - for both JS and Python - for geographical kind of visualizations. free and open source.

You have plenty of time and you want to create something of unique - for free of course!

There are libraries for generic visualization projects in JS, such d3.js, Raphael.js, processing.js and paper.js that let you create basically every kind of (web-based) visualization you want with a not-so obvious knowledge of the language - Javascript - and framework itself.
And time: lot of time depending on the complexity of viz you have in mind.

Note Processing is the Java(-like) parent of the JS version above and a good alternative to a web-based solution.

Disclaimer

I'm part of the the Keylines dev team.

More specific stuff:

Here's some answers for specific language viz libraries:
* Python viz library
* Java viz library

这篇关于数据可视化库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆