Ich beziehe mich auf so etwas:

Vorgeschlagener Datensatz zum Anzeigen einer Lösung:
data(mtcars)
plot(hclust(dist(mtcars)))
Ich beziehe mich auf so etwas:

Vorgeschlagener Datensatz zum Anzeigen einer Lösung:
data(mtcars)
plot(hclust(dist(mtcars)))
Antworten:
In der Phylogenetik ist dies ein Fan-Phylogramm, sodass Sie dieses konvertieren phylound verwenden können ape:
library(ape)
library(cluster)
data(mtcars)
plot(as.phylo(hclust(dist(mtcars))),type="fan")
Ergebnis:

apePaket finden!
Hast du diesen Beitrag gesehen? http://groups.google.com/group/ggplot2/browse_thread/thread/8e1efd0e7793c1bb
Nehmen Sie das Beispiel, fügen Sie coord_polar () hinzu und kehren Sie die Achsen um, und Sie kommen ziemlich nahe:
library(cluster)
data(mtcars)
x <- as.phylo(hclust(dist(mtcars)))
p <- ggplot(data=x)
p <- p + geom_segment(aes(y=x,x=y,yend=xend,xend=yend), colour="blue",alpha=1)
p <- p + geom_text(data=label.phylo(x), aes(x=y, y=x, label=label),family=3, size=3) + xlim(0, xlim) + coord_polar()
theme <- theme_update( axis.text.x = theme_blank(),
axis.ticks = theme_blank(),
axis.title.x = theme_blank(),
axis.title.y = theme_blank(),
legend.position = "none"
)
p <- p + theme_set(theme)
print(p)
p <- ggplot(data=x)Ich erhalte diesen Fehler : ggplot2 doesn't know how to deal with data of class phylo. Was vermisse ich?
Vier Jahre später kann ich diese Frage nun beantworten. Dies kann durch Kombinieren von zwei neuen Paketen erfolgen: circlize und dendextend .
Der Plot kann mit der circlize_dendrogramFunktion erstellt werden (was eine wesentlich genauere Steuerung des "Fan" -Layouts der Funktion plot.phylo ermöglicht).
# install.packages("dendextend")
# install.packages("circlize")
library(dendextend)
library(circlize)
# create a dendrogram
hc <- hclust(dist(datasets::mtcars))
dend <- as.dendrogram(hc)
# modify the dendrogram to have some colors in the branches and labels
dend <- dend %>%
color_branches(k=4) %>%
color_labels
# plot the radial plot
par(mar = rep(0,4))
# circlize_dendrogram(dend, dend_track_height = 0.8)
circlize_dendrogram(dend, labels_track_height = NA, dend_track_height = .4)
Und das Ergebnis ist:
