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 phylo
und verwenden können ape
:
library(ape)
library(cluster)
data(mtcars)
plot(as.phylo(hclust(dist(mtcars))),type="fan")
Ergebnis:
ape
Paket 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_dendrogram
Funktion 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: