Wie erstelle ich einen radialen Cluster wie das folgende Code-Beispiel in Python?

8

Ich habe mehrere Beispiele dafür gefunden, wie diese exakten Hierarchien erstellt werden (zumindest glaube ich, dass sie das sind) wie folgt: stackoverflow.com/questions/2982929/ die gut funktionieren, und fast das, was ich suche.

[EDIT] Hier ist eine vereinfachte Version von Paul Code, der jetzt leichter für jemanden sein sollte, um zu helfen dies in einen radialen Cluster anstelle dieser aktuellen Clusterform

%Vor%

Aber anstelle einer baumartigen Struktur brauche ich einen radialen Cluster wie die folgenden Diagramme.

    
Morvern 23.02.2011, 09:28
quelle

3 Antworten

4

Ich habe dieses Problem ein wenig genauer untersucht und es scheint jetzt das Beste zu sein, eine neue Funktion zum Zeichnen von radial cluster direkt aus der linkage Ausgabe zu erstellen (anstatt die geplottete zu hacken). Ich mag vielleicht etwas kochen, aber nicht sehr bald.

Ich gehe davon aus, dass Ihre Daten diese Art der radialen Einbettung natürlich zulassen. Hast du das verifiziert? Gibt es eine geeignete Methode in linkage für Ihre Zwecke?

Es scheint, dass für jede Methode linkage eine binäre Baumstruktur zurückgibt. In Ihren Beispielen haben Sie einen allgemeineren Baum. Sie benötigen zusätzliches Wissen, um Baumknoten zu konsolidieren. Dies alles macht die Idee, das ursprüngliche Dendrogramm zu hacken, ungültig.

Aktualisierung:
Wäre dieser naive Beispiel-Plot vernünftig genug für Ihre Zwecke? Wenn ja, kann ich einen wirklich einfachen Code veröffentlichen, um das zu erreichen. "Radiales Dendrogramm"

Update 2 :

Hier ist der Code:

radial_demo.py :

%Vor%

radial_grouper.py :

%Vor%

radial_support.py :

%Vor%

radial_visualizer.py :

%Vor%

Sie finden den Quellcode hier . Bitte zögern Sie nicht, es zu ändern, wie Sie möchten, aber bitte halten Sie die zukünftigen Änderungen mit dem Wesentlichen synchronisiert.

    
eat 24.02.2011, 08:26
quelle
5

Ich glaube, Sie können dies tun, indem Sie das networkx -Paket in Verbindung mit matplotlib verwenden. Sehen Sie sich das folgende Beispiel aus dem networkx gallery an:

Ссылка

Im Allgemeinen hat networkx eine Reihe von sehr schönen Graphanalyse- und Zeichenmethoden

    
JoshAdel 23.02.2011 12:45
quelle
5

Ich habe eine Funktion fix_verts hinzugefügt, die die Vertices an der Basis jedes "U" im Dendrogramm zusammenführt.

versuche das:

%Vor%

Das Ergebnis ist folgendes:

Ich hoffe, dass Sie danach gesucht haben.

    
Paul 23.02.2011 12:45
quelle