Dendrogramm vergrößern bzw. lesbar gestalten

Wie erstelle ich Grafiken, was ist zu beachten?

Moderatoren: EDi, jogo

Anna2
Beiträge: 8
Registriert: Fr Okt 16, 2020 3:19 pm

Dendrogramm vergrößern bzw. lesbar gestalten

Beitrag von Anna2 »

Hallo zusammen,
ich habe gerade erst mit R und dem Thema hierarchische Clusteranalyse begonnen.
Die Funktion "plot" nach "hclust" liefert zwar sowas wie ein Dedrogramm, allerdings viel zu klein und nicht lesbar. Es ist nur eine Ansammlung von Strichen übereinander.
Die Distanzmatrix für die Clusterananalyse hat eine Größe von bis zu 3000x3000 Werten.
Wie kann man das Dendrogramm so vergrößern und verändern, das man daraus etwas ablesen kann?
Wie kann man die Grafik als Bild abspeichern, das deutlich genug ist, um es später in ein Dokument einzubinden?
Ich hoffe, ihr könnt mir helfen, auch wenn meine Programmierkenntnisse sehr sehr überschaubar sind.
Vielen Dank und viele Grüße
Anna
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Dendrogramm vergrößern bzw. lesbar gestalten

Beitrag von jogo »

Hallo Anna,

willkommen im Forum!
Bei so vielen Elementen ist es üblicherweise unpraktisch, alle Elemente im Dendrogramm zu haben.
Bitte schau mal nach den Parametern von plot.hclust()

Code: Alles auswählen

help("plot.hclust")
Falls es doch gewünscht ist, alle Elemente im Dendrogramm zu haben, wirst Du es in einer hohen Auflösung abspeichern müssen.
Weißt Du schon, welches Grafikformat Du verwenden möchtest?

Kannst Du uns auch bitte den Code mit dem Aufruf von hclust() zeigen?

Gruß, Jörg
Anna2
Beiträge: 8
Registriert: Fr Okt 16, 2020 3:19 pm

Re: Dendrogramm vergrößern bzw. lesbar gestalten

Beitrag von Anna2 »

Hallo Jörg,
danke für die schnelle Reaktion.

Code: Alles auswählen

meintab <- read.csv2(file="fus1.csv", dec=".", sep=";", header=TRUE)
d <- dist(meintab, method = "binary", diag = FALSE, upper = FALSE)
hc <- hclust(d, method = "single", members = NULL)
plot(hc)
Mein Problem ist, daß ich so gut wie kein Englisch kann. D.h. ich kann nicht viel mit der R-Hilfe anfangen und habe bisher auch noch kein Handbuch in deutscher Sprache gefunden.
Mit welcher Funktion kann man eine hohe Auflösung abspeichern? Welche Bildformate sind möglich? Die Bilder sollen später in Word eingebunden werden.

Danke und viele Grüße
Anna
Zuletzt geändert von jogo am Fr Okt 16, 2020 4:27 pm, insgesamt 1-mal geändert.
Grund: Formatierung verbessert. http://forum.r-statistik.de/viewtopic.php?f=20&t=29
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Dendrogramm vergrößern bzw. lesbar gestalten

Beitrag von jogo »

Anna2 hat geschrieben: Fr Okt 16, 2020 4:17 pm

Code: Alles auswählen

meintab <- read.csv2(file="fus1.csv", dec=".", sep=";", header=TRUE)
d <- dist(meintab, method = "binary", diag = FALSE, upper = FALSE)
hc <- hclust(d, method = "single", members = NULL)
plot(hc)
Mein Problem ist, daß ich so gut wie kein Englisch kann. D.h. ich kann nicht viel mit der R-Hilfe anfangen und habe bisher auch noch kein Handbuch in deutscher Sprache gefunden.
oh, das ist nicht gut für die Arbeit mit R. Wobei das Englisch in den Hilfetext recht minimalistisch ist im Vergleich zur Umgangssprache.
Mit welcher Funktion kann man eine hohe Auflösung abspeichern? Welche Bildformate sind möglich? Die Bilder sollen später in Word eingebunden werden.
Es gibt Funktionen für die Erstellung folgender Formate:
BMP, JPEG, PNG und TIFF
Alle Beschreibungen findest Du in einem Hilfetext, z.B.

Code: Alles auswählen

help("png")
Gruß, Jörg
Anna2
Beiträge: 8
Registriert: Fr Okt 16, 2020 3:19 pm

Re: Dendrogramm vergrößern bzw. lesbar gestalten

Beitrag von Anna2 »

Hallo Jörg,

die Funktion "png" erzeugt bei mir leider nur eine Datei der Größe 0 Bytes, die nicht geöffnet werden kann.

png(filename = "Rplot%03d.png", width = 480, height = 480, units = "px", pointsize = 12, bg = "white")

Viele Grüße
Anna
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Dendrogramm vergrößern bzw. lesbar gestalten

Beitrag von EDi »

Falls du RStudio als Entwicklungsumgebung nutzt kannst du auch per Knopfdruck dort das machen. plotfenster => Export
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Dendrogramm vergrößern bzw. lesbar gestalten

Beitrag von jogo »

Hallo Anna,

Du verwendest die Funktion nicht richtig.
Anna2 hat geschrieben: Fr Okt 16, 2020 4:54 pm die Funktion "png" erzeugt bei mir leider nur eine Datei der Größe 0 Bytes, die nicht geöffnet werden kann.

png(filename = "Rplot%03d.png", width = 480, height = 480, units = "px", pointsize = 12, bg = "white")
Die Funktion png() erzeugt nur die Zeichenfläche. Das Zeichnen macht erst die plot-Funktion.
So etwa sollte es aussehen:

Code: Alles auswählen

png(filename = "Rplot%03d.png", width = 480, height = 480, units = "px", pointsize = 12, bg = "white")
plot(hc)
dev.off()
Gruß, Jörg
p.s.:
480 wird wahrscheinlich nicht reichen (evtl. 4800)
Du kannst auch einen eigenen Namen für die Datei wählen.
Anna2
Beiträge: 8
Registriert: Fr Okt 16, 2020 3:19 pm

Re: Dendrogramm vergrößern bzw. lesbar gestalten

Beitrag von Anna2 »

Hallo Jörg,

es funktioniert. Vielen Dank.

Gibt es eine Funktion, die mir
a) die Anzahl der Gruppen und
b) die einzelnen Objekte pro Gruppe
auf einer bestimmten Stufe/Höhe im Dendrogramm (z.B. bei h = 0,2) auflistet?

Viele Grüße
Anna
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Dendrogramm vergrößern bzw. lesbar gestalten

Beitrag von EDi »

Anna2 hat geschrieben: Fr Okt 16, 2020 9:24 pm Hallo Jörg,

es funktioniert. Vielen Dank.

Gibt es eine Funktion, die mir
a) die Anzahl der Gruppen und
b) die einzelnen Objekte pro Gruppe
auf einer bestimmten Stufe/Höhe im Dendrogramm (z.B. bei h = 0,2) auflistet?

Viele Grüße
Anna

Code: Alles auswählen

?cutree
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Anna2
Beiträge: 8
Registriert: Fr Okt 16, 2020 3:19 pm

Re: Dendrogramm vergrößern bzw. lesbar gestalten

Beitrag von Anna2 »

Hallo EDi,

vielen Dank für den Hinweis.
"cutree" funktioniert leider nur für hclust mit Single- bzw. Complete Linkage, aber nicht für Ward.
Der Fehler besagt, daß die Höhen nicht sortiert sind. Wenn man sich die Höhe ($height) ausgiebt, sind die Werte aber aufsteigend sortiert.

> hcFuss <- hclust(distanzFuss, method = "ward.D2", members = NULL)
> write.csv2((cutree(hcFuss, h=5.9)), file="fuss_h59.csv")
Fehler in cutree(hcFuss, h = 5.9) :
the 'height' component of 'tree' is not sorted (increasingly)
> write.csv2((cutree(as.hclust(hcFuss), h=5.9)), file="fuss_h590.csv")
Fehler in cutree(as.hclust(hcFuss), h = 5.9) :
the 'height' component of 'tree' is not sorted (increasingly)

Wie kann man sich die Anzahl der Gruppen und die einzelnen Objekte pro Gruppe auf einer bestimmten Höhe im Dendrogramm auflisten lassen für die Funktion hclust mit ward.D2?

Danke und viele Grüße
Anna
Antworten