Skip to main content
QUICK REVIEW

[논문 리뷰] Network visualizations with Pyvis and VisJS

Giancarlo Perrone, José Unpingco|arXiv (Cornell University)|2020. 06. 02.
Computational Physics and Python Applications인용 수 11
한 줄 요약

Pyvis는 VisJS JavaScript 라이브러리를 활용하여 웹 기반으로 상호작용 가능한 네트워크 시각화를 가능하게 하는 파이썬 라이브러리입니다. 데이터 과학자들이 주피터 노트북이나 독립형 HTML 애플리케이션 내에서 동적이고 커스터마이징 가능한 그래프 시각화를 직접 생성할 수 있도록 해줍니다. 이는 저수준의 자바스크립트 프로그래밍을 추상화하여, 사용자가 파이썬에서 노드, 엣지, 레이아웃 파라미터를 정의할 수 있도록 하며, 드래그 앤 드롭, 줌 인아웃, 툴팁, 물리 기반 레이아웃 등의 기능을 갖춘 풍부한 상호작용 가능한 시각화를 렲합니다.

ABSTRACT

Pyvis is a Python module that enables visualizing and interactively manipulating network graphs in the Jupyter notebook, or as a standalone web application. Pyvis is built on top of the powerful and mature VisJS JavaScript library, which allows for fast and responsive interactions while also abstracting away the low-level JavaScript and HTML. This means that elements of the rendered graph visualization, such as node/edge attributes can be specified within Python and shipped to the JavaScript layer for VisJS to render. This declarative approach makes it easy to quickly explore graph visualizations and investigate data relationships. In addition, Pyvis is highly customizable so that colors, sizes, and hover tooltips can be assigned to the rendered graph. The network graph layout is controlled by a front-end physics engine that is configurable from a Python interface, allowing for the detailed placement of the graph elements. In this paper, we outline use cases for Pyvis with specific examples to highlight key features for any analysis workflow. A brief overview of Pyvis' implementation describes how the Python front-end binding uses simple Pyvis calls.

연구 동기 및 목표

  • 주피터 노트북에서 특히 사용자 친화적인 상호작용 가능한 네트워크 시각화를 파이썬 기반 데이터 과학자들에게 단순화하기 위해.
  • 파이썬 기반 데이터 분석과 고성능 상호작용 가능한 자바스크립트 시각화 간 격차를 메우기 위해.
  • 노드/엣지 속성의 풍부한 커스터마이징을 가능하게 하는 선언적이고 고수준의 인터페이스를 제공하기 위해.
  • 실제 사용 사례를 위한 실용성을 높이기 위해 네트워크X와 판다스와 같은 인기 있는 데이터 과학 도구와의 원활한 통합을 가능하게 하기 위해.
  • 예를 들어 게임 오브 테론 데이터셋의 관계를 시각화하는 것과 같은 종단 간 예제를 통해 실용적 유용성을 입증하기 위해.

제안 방법

  • Pyvis는 파이썬으로 정의된 노드, 엣지, 레이아웃 파라미터를 VisJS 자바스크립트 라이브러리가 렲하기 위한 JSON 호환 데이터 구조로 변환하는 파이썬 프론트엔드 바인딩을 사용합니다.
  • 라이브러리는 Jinja 템플릿을 활용하여 파이썬 객체에서 HTML/JS 코드를 생성함으로써 VisJS의 선언적 네트워크 정의 형식과의 호환성을 확보합니다.
  • 크기, 색상, 레이블, 제목(호버 툴팁), 위치(x, y), 값(스케일링용)과 같은 노드 및 엣지 속성은 파이썬에서 지정되어 VisJS로 전달되어 그려집니다.
  • 물리 기반 레이아웃은 VisJS의 Barnes-Hut 알고리즘을 통해 제어되며, Pyvis의 파이썬 인터페이스를 통해 구성 가능하여 동적이고 상호작용 가능한 노드 위치를 가능하게 합니다.
  • 복잡한 네트워크 모델링을 위해 가중치 및 메타데이터 파라미터를 선택적으로 포함하는 add_nodes(), add_edges(), add_edge() 등의 배치 작업을 지원합니다.
  • 출력은 상호작용 가능한 HTML 파일로 려내지거나 주피터 셀에 IFrame을 통해 통합되어 네트워크 구조의 실시간 탐색이 가능합니다.

실험 결과

연구 질문

  • RQ1딥 리액티브 자바스크립트 전문 지식 없이도 파이썬 기반 데이터 과학자들이 상호작용 가능한 네트워크 시각화를 어떻게 쉽게 접근할 수 있을까?
  • RQ2대규모 복잡한 네트워크를 려내기 위해 파이썬에서 VisJS로의 추상화 레이어의 성능과 사용성은 어떠한가?
  • RQ3Pyvis는 주피터 환경에서 툴팁, 동적 크기 조정, 물리 기반 레이아웃과 같은 커스터마이징 가능한 상호작용 기능을 어느 정도 지원할 수 있는가?
  • RQ4Pyvis는 판다스와 네트워크X와 같은 기존 데이터 과학 스택과 얼마나 효과적으로 통합되어 실생활 데이터 분석 워크플로우에 활용될 수 있는가?
  • RQ5Pyvis는 게임 오브 테론 데이터셋의 캐릭터 관계와 같은 복잡한 관계 기반 데이터를 상호작용 가능한 시각화를 통해 의미 있는 탐색을 가능하게 할 수 있는가?

주요 결과

  • Pyvis는 수동 자바스크립트 또는 HTML 코딩 없이도 파이썬 코드만으로 주피터 노트북 내에서 상호작용 가능한 물리 기반 네트워크 시각화를 성공적으로 구현합니다.
  • 노드와 엣지의 풍부한 커스터마이징을 지원하며, 값 기반 크기 조정, 색상 코드, 이웃 목록 등의 사용자 정의 메타데이터를 포함한 호버 툴팁이 가능합니다.
  • 엣지의 가중치는 그려진 출력에서 뚜렷하게 구분되며, 두께가 가중치 값에 비례하여 표현되어 연결 강도의 해석을 용이하게 합니다.
  • 게임 오브 테론 데이터셋 예제는 Pyvis가 수백 개의 노드와 가중치가 부여된 엣지를 가진 복잡하고 농도 높은 네트워크를 려내어 줌 인아웃 및 호버링을 통한 상호작용 탐색이 가능하다는 것을 보여주었습니다.
  • 네트워크X와 판다스와의 통합을 통해 효율적인 데이터 변환과 네트워크 구축이 가능했으며, 일반적인 데이터 과학 파ip라인과의 호환성을 입증했습니다.
  • 결과로 생성된 HTML 출력은 드래그 앤 드롭, 줌 인아웃, 클릭 등 완전한 상호작용을 지원하여 탐색 분석과 발표 모두에 적합합니다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.