Настройка вывода в fviz_cluster - PullRequest
0 голосов
/ 01 декабря 2018

Я бы хотел изменить результаты моего fviz_clust графика.В частности, измените легенду, чтобы сказать «Кластер» вместо «кластер», но также удалите фигурные линии, найденные в легенде (я думаю, что они буквы, но не совсем уверены).

Я знаю, fviz_cluster работает с другими элементами в ggplot. Поэтому моей первой мыслью было изменение названия легенды в каждом scale_..._.. моего сюжета, но это все равно привело к отображению оригинальной легенды.Во-вторых, я думал, что мог бы представить объект scale_shape_manual() для ggplot, но сюжет проигнорировал его.

Код:

km.res <- kmeans(iris[,-5], 3)
p <- fviz_cluster(km.res, iris[,-5]) +
scale_color_brewer(palette='Set2') + # set guides=FALSE to remove legend
scale_fill_brewer(palette='Set2') +
scale_shape_manual('1'=22,'2'=23,'3'=24) # plot ignores this
ggtitle(label='')
p

В идеале я хотел бы показать очень похожую легендучто производит fviz_cluster, но с формой и рамкой цвета вокруг каждой формы в легенде.И, наконец, с названием «Кластер».

1 Ответ

0 голосов
/ 04 декабря 2018

fviz_cluster работает с ggplot, в коде произошла ошибка, из-за которой изменения не отображались должным образом.

Что касается изменения заголовка на «Кластер», вы можете сделать это в течениеscales-..._... или guides.Укажите новые значения формы в scale_shape_manual.

library(factoextra)
km.res <- kmeans(iris[, -5], 3)

p <- fviz_cluster(km.res, iris[, -5]) +
  scale_color_brewer('Cluster', palette='Set2') + 
  scale_fill_brewer('Cluster', palette='Set2') +
  scale_shape_manual('Cluster', values=c(22,23,24)) + 
  ggtitle(label='') 
p

enter image description here

Удаление аннотации текстовой метки в легенде обычно можно сделать, указав geom_text(show.legend = F).Я не мог сделать это напрямую, поэтому вместо этого я строю только точки в fviz_cluster, а затем добавляю geom_text после, используя структуру данных, созданную fviz_cluster.

p2 <- fviz_cluster(km.res, iris[, -5], geom = c("point")) +
  scale_color_brewer('Cluster', palette='Set2') + 
  scale_fill_brewer('Cluster', palette='Set2') +
  scale_shape_manual('Cluster', values=c(22,23,24)) + 
  ggtitle(label='') 
p2 + geom_text(data=p2$data, aes(x=x, y=y, label=name, colour=cluster),
  vjust=-1, show.legend = F)

enter image description here

...