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

基于ggpot中x轴变量的箱线图中的颜色值

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

    我有一个类似以下的数据框架:

    df = data.frame(cat = rep(c("A", "B", "C", "D"), each = 20), val = runif(80))
    

    以及如下注释数据框:

    ann = data.frame(cat = c("A", "B", "C", "D"), col = c(34, 84, 23, 85))
    

    我想为每一个做一个箱线图 cat s沿x轴,数据框中的值作为y轴,但我还希望根据中的值为每个方框图上色。 ann$col (连续颜色映射)。

    我可以得到如下的箱线图:

    ggplot(df, aes(x = variable, y = BACC)) +
      geom_boxplot(width = 0.12)
    

    但是我不确定如何根据类别值给每个箱线图上色。

    怎么能做到?

    谢谢, 杰克

    1 回复  |  直到 6 年前
        1
  •  2
  •   massisenergy    6 年前

    您的数据中很少有(小)语法错误。不过,您可能正在寻找:

    df <- data.frame(cat = rep(c("A", "B", "C", "D"), 20), val = runif(80))
    ann <- data.frame(cat = ("A", "B", "C", "D"), 
                      col = c(34, 84, 23, 85), 20)
    library(dplyr) # inner_join comes with dplyr
    df_ann <- inner_join(df, ann, by = 'cat') #join both into a three column dataframe 
    #(cat, val, col) by mathcing column 'cat'.
    ggplot(df_ann, aes(x = cat, y = val, fill = col)) +
    geom_boxplot(width = 0.12) + scale_fill_gradientn(colours = rainbow(9))
    

    enter image description here