Перекрывающиеся переменные ggbiplot - PullRequest
0 голосов
/ 17 мая 2019

Я не могу получить метки переменных, не перекрываются с ggbiplot

(с использованием RStudio 1.1.463 и R версии 3.5.3)

Я используюPCA с prcomp , но я получаю такое перекрытие меток переменных:

https://i.ibb.co/Tkk091f/Rplot.jpg

Вот пример:

library(ggbiplot)
data(wine)
wine_subset<-subset(wine[,c(6:7,9,12)])
wine.pca <- prcomp(wine_subset, scale. = TRUE)
print(ggbiplot(wine.pca, obs.scale = 1, var.scale = 1, groups = wine.class, ellipse = TRUE, circle = TRUE))

Я пыталсячтобы решить добавить этот код из пакета ggrepel:

library(ggrepel)
+geom_text_repel(aes(labels=colnames(wine_subset)))

, но он возвращает следующую ошибку:

Предупреждение: игнорирование неизвестной эстетики: метки Ошибка: эстетика должна быть либо длины 1, либотак же, как данные (178): метки

Мне кажется, что он пытается взять метки строк, но они мне не нужны на графике.Мне нужны только переменные метки.

Ответы [ 2 ]

0 голосов
/ 18 мая 2019

Я нашел лучшее решение с пакетом ggfortify :

library(ggbiplot)   #just for using the same example database as before
library(ggfortify)

data(wine)

wine_subset<-subset(wine[,c(6:7,9,12)])

wine.pca <- prcomp(wine_subset, scale. = TRUE)

wine$wine.class <- wine.class    #adding wine classes to wine data frame

autoplot(wine.pca, data=wine, colour="wine.class", loadings = TRUE, loadings.colour = 'brown',
         loadings.label.colour='brown', loadings.label = TRUE, loadings.label.size = 4,
         loadings.label.repel=TRUE)+stat_ellipse(type = "norm", 
         level=0.68,aes(color=wine.class))

Здесь захват результата

0 голосов
/ 17 мая 2019

Это хак, который добавляет разрыв строки к одному из имен переменных, чтобы он не перекрывался с другим:

library(ggbiplot)
data(wine)
wine_subset<-subset(wine[,c(6:7,9,12)])
colnames(wine_subset)[2] <- "\nFlav"  # new line
wine.pca <- prcomp(wine_subset, scale. = TRUE)
print(ggbiplot(wine.pca, obs.scale = 1, var.scale = 1, groups = wine.class, ellipse = TRUE, circle = TRUE))

Просто используйте только новое имя столбца для построения.

enter image description here

...