ändert den Abstand zwischen Scheitelpunkten in iGraph in R

9

Angenommen, ich möchte ein Diagramm mit den folgenden Daten erstellen:

%Vor%

Ich erhalte eine Handlung wie die folgende:

Wie Sie sehen können, sind die Abstände zwischen einigen der Eckpunkte so klein, dass sich diese Eckpunkte überlappen.

1. Ich frage mich, ob es eine Möglichkeit gibt, den Abstand zwischen Scheitelpunkten zu ändern.

2. Ist der Abstand zwischen den Scheitelpunkten beliebig? Zum Beispiel sind die Scheitelpunkte 3, 4 und 5 sehr nahe beieinander, aber 5 und 6 sind weit voneinander entfernt.

BEARBEITEN:

Für meine zweite Frage denke ich, dass der Abstand von der Anzahl der darunter liegenden Knoten abhängt. ZB 10 und 11 sind weiter voneinander entfernt als 8 und 9, weil es mehr Kinder unter 10 und 11 gibt als unter 8 und 9.

    
Alex 14.08.2015, 14:07
quelle

1 Antwort

3

Ich wette, es gibt eine bessere Lösung, aber ich kann es nicht finden. Hier mein Ansatz. Da anscheinend ein allgemeiner Parameter für die Breite fehlt, müssen Sie manuell Parameter anpassen, um die gewünschte Ausgabe zu erhalten.

Mein Ansatz besteht in erster Linie darin, einige Elemente der Handlung zu verändern, um sie in die richtige Größe zu bringen, die Ränder anzupassen, um den Raum so weit wie möglich zu optimieren. Der wichtigste Parameter ist hier der asp -Parameter, der das Seitenverhältnis des Plots steuert (da in diesem Fall der Plot, den ich vermute, besser lang ist als hoch, ist ein Seitenverhältnis von sogar weniger als 0,5 richtig). Andere Tricks sind, die Größe von Vertex und Schriftarten zu verringern. Hier ist der Code:

%Vor%

Das erzeugt diese Handlung:

Ein anderer Ansatz wäre, grafische Geräte auf PDF (oder JPEG usw.) zu setzen und dann rescale auf FALSE zu setzen. Mit Rstudio Viewer wird ein riesiger Teil der Daten abgeschnitten, aber mit anderen Grafikgeräten funktioniert es (nicht garantiert) gut.

Wie auch immer, für jeden Zweifel über die Verwendung dieser Parameter (die manchmal sehr schwierig sind) geben Sie help(igraph.plotting)

ein

Für den zweiten Teil der Frage bin ich mir nicht sicher, aber wenn ich in die Funktion gucke, kann ich keine genaue Antwort finden, aber ich denke, dass der Abstand zwischen Elementen auf derselben Ebene auf den Kindelementen berechnet wird, sagen wir 3, 4,5 müssen näher sein, weil sie Kind und Unterkind haben und dann mehr Platz benötigen.

    
SabDeM 14.08.2015, 15:32
quelle

Tags und Links