R 编程 - 按组问题标记的 ggplot2 箱线图
R programming - ggplot2 boxplot labeling by group issue
目前我有一个数据框,我想在其中将三个变量绘制成一个箱线图:
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" 和 "Transplant"。
结果变量是一个连续的结果变量。
这是我的箱线图代码:
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"、"HD" 和 "Transplant" 作为标签?
(以便每个单独的地块都按三组分组)。
例如,第一个红色、绿色和蓝色图将标记为 "CKD"(作为组),第二个红色、绿色和蓝色图将标记为 "HD"等
这里有一个例子来说明我上面的评论。您不需要交互,因为每种美学都会创建另一个箱线图:
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()
有没有理由不使用 facet_wrap
或 facet_grid
?除非我误解了你在找什么,否则这是一个完美的分面用例,然后你就不需要 interaction
.
你应该可以改成这样:
ggplot(df, aes(x = livingsetting, y = outcome)) +
geom_boxplot(aes(fill = livingsetting)) +
facet_wrap(~ factor)
这按原样使用数据框,而不是进行交互,并将因子变量的标签添加到方面的顶部,而不是在刻度标签上(尽管如果你想要的话,你可以这样做) .
希望对您有所帮助!
目前我有一个数据框,我想在其中将三个变量绘制成一个箱线图:
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" 和 "Transplant"。 结果变量是一个连续的结果变量。
这是我的箱线图代码:
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"、"HD" 和 "Transplant" 作为标签? (以便每个单独的地块都按三组分组)。
例如,第一个红色、绿色和蓝色图将标记为 "CKD"(作为组),第二个红色、绿色和蓝色图将标记为 "HD"等
这里有一个例子来说明我上面的评论。您不需要交互,因为每种美学都会创建另一个箱线图:
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()
有没有理由不使用 facet_wrap
或 facet_grid
?除非我误解了你在找什么,否则这是一个完美的分面用例,然后你就不需要 interaction
.
你应该可以改成这样:
ggplot(df, aes(x = livingsetting, y = outcome)) +
geom_boxplot(aes(fill = livingsetting)) +
facet_wrap(~ factor)
这按原样使用数据框,而不是进行交互,并将因子变量的标签添加到方面的顶部,而不是在刻度标签上(尽管如果你想要的话,你可以这样做) .
希望对您有所帮助!