首页 > 解决方案 > ggplot总结箱线图

问题描述

可悲的是我的ggplot有问题。

这是我的数据框的一个子集:

Name <- c('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16', '17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32')
Gruppe <-c('A','A','B','B','C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C',  'C',  'C', 'C','A','A','B','B','C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C',  'C',  'C', 'C')
Group <-c('A','A','B','B','CA','CA','GE','GE','SA','SA','ST','ST','STR','STR','WA','WA')
Location <-c('CO','UF','CO','UF','CO','UF','CO','UF','CO','UF','CO','UF','CO','UF','CO','UF','CO','UF','CO','UF','CO','UF','CO','UF','CO','UF','CO','UF','CO','UF','CO','UF')
Value <-c(3.5,6.6,1.9,9.2,5.2,4.4,6.8,3.2,2.7,7.1,4.3,9.8,4,8.3,5,6.1,3,8.4,4.8,9.1,1.4,4,8.9,3.6,4,8.4,6.1,2.5,4.5,9.3,6.7,4.6)

data <- data.frame(Name, Gruppe, Group, Location, Value)

我想用根据“组”分隔的 ggplot 来绘制它。我的代码:

ggplot(data, aes(x=Location, y=Value, fill=Group)) +
  geom_boxplot()+
  scale_color_brewer(palette="Paired")+
  theme_classic()+
  scale_fill_manual(values=c("chartreuse3", "yellow2",
                             "firebrick3", "cyan4","darkgoldenrod2","darkorange4","darkgreen","deeppink3","darksalmon"))

在此处输入图像描述

但是,我还想在“Gruppe”中添加“C”作为应该显示在图例中的附加箱线图,总结“CA”-“WA”中的“组”。有什么办法吗?最好在不改变数据集本身的情况下,它的原始形式很大。箱线图应该在“A”和“B”旁边并且看起来相同,即宽度。

示例图片(请注意外观): 在此处输入图片描述

感谢您的每一个帮助,如果有什么遗漏,我会尽力解释。

标签: rggplot2plotboxplotdiagram

解决方案


@Peter 哦,哇,你做到了!太感谢了!我很想按原样使用您的解决方案,但在原始数据集中我有六个位置。使用 facet wrap 会有点矫枉过正。我设法稍微更改了您的代码:

ggplot(data1, aes(x = Location, y = PH1, fill = grp_id)) +
geom_boxplot() +
theme_classic()+
scale_x_discrete(expand = expansion(add = c(0.5, 0.7)))+
scale_y_continuous(expand = expansion(mult = c(0.02, 0.08)))+
scale_color_brewer(palette = "Paired")+
scale_fill_manual(values=c("chartreuse3", "yellow2",
                         "firebrick3", "cyan4","darkgoldenrod2","darkorange4",
                         "darkgreen","deeppink3","darksalmon", "red", "green"))

推荐阅读