(R)使用PCA(ggbiplot)可视化具有大量变量的数据集

时间:2016-03-10 12:53:08

标签: r ggplot2 pca

我的数据集有100个样本和17000个变量。我会使用PCA并可视化数据。但问题是情节不好。如何控制ggbiplotbiplot中的箭头数量,实际上选择贡献最多的变量? 一些示例代码如下:

data <- matrix(rnorm(1700000), nrow=100, ncol=17000)
colnames(data) <- paste("X", 1:ncol(data), sep="")
pca <- prcomp(data, scale=T, center=T)

biplot(pca)
print(ggbiplot(pca, obs.scale = 1, var.scale = 1, 
               groups = c(rep('a',30), rep('b',70))))

enter image description here

1 个答案:

答案 0 :(得分:2)

我假设您从github获得了最新版本的ggbiplot(2015年6月19日https://github.com/vqv/ggbiplot)。 在这一个中,我认为没有一种减少箭头数量的干净方法。 您必须通过在两个绘图调用中对df.v进行子集来修改原始函数:

第89行:

g <- g + geom_segment(data = df.v[1:5,], # SUBSET HERE
aes(x = 0, y = 0, xend = xvar, yend = yvar), arrow = arrow(length = unit(1/2, "picas")), color = muted("red"))

和第127行:

g <- g + geom_text(data = df.v[1:5,], # SUBSET HERE
aes(label = varname, x = xvar, y = yvar, angle = angle, hjust = hjust), color ="darkred", size = varname.size)

enter image description here