r ggplot показать метки кластеров на графике

Я новичок в R и пытаюсь создать ряд цифр для своего алгоритма кластеризации. Сейчас я использую следующий код:

ggplot(df,aes(x=V1,y=V2)) + 
geom_point(aes(colour = factor(cluster)),alpha=0.7) +
scale_colour_manual(values=c("purple", "green","orange","black")) +
ggtitle("Visualizing users and their K-Means Euclidean Clusters")

Как видите, у меня есть четыре кластера, которые являются результатом k-средних. Теперь я хочу показать текст поверх моего сюжета. Например, на следующем изображении:

введите здесь описание изображения

Мне нужно среднее значение каждого кластера (или любого текста, такого как метки кластера), показанного над ним на этом рисунке (например, 0,5 над зеленой областью). Я предполагаю, что для этой цели я должен использовать geom_text, но, к сожалению, я понятия не имею, как это сделать. Буду признателен за любую оказанную помощь.

Спасибо


person ahajib    schedule 01.07.2015    source источник


Ответы (1)


Попробуй это

library(ggplot2)
cl <- kmeans(iris[, 1:2], 3, nstart = 25)
ggplot(transform(iris[, 1:2], cl = factor(cl$cluster)), 
       aes(x = Sepal.Length, y = Sepal.Width, colour = cl)) +
  geom_point() + 
  scale_colour_manual(values=c("purple", "green","orange")) + 
  annotate("point", x = cl$centers[, 1], y = cl$centers[, 2], size = 5, colour = c("purple", "green","orange")) + 
  annotate("text", x = cl$centers[, 1], y = cl$centers[, 2], font = 2, size = 10,
           label = apply(cl$centers, 1, function(x) paste(sprintf('%02.2f', x), collapse = ",") ), 
           colour = c("purple", "green","orange") )

введите здесь описание изображения

person lukeA    schedule 02.07.2015