r - 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”旁边并且看起来相同,即宽度。
示例图片(请注意外观): 在此处输入图片描述
感谢您的每一个帮助,如果有什么遗漏,我会尽力解释。
解决方案
@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"))
推荐阅读
- java - 无法下载 Maven 依赖项:握手期间远程主机关闭连接
- node.js - 为什么 Socket.io 不会在真实的实时服务器中发出?
- javascript - 将数据从一个 google sheet 工作簿移动到另一个
- powershell - 我需要帮助组合字符串和变量
- python - 通过python中的“字典翻译”更改二维数组
- mongodb - Mongo 按单个枚举和其他字段排序
- cordova - 使用 Cordova 将文件上传到 Dropbox
- c# - 在 Xamarin.ios 中使用 DLLImport 在真实设备上出现错误:“在仅在 aot 中运行时尝试 JIT 编译方法 'mymethod(string,string)'”
- ios - 在 Swift 5 中为 Dictonary[String:Any] 创建扩展
- iis-7 - ERROR_DESTINATION_NOT_REACHABLE:Web 部署任务失败