【问题标题】:autoplot in ggfortify - only plotting some values for PCAggfortify 中的自动绘图 - 仅绘制 PCA 的一些值
【发布时间】:2022-07-08 23:02:27
【问题描述】:

我正在关注此文档 (https://cran.r-project.org/web/packages/ggfortify/vignettes/plot_pca.html) 在 iris 数据集上运行 PCA。

library(ggfortify)
df <- iris[1:4]
pca_res <- prcomp(df, scale. = TRUE)

autoplot(pca_res, data = iris, colour = 'Species')

我运行了上面的代码,得到了三个按物种着色的集群。我只想绘制一个特定的物种。在这种情况下,我怎样才能只绘制物种是 setosa 的地方?

【问题讨论】:

    标签: r ggplot2 ggfortify


    【解决方案1】:

    由于autoplot 返回的对象是ggplot 对象,一种选择是手动过滤传递给底层geom_point 的数据。在您的情况下,这非常简单,因为ggplot 只有一层,我们可以通过p$layers[[1]] 访问该层,而用于该层的数据可以通过p$layers[[1]]$data 访问。

    library(ggfortify)
    #> Loading required package: ggplot2
    
    df <- iris[1:4]
    pca_res <- prcomp(df, scale. = TRUE)
    
    p <- autoplot(pca_res, data = iris, colour = 'Species')
    
    p$layers[[1]]$data <- p$layers[[1]]$data[p$layers[[1]]$data$Species == "setosa", ]
    
    p
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-16
      • 2020-06-14
      • 1970-01-01
      • 2017-01-06
      • 2019-03-09
      • 2017-08-04
      • 1970-01-01
      相关资源
      最近更新 更多