目前我有一个数据框,我想将三个变量绘制成一个箱图:
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")
我的情节看起来像这样:
x轴标签显示1.CKD,13.CKD,7.CKD,1.HD,13.HD等,但是可以调整xlab部分,使箱线图显示“CKD”, “高清”和“移植”作为标签? (以便每个单独的地块按三个分组)。
例如,第一个红色,绿色和蓝色图表将标记为“CKD”(作为组),第二个红色,绿色和蓝色图表将标记为“HD”等。
答案 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_wrap
或facet_grid
吗?除非我误解了你想要的东西,否则这是一个完美的分面用例,然后你不需要interaction
。
您应该可以更改为:
ggplot(df, aes(x = livingsetting, y = outcome)) +
geom_boxplot(aes(fill = livingsetting)) +
facet_wrap(~ factor)
它按原样使用数据框,而不是进行交互,并将因子变量的标签添加到构面的顶部,而不是在刻度标签上(尽管如果你想要的话,你也可以这样做)。 / p>
希望有所帮助!