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.
Кто-нибудь может объяснить это сообщение?
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))
буду работать
Даже если 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 намного проще.