在ggplot、PCA中删除样本名称。

问题描述 投票:0回答:1

我想在我的PCA图中删除标签并添加点。通过这种方式,你可以很容易地看到它们是否根据它们的类型聚类。

我已经成功地将标签的颜色交叉贴到它们的类型上,但我不想看到样本的名称。我只想看到代表样本的点。

这是我迄今为止的PCA图。PCA图

我用这个例子来进行PCA,请问如何去掉样本名称并添加点来代替?

library(ggplot2)

data.matrix <- matrix(nrow=100, ncol=10)
colnames(data.matrix) <- c(
      paste("wt", 1:5, sep=""),
      paste("ko", 1:5, sep=""))
rownames(data.matrix) <- paste("gene", 1:100, sep="")
for (i in 1:100) {
  wt.values <- rpois(5, lambda=sample(x=10:1000, size=1))
  ko.values <- rpois(5, lambda=sample(x=10:1000, size=1))

  data.matrix[i,] <- c(wt.values, ko.values)
}
head(data.matrix)
dim(data.matrix)

pca <- prcomp(t(data.matrix), scale=TRUE) 

## plot pc1 and pc2
plot(pca$x[,1], pca$x[,2])

## make a scree plot
pca.var <- pca$sdev^2
pca.var.per <- round(pca.var/sum(pca.var)*100, 1)

barplot(pca.var.per, main="Scree Plot", xlab="Principal Component", ylab="Percent Variation")

## now make a fancy looking plot that shows the PCs and the variation:

pca.data <- data.frame(Sample=rownames(pca$x),
  X=pca$x[,1],
  Y=pca$x[,2])
pca.data

ggplot(data=pca.data, aes(x=X, y=Y, label=Sample)) +
  geom_text() +
  xlab(paste("PC1 - ", pca.var.per[1], "%", sep="")) +
  ylab(paste("PC2 - ", pca.var.per[2], "%", sep="")) +
  theme_bw() +
  ggtitle("My PCA Graph")
r ggplot2 label pca
1个回答
1
投票

你可以通过替换 geom_text()geom_point():

ggplot(data=pca.data, aes(x=X, y=Y, label=Sample)) +
  geom_point() +
  xlab(paste("PC1 - ", pca.var.per[1], "%", sep="")) +
  ylab(paste("PC2 - ", pca.var.per[2], "%", sep="")) +
  theme_bw() +
  ggtitle("My PCA Graph")
© www.soinside.com 2019 - 2024. All rights reserved.