2013-09-02 3 views
5

최근 Neo4j에서 그래프를 시각화 할 수있는 라이브러리를 살펴 보았지만 선택할 수있는 명확한 뷰가 없었기 때문에 공유하고 싶은 생각이 몇 가지 있습니다.Neo4j 그래프 시각화 라이브러리

내 요구 사항 및 요구 사항 - 사이퍼 쿼리로 REST API를 검색 한 후 모든 관계가있는 그래프를 시각화합니다. 노드. 그리고 결과는 대화식으로 만들 수 있습니다. 드래그/드롭 ... 클릭시 다른 노드/관계를 나타낼 수 있습니다. 노드를 통해 노드를 가져오고 최소 400 개의 요소까지 빠르게 표시 할 수 있습니다.

그래서 더 많거나 적은 탐구 더 라이브러리 :

Three.js를 - 대부분의 3D합니다.

Arbor.js (나는 3D를 필요로하지 않는 경우 더 나은이 하나를 선택하지) - 도면, 당신까지 잎 대부분 레이아웃 라이브러리

VivaGraphJS - 사용하기 쉬운,하지만 거의 문서 :(

D3.js - 잘 보이지만 SVG에게

Cytoscape.js를 사용합니다 - 잘 보이지만, 나는 Neo4j와 함께 사용할 수 없음을 읽어 Is D3.js the right choice for real-time visualization of Neo4j Graph DB data 이유

Processing.js

-.? 그것의이 자바와 비슷한 언어. 나는 자바가별로 없다. Ike 언어 (아직).

그리고 몇 가지 질문이 있습니다

1) 무엇이 당신의 경험 - 라이브러리의 혜택 weakneses을?

2) 저는 SVG의 캔버스 insted를 사용하고 싶습니다. (화면에 작은 요소가 많음).

3) Arbor은 레이아웃을위한 특수 라이브러리이지만 다른 것들은 레이아웃 알고리즘이 없거나 무엇입니까?

나는 어떤 의견이라도 고맙게 생각합니다! :-)

+2

9 월 5 일 그래프 시각화에 대한 웹 세미나가 있습니다. http://info.neotechnology.com/0905-linkurious-register.html [이 규칙을 준수하는지 확인하지 않으면이 댓글을 삭제하십시오.] –

+1

SVG를 사용하지 말라는 요구 사항을 지정하지 않았습니다. 왜 그런가? –

+0

내가 아는 한 큰 그래프 렌더링을 위해 캔버스를 선택하는 것이 좋습니다. (다양한 포럼에서 읽음). –

답변

1

나는 그것이 매우 유용 당신이 (example)

당신은 어떻게 든 수신 된 데이터의 렌더링을 처리해야합니다 (에서보고 싶을 수도있는 그 목록에 sigma.js 표시되지 않습니다 즉 데이터 구조에서 시각적 표현으로 이동하십시오.) 이것은 시각화로 무엇을 표시/말하려고하는지, 어떻게 시각화하고 싶은지, 어떻게 보일지에 따라 달라집니다.

출발점으로, 나는 D3와 시그마와 함께 갈 것입니다.

4

비슷한 상황을 생각해 보았습니다. 나는 시그마 .js를 선택했다.

1) 귀하의 경험 - 이점, 약점이 있습니까?

sigma.js는 그래프 렌더링에만 적용됩니다. d3은 시각화를위한 툴박스입니다. 그래프 만 그리기 때문에 간결한 sigma.js 인터페이스가 더 쉽게 작업 할 수있었습니다. 저는 이것이 the video이라고 생각합니다. 여기서 sigma.js가 점진적 렌더링을 수행하여 더 잘 수행하고 더 많은 정점/가장자리를 부드럽게 처리 할 수있는 방법에 대해 이야기합니다.

2) 저는 SVG의 캔버스 insted를 사용하고 싶습니다.(많은 작은 요소가 화면에 나타납니다).

sigma.js가 캔버스로 렌더링됩니다.

여기에 sigma.js examples입니다. "노드 숨기기"예제는 마우스 상호 작용을 보여줍니다. 또한, blog post은 node.js로 작성된 아주 간단한 양의 데이터 마사지 코드를 사용하여 neo4j w/sigma를 쉽게 통합 할 수있는 방법을 보여줍니다. 이것을 모든 서버 언어로 이식하는 것은 쉽습니다.

0

Gephi가 귀하의 목록에 없음을 유의하십시오. 독립 실행 형 시각화/편집자로서 내가 사용한 최고가 (네오 플러그인을 얻으면 데이터베이스의 소스 파일을 가져 와서 볼 수 있음). 또한 오픈 소스이기 때문에 프로젝트의 일부로 포함시킬 수 있습니다.

+0

Gephi를 시도했지만 에지 나 노드에 한계가 있습니다 (아마도 둘 다 기억하지 못합니다). (D3.js로 끝났습니다 :) –

0

목록에 시각화 라이브러리 yFiles 패밀리가 없습니다.

if의 JavaScript 변형은 Canvas와 SVG를 모두 사용합니다. 이렇게하면 매우 우수한 성능과 고품질 시각화를 동시에 제공 할 수 있습니다. 머리 - 공과 같은 그래프 (수천 개의 점과 선은 있지만 텍스트는 없을 수도 있음)의 경우 Canvas를 사용할 수 있으며 실제로 확대하여 데이터를 이해하면 SVG를 사용하여 레이블, 아이콘, 데이터로 상세한 시각화를 얻을 수 있습니다 바운드 시각화 등 두 기술을 동일한 시각화에서 사용할 수 있습니다. 동시에 두 세계의 장점을 활용할 수 있습니다 (demo).

yFiles를 Neo4j에 연결하는 것은 쉬운 using the JavaScript Bolt driver입니다.

보기에서 400 개의 요소를 목표로하는 것이 좋습니다. 큰 그래프는 정말 멋지게 보이지만 대부분의 경우 "머리 - 볼"을보고 많은 통찰력을 얻지는 못합니다. 이러한 거의 예술적인 시각화는 모두 매우 유사하게 보이며 정보가 거의 없거나 전혀 없습니다. 종종 "털볼 그래프"검색어에 대한 첫 번째 Google 이미지 검색 조회수를 보여주는 정적 이미지를 표시 할 수도 있습니다 .-)

탐색, 필터링, 그룹화, 중첩 및 동적 상호 작용 중 사용자를보다 잘 지원하기 위해 뷰어 응용 프로그램에 추가해야합니다. 이것이 어떻게 구현 될 수 있는지는 시각화의 비즈니스 영역에 따라 크게 달라지며 일반 그래프에서 작동하는 일반적인 접근 방식은 거의 없습니다.

면책 조항 : 저는 위에서 언급 한 시각화 라이브러리를 제작 한 회사에서 근무하고 있습니다. 그래도 나는 그것을 대표하지 않는다.