【问题标题】:Draw PCA3D plot based on colnames? [closed]根据列名绘制 PCA3D 图? [关闭]
【发布时间】:2018-06-11 09:29:54
【问题描述】:

我有一个像打击这样的表格:我可以根据以下推荐绘制简单的 2 维 PCA 图,但我想要基于列名的 3D PCA?

                   4_rep1 4_rep2     8_rep1     8_rep2     7_rep1     7_rep2   3_rep1   3_rep2 

ENSG00000000003    2202    1787       2357       2257        945        977    1362      8536
ENSG00000000005      33      15         13         12         21         37      20      15          
ENSG00000000419     557     442        696        679        359        398     279     314        
ENSG00000000457     343     251        218        215        212        219     221     254         
ENSG00000000460     276     242        189        202        123        126     206     218         

plotPCA(newSeqExpressionSet(as.matrix(data),col=colors))

提前感谢您的任何建议!

【问题讨论】:

    标签: r ggplot2 pca bioconductor scatter3d


    【解决方案1】:


    假设您需要一个以特征向量为轴、变量权重为坐标的散点 3 d 图,您可以找到几个选项:

    # here the data
    results <-    data.frame(matrix(c(2202,33,557,1787,15,442,2357,13,696,2257,12,679),nrow=3,ncol=4))
    colnames(results) <- c("4_rep1","4_rep2","8_rep1","8_rep2")
    rownames(results) <- c("ENSG00000000003","ENSG00000000005","ENSG00000000419")
    
    # then a small transformation
    library(data.table)
    t_results <- transpose(results)
    colnames(t_results) <- rownames(results)
    rownames(t_results) <- colnames(results)
    
    #lastly the plot
    library(scatterplot3d) 
    scatterplot3d(t_results[,1],t_results[,2],t_results[,3], main="Very    simple")
    

    更酷一点:

    library(rgl)
    plot3d(results[,1]  ,results[,2],results[,3], col="red", size=3)
    

    还有这个:

        p <- plot_ly(t_results, x = ~ENSG00000000003, y = ~ENSG00000000005, z = ~ENSG00000000419) %>%
      add_markers() %>%
      layout(scene = list(xaxis = list(title = 'ENSG00000000003'),
                          yaxis = list(title = 'ENSG00000000005'),
                          zaxis = list(title = 'ENSG00000000419')))
    
        p
    

    【讨论】:

    • @ nihil,非常感谢您的命令,购买我不希望情节中的所有人,我喜欢在 PCA(4_rep1,4_rep2 和 ...)和 PCA1,PCA2 和 PCA 中使用 col 名称3 作为 X、Y 和 Z 轴。
    • @star,所以您需要将变量作为点,并将它们在 PCA1、2、3 上的权重作为坐标?是否有可能有一个可重现的数据示例?可以在 R 中复制和粘贴的内容。
    • 非常感谢。是的,我喜欢将 col 名称作为变量,将 PCA 作为坐标。结果
    • @star,我已经用你的数据和请求编辑了答案,试试看是否合适!
    猜你喜欢
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 2018-12-31
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多