대화 형 그래프 시각화를 수행 할 수있는 Python 라이브러리를 추천 할 수 있습니까 ?
나는 특별히 d3.js 와 같은 것을 원 하지만 python
이상적으로는 3D도 될 것입니다.
나는 보았다 :
답변
d3.js 스크립트를 포함하는 xml 페이지를 생성하는 파이썬 모듈 인 d3py를 사용할 수 있습니다 . 예 :
import d3py
import networkx as nx
import logging
logging.basicConfig(level=logging.DEBUG)
G = nx.Graph()
G.add_edge(1,2)
G.add_edge(1,3)
G.add_edge(3,2)
G.add_edge(3,4)
G.add_edge(4,2)
# use 'with' if you are writing a script and want to serve this up forever
with d3py.NetworkXFigure(G, width=500, height=500) as p:
p += d3py.ForceLayout()
p.show()
답변
Plotly는 대화 형 2D 및 3D 그래프를 지원합니다. 그래프는 D3.js로 렌더링되며 Python API , matplotlib , Python 용 ggplot , Seaborn , prettyplotlib 및 pandas 로 생성 할 수 있습니다 . 확대 / 축소, 이동, 트레이스 켜기 / 끄기, 마우스 오버시 데이터를 볼 수 있습니다. 플롯은 HTML, 앱, 대시 보드 및 IPython 노트북에 포함될 수 있습니다. 아래는 상호 작용을 보여주는 온도 그래프 입니다. 더 많은 예제 는 IPython 노트북 튜토리얼 갤러리를 참조하십시오 .
문서는 지원 플롯 유형과 코드 조각의 예제를 제공합니다.
특히 귀하의 질문에 대해 NetworkX에서 대화 형 플롯 을 만들 수도 있습니다 .
Python을 사용한 3D 플로팅의 경우 유사한 대화 형 3D 산점, 선 및 표면 플롯을 만들 수 있습니다. 플롯은 WebGL로 렌더링됩니다. 예를 들어 영국 스왑 금리 의 3D 그래프 를 참조하십시오 .
공개 : 저는 Plotly 팀에 있습니다.
답변
빈센트를 봤어? Vincent는 Python 데이터 개체를 가져 와서 Vega 시각화 문법으로 변환합니다. Vega는 D3 위에 구축 된 더 높은 수준의 시각화 도구입니다. D3py와 비교할 때 vincent repo가 더 최근에 업데이트되었습니다. 예제는 모두 정적 D3입니다.
더 많은 정보:
그래프는 Ipython에서 볼 수 있습니다.이 코드를 추가하면됩니다.
vincent.core.initialize_notebook()
또는 Vega 온라인 편집기 ( http://trifacta.github.io/vega/editor/ ) 에서 JSON 출력 그래프를 보거나 Python 서버에서 로컬로 볼 수 있는 JSON으로 출력 합니다. 보기에 대한 자세한 정보는 위의 pypi 링크에서 찾을 수 있습니다.
언제인지 확실하지 않지만 Pandas 패키지에는 어느 시점에서 D3 통합이 있어야합니다. http://pandas.pydata.org/developers.html
Bokeh는 대화 형 시각화를 지원하는 Python 시각화 라이브러리입니다. 기본 출력 백엔드는 HTML5 Canvas이며 클라이언트 / 서버 모델을 사용합니다.
답변
내가 사용한 레시피 중 하나 (여기 설명 : Scraperwiki 및 networkx를 통한 OpenCorporates 데이터의 GEXF 및 JSON의 공동 감독 네트워크 데이터 파일 )는 다음과 같이 실행됩니다.
- networkx 를 사용하여 네트워크 표현 생성
- 네트워크를 JSON 파일로 내보내기
- 해당 JSON을 d3.js 로 가져옵니다 . ( networkx 는 d3.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)
답변
또 다른 옵션은 방금 버전 0.3으로 이동 한 보케 입니다.
답변
pyd3 를 추천 한 사람들에게는 더 이상 활발하게 개발되지 않으며 vincent를 안내 합니다. vincent는 더 이상 활발하게 개발되지 않으며 altair 사용을 권장 합니다.
따라서 파이썬 d3를 원한다면 altair를 사용하십시오.