用颜色分组PCA图

时间:2013-10-09 18:01:05

标签: r ggplot2 pca

我有一个106 x 105的数据集和106行.... 73是a类型,33是b类型 这些列指的是105种不同的基因。

我使用以下命令在数据集上运行PCA:

pca1 = prcomp(data, scale. = TRUE)
plot(pca1$x, pch = 20) 

但是我希望情节显示红色的点类型和b蓝色的类型,我真的不知道怎么做

我试过这样做:

groups <- c(rep(1,73),rep(2,33))
qplot(pca1$x,colour = groups) 

但是这返回了错误消息

"Error: Aesthetics must either be length one or the same length as the data.
 Problems:groups"

1 个答案:

答案 0 :(得分:0)

您从基本图形切换到ggplot2图形,没有进行必要的更改。 ggplot2需要数据框作为输入。 pca1$x是矩阵,而不是数据框。 ggplot2将尝试猜测美学,但在这种情况下,它不知道您想要将PC1得分与PC2得分进行绘图(因为矩阵是否。样本x没有变量)。所以你需要沿着这些方向做一些事情(未经测试,因为你没有给我们数据):

df <- as.matrix(pca1$x)
df$groups <- c(rep(1,73),rep(2,33))
str(df) # so you can see the structure and names
qplot(x = name of 1st column, y = name of 2nd column, data = df, geom = "point", color = 'groups')

给我们一些样本数据,我们可以更具体。

<强>更新

如果您想使用基本图形,只需在原始图表调用中添加颜色名称向量:

plot(pca1$x, pch = 20, col = c(rep("red", 73), rep("blue", 33)))