क्या कोई पायथन लाइब्रेरी की सिफारिश कर सकता है जो इंटरेक्टिव ग्राफ विज़ुअलाइज़ेशन कर सके?
मैं विशेष रूप से d3.js जैसा कुछ चाहता हूं, लेकिन python
आदर्श रूप में यह 3 डी भी होगा।
मैंने देखा है:
क्या कोई पायथन लाइब्रेरी की सिफारिश कर सकता है जो इंटरेक्टिव ग्राफ विज़ुअलाइज़ेशन कर सके?
मैं विशेष रूप से d3.js जैसा कुछ चाहता हूं, लेकिन python
आदर्श रूप में यह 3 डी भी होगा।
मैंने देखा है:
जवाबों:
आप d3py एक अजगर मॉड्यूल का उपयोग कर सकते हैं जो d3.js स्क्रिप्ट एम्बेड करने वाले xml पृष्ठ उत्पन्न करते हैं। उदाहरण के लिए :
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") as p:
। मैंने गितुब (SHA: 4e92a90f4003370bc086e0f57b19fca1bd4e8fba)
प्लॉटली इंटरएक्टिव 2D और 3D ग्राफिंग का समर्थन करता है। रेखांकन D3.js साथ गाया जाता है और एक साथ बनाया जा सकता अजगर एपीआई , matplotlib , अजगर के लिए ggplot , Seaborn , prettyplotlib , और पांडा । आप ज़ूम, पैन, टॉगल निशान को चालू और बंद कर सकते हैं, और होवर पर डेटा देख सकते हैं। भूखंडों को HTML, एप्लिकेशन, डैशबोर्ड और IPython नोटबुक में एम्बेड किया जा सकता है। नीचे एक तापमान ग्राफ है जो अन्तरक्रियाशीलता दिखा रहा है। अधिक उदाहरणों के लिए आईपीथॉन नोटबुक ट्यूटोरियल की गैलरी देखें ।
डॉक्स समर्थित साजिश प्रकार और कोड के टुकड़े के उदाहरण प्रदान करता है।
विशेष रूप से आपके प्रश्न के लिए, आप NetworkX से इंटरैक्टिव प्लॉट भी बना सकते हैं ।
पायथन के साथ 3 डी प्लॉटिंग के लिए, आप 3 डी स्कैटर, लाइन और सतह प्लॉट बना सकते हैं जो समान रूप से इंटरैक्टिव हैं। वेबलॉग के साथ प्लॉट दिए गए हैं। उदाहरण के लिए, यूके स्वैप दरों का 3 डी ग्राफ देखें ।
प्रकटीकरण: मैं प्लॉटली टीम पर हूं।
क्या आपने विन्सेंट को देखा है? विन्सेंट पायथन डेटा ऑब्जेक्ट लेता है और उन्हें वेगा विज़ुअलाइज़ेशन व्याकरण में परिवर्तित करता है। वेगा एक उच्च-स्तरीय दृश्य उपकरण है जो डी 3 के शीर्ष पर बनाया गया है। D3py की तुलना में, विन्सेन्ट रेपो को हाल ही में अपडेट किया गया है। हालांकि उदाहरण सभी स्थिर डी 3 हैं।
और जानकारी:
ग्राफ Ipython में देखे जा सकते हैं, बस इस कोड को जोड़ें
vincent.core.initialize_notebook()
या JSON के लिए आउटपुट जहां आप वेगा ऑनलाइन संपादक ( http://trifacta.github.io/vega/editor/ ) में JSON आउटपुट ग्राफ देख सकते हैं या उन्हें अपने पायथन सर्वर पर स्थानीय रूप से देख सकते हैं। देखने के बारे में अधिक जानकारी ऊपर pypi लिंक में मिल सकती है।
निश्चित नहीं है कि कब, लेकिन पंडों के पैकेज में किसी बिंदु पर डी 3 एकीकरण होना चाहिए। http://pandas.pydata.org/developers.html
बोकेह एक पायथन विज़ुअलाइज़ेशन लाइब्रेरी है जो इंटरैक्टिव विज़ुअलाइज़ेशन का समर्थन करती है। इसका प्राथमिक आउटपुट बैकएंड HTML5 कैनवस है और क्लाइंट / सर्वर मॉडल का उपयोग करता है।
एक नुस्खा जो मैंने उपयोग किया है (यहाँ वर्णित है: GEXF में सह-निदेशक नेटवर्क डेटा फाइलें और ओपनकॉर्पोरेट्स डेटा से स्क्रैपरविकी और नेटवर्कएक्स से JSON ) निम्नानुसार चलता है:
Networkx JSON निर्यातक रूप ले लेता है:
from networkx.readwrite import json_graph
import json
print json.dumps(json_graph.node_link_data(G))
वैकल्पिक रूप से आप नेटवर्क को GEXF XML फ़ाइल के रूप में निर्यात कर सकते हैं और फिर इस प्रतिनिधित्व को sigma.js जावास्क्रिप्ट विज़ुअल लाइब्रेरी में आयात कर सकते हैं।
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)
एक अन्य विकल्प bokeh है जो अभी संस्करण 0.3 में गया था।
Https://altair-viz.github.io/ - d3py और विनसेंट के उत्तराधिकारी का प्रयास करें । यह सभी देखें
मैं mpld3 का उपयोग करने का सुझाव दूंगा जो कि pjthon के matplotlib के साथ D3js जावास्क्रिप्ट विज़ुअलाइज़ेशन को जोड़ती है।
स्थापना और उपयोग वास्तव में सरल है और इसमें कुछ शांत प्लगइन्स और इंटरैक्टिव सामान हैं।
प्लोटी आपके लिए कुछ शांत चीजें कर सकता है
अत्यधिक संवादात्मक रेखांकन पैदा करता है जिसे आसानी से अपने निजी सर्वर या वेबसाइट के लिए एचटीएमएल पृष्ठों को बंद लाइन एपीआई का उपयोग करके एम्बेड किया जा सकता है।
अद्यतन: मुझे लगता है कि इसकी 3 डी प्लॉटिंग क्षमताओं के बारे में निश्चित है, 2 डी ग्राफ़ के लिए बहुत बढ़िया है धन्यवाद
आप अपने डेटा को क्रमबद्ध करना भी चुन सकते हैं और फिर इसे D3.js में विज़ुअलाइज़ कर सकते हैं, जैसा कि यहां किया गया है: एक डी 3 फोर्स डायरेक्टेड नेटवर्क डायग्राम बनाने के लिए पायथन और पंडों का उपयोग करें (यह एक ज्यूपिटर नोटबुक के साथ भी आता है !)
यहाँ है जिस्ट। आप इस प्रारूप में अपने ग्राफ डेटा को क्रमबद्ध करें:
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
मैं आपको लिंक का उल्लेख है, लेकिन।
जावास्क्रिप्ट के लिए NetworkX का एक दिलचस्प पोर्ट है जो वह कर सकता है जो आप चाहते हैं। Http://felix-kling.de/JSNetworkX/ देखें
देख:
वहाँ एक अच्छा इंटरैक्टिव 3 डी ग्राफ पुस्तकालय है?
स्वीकृत उत्तर निम्नलिखित कार्यक्रम का सुझाव देता है, जिसमें जाहिरा तौर पर अजगर बाँधता है: http://ubietylab.net/ubigol/
संपादित करें
मैं NetworkX की अन्तरक्रियाशीलता के बारे में निश्चित नहीं हूँ, लेकिन आप निश्चित रूप से 3D ग्राफ़ बना सकते हैं। गैलरी में कम से कम एक उदाहरण है:
http://networkx.lanl.gov/examples/drawing/edge_colormap.html
और 'उदाहरण' में एक और उदाहरण। हालाँकि, यह आवश्यक है कि आपके पास मायावी हो।
http://networkx.lanl.gov/examples/3d_drawing/mayavi2_spring.html
मुझे अपने आप ही यहां पायथन का उपयोग करते हुए D3.js नेटवर्क आरेख बनाने का एक अच्छा उदाहरण मिल गया है: http://brandonrose.org/ner2sna
अच्छी बात यह है कि आप स्वतः उत्पन्न HTML और JS के साथ समाप्त हो सकते हैं और एक IFrame के साथ नोटबुक में इंटरैक्टिव डी 3 चार्ट एम्बेड कर सकते हैं
पुस्तकालय d3graph
अजगर के भीतर से एक बल-निर्देशित डी 3-ग्राफ का निर्माण करेगा। आप किनारे के वजन के आधार पर नेटवर्क को "तोड़" सकते हैं, और अधिक जानकारी के लिए नोड्स पर मंडरा सकते हैं। एक नोड पर डबल क्लिक नोड और इसके जुड़े किनारों पर ध्यान केंद्रित करेगा।
pip install d3graph
उदाहरण:
source = ['node A','node F','node B','node B','node B','node A','node C','node Z']
target = ['node F','node B','node J','node F','node F','node M','node M','node A']
weight = [5.56, 0.5, 0.64, 0.23, 0.9,3.28,0.5,0.45]
# Import library
from d3graph import d3graph, vec2adjmat
# Convert to adjacency matrix
adjmat = vec2adjmat(source, target, weight=weight)
print(adjmat)
# target node A node B node F node J node M node C node Z
# source
# node A 0.00 0.0 5.56 0.00 3.28 0.0 0.0
# node B 0.00 0.0 1.13 0.64 0.00 0.0 0.0
# node F 0.00 0.5 0.00 0.00 0.00 0.0 0.0
# node J 0.00 0.0 0.00 0.00 0.00 0.0 0.0
# node M 0.00 0.0 0.00 0.00 0.00 0.0 0.0
# node C 0.00 0.0 0.00 0.00 0.50 0.0 0.0
# node Z 0.45 0.0 0.00 0.00 0.00 0.0 0.0
# Example A: simple interactive network
out = d3graph(adjmat)
# Example B: Color nodes
out = d3graph(adjmat, node_color=adjmat.columns.values)
# Example C: include node size
node_size = [10,20,10,10,15,10,5]
out = d3graph(adjmat, node_color=adjmat.columns.values, node_size=node_size)
# Example D: include node-edge-size
out = d3graph(adjmat, node_color=adjmat.columns.values, node_size=node_size, node_size_edge=node_size[::-1], cmap='Set2')
# Example E: include node-edge color
out = d3graph(adjmat, node_color=adjmat.columns.values, node_size=node_size, node_size_edge=node_size[::-1], node_color_edge='#00FFFF')
# Example F: Change colormap
out = d3graph(adjmat, node_color=adjmat.columns.values, node_size=node_size, node_size_edge=node_size[::-1], node_color_edge='#00FFFF', cmap='Set2')
# Example H: Include directed links. Arrows are set from source -> target
out = d3graph(adjmat, node_color=adjmat.columns.values, node_size=node_size, node_size_edge=node_size[::-1], node_color_edge='#00FFFF', cmap='Set2', directed=True)
टाइटैनिक-केस से इंटरएक्टिव उदाहरण यहां पाया जा सकता है: https://erdogant.github.io/docs/d3graph/titanic_example/index.html https://erdogant.github.io/pnet/pages/html/Use%20Cases .html