1

我是 R 新手,并试图找到一种简单的方法来更改使用 ggplot 和拼凑而成的组合箱线图的图例标签。

我正在比较两组(对照组和哮喘组)中 5 种不同类型细胞的比例。我为每种细胞类型创建了箱线图,并将它们与拼凑而成。

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”更改为“Group”,将“1”更改为“control”,将“2”更改为“case”。我无法使其与 labs()、scale_x_discrete() 和 theme() 一起使用。

4

1 回答 1

0

另一种选择是向您的数据框中添加一个名为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)

在此处输入图像描述

于 2021-09-24T07:29:47.443 回答