R编程 - 按组问题标记的ggplot2 boxplot

时间:2018-02-13 17:23:26

标签: r ggplot2 boxplot labels

目前我有一个数据框,我想将三个变量绘制成一个箱图:

  livingsetting        factor                  outcome
1      1                CKD                         2
2      1                CKD                        13
3      1                CKD                        23
4      13               CKD                        12
5      7                CKD                       -14

livingsetting变量包含因子“1”,“7”和“13”。 因子变量包含因子“CKD”,“HD”和“移植”。 结果变量是一个连续的结果变量。

这是我的boxplot代码:

ggplot(df, aes(x = interaction(livingsetting, factor),  
y= outcome)) + geom_boxplot(aes(fill = livingsetting)) + xlab("Factors")+ ylab("Y")

我的情节看起来像这样:

dd

x轴标签显示1.CKD,13.CKD,7.CKD,1.HD,13.HD等,但是可以调整xlab部分,使箱线图显示“CKD”, “高清”和“移植”作为标签? (以便每个单独的地块按三个分组)。

例如,第一个红色,绿色和蓝色图表将标记为“CKD”(作为组),第二个红色,绿色和蓝色图表将标记为“HD”等。

2 个答案:

答案 0 :(得分:1)

以下是一个说明我上述评论的示例。你不需要互动,因为每个美学都会创造另一个盒子图:

df <- read.table(text = "  livingsetting        factor                  outcome
1      7                BLA                         2
2      1                BLA                        13
3      1                CKD                        23
4      13               CKD                        12
5      7                CKD                       -14", header = T, row.names = 1)

df$livingsetting <- as.factor(df$livingsetting)

library(ggplot2)

ggplot(data = df, aes(x = factor, y = outcome, fill = livingsetting)) + 
    geom_boxplot()

答案 1 :(得分:0)

有理由不使用facet_wrapfacet_grid吗?除非我误解了你想要的东西,否则这是一个完美的分面用例,然后你不需要interaction

您应该可以更改为:

ggplot(df, aes(x = livingsetting, y = outcome)) +
    geom_boxplot(aes(fill = livingsetting)) +
    facet_wrap(~ factor)

它按原样使用数据框,而不是进行交互,并将因子变量的标签添加到构面的顶部,而不是在刻度标签上(尽管如果你想要的话,你也可以这样做)。 / p>

希望有所帮助!