我有一个数据帧,如下所示:
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))
我想沿x轴为每个cat
创建一个箱形图,并将数据框中的值作为y轴,但我还希望通过ann$col
(连续颜色映射)中的值为每个箱形图着色。
我可以像下面这样得到盒子图:
ggplot(df, aes(x = variable, y = BACC)) +
geom_boxplot(width = 0.12)
但我不确定如何根据类别值为每个箱形图着色。
如何做到这一点?
谢谢,杰克
发布于 2018-12-13 03:36:01
您的数据中几乎没有(小)语法错误。不过,您可能正在寻找以下内容:
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))
https://stackoverflow.com/questions/53749992
复制相似问题