[python] D3.js와 동일한 파이썬


Answers

플롯은 대화 형 2D 및 3D 그래프 작성을 지원합니다. 그래프는 D3.js로 렌더링되며 Python API , matplotlib , Python 용 ggplot , Seaborn , prettyplotlibpandas 있습니다. 당신은 확대 / 축소, 이동, 추적 켜기 / 끄기, 호버에서 데이터보기 등의 작업을 수행 할 수 있습니다. 플롯은 HTML, 응용 프로그램, 대시 보드 및 IPython 노트북에 포함될 수 있습니다. 아래는 상호 작용을 보여주는 온도 그래프 입니다. 더 많은 예제는 IPython Notebooks tutorials 갤러리를 참조하십시오.



docs 는 지원되는 플롯 유형 및 코드 스 니펫의 예를 제공합니다.





특히 귀하의 질문에, 당신은 또한 NetworkX에서 대화 형 플롯만들 수 있습니다.



파이썬을 사용한 3D 플로팅의 경우 3D 스 캐터, 선 및 표면 플롯을 유사하게 상호 작용할 수 있습니다. 플롯은 WebGL을 사용하여 렌더링됩니다. 예를 들어, 영국 스왑 비율 의 3D 그래프 를 참조하십시오.



공개 : Plotly 팀에 있습니다.

Question

누구나 대화 형 그래프 시각화를 수행 할 수있는 Python 라이브러리를 추천 할 수 있습니까?

나는 특별히 d3.js 와 같은 것을 d3.js 하지만 python 에서는 이상적으로 3D이기도합니다.

나는 보았다 :

  • NetworkX - Matplotlib 플롯 만 수행하고 2D 플롯입니다. 나는 d3.js 는 것과 같은 어떤 종류의 상호 작용을 보지 못했다.
  • graph-tool - 2D 플롯 만 수행하고 대화식 그래프는 매우 느립니다.



다음과 같이 데이터를 직렬화하고 D3.js에서 시각화하도록 선택할 수도 있습니다. Python & Pandas를 사용하여 D3 Force Directed Network Diagram을 만듭니다 (이것은 또한 jupyter 노트북 과 함께 제공됩니다).

여기에 요지가 있습니다. 다음과 같은 형식으로 그래프 데이터를 직렬화합니다.

import json
json_data = {
  "nodes":[
    {"name":"Myriel","group":1},
    {"name":"Napoleon","group":1},
    {"name":"Mlle.Baptistine","group":1},
    {"name":"Mme.Magloire","group":1},
    {"name":"CountessdeLo","group":1},
  ],
  "links":[
    {"source":1,"target":0,"value":1},
    {"source":2,"target":0,"value":8},
    {"source":3,"target":0,"value":10},
    {"source":3,"target":2,"value":6},
    {"source":4,"target":0,"value":1},
    {"source":5,"target":0,"value":1},
  ]
}
filename_out = 'graph_data.json'
json_out = open(filename_out,'w')
json_out.write(json_data)
json_out.close()

그런 다음 d3.js로 데이터를로드합니다.

d3.json("pcap_export.json", drawGraph);

그러나 일상적인 drawGraph 에서는 링크를 참조합니다.




python-nvd3 확인하십시오. 그것은 nvd3를위한 파이썬 래퍼입니다. d3.py보다 시원하게 보일뿐만 아니라 더 많은 차트 옵션이 있습니다.







파이썬의 matplotlib와 D3js 자바 스크립트 시각화를 결합한 mpld3을 사용할 것을 제안합니다.

설치 및 사용법은 정말 간단하며 멋진 플러그인과 대화 형 항목이 있습니다.

http://mpld3.github.io/







내가 사용한 레시피 중 하나 ( GEXF의 네트워크 데이터 파일 공동 작업자 및 Scraperwiki 및 networkx를 통한 OpenCorporates 데이터의 JSON )는 다음과 같이 실행됩니다.

  • networkx 를 사용하여 네트워크 표현을 생성한다.
  • 네트워크를 JSON 파일로 내보내기
  • JSON을 d3.js 로 가져옵니다. ( networkxd3.js 가 가져올 수있는 트리 및 그래프 / 네트워크 표현 모두를 내보낼 수 있습니다).

networkx JSON 내보내기 는 다음 형식을 취합니다.

from networkx.readwrite import json_graph
import json
print json.dumps(json_graph.node_link_data(G))

또는 네트워크GEXF XML 파일로 내 보낸 다음이 표현을 sigma.js Javascript 시각화 라이브러리로 가져올 수 있습니다.

from xml.etree.cElementTree import tostring
writer=gf.GEXFWriter(encoding='utf-8',prettyprint=True,version='1.1draft')
writer.add_graph(G)
print tostring(writer.xml)



Related