schemat struktury, gdzie każdy członek grupy są podłączone do centrum i wszystkich klastra grand center w r

Próbuję stworzyć diagram struktury z danych jak poniżej:

mydf <- data.frame ( group = rep (1:5, each = 20), z = rnorm (20, 10, 1),
                  x = c(rnorm (20, 2, 0.5), rnorm (20, 2, 0.5),
          rnorm (20, 9, 0.5), rnorm (20, 9, 0.5),rnorm (20, 5, 0.5)),
       y = c(rnorm (20, 2, 0.5), rnorm (20, 9, 0.5), rnorm (20, 2, 0.5),
      rnorm (20, 9, 0.5), rnorm (20, 2, 0.5)))

means <- aggregate(. ~ group, data = mydf, mean)
gmx <-mean (mydf$x)
gmy <- mean (mydf$y)

library(ggplot2)
ggplot(mydf, aes(x, y)) +
geom_point(aes(colour= factor (group), size=z)) + theme_bw()

Chcę podłączyć każdy punkt w każdym klastrze do jego centrum, a następnie Centrum klastra do średniej grad. To będzie produkować Wykres jak poniżej (tylko szorstki szkic, gdzie dwa klastry są połączone z centrum, w rzeczywistości wszystkie klastry mają takie same):.........

(chciałbym użyć segmentów linii tego samego koloru co klaster, jeśli to możliwe)

Tutaj wpisz opis obrazka

Author: SHRram, 2012-07-14

1 answers

Oto exmaple:

library(plyr)
ms <- ddply(mydf, .(group), colwise(mean))
mydf2ms <- merge(mydf, ms, by = "group")
gm <- ddply(mydf, NULL, colwise(mean))
ms2gm <- data.frame(ms, gm)

ci <- expand.grid(1:3*2, seq(0, 2*pi, length = 180))
ci <- transform(ci, x = cos(Var2) * Var1 + gm$x, y = sin(Var2) * Var1 + gm$y)

library(ggplot2)
ggplot(mydf, aes(x, y)) +
  geom_point(aes(colour= factor (group), size=z)) +
  geom_segment(data = mydf2ms, mapping = aes(x = x.x, y = y.x, xend = x.y, yend = y.y, colour = factor(group))) +
  geom_segment(data = ms2gm, mapping = aes(x = x, y = y, xend = x.1, yend = y.1)) +
  geom_point(data = ms, colour = "black", size = 10, shape = 4) +
  geom_point(data = gm, colour = "red", size = 10, shape = 4) +
  geom_path(data = ci, mapping = aes(group = Var1), colour = "pink")

Tutaj wpisz opis obrazka

 14
Author: kohske,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-14 14:40:51