This is a test version of Biostars. For the public version, visit https://www.biostars.org.
How to plot 2 different symbols in a 3D PCA plot generated by rgl-plot3D

Hi,

I have plotted a 3D PCA on my control vs treated samples using rgl. I am interested in plotting control as SPHEREs and treatment as CUBEs. Is it possible to do that?

Below is my code:

library(rgl)
library(DESeq2)

rld_mat<- assay(rld)

select<- male_sig
rld_mat_male <- subset(rld_mat, rownames(rld_mat) %in% select)

pca<-prcomp(rld_mat_male)
percentVar <- round(pca$sdev / sum(pca$sdev) * 100, 2)

colors <- c(rep("#3300FF",4),rep("#add8e6",5))
samples <- rownames(rld_mat_male)

plot3d(pca$x[,1], pca$x[,2], pca$x[,3],xlab=paste0("PC1: ",percentVar[1],"%"), ylab=paste0("PC2: ",percentVar[2],"%"), zlab=paste0("PC3: ",percentVar[3],"%"), facets = TRUE,
                  col=colors,type="s")

## Add bounding box decoration
rgl.bbox(color=c("#333377","black"), emission="#808080",
          specular="#3333FF", shininess=5, alpha=0.8, nticks = 3 )
3d_pca rgl plot3d rna-seq

1 answer

Hey,

Since you're using R, I'd recommend the package "plot3D". It's a very flexible and easy to use package where you can do what you're looking for easily.

Thanks for your comment. I just tried plot3D. The problem is that I cannot rotate the generated figure

I think 'plot3D' and 'plot3d' are different. Former one is a package, while the later is a function.

True! thanks for your comment. I just tried it. The problem with plot3D is that I cannot rotate the generated figure.

Log in to answer this question.