我是R的新手,正在尝试找到一种简单的方法来更改使用ggplot和patchwork创建的组合箱形图的图例标签。
我正在比较两组(对照组和哮喘组)5种不同类型细胞的比例。我为每种单元格类型创建了boxplot,并将它们与拼接结合在一起。
plot_mac <- ggplot(asthma_desc, aes(x=control_case, y=BAL_mac_LP, color=control_case)) +
geom_boxplot(width=0.5,lwd=0.5) +
geom_jitter(width=0.15) +
labs(y = "Macrophages %") +
stat_compare_means(label = "p.signif", label.x.npc = "center", label.y = 80, hide.ns = T)然后我对4种不同类型的细胞做同样的事情。
patchwork <- plot_mac + plot_lym + plot_neu + plot_mast + plot_eos + plot_layout(guides = 'collect')
patchwork & theme_minimal() & scale_color_manual(values=c("black", "red")) &
theme(axis.title.x = element_blank(), axis.ticks.x=element_blank(), axis.text.x=element_blank(), text=element_text(size=7)) &
ylim(0,100)我得到了下面的图

我想把图例"control_case“改成”组“,把"1”改成"control“,把"2”改成"case“,我不能用labs(),scale_x_discrete()或者theme()。
发布于 2021-09-24 07:29:47
另一种选择是向数据帧中添加一个名为Group的新列。下面是一个模拟mtcars数据集的示例:
library(tidyverse)
library(ggpubr)
library(patchwork)
mtcars1 <- mtcars %>%
mutate(Group = case_when( am==0 ~"control",
am==1~"case",
TRUE ~ NA_character_))
p1 <- ggplot(mtcars1, aes(x=Group, y=mpg, color=Group)) +
geom_boxplot(width=0.5,lwd=0.5) +
geom_jitter(width=0.15) +
labs(y = "Macrophages %") +
stat_compare_means(label = "p.signif", label.x.npc = "center", label.y = 80, hide.ns = T)
p2 <- ggplot(mtcars1, aes(x=Group, y=wt, color=Group)) +
geom_boxplot(width=0.5,lwd=0.5) +
geom_jitter(width=0.15) +
labs(y = "Macrophages %") +
stat_compare_means(label = "p.signif", label.x.npc = "center", label.y = 80, hide.ns = T)
p3 <- ggplot(mtcars1, aes(x=Group, y=hp, color=Group)) +
geom_boxplot(width=0.5,lwd=0.5) +
geom_jitter(width=0.15) +
labs(y = "Macrophages %") +
stat_compare_means(label = "p.signif", label.x.npc = "center", label.y = 80, hide.ns = T)
patchwork <- p1 + p2 + p3 + plot_layout(guides = 'collect')
patchwork & theme_minimal() & scale_color_manual(values=c("black", "red")) &
theme(axis.title.x = element_blank(), axis.ticks.x=element_blank(), axis.text.x=element_blank(), text=element_text(size=7)) &
ylim(0,100)

https://stackoverflow.com/questions/69310764
复制相似问题