Poniżej zostały wypisane wszystkie pakiety potrzebne do wykonania tego projektu:
Wczytano dane z monitoringu hydrologicznego w formacie xlsx. Dane zawierały dzienne odpływy jednostkowe od 1970 roku.
odp_jedn <- read.xlsx("C:/Users/LENOVO/Desktop/R/Nauki o Ziemi/4_odpływ_jednostkowy/odplyw_jednostkowy.xlsx")
colnames(odp_jedn)[2] <- "odpływ jednostkowy"
odp_jedn$data <- convertToDate(odp_jedn$data, format = "%Y-%m-%d")Następnie dodano kolumnę z rokiem hydrologicznym. W Polsce zaczyna się 1 listopada poprzedniego roku kalendarzowego.
odp_rh <- odp_jedn %>%
mutate("rok hydrologiczny" = year(.$data) + 1)
for (i in 1:nrow(odp_rh)) {
if(month(odp_rh[i,1]) < 11){
odp_rh[i,3] = odp_rh[i,3] - 1
}
}Dodano także kolumnę, która pokazywała, czy występują niżówki, a jeśli tak to jakiego są rodzaju: zwykła czy głęboka.
funkcja <- function(x){
if(x < 10 && x >= 5){
print("zwykła")
}else if(x < 5){
print("głęboka")
}else print("brak")
}
nizowki <- vector("character", nrow(odp_rh))
#for(i in 1:nrow(odp_rh)){nizowki[i] <- funkcja(odp_rh$`odpływ jednostkowy`[i])}W poniższej tabeli pokazane jest, jak przedstawiały się na dane, na podstawie których zostały utworzone wykresy.
Poniżej zostały przedstawione podstawowe statystyki dla całego zbioru danych.
## data odpływ jednostkowy rok hydrologiczny niżówki
## Min. :1970-11-01 Min. : 0.002 Min. :1971 brak :5046
## 1st Qu.:1982-10-31 1st Qu.: 2.850 1st Qu.:1983 głęboka:7464
## Median :1994-10-31 Median : 5.984 Median :1994 zwykła :5022
## Mean :1994-10-31 Mean : 9.503 Mean :1994
## 3rd Qu.:2006-10-31 3rd Qu.: 11.089 3rd Qu.:2006
## Max. :2018-10-31 Max. :838.361 Max. :2018
Poniżej został przedstawiony wykres przedstawiający liczbę dni, kiedy były poszczególne rodzaje niżówek oraz kiedy nie było ich wcale.
ggplot(dane, mapping = aes(niżówki)) +
geom_bar(aes(fill = niżówki)) +
scale_fill_manual(values = c("#330099", "#6633CC", "#6633FF")) +
labs(title = "Ilość poszczególnych rodzajów niżówek",
x = "Niżówki",
y = "Ilość") +
theme(legend.background = element_rect(fill = "grey90",
colour = "black"))Nastepnie utworzono wykres, który przedstawiał wartość odpływu jednostkowego w zależności od roku hydrologicznego.
ggplot(dane, aes(x = `rok hydrologiczny`, y = `odpływ jednostkowy`)) +
geom_point(aes(color = niżówki)) +
labs(title = "Wartość odpływu jednostkowego w poszczególnych latach hydrologicznych",
x = "Rok hydrologiczny",
y = "Odpływ jednostkowy") +
labs(color = "Rodzaj niżówki") +
scale_color_manual(values=c("#9900FF", "#3333FF", "#00FF66")) +
theme(legend.position = c(0.35, 0.9),
legend.direction = "horizontal",
legend.background = element_rect(fill = "grey90",
colour = "black"))+
guides(color = guide_legend(title.position = "top",
title.hjust = 0.5))Pogrupowano dane według miesięcy, a następnie utworzono wykres ukazujący średniomiesięczne wartości odpływu jednostkowego.
odp_mies <- dane %>%
mutate("miesiąc" = month(.$data)) %>%
group_by(miesiąc) %>%
summarise(sr_mies = mean(`odpływ jednostkowy`))
ggplot(odp_mies, aes(miesiąc, sr_mies)) +
geom_col(fill = "#990033") +
labs(title = "Średniomiesięczne wartości odpływu jednostkowego",
x = "Miesiące",
y = "Średnie wartości odpływu jednostkowego") +
scale_x_continuous(breaks = seq(1,12,1))Dane zostały podzielone na poszczególne dekady od roku 1970 do roku 2018.
d1 <- dane %>%
filter(`rok hydrologiczny` < 1981)
d2 <- dane %>%
filter(`rok hydrologiczny` > 1980 & `rok hydrologiczny` < 1991)
d3 <- dane %>%
filter(`rok hydrologiczny` > 1990 & `rok hydrologiczny` < 2001)
d4 <- dane %>%
filter(`rok hydrologiczny` > 2000 & `rok hydrologiczny` < 2011)
d5 <- dane %>%
filter(`rok hydrologiczny` > 2010 & `rok hydrologiczny` < 2021)
d1 <- d1 %>%
group_by(`niżówki`) %>%
summarise(suma = n()) %>%
mutate("lata" = "1971-1980")
d2 <- d2 %>%
group_by(`niżówki`) %>%
summarise(suma = n()) %>%
mutate("lata" = "1981-1990")
d3 <- d3 %>%
group_by(`niżówki`) %>%
summarise(suma = n()) %>%
mutate("lata" = "1991-2000")
d4 <- d4 %>%
group_by(`niżówki`) %>%
summarise(suma = n()) %>%
mutate("lata" = "2001-2010")
d5 <- d5 %>%
group_by(`niżówki`) %>%
summarise(suma = n()) %>%
mutate("lata" = "2011-2018")
all_d <- rbind(d1,d2,d3,d4,d5)Utworzone zmienne zostały połączone za pomocą fukncji rbind w celu wykreślenia wykresu przedstawiającego czas trwania niżówek w poszczególnych przedziałach czasowych.
ggplot(all_d, aes(lata, suma)) +
geom_col(aes(fill = niżówki), position = "dodge") +
labs(title = "Czas trwania niżówek dla poszczególnych dekad z podziałem na rodzaje niżówek",
x="Lata",y="Suma czasu trwania niżówek w poszczególnych latach") +
scale_fill_manual("niżówki", values = c("#009999","#0099FF","#339933")) +
theme(legend.position = "bottom",
legend.direction = "horizontal",
legend.background = element_rect(fill = "grey90",
colour = "black"),
plot.background = element_rect(fill = "grey90",
colour = "black"))