среднее значение на графике (усредненное каждые 10 шагов) поверх обычных наблюдений с использованием ggplot2 - PullRequest
0 голосов
/ 28 октября 2019

У меня есть 3 переменные: Глубина, Концентрация, Диапазон глубины станции от 0 до 100 м. Диапазон концентрации от 0,1 до 4,0. Станции являются переменными (зависит только от того, как они были названы в исходном файле).

library(ggplot2)
library(dplyr)

Depth <- seq(1, 100, by=1)
CuCo <- (sample.int(20, 100, replace = TRUE)/5)
Station <- sample.int(100, 100, replace = TRUE)


Nutrient_data <- data.frame(Depth, CuCo, Station)

Затем я вычисляю среднюю концентрацию на каждой глубине

mean <- Nutrient_data %>%
group_by(Depth) %>%
dplyr::summarize(CuCo=mean(CuCo))
mean

Я могу построить график концентрации (CuCo) по профилю глубины:

blankPlot <- theme_bw()+theme(panel.grid.major = element_blank(), 
                          panel.grid.minor = element_blank(), 
                          panel.background = element_blank()) + 
theme(axis.text  = element_text(colour="black", size=15)) +
theme(axis.title=element_text(size=15))

(Conc_profile <- ggplot(data=Nutrient_data, aes(x=CuCo, y=Depth,  
 group=Station)) + 
 geom_path(colour="grey80", size=0.3) +              
 geom_path(aes(x=CuCo,y=Depth),inherit.aes=FALSE,colour="black",data=mean,lwd=0.6)+
 scale_y_reverse(breaks= seq(0, 100,by=10)) + 
 theme_bw() + scale_x_continuous(position = "top") +
 ylab("Depth (dbar)") + xlab(expression(paste(CuCo~concentration))) 
 + blankPlot)

, но когда я добавляю geom_path к графикусредство, оно отображает средства для каждого бина;изменения глубины. Я хочу объединить или объединить их с интервалами в 10 м, чтобы можно было получать среднюю концентрацию через каждые 10 м и наносить их на график по фоновой концентрации. Я нашел 2 способа связывания данных, но он создает эти диапазоны (например, 0-10, 10-20, 20-30 и т. Д.), И оттуда я не могу наложить это на исходный график.

#This bins the data
Nutrient_data$depth_bins <- cut(Nutrient_data$Depth, seq(from = 0, to = 100, by = 10))
summary(Nutrient_data)

#This one bins and averages by bin
Press <- with(Nutrient_data, cut(Depth, breaks = seq(0, max(Depth), by = 10), include.lowest = TRUE))
dat <- aggregate(CuCo ~ Depth, data = Nutrient_data, FUN = mean)

На рисунке показана очень грязная средняя линия, а также «горизонтально» для учета корзины. Мне просто нужно одно усредненное значение каждые 10 метров, чтобы я мог получить плавную линию, которая опускается с глубиной, чтобы увидеть шаблон, и фон остается со всеми серыми линиями от каждого отдельного измерения. Любая помощь будет принята с благодарностью! спасибо,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...