代码之家  ›  专栏  ›  技术社区  ›  Jack Arnestad

通过不同的变量值为每个面着色

  •  3
  • Jack Arnestad  · 技术社区  · 6 年前

    我有一个如下所示的数据帧:

    df = data.frame(x = runif(100, 0, 1),
                    y = runif(100, 1, 2),
                    var1 = runif(100, 0, 1),
                    var2 = runif(100, 0, 1),
                    var3 = rep(c("a", "b"), 50))
    

    我想在ggplot2中制作一个刻面的绘图,该绘图与ggplot2相同 x vs y var1 var2 ,及 var3 . 在本例中,只有3个面,每个着色列对应一个面。

    这怎么可能呢?

    1 回复  |  直到 6 年前
        1
  •  3
  •   d.b    6 年前
    plots = lapply(3:5, function(i){
        dt = df[,c(1, 2, i)]
        ggplot(data = dt, aes_string(x = names(dt)[1],
                                     y = names(dt)[2],
                                     color = names(dt[3]))) +
            geom_point()
    })
    library(gridExtra)
    do.call(function(...){
        grid.arrange (..., ncol = 3)},
        plots)
    

    Rplot