Quelqu'un peut-il recommander une bibliothèque Python capable de visualiser des graphiques interactifs ?
Je veux spécifiquement quelque chose comme d3.js, mais python
idéalement, ce serait aussi la 3D.
J'ai regardé:
- NetworkX - il ne fait que des
Matplotlib
graphiques et ceux-ci semblent être en 2D. Je n'ai vu aucune sorte d'interactivité, comme celle quid3.js
donne, comme tirer des nœuds. - graph-tool - il ne fait que des tracés 2D et a des graphiques interactifs très lents .
python
graph
d3.js
graph-tool
Eiyrioü von Kauyf
la source
la source
Réponses:
Vous pouvez utiliser d3py un module python qui génère des pages xml intégrant le script d3.js. Par exemple :
la source
with d3py.NetworkXFigure(G, width=500, height=500, host="localhost") as p:
. J'ai vérifié le dernier commit de d3py sur github (SHA: 4e92a90f4003370bc086e0f57b19fca1bd4e8fba)Plotly prend en charge la représentation graphique 2D et 3D interactive. Les graphiques sont rendus avec D3.js et peuvent être créés avec une API Python , matplotlib , ggplot pour Python , Seaborn , prettyplotlib et pandas . Vous pouvez zoomer, faire un panoramique, activer et désactiver les traces et voir les données en survol. Les tracés peuvent être intégrés dans du HTML, des applications, des tableaux de bord et des blocs-notes IPython. Vous trouverez ci-dessous un graphique de température montrant l'interactivité. Consultez la galerie de didacticiels IPython Notebooks pour plus d'exemples.
La documentation fournit des exemples de types de tracés et d'extraits de code pris en charge.
Pour répondre spécifiquement à votre question, vous pouvez également créer des graphiques interactifs à partir de NetworkX.
Pour le traçage 3D avec Python, vous pouvez créer des tracés 3D de dispersion, de ligne et de surface qui sont également interactifs. Les tracés sont rendus avec WebGL. Par exemple, consultez un graphique 3D des taux de swap britanniques.
Divulgation: je fais partie de l'équipe Plotly.
la source
Avez-vous regardé Vincent? Vincent prend des objets de données Python et les convertit en grammaire de visualisation Vega. Vega est un outil de visualisation de plus haut niveau construit sur D3. Par rapport à D3py, le repo vincent a été mis à jour plus récemment. Bien que les exemples soient tous statiques D3.
Plus d'informations:
https://github.com/wrobstory/vincent
https://pypi.python.org/pypi/vincent/0.1.6
Les graphiques peuvent être visualisés en Ipython, il suffit d'ajouter ce code
Ou sortie vers JSON où vous pouvez afficher le graphique de sortie JSON dans l'éditeur en ligne Vega ( http://trifacta.github.io/vega/editor/ ) ou les afficher localement sur votre serveur Python. Plus d'informations sur la visualisation peuvent être trouvées dans le lien pypi ci-dessus.
Je ne sais pas quand, mais le package Pandas devrait avoir une intégration D3 à un moment donné. http://pandas.pydata.org/developers.html
Bokeh est une bibliothèque de visualisation Python qui prend en charge la visualisation interactive. Son principal moteur de sortie est HTML5 Canvas et utilise le modèle client / serveur.
exemples: http://continuumio.github.io/bokehjs/
la source
Une recette que j'ai utilisée (décrite ici: Co-Director Network Data Files in GEXF and JSON from OpenCorporates Data via Scraperwiki et networkx ) fonctionne comme suit:
L' exportateur JSON networkx prend la forme:
Vous pouvez également exporter le réseau sous forme de fichier XML GEXF , puis importer cette représentation dans la bibliothèque de visualisation Javascript sigma.js .
la source
Une autre option est le bokeh qui vient de passer à la version 0.3.
la source
Pour ceux qui ont recommandé pyd3 , il n'est plus en développement actif et vous renvoie à Vincent . vincent n'est également plus en développement actif et recommande d'utiliser altair .
Donc, si vous voulez un d3 pythonique, utilisez altair.
la source
Essayez https://altair-viz.github.io/ - le successeur de d3py et vincent. Voir également
la source
Découvrez python-nvd3 . C'est un wrapper python pour nvd3. Semble plus cool que d3.py et a également plus d'options de graphique.
la source
Je suggérerais d'utiliser mpld3 qui combine les visualisations javascript D3js avec matplotlib de python.
L'installation et l'utilisation sont vraiment simples et il y a des plugins sympas et des trucs interactifs.
http://mpld3.github.io/
la source
Plotly peut faire des trucs sympas pour vous
https://plot.ly/
Produit des graphiques hautement interactifs qui peuvent être facilement intégrés aux pages HTML de votre serveur ou site Web privé à l'aide de son API hors ligne.
Mise à jour: Je suis sûr de ses capacités de traçage 3D, pour les graphiques 2D, c'est génial Merci
la source
Vous pouvez également choisir de sérialiser vos données, puis de les visualiser dans D3.js, comme cela est fait ici: Utilisez Python & Pandas pour créer un diagramme de réseau dirigé par la force D3 (il est également livré avec un notebook Jupyter !)
Voici l'essentiel. Vous sérialisez vos données graphiques dans ce format:
Ensuite, vous chargez les données avec d3.js:
Pour la routine,
drawGraph
je vous renvoie cependant au lien.la source
Il existe un portage intéressant de NetworkX vers Javascript qui pourrait faire ce que vous voulez. Voir http://felix-kling.de/JSNetworkX/
la source
Voir:
Existe-t-il une bonne bibliothèque de graphiques 3D interactifs?
La réponse acceptée suggère le programme suivant, qui a apparemment des liaisons python: http://ubietylab.net/ubigraph/
Éditer
Je ne suis pas sûr de l'interactivité de NetworkX, mais vous pouvez certainement créer des graphiques 3D. Il y a au moins un exemple dans la galerie:
http://networkx.lanl.gov/examples/drawing/edge_colormap.html
Et un autre exemple dans les «exemples». Celui-ci, cependant, nécessite que vous ayez Mayavi.
http://networkx.lanl.gov/examples/3d_drawing/mayavi2_spring.html
la source
J'ai un bon exemple de génération automatique de diagrammes de réseau D3.js en utilisant Python ici: http://brandonrose.org/ner2sna
Ce qui est cool, c'est que vous vous retrouvez avec du HTML et du JS générés automatiquement et que vous pouvez intégrer le graphique D3 interactif dans un cahier avec un IFrame
la source
La bibliothèque
d3graph
construira un d3-graph dirigé par la force à partir de python. Vous pouvez "casser" le réseau en fonction de l'épaisseur des bords et survoler les nœuds pour plus d'informations. Double-cliquez sur un nœud pour se concentrer sur le nœud et ses bords connectés.Exemple:
Un exemple interactif du cas titanique peut être trouvé ici: https://erdogant.github.io/docs/d3graph/titanic_example/index.html https://erdogant.github.io/hnet/pages/html/Use%20Cases .html
la source