图例标签组合图(ggplot 和拼凑)
Posted
技术标签:
【中文标题】图例标签组合图(ggplot 和拼凑)【英文标题】:Legend label combined plots (ggplot and patchwork) 【发布时间】:2021-11-17 11:41:44 【问题描述】:我是 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() 或主题一起使用()。
【问题讨论】:
尝试将+ scale_color_discrete(name = "Group", labels = c("1" = "control", "2" = "case"))
添加到您的绘图中。
在这种情况下,我会选择facet_grid
。
请提供足够的代码,以便其他人更好地理解或重现问题。
【参考方案1】:
另一种选择是向您的数据框中添加一个名为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)
【讨论】:
以上是关于图例标签组合图(ggplot 和拼凑)的主要内容,如果未能解决你的问题,请参考以下文章
R语言ggplot2可视化为组合图添加综合图例实战:使用ggpubr包ggarrange函数实现综合图例使用patchwork包实现综合图例