如何在不使用外部包的情况下在 R 中制作漂亮的双标图?

How to make a pretty biplot in R without using external packages?

我非常喜欢典型的 R 情节。今天我要做一个biplot,但是典型的biplot很难看。有没有办法让它更漂亮,画椭圆等而不用其他包?

如果不可能,我怎样才能把它画成经典的 R 图?

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

结果:

一个想要的结果(在 PAST3 中制作)

我注意到您的 PAST3 版本中绘制的点似乎与 R 双标图中的点不匹配。看起来两个版本中的 y 轴都翻转了。

prcomp 返回的结构包含您制作更好风格所需的结构。投影点在 PCA$x 中,因此您可以使用

从基础 R 绘图中获得所需的绘图
plot(PCA$x[,1:2], pch=20, col=iris$Species)

为了添加省略号,我总是使用汽车包中的 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 允许您进行多种调整。只需查看帮助页面,即可根据自己的喜好进行调整。