r - 我想为每个站点绘制多个直方图
问题描述
我想要 x 轴上的 4 个直方图;每个站点一个,每组个人都有一个垃圾箱。这些组是 ; “摩尔”、“一个”、“地壳”和“其他”。y 轴将是平均丰度。数据框可以称为DF。
摩尔 | 一个 | 脆皮 | 其他 | 地点 | |
---|---|---|---|---|---|
1 | 1.00000 | 0.0000000 | 12.000000 | 2 | 1 |
2 | 0.00000 | 0.6666667 | 28.000000 | 0 | 2 |
3 | 0.00000 | 0.3333333 | 2.000000 | 0 | 3 |
4 | 4.00000 | 1.3333333 | 3.000000 | 0 | 4 |
5 | 12.66667 | 3.3333333 | 1.666667 | 0 | 5 |
ggplot(DF, aes(fill=?, y=?, x=Site)) + geom_bar(position="dodge", stat="identity")
我迷失在想要放入部分填充 = 和 y = 中,我一直在用向量单独做这件事,它有效,但想将所有内容分组。DF$Site 与我用于更简单直方图的另一个“站点”不同:Site <- c(rep("1" , 1) , rep("2" , 1) , rep("3", 1) ,代表(“4”,1),代表(“5”,1))
我会“填充”: fill = rep("whatever",5)
就我而言,我将创建一个向量并插入 y= ,如下所示: mol = c(1,0,0,4,12.66666667) 我还将使用均值向量和标准差向量作为误差线:
sdmol = c(0.471404521,0,0,5.656854249,16.51934892)
+geom_errorbar(aes(x=Site, ymin=mol-sdmol, ymax= mol+sdmol), width=0.4, colour="orange", alpha=0.9, size=1)+theme(text=element_text(size=20 ))
如果有帮助,我可以重新组合我的所有数据。谢谢!
解决方案
像这样的东西?
library(tidyverse)
DF %>%
pivot_longer(
cols = c(mol, an, crust)
) %>%
ggplot(aes(x=factor(Site), y=value, fill=name))+
geom_col(position = position_dodge())
或者
library(tidyverse)
DF %>%
pivot_longer(
cols = c(mol, an, crust)
) %>%
ggplot(aes(x=Site, y=value, fill=name))+
geom_col(position = position_dodge()) +
facet_wrap(.~Site, scales = "free")
推荐阅读
- spring-boot - 如何让spring boot rest api发送混合内容作为响应(结构化内容加附件)
- c# - 当模型属性具有 [ConcurrencyCheck] 属性时,ASP.NET Core MVC ConcurrencyCheck 失败
- java - Spring休眠默认会话管理
- mvvm - SwiftUI 绑定到父视图重新渲染子视图
- angular - Angular + Azure:由于最长生命周期,刷新令牌已过期
- python - 如何检查if语句python中的两个变量?
- django - 基于另一个模型的值对 Django 模型之间的复杂关系进行建模
- oracle - 在控制台中告诉我 SELECT 中缺少 INTO 的错误。PL/SQL
- python - 将 Series 对象转换为 Dataframe
- javascript - NodeJS服务器和浏览器之间的实时通信