我和我的同事正在尝试创建一个堆叠的条形图,该条形图首先按RIL
(在x轴上)分组,然后按进行分组Trt
,其中Trt
(处理)聚在一起并按颜色区分。我们还希望通过处理标记每个簇内的每个条形图Trt
。
堆叠的条形图表示的计算平均值SW_Before
和SW_After
(注意,样本数据中有一个RIL
数字206,其中有不止一排数据)。
我原本以为数据的两列合并SW_Before
和SW_After
,但控制处理Trt
不包含数据SW_Before
和SW_After
但仍然必须包含在图中。因此,SW_Total
对于每个控制群集,将来自的第三列数据绘制为RIL
我对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)
我意识到,创建该图比想象的要困难得多,因此,非常感谢您提供任何帮助/指导。
编辑:
现在我试图绘制平均值variable
(包括SW_Total
,SW_Before
和SW_After
)的RIL
和Trt
。这是我的代码:
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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句