ggplot2/R中每个x值组合两个箱线图的困难
请在下面找到我的数据 我希望生成一个组合箱线图,如下所示: 我有四个不同的患者类别,w$WHO==1,2,3,4,每个对应于WHO-I、WHO-II、WHO-III和未知肿瘤 我希望每个w$WHO制作两个箱线图 第一个箱线图应该显示死亡时间,如w$Follow.up.death[w$death==1]中所示。我想填充alpha/2的颜色,但应该是蓝色 第二个方框图应显示进展时间,如w$resp.time[w$response==1]所示。我希望颜色/轮廓+填充为红色,但填充的alpha应为0.2 w$死亡和w$响应的长度不相同 相应的图例应为总生存率和无进展生存率 我尝试了几本手册,但我不知道如何具体做到这一点-我只设法制作了一个绘图 有没有办法解决这个问题 我的数据样本 这很接近吗ggplot2/R中每个x值组合两个箱线图的困难,r,ggplot2,R,Ggplot2,请在下面找到我的数据 我希望生成一个组合箱线图,如下所示: 我有四个不同的患者类别,w$WHO==1,2,3,4,每个对应于WHO-I、WHO-II、WHO-III和未知肿瘤 我希望每个w$WHO制作两个箱线图 第一个箱线图应该显示死亡时间,如w$Follow.up.death[w$death==1]中所示。我想填充alpha/2的颜色,但应该是蓝色 第二个方框图应显示进展时间,如w$resp.time[w$response==1]所示。我希望颜色/轮廓+填充为红色,但填充的alpha应为0.2
# Wrangling data into a digestable format
v <- w[w$Death == 1,]
vv <- w[w$response == 1,]
df <- data.frame(x = as.factor(c(v$WHO, vv$WHO)),
y = c(v$Follow.up.death, vv$resp.time),
f = rep(c("Death", "Response"), c(nrow(v), nrow(vv))))
df <- df[!is.na(df$x),]
这很接近吗
# Wrangling data into a digestable format
v <- w[w$Death == 1,]
vv <- w[w$response == 1,]
df <- data.frame(x = as.factor(c(v$WHO, vv$WHO)),
y = c(v$Follow.up.death, vv$resp.time),
f = rep(c("Death", "Response"), c(nrow(v), nrow(vv))))
df <- df[!is.na(df$x),]
与@tuenbrand的方法类似,但使用dplyr/tidyr来处理数据:
library(tidyverse)
df <- w %>%
rename(Overall = "Follow.up.death", `Progression-free` = "resp.time") %>%
gather(key = Survival, value = Time, Overall, `Progression-free`) %>%
filter((Death == 1 & Survival == "Overall") |
(response == 1 & Survival == "Progression-free")) %>%
mutate(WHO = paste("WHO:", WHO))
与@tuenbrand的方法类似,但使用dplyr/tidyr来处理数据:
library(tidyverse)
df <- w %>%
rename(Overall = "Follow.up.death", `Progression-free` = "resp.time") %>%
gather(key = Survival, value = Time, Overall, `Progression-free`) %>%
filter((Death == 1 & Survival == "Overall") |
(response == 1 & Survival == "Progression-free")) %>%
mutate(WHO = paste("WHO:", WHO))
什么是低温和高温?哪一列对应于那些?我忘了裁剪出来。我已经编辑了上面的帖子。什么是低温和高温?哪一列对应于那些?我忘了裁剪出来。我已经编辑了上面的帖子。太好了!非常感谢。是否可以在两个箱线图之间增加一点距离?是的,您可以在geom_箱线图调用中使用position=position\u dodgewidth=1进行操作。非常好!非常感谢。是否可以在两个箱线图之间增加一点距离?是的,您可以在geom_箱线图调用中使用position=position\u dodgewidth=1。
ggplot(df, aes(x = Survival, y = Time, fill = Survival)) +
geom_boxplot() + facet_wrap(~WHO, nrow = 1) +
theme(axis.text.x = element_blank(),
axis.ticks.x = element_blank(),
axis.title.x = element_blank(),
legend.position = "bottom")