我使用的是RNA转录组数据"test.csv"在只有三个生物重复数据点的组周围绘制PCA图和椭圆。
test.csv
脚本
data <- read.csv("test.csv")
pca <- ggplot(data=data, aes(x = PCA.1, y = PCA.2)) +
geom_point(data=data, aes(shape=Treatment, color=sampleID), size=5, stroke = 1.5) +
scale_shape_manual(values=c(1, 2, 18, 20))+
scale_color_manual(values=c("#32CD32", "#008000", "#FF00FF", "#1E90FF", "#0000FF", "#FFD700", "#FF8C00", "#CD6600"))+
theme_bw()+
theme(legend.key.size = unit(1.2, "cm"), legend.text = element_text(size = 25), text = element_text(size = 30))+
stat_ellipse()
pca
这给了我一个单一椭圆的PCA图。
此外,我试图遵循一些解决方案从堆栈溢出比如解1,但是它们会有一些误差。我如何在每个基团周围画单独的椭圆?任何帮助将是非常感激的。提前谢谢你。
您不允许使用stat_ellipse
绘制只有3个点的椭圆,解决方案可以使用ggforce
包中的geom_mark_ellipse
:
pca <- ggplot(data=data, aes(x = PCA.1, y = PCA.2)) +
geom_point(data=data, aes(shape=Treatment, color=sampleID), size=5, stroke = 1.5) +
scale_shape_manual(values=c(1, 2, 18, 20))+
scale_color_manual(values=c("#32CD32", "#008000", "#FF00FF", "#1E90FF", "#0000FF", "#FFD700", "#FF8C00", "#CD6600"))+
theme_bw()+
theme(legend.key.size = unit(1.2, "cm"), legend.text = element_text(size = 25), text = element_text(size = 30))+
ggforce::geom_mark_ellipse(aes(fill = sampleID,
color = sampleID))
pca