Visualiser graphe biparti

Quelqu'un peut-il recommander une bibliothèque ou un code pour visualiser des graphiques bipartites en C#?

graphique # ne semble pas soutenir ce type de graphique directement (mais a certains supports pour démêler les sommets).

je veux créer un graphique comme celui-ci graphe bipartite avec du texte dans les noeuds. Des noeuds de même largeur et de même hauteur seraient idéaux.

un contrôle WPF serait parfait, comme il existe pour graphique.# Peut-être même une définition XAML existe-t-elle? Comme alternative: une fenêtre de rapport peut aussi être très bonne.

probablement quelqu'un avec plus d'expérience dans le graphique# peut fournir des conseils sur la façon de faire ceci en utilisant le Graphique#.

essayé autour d'un peu avec NodeXL, mais cela ne semble pas être la solution parfaite, comme les nœuds ne semble pas être beaucoup modifiables. Peut-être que quelqu'un peut fournir une meilleure solution. Ont joué avec le NetworkView fourni par Soroush. À l' au moment où ça se rapproche le plus de ce que je veux.

- mise à jour - Essai de NetworkView partagé par Soroush Falahati. Cela semble être une bonne base, mais n'est pas encore souples, comme j'en ai besoin. J'ai des problèmes pour croire que là est pas de bibliothèque à qui il peut faire ces choses hors de la boîte. (NetworkView a l'excellente caractéristique de régler les connexions / bords dans le contrôle ce qui lui donne un coup de pouce supplémentaire sur le NodeXL). Peut-être graphe# peut faire même plus, mais en ce moment, je viens d'essayer ces deux-là.

7
demandé sur Mare Infinitus 2013-01-30 17:00:33

6 réponses

vous pouvez vous rapprocher de votre représentation graphique bipartite dans NodeXL , et même l'améliorer en enlevant les traversées de bord. J'ai pris votre échantillon graphique bipartite, et dans l'image ci-dessous, j'ai coloré les noeuds à leurs côtés (u ou v). Ils sont présentés en utilisant l'algorithme Sugiyama qui minimise les croisements de bord. J'ai fait cela dans le modèle interactif NodeXL pour Excel 2007 -- 2013, mais toutes ces fonctionnalités devraient être disponibles comme le standalone NodeXL C# et WPF class libraries. Les bibliothèques comme de ce post sont disponibles pour télécharger ici .

Bipartite graph in NodeXL Sugiyama layout

j'ai aussi essayé la mise en page group-in-a-box de NodeXL pour séparer les groupes et les afficher individuellement dans une grille, avec des résultats marginaux.

NodeXL bipartite graph

clause de non-responsabilité: je suis conseiller pour le projet NodeXL.

2
répondu edallme 2013-02-03 17:40:15

en fait si vous pouviez utiliser le côté client jquery .. je recommande fortement jqPlumbs.. http://www.jsplumb.org/jquery/demo.html

2
répondu Mortalus 2013-02-01 18:26:59

Ok, comme tu veux,

voici un exemple / bibliothèque qui vous permet de créer des graphiques et des diagrammes facilement,

http://www.codeproject.com/Articles/182683/NetworkView-A-WPF-custom-control-for-visualizing-a

il a en fait de très bonnes caractéristiques.

1
répondu Soroush Falahati 2013-02-05 12:14:24
  1. yFiles WPF est une bibliothèque de classe étendue .NET pour les applications Windows Presentation Foundation (WPF). Ses commandes D'interface utilisateur de première classe pour l'affichage et l'édition de diagrammes vous permettent d'organiser automatiquement des graphiques, des diagrammes et des réseaux complexes avec le claquement d'un bouton. Notre bibliothèque graphique conçu pour les applications Windows Forms-based est yFiles.NET

  2. graphe# est un cadre graphique. Il contient des algorithmes de mise en page et un contrôle GraphLayout pour les applications WPF.

  3. utilisant WPF pour visualiser un graphique avec des dépendances circulaires

1
répondu zandi 2013-02-15 23:00:33

si vous pouvez le faire sous Windows, vous pouvez utiliser NShape . Puisque la source est disponible, vous pouvez probablement la transférer à WPF si vous en avez besoin. Il pourrait battre écrit à partir de zéro. Ou peut-être pourriez-vous héberger un contrôle WinForms pour obtenir la fonctionnalité dont vous avez besoin. Pas aussi agréable qu'une solution pure WPF, cependant.

0
répondu Charlie Kilian 2013-02-01 18:43:55

D3.js est une bibliothèque JavaScript pour manipuler des documents basés sur des données. D3 vous aide à donner vie aux données en utilisant HTML, SVG et CSS. L'accent mis par D3 sur les standards web vous donne toutes les capacités des navigateurs modernes sans vous attacher à un cadre propriétaire, combinant des composants de visualisation puissants et une approche basée sur les données à la manipulation DOM

D3 vous permet de lier des données arbitraires à un Document Object Model (DOM), puis d'appliquer des données pilotées des transformations du document. Par exemple, vous pouvez utiliser D3 pour générer une table HTML à partir d'un tableau de nombres. Ou bien, utilisez les mêmes données pour créer un graphique à barres de SVG interactif avec des transitions et des interactions en douceur.

D3 n'est pas monolithique cadre qui vise à fournir toutes les fonctionnalités imaginables. Au lieu de cela, D3 résout le nœud du problème: la manipulation efficace de documents basés sur des données. Cela évite la représentation exclusive et offre une flexibilité extraordinaire, exposer toutes les possibilités des standards web tels que CSS3, HTML5 et SVG. Avec des frais généraux minimes, D3 est extrêmement rapide, supportant de grands ensembles de données et des comportements dynamiques pour l'interaction et l'animation. Le style fonctionnel de D3 permet la réutilisation de code grâce à une collection variée de composants et de plugins.

http://d3js.org /

http://mbostock.github.com/d3/talk/20111116/force-collapsible.html

0
répondu zandi 2013-02-05 14:26:08