任何人都可以推薦一個Python庫,可以做interactive圖形可視化?Python的等價物D3.js
我特別想要一些像d3.js但python
,理想情況下它也是3D。
我已經看過:
- NetworkX - 它只做
Matplotlib
情節和那些似乎是2D。我沒有看到任何形式的互動,就像d3.js
給出的那樣,例如拉動節點。 - graph-tool - 它只有2D圖,並有非常緩慢的交互圖。
任何人都可以推薦一個Python庫,可以做interactive圖形可視化?Python的等價物D3.js
我特別想要一些像d3.js但python
,理想情況下它也是3D。
我已經看過:
Matplotlib
情節和那些似乎是2D。我沒有看到任何形式的互動,就像d3.js
給出的那樣,例如拉動節點。參見:
Is there a good interactive 3D graph library out there?
接受的答案提出了以下方案,該方案顯然有python綁定:http://ubietylab.net/ubigraph/
編輯
我不知道的NetworkX的交互性,但您絕對可以製作3D圖形。有一個在畫廊至少一個例子:
http://networkx.lanl.gov/examples/drawing/edge_colormap.html
,並在「實例」的另一個例子。但是,這個要求你有Mayavi。
http://networkx.lanl.gov/examples/3d_drawing/mayavi2_spring.html
有NetworkX的爲Javascript一個有趣的端口可能會做你想要什麼。請參閱http://felix-kling.de/JSNetworkX/
這可能工作....你能向我推薦文件嗎?我怎麼會輸出一個圖形從python到這個JavaScript庫...?我想先在python中生成它...或者我將如何加載它? –
我從來沒有使用JSNetworkX,所以我不知道它是如何工作的。 – Aric
@EiyrioüvonKauyf:輸入與Python中的輸入相同,例如,列表或字典的字典列表。您可以使用Python構建圖表,將其轉換爲列表列表並將其轉換爲JSON。 –
您可以使用d3py一個生成嵌入d3.js腳本的xml頁面的python模塊。例如:
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()
爲我工作,但我不得不編輯其中一行到'with d3py.NetworkXFigure(G,width = 500,height = 500,host =「localhost」)爲p:'。我在github上檢查了_d3py_的最新提交(SHA:4e92a90f4003370bc086e0f57b19fca1bd4e8fba) –
不幸的是,d3py沒有被積極地開發 - 文森特是現代等價物(與Vega/d3.js的Python接口),但是psychemedia的答案在下面(導出網絡x到json然後在d3.js中渲染)可能是最乾淨的。 –
一個配方,我已經使用(這裏描述:Co-Director Network Data Files in GEXF and JSON from OpenCorporates Data via Scraperwiki and networkx)運行如下:
的networkx JSON exporter採取以下形式:
from networkx.readwrite import json_graph
import json
print json.dumps(json_graph.node_link_data(G))
另外,您可以export the network作爲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)
結帳python-nvd3。它是nvd3的python包裝。看起來比d3.py更酷,也有更多圖表選項。
你看過文森特嗎? Vincent使用Python數據對象並將它們轉換爲Vega可視化語法。 Vega是構建在D3之上的更高級別的可視化工具。與D3py相比,vincent repo最近更新了。雖然這些例子都是靜態的D3。
更多信息:
的圖表可以在IPython中觀看,只需添加以下代碼
vincent.core.initialize_notebook()
或輸出到JSON,您可以在Vega在線編輯器(http://trifacta.github.io/vega/editor/)中查看JSON輸出圖或在您的Python服務器本地查看它們。有關查看的更多信息可以在上面的pypi鏈接中找到。
不知道什麼時候,但熊貓軟件包應該在某個時候有D3集成。 http://pandas.pydata.org/developers.html
Bokeh是一個支持交互式可視化的Python可視化庫。其主要輸出後端是HTML5 Canvas並使用客戶端/服務器模型。
[文森特正在出路](https://github.com/wrobstory/vincent#status) - 看起來有一些替代品,但我不確定它與ipython的緊密聯繫,他們將會是.. – naught101
Plotly支持交互式2D和3D圖形。圖表用D3.js呈現,可以用Python API,matplotlib,ggplot for Python,Seaborn,prettyplotlib和pandas來創建。您可以放大,平移,打開和關閉軌跡,並查看懸停上的數據。圖可以嵌入到HTML,應用程序,儀表板和IPython筆記本中。以下是顯示交互性的temperature graph。有關更多示例,請參閱IPython Notebookstutorials的圖庫。
的docs提供了支持的圖形類型和代碼段的例子。
具體到你的問題,你也make interactive plots從NetworkX可以。
對於與Python的3D繪圖,可以使三維散點,線和曲面圖是類似的互動。繪圖使用WebGL進行渲染。例如,請參閱英國掉期利率的a 3D graph。
披露:我在Plotly隊。
另一個選項是bokeh剛剛進入版本0.3。
我會建議使用mpld3,它結合了D3js JavaScript可視化與python的matplotlib。
安裝和使用非常簡單,它有一些很酷的插件和互動的東西。
產生可方便地嵌入withing使用其離線API您的私人服務器或網站的HTML頁面高度互動的圖表做一些很酷的東西。
更新: 我注意把握其3D繪圖功能,2D圖形是真棒 感謝
注意這是_chart_可視化...該問題請求_graph_可視化。 (我很欣賞這些短語通常是混合的!) – j6m8
我得在這裏使用Python自動生成D3.js網絡圖一個很好的例子:http://brandonrose.org/ner2sna
很酷的事情是,你最終自動生成HTML和JS並可以嵌入在筆記本互動D3圖表與一個IFrame
你會想產生networkx的圖形,然後在D3操縱。 Ĵ如果你正在尋找基於瀏覽器的版本。 – kreativitea
@kreativitea確定....我會如何做到這一點理想: 圖形數據(通過API調用Python) - > Python(機器學習材料) - > Django /東西+ D3.js(可視化) - >漂亮圖片和網站:) –