我在這個帖子的答案中發現了很大的用處(在R中回圈瀏覽多列并為每一列做一個圖?),但我想知道如何在我的圖中添加標準誤差條。這是我的嘗試,但我不確定如何使它正確作業。
data < -結構(list(年= c(2019L。 2019L, 2019L,, 2019L, 2019L, 2019L,
2019L, 2019L,, 2019L,/span> 2020L。 2020L, 2020L。 2020L, 2020L, 2020L,
2020L,/span> 2020L。 2020L, 2020L。 2020L)。 季節=結構(c(1L。
1L, 1L。 1L, 1L。 2L, 2L。 2L, 2L。 2L, 1L。 1L, 1L。 1L, 1L。 2L, 2L,
2L,/span> 2L。 2L), 。 標簽 = c("dry"。 "wet")。 class = " factor")。 站點= c(1L,
2L,/span> 3L。 4L, 5L。 1L, 2L。 3L, 4L。 5L, 1L。 2L, 3L。 4L, 5L。 1L, 2L,
3L,/span> 4L。 5L)。 temp = c(26. 9, 27. 8, 27.3, 26.4, 26. 8, 29.4, 29.9,
29.9, 29. 9, 30, 24, 23. 5, 23. 9, 23.7, 24.1, 30. 2, 30.8, 30.8,
30.3, 30. 1),做=c(7. 5, 7.2, 7. 8, 8.1, 7.4, 3。 7, 3.2, 6. 4, 4.9,
5, 6. 5, 5.2, 5。 9, 6.7, 6. 3, 3.63, 1. 81, 1.85, 4.25, 0. 69),鹽度= c(32. 29,
30.1, 31.35, 31. 93, 30.77, 27. 35, 27.34, 28. 42, 28.37, 28.24,
32.69, 29.72, 29. 15, 28.9, 25. 29, 24.37, 23. 47, 25.1, 24.79,
23. 62), pH = c(8. 24, 8.28, 8. 37, 8.32, 8.39, 7. 85, 7.84, 8.13,
8.04, 8.06, 8. 26, 8.17, 8.18, 8. 24, 8.13, 7.8, 7. 61, 7.61, 7.95,
7. 41)。 water_depth = c(95L。 95L, 62L。 63L, 55L, 100L。 107L, 110L,
140L, 95L, 85L。 80L, 60L, 53L。 55L, 125L, 135L。 145L, 125L, 100L
)。 sed_depth = c(56L。 40L, 22L。 1L, 20L, 60L。 47L, 68L。 40L,
20L, 55L。 35L, 20L。 1L, 25L, 45L。 30L, 35L, 1L。 20L)。 SAV = c(/span>25. 5,。
41.5, 50, 47. 5, 60.1, 53.5, 46. 5, 80.5, 20, 32. 5, 26.1, 39.5,
29.1, 48.5, 39. 6, 63, 50。 5, 70, 70。 56)), 行。 names = c(1L。 155L,
309L, 463L, 617L。 771L, 925L。 1079L, 1233L, 1387L, 1541L, 1695L,
1849L, 2003L, 2157L。 2311L, 2465L。 2619L, 2773L。 2927L), class = "data. frame")
這是我的代碼。請注意,我希望仍然能夠讓ggtitle和檔案命名系統作業:
col_names < -colnames(data[, -c(1。 3)])
for (i in col_names) { # for-loop over columns
cdata2 <- plyr:: ddply(i, c("年"。 "季節"),總結,
N = length(i),/span>
n_mean = mean(i),
n_median =中位數(i),
sd = sd(num),/span>
se = sd / sqrt(N))
ggplot(cdata2, aes(x = year。 y = n_mean。 color = season))
geom_errorbar(Aes(ymin=n_mean-se, ymax=n_mean se),
寬度=.2,
color = "black")
geom_point(color = "black", # Make both seasons have black borders
形狀 = 21,
size = 3,
aes(fill = season))
scale_fill_manual(values=c("white"/span>。 "#C0C0C0")
scale_x_continuous(breaks=c(2005。 2006, 2007, 2008, 2009, 2010,2011, 2012。 2013, 2014, 2015,2016, 2017。 2018,2018,2019。 2020))
labs(x= NULL。 y = "Mean count")
ggtitle(i)
setwd('D:/.../Trend plots')
ggsave(paste0(i, "- ENV_trend_plot. png"),
高度= 5, 寬度=7。 單位 = "in")
}
uj5u.com熱心網友回復:
我的plyr詞匯量極其有限,所以我用dplyr語法來代替它。在替換了plyr塊后,從那以后似乎一帆風順。我包含了幾行顯示圖表的內容,并注釋了將圖表寫入磁盤的內容;當然,你也可以將這些改動反過來。
library(ggplot2)
library(dplyr)
col_names < -colnames(data[, -c(1。 3)])
# A list in which to store plots for reproducible
plist <- list()
for (i in col_names) { # for-loop over columns
cdata2 <- data %>%
group_by(year, season) %>%
summarise(N = length(. data[[i]]),。
n_mean = mean(. data[[i]]),。
n_median =中位數(. data[[i]]),.
sd = sd(. data[[i]]),。
se = sd / sqrt(N))
ggplot(cdata2, aes(x = year。 y = n_mean。 color = season))
geom_errorbar(Aes(ymin=n_mean-se, ymax=n_mean se),
寬度=.2,
color = "black")
geom_point(color = "black", # Make both seasons have black borders
形狀 = 21,
size = 3,
aes(fill = season))
scale_fill_manual(values=c("white"/span>。 "#C0C0C0")
scale_x_continuous(breaks=c(2005。 2006, 2007, 2008, 2009, 2010,2011, 2012。 2013, 2014, 2015,2016, 2017。 2018,2018,2019。 2020))
labs(x= NULL。 y = "Mean count")
ggtitle(i)
# Comment out the line below
plist[[i]> < - Last_plot()
# Uncomment these lines
# setwd('D:/.../Trend plots')
# ggsave( paste0(i, "- ENV_trend_plot.png"),
# height = 5, width=7, units = "in")
}
# Showing plots
patchwork::wrap_plots(plist)

創建于2021-09-09,由reprex包(v2.0.1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/318956.html
標籤:
上一篇:如何使用cloudbuild將機密管理器機密傳遞給app.yaml中的應用引擎環境變數
下一篇:'找不到服務“%s”的api代理'%serviceAssertionError:找不到服務“datastore_v3”的api代理
