JavaScript有哪些Network Graph可视化的库?

理由
举报 取消

JavaScript有哪些库是适合做Force-directed graph (Node-Edge之类的) – 2D 3D皆可可以从以下方面比较吗?显示大数据集的效率/性能:上千个node或是百万级edge的时候 不会卡住(render和process由后台处理,browser主要展示svg不做过多运算)Animation:可以做数据有方向的从node1通过edge1流到node2吗?Interaction:交互性(比如拖拽、移动、放大缩小等效果)就我了解的有:vis.js – A dynamic, browser based visualization library.Sigma jsCytoscape.jsProcessing.js可是不知道上面三方面各种库的表现是怎么样,求大神!另外,其他各种chart库给我感觉现存项目是做的chart居多 少有node之类(更正:之前把D3和其他chart lib归为一类有些不合适,原意是想了解更多专注Network Graph的库)类似问题及文章(较少强调 网络数据更通用)有:有哪些值得推荐的数据可视化工具? – 商业21款酷炫「数据可视化工具」,拿走不谢! – 读点儿设计 – 知乎专栏——-以下是提问之后所做的research———-发现一个新的lib 不知道有没有大神对anvaka/VivaGraphJS · GitHub有所了解? 其git中提到VivaGraphJS is the fastest graph drawing javascript library[proof – youtube]

2017年10月25日 6 条回复 968 次浏览

发起人:御寒 初入职场

Ambitious but caring

回复 ( 6 )

  1. Jim Liu
    理由
    举报 取消

    蟹妖。

    不是专弄这个的,帮别人弄过一些。

    不用WebGL是不可能承载十万级的。我用three.js,自己画十万级别可交互的力导向图,没什么压力。当然因为是自己画所以样式和交互都会比较土鳖。百万级别的话,画出来已经比较勉强,交互基本不可能。非要SVG嘛,啧啧。Canvas2D嘛,呵呵。而且另一个问题就是,百万级的网络图,你让用户下载数据要多久?

    当然直接用three.js还是不推荐的,它只是证明了一个数量级上的可行性而已。

    另外,我必须吐槽一下,所谓百万级的数据可视化,噱头成分更多,因为这些数据画出来基本上都有问题。要么就是毛线团,要么就是聚得特别近,于是你看到1条边其实它是若干条的叠起来的结果,然而这并没有什么卵用。个人认为与其追求所谓百万级数据可视化不如好好做做预处理把百万级聚到万级,还能有更多性能空间来做交互。

  2. 姜天意
    理由
    举报 取消

    奇怪了,d3难道不符合题主描述吗,题主对d3应该是有点偏见的,d3的可定制性非常高。事实上在d3官网的例子里就有好几个force direct graph的例子

    如果题主比较熟悉canvas,可以直接使用d3中force布局计算返回的数据作为canvas绘图的数据源,这样性能会有很大提升。

  3. 用户头像
    aji
    0
    理由
    举报 取消

    纠正一下,D3是方便编程者用类jQuery的语法手动操作SVG元素以生成chart的库,和其他基于配置生成chart的库不一样的。理论上可以由SVG元素构成的chart都可以用D3做。Gallery · mbostock/d3 Wiki · GitHub 里有不少node-link graph, 都是力导向布局的。

    不过基于SVG的node-link graph,哪怕是静态布局,上万条边就已经很吃力了(交互、动画上)。

    sigmajs我比较熟悉。它是专注于Network Graph的可视化库,应该也是<del>唯一</del>支持WebGL的(内置了SVG, Canvas, WebGL三种渲染方式),常见的交互、动画也有插件实现。我之前用sigmajs展示一个静态布局的graph(Gephi预先计算的),边在十万级别还比较流畅,百万级别依然会卡的不行(rmbp上)。WebGL基本上是效率最高的解决方案了。

    其实如果边数真的到了百万级别,哪怕是展示在巨幕或者投影仪上,大部分信息也会被重叠的边掩盖掉。我觉得与其寻找技术去试图让百万条边同时展示,不如用更好的方法聚合、过滤数据,把边降到数千数万级别。

  4. sailing8036
    理由
    举报 取消

    供参考2d和3d都有,不过达不到你要的百万级别的可操作体验

  5. jQuery Lucy
    理由
    举报 取消

    HT 在2D和3D数据可视化方面算是一个很不错的例子,目前应用比较多。楼主可以看看这些是HT的一些应用示例,种类很多。

  6. 宫健
    理由
    举报 取消

    用过infovis,感觉还不错

我来回答

Captcha 点击图片更换验证码