Question

Après avoir vu certains suggestions pour les graphiques, je me demande quel est l'optimum pour mon problème.

Je veux rendre un graphe orienté vers un servlet / image qui est affichée dans le navigateur. Il devrait y avoir une sorte d'optimisation de la position. Aucune dépendance Swing serait préférable. Les algorithmes ne sont pas importants, car la structure du graphique est déterminée par la logique métier. Il serait souhaitable d'être des étiquettes add capables de bords aussi bien. il serait optimal si je peux servir ce que .png / svg.

Quelle bibliothèque / services recommanderiez-vous?

précisions:

1) La question est tout au sujet des graphiques - comme graphe acyclique orienté - NON - < a href = "http://en.wikipedia.org/wiki/Chart" rel = "nofollow noreferrer"> Charts .

2) Flot, graphiques Google - ne peut tracer des graphiques, diagrammes seulement, ou ai-je manqué quelque chose

?

3) Non, je ne ai pas besoin d'interactivité

4) graphviz serait bien, mais la bibliothèque java grappa est tout à fait obsolète et est construit sur Swing / AWT. alors qu'il peut être théoriquement possible de rendre swing images, il ne serait pas ma façon préférée de manière à un serveur app.

5), il serait bon d'utiliser un service en ligne où les images ne sont pas hébergés sur place.

modifier: Ajout de liens vers Wikipedia pour clarifier le graphique / terme graphique

Était-ce utile?

La solution

En plus d'attendre des semaines pour entendre parler du cadre magique qui va résoudre tous vos problèmes en une seule ligne de code, il y a aussi l'autre option de simplement écrire du code vous de faire exactement ce que vous voulez ... (I ne dis pas que c'est à 10 minutes de travail, mais il est probablement un ou deux jours, et vous avez posté votre question il y a deux semaines ...)

Avez-vous eu un coup d'œil, par exemple, à l'entrée de Wikipedia sur algorithmes basés sur la force -. il a pseudocode et quelques liens qui pourraient être utiles

Je suppose qu'il est l'algorithme de mise en page qui est la question, et non pas la question de la création d'un BufferedImage, dessin à son contexte graphique, codant pour PNG et de l'envoyer sur la prise. Vous avez vraiment pas besoin d'un cadre pour que peu, je ne pense pas.

Autres conseils

Jetez un oeil à graphviz

yFiles pourrait être utile pour cela.

Comment sur le composant point de Graphviz? Elle produit des graphiques (non graphiques), sorties au format PNG et SVG, et prend en charge les bords d'étiquetage. Vous pouvez débourser à point pour générer l'image dont vous avez besoin, et le retour d'une balise img qui fait référence à cela. Vous pouvez renvoyer une balise img qui référence une URL qui va générer le graphique requis (ou récupérer une copie en cache). Voici le point info:

http://www.graphviz.org/pdf/dotguide.pdf

Vous pouvez également jeter un oeil à webdot, qui est apparemment conçu à cet effet:

http://www.graphviz.org/webdot/

aiSee . Il est utilisé par toutes sortes d'applications basées sur le Web pour data mining, analyse statique de programmes , visualisation de la matrice , analyse réseau , et ainsi de suite. Il est également utilisé par certains MediaWiki comme graph- backend mise en page.

Ils ont une énorme base de données graphiques échantillons sur au aiSee .com. Vérifiez-le. Il prend en charge les étiquettes de pointe, l'exportation vers le format SVG et HTML mappé, et ne dépend pas de Swing.

Nous créons mxGraph pour ces besoins. Nous avons fait libérons en 2006, mais a pris un certain temps pour remarquer cette question ...

Serverside , essayez JUNG , vous pouvez l'exécuter contre Batik et produire de beaux fichiers SVG ou PNG. JUNG a un design agréable et des algorithmes de mise en page très puissant ...

En outre, puisque vous mentionnez que "il serait bien d'utiliser un service en ligne " , graphviz fournir un service appelé webdot pour rendre les graphiques.

Il y a d'autres aussi bien le long de cette ligne ... par exemple http://graph.gafol.net/ (semble être vers le bas)

côté client:

  • http://arborjs.org/ pour une bibliothèque minimale (ish) est dédié à la mise en page, utilisez cela vous aimez préférer vos propres routines de rendu (div, toile, svg, paper.js, traitement ... etc).

  • Je aime aussi http://sigmajs.org/ pour une approche plus complète, construit en toucher le soutien, les plugins, les formats de fichiers, etc.

Fait intéressant, le projet Eclipse a un SWT / JFace composant / cadre capable d'afficher et générer (import / export) Le format 'DOT' de Graphviz, en Java pur:

ZEST (page d'accueil et liens de téléchargement)

Voir http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest pour des exemples d'utilisation.

Bien que ZEST est présenté comme un plug-in Eclipse, il ne semble que peut être utilisé et autonome de l'API DOT-manipulation externe à une installation Eclipse.

Vive

Rich

Vous pouvez essayer sigma.js: http://sigmajs.org/

Il est un poids léger, une bibliothèque open source en JavaScript pour afficher de grands graphiques sur le Web.

JPGD est un analyseur Graphviz en Java. Il est un petit abandonnèrent, mais le code est agréable et claire, et si vous trouvez des bugs, je suis sûr que l'auteur accepte des corrections apportées.

Bien que présenté comme un analyseur, il est également un générateur. Vous pouvez construire des graphiques comme des collections d'objets Node et Edge puis obtenir l'aide .dot Graph.toString (). Obtenir cela comme un graphique serait une simple coquille vers l'exécutable point Graphviz.

Sinon, dot est très facile de vous générer. Dans le cas, il est plus simple juste une question d'écrire un en-tête en pot

digraph myGraph {

... suivi d'une définition de bord par arête

node1 -> node2 ;

... suivi d'une accolade fermante

}

donc je pris alook à toutes les réponses données et des liens, il ressemble à Prefuse / Flare sera par le choix optimal. ils ont visialisations très attrayant, plus ils ont un support intégré pour les graphes.

Peut-être vérifier Google Charts ?

Vous pouvez utiliser SVG en combinaison avec Batik. Je l'ai utilisé plusieurs fois pour afficher les graphiques. Batik avec Java 1.5 est très rapide. Avec cette solution, vous pouvez programmer votre graphique en Java sans dépendance à Swing. Vous pouvez ajouter des étiquettes où vous voulez, l'hôte comme un Servlet et l'afficher comme svg ou .png.

Vous pouvez créer les graphiques en SVG (ce qui est un document XML).
Vous utilisez Batik pour transformer le SVG-document à une image PNG / JPG.
Vous pouvez utiliser un Servlet pour diffuser cette image au navigateur.

En java vous construisez un document SVG (= XML). Les échantillons pour les graphiques SVG peuvent être trouvés ici: graphique scène et ici: simple graphe orienté

Voir cette question , en particulier la réponse de Stephan A propos de Prefuse. Je lis que vous n'avez pas besoin d'interactivité, mais Prefuse peut encore être utile.

Je peux recommander de tout coeur Flot - excellente

Voir exemples .

JFreeChart pourrait être la façon dont vous voulez aller, mais vous faire une distinction entre les tableaux et graphiques. Peut-être que vous pouvez expliquer ce que vous entendez par là. Je suis habituellement utilisé ces termes synonymes. :)

JFreeChart a une bonne dispersion, le bar et la ligne des graphes ainsi que ceux amusants comme Pie et Dial alors peut-être cela fonctionnera pour vous.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top