2011-06-26 9 views
8

J'ai implémenté un algorithme pour résoudre le problème du clustering dans un graphique. J'ai utilisé la bibliothèque python "python-graph" pour représenter le graphique. Maintenant, à chaque étape de mon calcul (l'algorithme est itératif), je dois dessiner une partie du dendrogramme. En fait, l'algorithme est source de division, en ce sens qu'à partir du graphe original, on calcule les grappes. Maintenant, je ne sais pas quoi utiliser pour dessiner le dendrogramme (quelqu'un a suggéré PIL, mais je cherche quelque chose de facile et je ne sais pas comment utiliser PIL) ... pouvez-vous suggérer quelque chose et me montrer comment faire l'intrigue avec?Dessiner manuellement un dendrogramme en python

Note: Je lis d'autres questions mais tout semble utiliser des méthodes qui utilisent le calcul automatique des clusters ... ce n'est pas ce que je cherche: je dois dessiner manuellement le dendrogramme ou au moins trouver un moyen de représentent les grappes calculées pour être dessinées.

Merci!

Répondre

2

Le code à implémenter scipy dendrogram peut être trouvé here et ce simple implementation vous aidera à passer à autre chose.

+0

Il est un qu'il est difficile de trouver un moyen, il est beaucoup de code à regarder et je ne peux toujours pas comprendre comment tirer le dendrogramme tout en générant ... Ce n'est pas facile de définir la taille de l'image sans connaître le résultat final. Je pense qu'une meilleure solution est de créer l'arbre, de le représenter d'une manière ou d'une autre et de trouver une fonction pour le représenter. Voir ici: http://stackoverflow.com/questions/5957625/how-can--create-a-dendrogram-in-r-using-pre-clustered-data-created-elsewhere – Raffo

+0

@Raffo: Avez-vous vérifié en détail façon https://gist.github.com/846567? À mon humble avis, c'est très simple et vous devriez pouvoir facilement en extraire ce dont vous avez vraiment besoin. Merci – eat

+0

Je dois creuser dans le code un peu, je ne l'ai pas regardé avec attention .. Je viens de voir qu'il n'y a presque aucun commentaire du tout .. – Raffo

2

La boîte à outils python ETE vous donne beaucoup de possibilités pour le dessin des arbres. Le moteur de dessin permet le rendu de l'arborescence par programme. Les arbres peuvent être tracés sous forme d'images PNG ou SVG. Les dendrogrammes peuvent être représentés comme des tresses rectangulaires ou circulaires.

Bien que ETE est couramment utilisé pour traiter les arbres phylogénétiques, il fournit également un module de clustering, avec plusieurs modes de visualisation prédéfinis spéciaux.

Vérifiez quelques exemples à http://packages.python.org/ete2/tutorial/tutorial_drawing.html

Questions connexes