R: ggfortify: объекты типа prcomp не поддерживаются автоплотом

Я пытаюсь использовать ggfortify для визуализации результатов PCA, который я сделал с помощью prcomp.

образец кода:

iris.pca <- iris[c(1, 2, 3, 4)] 
autoplot(prcomp(iris.pca))  

Ошибка: объекты типа prcomp не поддерживаются автоплотом. Пожалуйста, используйте вместо этого qplot () или ggplot ().

Странно то, что autoplot специально разработан для обработки результатов prcomp - ggplot, а qplot не может обрабатывать такие объекты. Я использую R версии 3.2 и только что загрузил ggfortify с github в этом AM.

Кто-нибудь может объяснить это сообщение?


person JR Flanders    schedule 05.05.2015    source источник
comment
Ну, за отсутствием какой-либо другой идеи я просто переустановил все в третий раз, и почему-то все заработало.   -  person JR Flanders    schedule 05.05.2015


Ответы (2)


Я предполагаю, что вы не загрузили необходимые библиотеки, код ниже:

library(devtools)
install_github('sinhrks/ggfortify')
library(ggfortify); library(ggplot2)
data(iris)
iris.pca <- iris[c(1, 2, 3, 4)] 
autoplot(prcomp(iris.pca))

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

person Konrad    schedule 05.05.2015

Даже если ggfortify простота очаровательна, я не рекомендую использовать ее из-за некоторого дублирования со стандартными функциями ggplot2 (например предупреждение replacing previous import ‘dplyr::vars’ by ‘ggplot2::vars’ when loading ‘ggfortify’). Умным обходным решением было бы использовать напрямую ggplot2.

Здесь я предлагаю две версии и их результаты.

# creating the PCA obj using iris data set
iris.pca <- iris[c(1, 2, 3, 4)] 
pca.obj <- prcomp(iris.pca)

# ggfortify way - w coloring
library(ggfortify)
autoplot(pca.obj) + theme_minimal()  


# ggplot2 way - w coloring
library(ggplot2)
dtp <- data.frame('Species' = iris$Species, pca.obj$x[,1:2]) # the first two componets are selected (NB: you can also select 3 for 3D plottings or 3+)
ggplot(data = dtp) + 
       geom_point(aes(x = PC1, y = PC2, col = Species)) + 
       theme_minimal() 

NB: раскрашивание с простой структурой фрейма данных ggplot2 намного проще.

сюжет

person Garini    schedule 23.05.2018