7
votes

Comment générer un fichier graphyml dans Java. Gephi, Jgraph, Préfuse, etc.

aide! Je cherche à créer une application Java forte> que génère em> un graphique strong> dans l'un de ces formats:

  • .graphml strong> li>
  • .ygf li>
  • .gml li>
  • .tgf li> ul>

    Je dois être capable de Ouvrir le fichier fort> dans l'éditeur graphique " yed fort>" . p>

    jusqu'à présent, j'ai trouvé ces solutions: p>

    1. Yfiles pour Java em> fort>
      • PRO: Exporter vers GraphML, capable d'ouvrir dans Yed, Java basé, parfait. li>
      • Pourquoi je ne peux pas l'utiliser: vous coûterait plus que 2000 $ strong> à utiliser :( c'est exactement ce dont j'ai besoin cependant li> ul> li>
      • gephi em> strong>
        • PRO: GRATUIT, Export à GraphML, Java basé! Li>
        • Pourquoi je ne peux pas l'utiliser: lorsque j'essaie d'ouvrir le fichier GraphML généré dans Yed, le graphml est cassé fort>: c'est linéaire - une ligne, comme celle-ci capture d'écran forte> >: li>
        • Entrez la description de l'image ici li>
        • Si je reçois le travail, c'est parfait li>
        • Le graphique que j'ai essayé a été généré à l'aide de son exemple de projet LI> ul> li>
        • JGraphX ​​ em> strong>
          • Pro: Capable de générer un graphique, Java basé sur Li>
          • Pourquoi je ne peux pas l'utiliser: comment exporter le graphique généré sur graphml? je ne pouvais pas comprendre forte> ... li> ul> li>
          • Préfuse em> strong>
            • PRO: GRATUITE GRATUIT, GRAPHIQUE, Java basée sur LI>
            • Ce que je ne peux pas l'utiliser: On dirait que je peux lire graphml fort>, et ne pas écrire graphml. En outre, j'ai construit la démos bonne avec Build.sh tout, mais alors quand j'ai essayé de diriger Demos.jar, j'ai eu "Impossible de charger la classe principale" ... Li> ul> li>
            • blueprints em> strong> avec Lecteur de graphml et bibliothèque écrivaine em> strong> ( Tinkerpop em> strong> ? )
              • pro: Java, gratuit, semble que vous pouvez exporter graphml avec celui-ci li>
              • Pourquoi je ne peux pas l'utiliser: je suis confus, dois-je utiliser ceci conjointement avec l'une des "implémentations" répertoriées? Comment puis-je utiliser ceci? LI> ul> li>
              • jgraphe em> strong> avec GraphXEferrer em> strong>
                • PRO: Capable de générer un graphique, Java, gratuit, peut exporter vers graphml je pense li>
                • Pourquoi je ne peux pas l'utiliser: je ne peux pas comprendre comment l'exporter! Lorsque j'ai essayé d'ouvrir le graphyml généré dans Yed, j'ai eu " Yed fort> a rencontré le suivant fort> error strong>: n'a pas pu importer de tests de fichier.Graphml strong>. " J'ai utilisé son projet d'exemple et j'ai fait ceci: li> ul> li> ol>

                  code JGRAPHT J'ai utilisé: p>

                  UndirectedGraph<String, DefaultEdge> g = new SimpleGraph<String, DefaultEdge>(DefaultEdge.class);
                  
                  String v1 = "v1";
                  String v2 = "v2";
                  String v3 = "v3";
                  String v4 = "v4";
                  
                  // add the vertices
                  g.addVertex(v1);
                  g.addVertex(v2);
                  g.addVertex(v3);
                  g.addVertex(v4);
                  
                  // add edges to create a circuit
                  g.addEdge(v1, v2);
                  g.addEdge(v2, v3);
                  g.addEdge(v3, v4);
                  g.addEdge(v4, v1);
                  
                  
                  FileWriter w;
                  try {
                  GmlExporter<String, DefaultEdge> exporter = 
                      new GmlExporter<String, DefaultEdge>(); 
                      w = new FileWriter("test.graphml");
                      exporter.export(w, g);
                  } catch (IOException e) {
                      e.printStackTrace();
                  }
                  


1 commentaires

Avez-vous trouvé une solution? J'essaie de trouver une bibliothèque Java où je peux créer des graphiques, alors j'exporte vers graphml.


5 Réponses :


2
votes

Je ne sais pas si cela correspond à votre cas d'utilisation, mais j'utilise Neo4j pour créer un graphique, puis Utilisez le NEO4J-Shell-Outils pour exporter le graphique comme graphique. Peut-être que cela fonctionnera pour vous.


1 commentaires

Pas sûr que l'exportation GraphML de Gephi est cassée: En tant que membre impliqué dans la communauté Gephi, je n'ai vu aucun rapport à ce sujet. Je viens donc d'essayer d'exporter un réseau de Gephi dans le format GraphML, puis ouvrez ce fichier GraphML dans NODEXL (un autre lecteur GraphML à la manière!), Et le réseau affiché correctement. Peut-être que quelque chose ne va pas avec l'importateur Yed alors?



2
votes

Il suffit de remplacer chaque occurrence de gmlexporter avec graphxporter dans votre code. Cela devrait fonctionner.


0 commentaires

8
votes

Il pourrait être en retard pour répondre, mais pour la solution numéro deux: Juste après avoir importé le graphique dans Yed, cliquez simplement sur "Mise en page" et sélectionnez une. Yed ne choisira pas un pour vous comme défaut, c'est pourquoi il semblait être linéaire.


0 commentaires

1
votes

J'utilise de la bibliothèque de Préfuse et vous pouvez générer un fichier GraphML à partir d'un objet graphique avec de la classe GraphMliter.


0 commentaires

2
votes

J'ai également voulu exporter des graphiques Jgrapht pour yed mais n'était pas content des résultats. Par conséquent, j'ai créé un GMLWriter étendu à la prise en charge du format GML spécifique de YED (groupes, couleurs, différentes bords, ...).

GML-Writer-for-Yed


0 commentaires