如何在不使用外部包的情况下在 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
允许您进行多种调整。只需查看帮助页面,即可根据自己的喜好进行调整。
我非常喜欢典型的 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
中,因此您可以使用
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
允许您进行多种调整。只需查看帮助页面,即可根据自己的喜好进行调整。