Как сделать симпатичный биплот в R без использования внешних пакетов?

Я большой поклонник типичного R участки. Сегодня я должен сделать biplot, но типичный biplot уродливы Есть способ сделать его красивее, нарисовать эллипсы и т. Д., Не используя другие пакеты?

Если это невозможно, как я могу нарисовать его в виде классических R-сюжетов?

DF <- iris
PCA <- prcomp(DF[,c(1:4)], scale. = T, center = T)
biplot(PCA)

Результат:

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

Желаемый результат (сделано в PAST3)

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

1 ответ

Решение

Я заметил, что точки, изображенные в вашей версии PAST3, не совпадают с точками в биплоте R. Похоже, что ось Y перевернута в двух версиях.

Структура вернулась из prcomp есть то, что вам нужно, чтобы сделать один в лучшем стиле. Прогнозируемые точки находятся в PCA$x так что вы можете получить желаемый график из базы R с помощью

plot(PCA$x[,1:2], pch=20, col=iris$Species)

biplot

Для добавления эллипсов я всегда использую dataEllipse из пакета автомобиля, но это выходит за рамки вашего запроса не использовать другие пакеты.

ОБНОВИТЬ

В соответствии с просьбой в комментарии я добавляю, как добавлять эллипсы, используя car пакет.

library(car)
plot(PCA$x[,1:2], pch=20, col=iris$Species)
dataEllipse(PCA$x[,1], PCA$x[,2], iris$Species, lwd=1,
    group.labels = NULL, plot.points=FALSE, add=TRUE,
    fill=TRUE, fill.alpha=0.02) 

Биплот с эллипсами

Я выбрал что-то, что я думал, выглядело хорошо, но dataEllipse позволяет вносить множество изменений. Просто посмотрите на страницу справки, чтобы вы могли настроить ее на свой вкус.

Другие вопросы по тегам