繁体   English   中英

R:具有两个分组顺序和三列数据的堆叠条形图

[英]R: Stacked bar graph with two orders of grouping and three columns of data

我和我的同事正在尝试创建一个堆叠的条形图,该条形图首先按RIL (在x轴上)分组,然后按Trt分组,其中Trt (处理)聚在一起并按颜色区分。 我们还希望通过处理Trt标记每个聚类中的每个条形图。

堆叠的条形图表示SW_BeforeSW_After的计算平均值(注意,样本数据中有一个RIL ,编号206,具有多于一行的数据)。

我本来以为将数据SW_BeforeSW_After的两列组合在一起,但是Trt的控件处理不包含SW_BeforeSW_After数据,但是必须包含在图中。 因此, RIL为每个控制群集绘制了SW_Total的第三列数据

我对R和数据组织领域比较陌生,所以请原谅我的业余能力。

以下是我的数据的可复制示例:

data1 <- read.table (text= "Plant RIL Trt SW_Before SW_After SW_Total 
1 85 206 Early 0.380 2.27 2.65
2 88 166 Early 0 0.311 0.311
3 92 Lindo Early 0 0.663 0.633
4 94 158 Early 0.0738 0.596 0.669 
5 95 23 Early 0.0252 0.543 0.795
6 97 Lica Early 0 0.646 0.646
7 104 166 Peak 0.227 0.261 0.488
8 108 Lica Peak 0.0705 0.816 0.887
9 113 Lindo Late 0.628 0 0.628
10 115 206 Late 0.544 1.05 1.60
11 115 206 Control NA NA 1.50", sep="", header=T)    

我意识到,创建这张图比想象的要困难得多,因此,任何帮助/指导都将倍受赞赏。

编辑:

我现在尝试通过RILTrt绘制平均variable (包括SW_TotalSW_BeforeSW_After )的SW_After 这是我的代码:

melted1 <- melt(data.baSW, id=c("Plant", "RIL", "Trt"))
melted1 <- subset(melted1, RIL %in% c("158", "166", "206", "23", "Licalla", "Lindo"))


melted1 %>%
  group_by(Trt, RIL, variable) %>%
  mutate(mean.SW_Total = mean(value)) %>%
  ggplot(aes(x = RIL, y = mean.SW_Total, fill = variable)) + 
  geom_bar(stat = 'identity', position = 'stack') + facet_grid(~ Trt)

编辑2

我已经升级了代码以响应我的编辑#1。 我相信这是正确的代码,但验证会很好。

melted1 %>%
  ggplot(aes(x = RIL, y = value, fill = variable)) + 
  geom_bar(stat = 'summary', position = 'stack', fun.y = "mean") + facet_grid(~ Trt)

我不确定100%是否正确解释了您的问题,但是我认为这很接近您想要的(从此处进行调整)。

library(reshape2) # for melt
library(tidyverse)

# convert all total values to 0 except that for the control ...
data1 <- data1 %>%
mutate(SW_Total = ifelse(Trt != "Control", 0, SW_Total))

#convert to long format
melted <- melt(data1, id=c("Plant","RIL","Trt"))

ggplot(melted, aes(x = RIL, y = value, fill = variable)) + 
  geom_bar(stat = 'identity', position = 'stack') + facet_grid(~ Trt) 

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM