【问题标题】:Changing colours and frames in autoplot在自动绘图中更改颜色和框架
【发布时间】:2018-11-18 20:48:54
【问题描述】:

我有一个数据框,其中包含在两个不同年份(“treat.year”列)和一些环境变量进行的治疗。我想制作 PCA 的散点图,但不知道如何更改点的颜色。

我希望给定处理(C 或 Ca)中的点在两个采样周期(例如,所有 C 点为蓝色,所有 Ca 点为绿色,不考虑年份)和“帧”中的颜色相同根据治疗和年份连接点(即一个框架只连接 C.2009 点,另一个只连接 C.2015 点等等)。

ex <- data.frame(treat.year = c("C.2015", "C.2015", "C.2015", "C.2015", "Ca.2015", "Ca.2015", "Ca.2015", "Ca.2015", "C.2009", "C.2009", "C.2009", "C.2009", "Ca.2009", "Ca.2009", "Ca.2009", "Ca.2009"),
                 var.b = c(33, 18, 34, 28, 12, 11, 15, 13, 45, 52, 35, 39, 29, 27, 30, 27),
                 var.e = c(1.1, 0.5, 1.3, 1.2, 0, 0, 0, 0, 1.06, 0.96, 1.06, 0.58, 0.1, 0, 0, 0),
                 var.g = c(83.2, 53.6, 94.9, 80.8, 25.6, 29.2, 31.9, 29.8, 102.3, 83.9, 158.7, 126.6, 78.5, 186.9, 82.4, 62))

PCA1 <- prcomp(ex[ , 2:4], scale = TRUE)

library(ggfortify)
autoplot(PCA1, data = ex, colour = "treat.year", loadings = TRUE, 
         loadings.label = TRUE, frame = TRUE)

【问题讨论】:

    标签: r ggfortify


    【解决方案1】:

    最好将“treat.year”分成两列。然后你可以单独改变颜色

    ex <- data.frame(treat.year = c("C.2015", "C.2015", "C.2015", "C.2015", "Ca.2015", "Ca.2015", "Ca.2015", "Ca.2015", "C.2009", "C.2009", "C.2009", "C.2009", "Ca.2009", "Ca.2009", "Ca.2009", "Ca.2009"),
                    treat = c("C", "C", "C", "C", "Ca", "Ca", "Ca", "Ca", "C", "C", "C", "C", "Ca", "Ca", "Ca", "Ca"),
                     year = c("2015", "2015", "2015", "2015", "2015", "2015", "2015", "2015", "2009", "2009", "2009", "2009", "2009", "2009", "2009", "2009"),
                     var.b = c(33, 18, 34, 28, 12, 11, 15, 13, 45, 52, 35, 39, 29, 27, 30, 27),
                     var.e = c(1.1, 0.5, 1.3, 1.2, 0, 0, 0, 0, 1.06, 0.96, 1.06, 0.58, 0.1, 0, 0, 0),
                     var.g = c(83.2, 53.6, 94.9, 80.8, 25.6, 29.2, 31.9, 29.8, 102.3, 83.9, 158.7, 126.6, 78.5, 186.9, 82.4, 62))
    
    PCA1 <- prcomp(ex[ , 2:4], scale = TRUE)
    
    library(ggfortify)
    autoplot(PCA1, data = ex, colour = "year", 
             loadings.label = T,  frame.colour="treat.year", frame=T)+theme(legend.position = "none")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-05
      • 2021-07-09
      • 1970-01-01
      • 1970-01-01
      • 2019-10-07
      • 2020-06-09
      • 1970-01-01
      • 2016-05-17
      相关资源
      最近更新 更多