Skip to content
Snippets Groups Projects
BWI2022_PK20241014.qmd 88.8 KiB
Newer Older
Wiebke Torsten's avatar
Wiebke Torsten committed

# Schritt 3: Filtere ba_farben so, dass nur die Farben verwendet werden, die im Plot vorkommen
farben_fuer_plot <- ba_farben[names(ba_farben) %in% baumarten_im_plot]

# Schritt 4: Erstelle das Diagramm mit dem sortierten Datensatz
ggplot(ausg_bestreell_land_bagr_22_sorted
       , aes(x = Baumartengruppe, y = Vorratausgeschieden, fill = Baumartengruppe)) +
  geom_col() +#(stat = "identity")#, position = "stack") +  # Gestapeltes Balkendiagramm
  # Legendenüberschrift hinzufügen
  labs(x = "Altersklasse", y = "ausgeschiedener Vorrat [m³/ha]", 
       title = "Ausgeschiedener Vorrat der Baumarten\n BWI2012 -- 2022",
       fill = "Baumartengruppe") +  # Legendenüberschrift
  
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1),  # X-Achse-Beschriftungen drehen
        legend.title = element_text(size = 8),  # Kleinere Titelgröße für die Legende
        legend.text = element_text(size = 7)) +  # Kleinere Schriftgröße für Labels
  
  scale_y_continuous(labels = scales::comma_format(big.mark = ".", decimal.mark = ",")) +  # Tausenderformat
  scale_fill_manual(values = farben_fuer_plot) +  # Farben aus ba_farben verwenden
  
  # Anpassung der Symbolgröße in der Legende
  guides(fill = guide_legend(
    ncol = 1,  # Einspaltige Legende
    override.aes = list(size = 3)  # Kleinere Symbole in der Legende
  ))
```

#### Ausgeschiedener Vorrat - nach Anteilen des rechnerischen Reinbestandes
- deutliche Verluste in Esche
- welcher Vorrat wird als Vorrat dargestellt?
- Wie viel bleibt übrig
- nn

```{r groupbar-vor_ausg_bb_bag_ak_ha_sorted, echo=FALSE}
#ideeler Vorrat mit ideellem abgang joinen und plotten


# Schritt 1: Sortiere den Datensatz nach Fläche und Baumartengruppe
vor_ausg_bb_bag_ak_ha_sorted <- vor_bb_bag_ak_ha %>%
  filter(Altersklasse == "alle Baumaltersklassen") %>%
  left_join(ausg_best_land_bagr_22 %>% filter(Land == "Brandenburg"),
            by = c("Baumartengruppe" = "Baumartengruppe")) %>%
  select(Baumartengruppe, Vorrat, Vorratausgeschieden) %>% 
  filter(!Baumartengruppe %in% c("alle Baumarten", "alle Laubbäume", "alle Nadelbäume")) %>%
  arrange(desc(Vorratausgeschieden))  # Sortiere nach Fläche in absteigender Reihenfolge

#Setze die Baumartengruppe als Faktor und ordne die Levels nach Fläche
vor_ausg_bb_bag_ak_ha_sorted$Baumartengruppe <- factor(vor_ausg_bb_bag_ak_ha_sorted$Baumartengruppe, 
                                          levels = vor_ausg_bb_bag_ak_ha_sorted  %>%
    arrange(desc(Vorratausgeschieden)) %>%
  distinct(Baumartengruppe) %>%  # Stellt sicher, dass keine doppelten Baumartengruppen vorhanden sind
  pull(Baumartengruppe))

# Schritt 2: Extrahiere die verwendeten Baumartengruppen
baumarten_im_plot <- vor_ausg_bb_bag_ak_ha_sorted %>%
  distinct(Baumartengruppe) %>%
  pull(Baumartengruppe)

# Schritt 3: Filtere ba_farben so, dass nur die Farben verwendet werden, die im Plot vorkommen
farben_fuer_plot <- ba_farben[names(ba_farben) %in% baumarten_im_plot]

# Long format für ggplot
vor_ausg_bb_bag_ak_ha_sorted <- vor_ausg_bb_bag_ak_ha_sorted %>%
  pivot_longer(cols = c(Vorrat, Vorratausgeschieden), names_to = "Vorratsart", values_to = "Vorrat")

# Plotten der Daten
# Plotten der Daten als gruppiertes Säulendiagramm
ggplot(vor_ausg_bb_bag_ak_ha_sorted, aes(x = Baumartengruppe, y = Vorrat, fill = Vorratsart)) +
  geom_bar(stat = "identity", position = position_dodge(width = 0.8), width = 0.7) +
  labs(x = "Baumartengruppe", y = "Vorrat [m³/ha]", fill = "Vorratsart") +
  scale_fill_manual(values = c("Vorrat" = "green", "Vorratausgeschieden" = "grey")) +
  theme_minimal() +
    theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  
Wiebke Torsten's avatar
Wiebke Torsten committed
  ggtitle("aktueller Vorrat und in den letzten zehn Jahren ausgeschiedener Vorrat nach Baumartengruppe")
Wiebke Torsten's avatar
Wiebke Torsten committed
```

#### Nutzung Zuwachs

Wiebke Torsten's avatar
Wiebke Torsten committed
## Änderungen in der Waldstruktur
::::: columns
::: {.column width="50%"}
Wiebke Torsten's avatar
Wiebke Torsten committed
-   `r format(land_bestaufbau %>% filter(Land == "Brandenburg" & Bestockungsaufbau == 'mehrschichtig') %>% select(Fläche) %>% pull() %>% round(0), big.mark = ".", decimal.mark = ",", scientific = FALSE)` ha
    bzw.
    `r format(land_bestaufbau %>% filter(Land == "Brandenburg" & Bestockungsaufbau == 'mehrschichtig') %>% select(Anteil) %>% pull() %>% round(1), big.mark = ".", decimal.mark = ",", scientific = FALSE)` %
    der Holzbodenfläche in Brandenburg haben mindestens zwei Schichten
-   gegenüber der BWI 2012 hat sich die Fläche mit Beständen von
    mindestens zwei Schichten um
    `r format(ver_land_bestaufbau_ha %>%  filter(Land == "Brandenburg" & Bestockungsaufbau == 'mehrschichtig' ) %>% pull() %>% round(0), big.mark = ".", decimal.mark = ",", scientific = FALSE)` ha
    erhöht
-   der Anteil einschichtiger Bestände hat sich gegenüber der BWI 2012
    um
    `r format(abs(ver_land_bestaufbau_ha %>%  filter(Land == "Brandenburg" & Bestockungsaufbau == 'einschichtig' ) %>% pull() %>% round(0)), big.mark = ".", decimal.mark = ",", scientific = FALSE)` ha
    verringert
Wiebke Torsten's avatar
Wiebke Torsten committed
```{r}
land_bestaufbau %>% 
    filter(Land == "Brandenburg" & !Bestockungsaufbau %in% c('mehrschichtig', 'alle Arten von Bestockungsaufbau')) %>%
    inner_join(ver_land_bestaufbau_ha %>% 
                 filter(Land == "Brandenburg" & !Bestockungsaufbau %in% c('mehrschichtig', 'alle Arten von Bestockungsaufbau')), 
               by = "Bestockungsaufbau") %>%
    select(Bestockungsaufbau, Fläche = Fläche.x, Veränderung = Fläche.y) %>%
   mutate(Ursprungswert = Fläche - Veränderung,
         ProzentualeVeränderung = (Veränderung / Ursprungswert) * 100) %>%
    pivot_longer(cols = c(Fläche, Veränderung), names_to = "Typ", values_to = "Wert")
```


::: {.column width="50%"}
```{r groupbar-bestaufbauflant, echo=FALSE}
ggplot(
  land_bestaufbau %>% 
    filter(Land == "Brandenburg" & !Bestockungsaufbau %in% c('mehrschichtig', 'alle Arten von Bestockungsaufbau')) %>%
    inner_join(ver_land_bestaufbau_ha %>% 
                 filter(Land == "Brandenburg" & !Bestockungsaufbau %in% c('mehrschichtig', 'alle Arten von Bestockungsaufbau')), 
               by = "Bestockungsaufbau") %>%
    select(Bestockungsaufbau, Fläche = Fläche.x, Veränderung = Fläche.y) %>%
Wiebke Torsten's avatar
Wiebke Torsten committed
   mutate(Ursprungswert = Fläche - Veränderung,
         ProzentualeVeränderung = (Veränderung / Ursprungswert) * 100) %>%
    pivot_longer(cols = c(Fläche, Veränderung), names_to = "Typ", values_to = "Wert")
  , aes(x = reorder(Bestockungsaufbau, -Wert), y = Wert, fill = Bestockungsaufbau)) +  # Färben nach Bestockungsaufbau
  geom_col(aes(group = Typ), position = position_dodge(width = 0.8), width = 0.7) +  # Typ als Gruppe verwenden, um nebeneinander zu bleiben
Wiebke Torsten's avatar
Wiebke Torsten committed
  geom_text(data = . %>% filter(Typ == "Veränderung"),  # Nur die Veränderungen beschriften
Wiebke Torsten's avatar
Wiebke Torsten committed
            aes(label = paste0(#scales::comma(Wert, big.mark = ".", decimal.mark = ","),
                               #"\n(", 
                               round(ProzentualeVeränderung, 1), "%"
                               )), 
            position = position_dodge(width = 0.8), vjust = -0.5, hjust = -0.2, size = 3) +
  labs(x = ""# "Bestockungsaufbau"
       , y = ""# "Holzbodenfläche [ha]"
       , 
       title = "Fläche und Veränderungen des \nBestockungsaufbaus in Brandenburg") +
  theme_minimal() +
Wiebke Torsten's avatar
Wiebke Torsten committed
  scale_fill_manual(values = schichtfarben) +  # Verwende die benutzerdefinierte Farbpalette 'schichtfarben'
Wiebke Torsten's avatar
Wiebke Torsten committed
  theme(axis.text.x = element_text(angle = 45, hjust = 1,colour = "black"),
        legend.position = "none") +  # Legende ausblenden +
  scale_y_continuous(labels = label_comma(big.mark = ".", decimal.mark = ",", accuracy = 1),  # Tausenderformat
                     breaks = seq(0, max(land_bestaufbau$Fläche, na.rm = TRUE), by = 100000))  # Schrittweite von 100.000 ha
Wiebke Torsten's avatar
Wiebke Torsten committed
ggsave("images/groupbar-bestaufbauflant.png", width = 15, height = 10, units = "cm")
Wiebke Torsten's avatar
Wiebke Torsten committed
```{r, echo=FALSE}
ggplot(waldtyp_bestaufbau_bb_ha_proz_ver %>% 
         filter(!Bestockungsaufbau == "alle Arten von Bestockungsaufbau" &
                  `Laub-/Nadel-Waldtyp` %in% c("Nadelwald-Typ", "Laubwald-Typ")), 
       aes(x = Bestockungsaufbau, y = Veränderung, fill = Bestockungsaufbau)) +
  geom_col(width = 0.7) +
  #facet_wrap(~ `Laub-/Nadel-Waldtyp`, scales = "free_y") +  # Facettierung nach Waldtyp
  labs(x = "`Laub-/Nadel-Waldtyp`", y = "Veränderung [ha]", fill = "Bestockungsaufbau", 
       title = "Veränderung des Bestockungsaufbaus nach Waldtyp in Brandenburg") +
  theme_minimal() +
  scale_fill_brewer(palette = "Set2") +  # Verwende eine Farbpalette für den Bestockungsaufbau
  theme(axis.text.x = element_text(angle = 45, hjust = 1), 
        legend.position = "none") +  # Drehe die x-Achsen-Beschriftungen und blende die Legende aus
  scale_y_continuous(labels = label_comma(big.mark = ".", decimal.mark = ",", accuracy = 1),  # Tausenderformat
                     breaks = seq(0, max(land_bestaufbau$Fläche, na.rm = TRUE), by = 10000))  # Schrittweite von 100.000 ha

```


```{r, echo=FALSE}
ggplot(waldtyp_bestaufbau_bb_ha_proz_ver %>% 
  filter(`Laub-/Nadel-Waldtyp` == "alle Laub-/Nadelwaldtypen" & !Bestockungsaufbau == "alle Arten von Bestockungsaufbau"),
  aes(x = Bestockungsaufbau, y = Veränderung, fill = Bestockungsaufbau)) +
  geom_col(width = 0.7) +
  labs(x = "Bestockungsaufbau", y = "Veränderung [ha]", 
       title = "Veränderung des Bestockungsaufbaus in Brandenburg") +
  theme_minimal() +
  scale_fill_manual(values = schichtfarben) +  # Verwende die benutzerdefinierte Farbpalette 'schichtfarben'
  scale_y_continuous(labels = label_comma(big.mark = ".", decimal.mark = ",", accuracy = 1),  # Tausenderformat
                     breaks = seq(0, max(land_bestaufbau$Fläche, na.rm = TRUE), by = 100000))  # Schrittweite von 100.000 ha
```

```{r, include=FALSE}
land_bestaufbau %>% 
  distinct(Bestockungsaufbau)
```


Wiebke Torsten's avatar
Wiebke Torsten committed
### Schichtigkeit und Laub- Nadelwald


### Totholz

Wiebke Torsten's avatar
Wiebke Torsten committed
#### Totholzvorrat nach Eigentumsart
Wiebke Torsten's avatar
Wiebke Torsten committed
```{r stackbar_tot_bb_eig_bag22, echo=FALSE}
Wiebke Torsten's avatar
Wiebke Torsten committed
ggplot(tot_bb_eig_bag22 %>% 
  filter(Eigentumsart %in% c("Öffentlicher Wald", 
                             "Staatswald (Land)",
                             "Privatwald, bis 20 ha",
                             "Privatwald, über 20 bis 1000 ha",
                             "Privatwald, über 1000 ha",
                             "alle Eigentumsarten") &
         #== "alle Eigentumsarten" & 
           !Baumartengruppe == "alle Baumartengruppen von Totholz"),
  aes(x = Eigentumsart, y = Totholzvorrat, fill = Baumartengruppe)) +
  geom_bar(stat = "identity", position = "stack") +
  scale_fill_manual(values = tot_bb_eig_bag22$farben) +
  labs(x = "Eigentumsart", y = "Totholzvorrat [m³/ha]", fill = "Baumartengruppe",
       title = "Totholzvorrat nach Eigentumsart und Baumartengruppe in Brandenburg") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  scale_y_continuous(labels = scales::comma_format(big.mark = ".", decimal.mark = ",", accuracy = 1),  # Tausenderformat
                     breaks = seq(0, max(tot_bb_eig_bag22$Totholzvorrat, na.rm = TRUE), by = 10))  # Schrittweite von 10.000 m³/ha
#ggsave("images/stackbar_tot_bb_eig_bag22.png", width = 15, height = 10, units = "cm")
```

```{r tbl_tot_bb_eig_bag22}
tot_bb_eig_bag22 %>% 
  filter(Baumartengruppe == "alle Baumartengruppen von Totholz") %>%
  select(Eigentumsart, Totholzvorrat) %>%
  flextable() %>% 
  colformat_double(big.mark = ".", decimal.mark = ",",digits = 1) %>%
  set_header_labels(Eigentumsart = "Eigentumsart", Totholzvorrat = "Totholzvorrat [m³/ha]") %>%
   bg(i = ~ Eigentumsart == "alle Eigentumsarten", bg = "#D3D3D3")%>%
  highlight(i = ~ Totholzvorrat > 17.6, color = "wheat", j = "Totholzvorrat") %>% 
  autofit()
```

#### Totholzvorratsänderung nach Eigentumsart
Wiebke Torsten's avatar
Wiebke Torsten committed
```{r stackbar_ver_tot_bb_eig_bag22, echo=FALSE}
Wiebke Torsten's avatar
Wiebke Torsten committed
ggplot(ver_tot_bb_eig_bag22 %>% 
  filter(Eigentumsart %in% c("Öffentlicher Wald", 
                             "Staatswald (Land)",
                             "Privatwald, bis 20 ha",
                             "Privatwald, über 20 bis 1000 ha",
                             "Privatwald, über 1000 ha",
                             "alle Eigentumsarten") &
         #== "alle Eigentumsarten" & 
           !Baumartengruppe == "alle Baumartengruppen von Totholz"),
  aes(x = Eigentumsart, y = Totholzvorrat, fill = Baumartengruppe)) +
  geom_bar(stat = "identity", position = "stack") +
  scale_fill_manual(values = ver_tot_bb_eig_bag22$farben) +
  labs(x = "Eigentumsart", y = "Totholzvorrat [m³/ha]", fill = "Baumartengruppe",
       title = "Änderung des Totholzvorrates BWI 2012 -- 2022\n
       nach Eigentumsart und Baumartengruppe in Brandenburg") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  scale_y_continuous(labels = scales::comma_format(big.mark = ".", decimal.mark = ",", accuracy = 1),  # Tausenderformat
                     breaks = seq(0, max(ver_tot_bb_eig_bag22$Totholzvorrat, na.rm = TRUE), by = 5))  # Schrittweite von 10.000 m³/ha
#ggsave("images/stackbar_ver_tot_bb_eig_bag22.png", width = 15, height = 10, units = "cm")
```

Wiebke Torsten's avatar
Wiebke Torsten committed
```{r tbl_ver_tot_bb_eig_bag22}
Wiebke Torsten's avatar
Wiebke Torsten committed
ver_tot_bb_eig_bag22 %>% 
  filter(Baumartengruppe == "alle Baumartengruppen von Totholz") %>%
  select(Eigentumsart, Totholzvorrat) %>%
  flextable() %>% 
  colformat_double(big.mark = ".", decimal.mark = ",",digits = 1) %>%
  set_header_labels(Eigentumsart = "Eigentumsart", Totholzvorrat = "Totholzvorrat [m³/ha]") %>%
   bg(i = ~ Eigentumsart == "alle Eigentumsarten", bg = "#D3D3D3")%>%
  highlight(i = ~ Totholzvorrat > 7.3, color = "wheat", j = "Totholzvorrat") %>% 
  autofit()
```

#### Totholzvorrat im Vergleich der Länder

```{r stackbar-tot_land_qm_ha_reell, echo=FALSE}
# Sortierreihenfolge direkt an das Tibble anhängen
tot_land_qm_ha_reell <- tot_land_qm_ha_reell %>%
  group_by(Land) %>%
  mutate(SortOrder = max(Totholz[Baumartengruppe == "alle Baumartengruppen von Totholz"])) %>%
  ungroup() %>%
  arrange(desc(SortOrder))

# Erstelle das stacked barplot für alle Baumartengruppen
ggplot(tot_land_qm_ha_reell %>%
         filter(Baumartengruppe != "alle Baumartengruppen von Totholz"),  # Filtere alles außer "alle Baumartengruppen von Totholz"
       aes(x = factor(Land, levels = unique(Land)), 
           y = Totholz, fill = Baumartengruppe)) +
  geom_bar(stat = "identity", position = "stack") +
  scale_fill_manual(values = tot_land_qm_ha_reell$farben) +
  labs(x = "Bundesland", y = "Totholzvorrat [m³/ha]", fill = "Baumartengruppe",
       title = "Totholzvorrat nach Bundesland und Baumartengruppe") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  scale_y_continuous(labels = scales::comma_format(big.mark = ".", decimal.mark = ",", accuracy = 1))
#ggsave("images/stackbar-tot_land_qm_ha_reell.PNG", width = 15, height = 10, units = "cm")
```

Wiebke Torsten's avatar
Wiebke Torsten committed
## Waldverjüngung
- Jungbestockung auf
`r format(jungbestflant %>%   filter(Land == 'Brandenburg' & Jungbestockung == "Jungbestockung mit oder ohne Schirm" & Kategorie == 'Wald') %>%   select(Fläche_jungfl) %>% pull() %>%   round(0),    big.mark = ".", decimal.mark = ",", scientific = FALSE)` ha
(`r format(jungbestflant %>%   filter(Land == 'Brandenburg' & Jungbestockung == "Jungbestockung mit oder ohne Schirm" & Kategorie == "Wald") %>%   select(Waldflächenanteil) %>% pull() %>%   round(1),    big.mark = ".", decimal.mark = ",", scientific = FALSE)` %)
der gesamten Waldfläche (+ `r format(ver_jungbestfl %>%   filter(Land == 'Brandenburg' & Jungbestockung == "Jungbestockung mit oder ohne Schirm") %>%   select(Veränderungsanteil) %>%   pull() %>%   round(1),    big.mark = ".", decimal.mark = ",", scientific = FALSE)` %)
- überwiegend aus Naturverjüngung

```{r tbl-jungbest_ba_22_long, echo=FALSE}
jungbest_ba_22_long %>% 
  filter(Baumartengruppe == "alle Baumarten") %>% 
  mutate(Anteil = round(Waldfläche / Waldfläche[Verjüngungsart == "alle Verjüngungsarten"]* 100,2)) %>% 
   mutate(SortOrder = ifelse(Verjüngungsart == "alle Verjüngungsarten", 1, 0)) %>%  # Hilfsspalte hinzufügen
  arrange(SortOrder, desc(Anteil)) %>%  # Nach Hilfsspalte und Anteil sortieren
  select(Verjüngungsart, Waldfläche, Anteil) %>%  # Spalten auswählen
  flextable() %>%
  colformat_double(big.mark = ".", decimal.mark = ",",digits = 1) %>%  
  set_header_labels(Waldfläche = "Waldfläche [ha]", Anteil = "Anteil [%]") %>% 
  bg(i = ~ Verjüngungsart == "alle Verjüngungsarten", bg = "#D3D3D3") %>%
  autofit()
```

- steigender Anteil der Laubbäume
  - bis 4 m Höhe 76,8 % (+ 3,8 %)
  - bis 1,3 m Höhe 77,4 % (+ 38 %)
  
```{r, include=FALSE}
  (442 + 211 + 479 + 1.144)/2939.51228 *100
```
  
  
  
<!-- TODO Verbiss -->

`r format(nproz_verb_ba_bb %>% filter(Baumartengruppe == 'alle Baumarten' & Verbissart == 'Verbiss') %>%   pull() %>%   round(1),    big.mark = ".", decimal.mark = ",", scientific = FALSE)` %
aller jungen Bäume in Brandenburg sind verbissen. Hinsichtlich des
Zieles einen klimaresilienten Wald aus Naturverjüngung zu erziehen ist
ein Verbissanteil von
**`r format(nproz_verb_ba_bb %>% filter(Baumartengruppe == 'alle Laubbäume' & Verbissart == 'Verbiss') %>%   pull() %>%   round(1),    big.mark = ".", decimal.mark = ",", scientific = FALSE)` %
bei den Laubbäumen (33 %)** und insbesondere von
`r format(nproz_verb_ba_bb %>% filter(Baumartengruppe == 'sonst. Lb niedriger Lebensdauer' & Verbissart == 'Verbiss') %>%   pull() %>%   round(1),    big.mark = ".", decimal.mark = ",", scientific = FALSE)` %
bei den sonstigen Laubbäumen niedriger Lebensdauer als zu hoch
einzustufen. Dies besonders bei einer geringen Jungpflanzendichte von
**`r format(jung_nha_verb_ba_bb %>% filter(Baumartengruppe == 'alle Laubbäume' & Verbissart == 'kein Verbiss') %>%   pull() %>%   round(1),    big.mark = ".", decimal.mark = ",", scientific = FALSE)` Pflanzen/ha unverbissenerLaubbäume**.

```{r, echo=FALSE}
jungbest_ba_22_long %>%  
  group_by(Verjüngungsart) %>%
  mutate(Anteil = round(Waldfläche / Waldfläche[Baumartengruppe == "alle Baumarten"]* 100,2)) %>% 
  ungroup() %>% 
  filter(Baumartengruppe == "alle Laubbäume" & Verjüngungsart == "alle Verjüngungsarten") %>% 
  select( Anteil)
  
```



```{r pie_jung_bb_eig_nba_hb_sorted, echo=FALSE}
# Schritt 1: Sortiere den Datensatz nach Anteil und Baumartengruppe
jung_bb_eig_nba_hb_sorted <- jung_bb_eig_nba_hb %>% 
  filter(Eigentumsart == "alle Eigentumsarten" &
           !Baumartengruppe %in% c("alle Baumarten", "alle Laubbäume", "alle Nadelbäume")) %>%
  arrange(desc(Anteil))  # Sortiere nach Anteil in absteigender Reihenfolge

# Schritt 2: Setze die Baumartengruppe als Faktor und definiere die Reihenfolge nach Anteil
jung_bb_eig_nba_hb_sorted$Baumartengruppe <- factor(
  jung_bb_eig_nba_hb_sorted$Baumartengruppe,
  levels = jung_bb_eig_nba_hb_sorted$Baumartengruppe
)

# Schritt 3: Filtere ba_farben so, dass nur die Farben verwendet werden, die im Plot vorkommen
farben_fuer_plot <- ba_farben[names(ba_farben) %in% levels(jung_bb_eig_nba_hb_sorted$Baumartengruppe)]

# Schritt 4: Berechne die Positionen für die Labels
jung_bb_eig_nba_hb_sorted <- jung_bb_eig_nba_hb_sorted %>%
  mutate(ypos = cumsum(Anteil) - 0.5 * Anteil)  # Mittlere Position des Segments

# Erstelle das Kreisdiagramm mit korrekt positionierten Labels
ggplot(jung_bb_eig_nba_hb_sorted, aes(x = "", y = Anteil, fill = Baumartengruppe)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y", start = 0) +
  geom_text(data = subset(jung_bb_eig_nba_hb_sorted, Anteil > 9),  # Nur Baumarten mit Anteil > 6 %
            aes(label = paste0(Baumartengruppe, "\n", round(Anteil, 2), "%"), y = ypos), 
            size = 3) +  # Beschriftung im Zentrum des Segments
  scale_fill_manual(values = farben_fuer_plot) +
  theme_void() +
  theme(legend.position = "right")  # Position der Legende
```
Wiebke Torsten's avatar
Wiebke Torsten committed
```{r barplot-jung_bb_eig_nba_hb_sorted, echo=FALSE}
Wiebke Torsten's avatar
Wiebke Torsten committed
# Schritt 1: Sortiere den Datensatz nach Anteil und Baumartengruppe
jung_bb_eig_nba_hb_sorted <- jung_bb_eig_nba_hb %>% 
  filter(Eigentumsart == "alle Eigentumsarten" &
           !Baumartengruppe %in% c("alle Baumarten", "alle Laubbäume", "alle Nadelbäume")) %>%
  arrange(desc(Anteil))  # Sortiere nach Anteil in absteigender Reihenfolge

# Schritt 2: Setze die Baumartengruppe als Faktor und definiere die Reihenfolge nach Anteil
jung_bb_eig_nba_hb_sorted$Baumartengruppe <- factor(
  jung_bb_eig_nba_hb_sorted$Baumartengruppe,
  levels = jung_bb_eig_nba_hb_sorted$Baumartengruppe
)

# Schritt 3: Filtere ba_farben so, dass nur die Farben verwendet werden, die im Plot vorkommen
farben_fuer_plot <- ba_farben[names(ba_farben) %in% levels(jung_bb_eig_nba_hb_sorted$Baumartengruppe)]

# Erstelle das liegende gestapelte Balkendiagramm
Wiebke Torsten's avatar
Wiebke Torsten committed
ggplot(jung_bb_eig_nba_hb_sorted, aes(x = Baumartengruppe, y = Anteil, fill = Baumartengruppe)) +
  geom_bar(stat = "identity", position = position_dodge(width = 0.8), width = 0.7) +
  coord_flip() +  # Koordinaten umkehren, um ein liegendes Balkendiagramm zu erstellen
  geom_text(aes(label = paste0(round(Anteil, 2), "%")),
            position = position_dodge(width = 0.8), hjust = -0.1, size = 3, color = "black") +  # Beschriftung am Ende des Balkens
Wiebke Torsten's avatar
Wiebke Torsten committed
  scale_fill_manual(values = farben_fuer_plot) +
  theme_minimal() +
Wiebke Torsten's avatar
Wiebke Torsten committed
  labs(x = "", y = "", title = "Anteile der Baumartengruppen (< 1,3m)\n in allen Eigentumsarten") +
  theme(
    legend.position = "none",  # Entfernt die Legende
    axis.text.y = element_text(size = 8), 
    axis.ticks.y = element_blank(),
    panel.spacing = unit(0, "cm"),  # Verringert den Abstand zwischen Panel und Achse
    plot.margin = margin(5, 5, 5, 5)  # Passt die Abstände um das Diagramm an
  ) +
  scale_y_continuous(expand = c(0, 0.1))  # Kontrolliert den Abstand der Bars zur Achse
ggsave("images/barplot-jung_bb_eig_nba_hb_sorted.png", width = 15, height = 10, units = "cm")
Wiebke Torsten's avatar
Wiebke Torsten committed
```
```{r, echo=FALSE}
# Daten vorbereiten
jung_bb_eig_nba_hb_pie_data <- jung_bb_eig_nba_hb %>% 
  filter(Eigentumsart == "alle Eigentumsarten" &
           !Baumartengruppe %in% c("alle Baumarten", "alle Laubbäume", "alle Nadelbäume")) %>%
  arrange(desc(Anteil)) %>%   # Sortiere nach Anteil in absteigender Reihenfolge
  filter(Anteil > 0)  # Stelle sicher, dass es keine 0-Anteile gibt

# Setze die Baumartengruppe als Faktor, um die Reihenfolge sicherzustellen
jung_bb_eig_nba_hb_pie_data$Baumartengruppe <- factor(
  jung_bb_eig_nba_hb_pie_data$Baumartengruppe,
  levels = jung_bb_eig_nba_hb_pie_data$Baumartengruppe
)

# Farben für die Baumartengruppen entsprechend ba_farben
farben_fuer_plot <- ba_farben[as.character(jung_bb_eig_nba_hb_pie_data$Baumartengruppe)]

# Erstelle das Kreisdiagramm mit der pie()-Funktion
pie(jung_bb_eig_nba_hb_pie_data$Anteil, 
    labels = ifelse(jung_bb_eig_nba_hb_pie_data$Anteil > 9, paste0(jung_bb_eig_nba_hb_pie_data$Baumartengruppe, "\n", 
                                                                   round(jung_bb_eig_nba_hb_pie_data$Anteil, 2), "%"), ""), 
    col = farben_fuer_plot,
    main = "Anteile der Baumartengruppen in allen Eigentumsarten")
```


```{r stackedbar_jung_bb_eig_nba_hb_l_all, echo=FALSE}

ggplot(jung_bb_eig_nba_hb %>% 
  filter(Eigentumsart %in% c("alle Eigentumsarten", "Staatswald (Land)") &
           Baumartengruppe %in% c("alle Laubbäume", "alle Nadelbäume")), 
  aes(x = Eigentumsart, y = Anteil, fill = Baumartengruppe)) +
  geom_bar(stat = "identity", position = "stack", width = 0.7) +
  labs(x = "Eigentumsart", y = "Anteil (%)", 
       title = "Laubbaum und Nadelbaumverteilung nach Eigentumsart") +
  scale_fill_manual(values = c("alle Laubbäume" = "#66c2a5", "alle Nadelbäume" = "#fc8d62")) +  # Farben manuell festlegen
  geom_text(aes(label = paste0(Baumartengruppe, ": ", round(Anteil, 2), "%")),
            position = position_stack(vjust = 0.5), size = 3, color = "black") +  # Beschriftung im Zentrum des Balkens
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 0, hjust = 1),
        legend.position = "none")  # Legende entfernen
#ggsave("images/stackedbar_jung_bb_eig_nba_hb_l_all.png", width = 15, height = 10, units = "cm")
```


```{r pie_jung_bb_eig_nba_hb_l_all.png, echo=FALSE}
# Öffne eine PNG-Datei zum Speichern des Plots
# png("images/pie_jung_bb_eig_nba_hb_l_all.png", width = 800, height = 400)

# Daten filtern und vorbereiten
jung_bb_eig_nba_hb_pie_data <- jung_bb_eig_nba_hb %>% 
  filter(Eigentumsart %in% c("alle Eigentumsarten", "Staatswald (Land)") &
           Baumartengruppe %in% c("alle Laubbäume", "alle Nadelbäume")) %>%
  arrange(Eigentumsart, desc(Anteil))  # Sortiere nach Eigentumsart und Anteil

# Setze die Farben entsprechend der Baumartengruppe
farben_fuer_plot <- c("alle Laubbäume" = "#66c2a5", "alle Nadelbäume" = "#fc8d62")

# Vorbereitung für das Nebeneinanderstellen der Kreisdiagramme
par(mfrow = c(1, 2))  # Zwei Plots nebeneinander

# Kreisdiagramm für "alle Eigentumsarten"
pie(jung_bb_eig_nba_hb_pie_data$Anteil[jung_bb_eig_nba_hb_pie_data$Eigentumsart == "alle Eigentumsarten"],
    labels = paste0(jung_bb_eig_nba_hb_pie_data$Baumartengruppe[jung_bb_eig_nba_hb_pie_data$Eigentumsart == "alle Eigentumsarten"], "\n", 
                    round(jung_bb_eig_nba_hb_pie_data$Anteil[jung_bb_eig_nba_hb_pie_data$Eigentumsart == "alle Eigentumsarten"], 2), "%"),
    col = farben_fuer_plot[jung_bb_eig_nba_hb_pie_data$Baumartengruppe[jung_bb_eig_nba_hb_pie_data$Eigentumsart == "alle Eigentumsarten"]],
    main = "Alle Eigentumsarten")

# Kreisdiagramm für "Staatswald (Land)"
pie(jung_bb_eig_nba_hb_pie_data$Anteil[jung_bb_eig_nba_hb_pie_data$Eigentumsart == "Staatswald (Land)"],
    labels = paste0(jung_bb_eig_nba_hb_pie_data$Baumartengruppe[jung_bb_eig_nba_hb_pie_data$Eigentumsart == "Staatswald (Land)"], "\n", 
                    round(jung_bb_eig_nba_hb_pie_data$Anteil[jung_bb_eig_nba_hb_pie_data$Eigentumsart == "Staatswald (Land)"], 2), "%"),
    col = farben_fuer_plot[jung_bb_eig_nba_hb_pie_data$Baumartengruppe[jung_bb_eig_nba_hb_pie_data$Eigentumsart == "Staatswald (Land)"]],
    main = "Staatswald (Land)")

# Zurücksetzen der Paramenter für das Plot-Layout
par(mfrow = c(1, 1))
# Schließe die Grafikdatei und speichere sie
# dev.off()
```

Wiebke Torsten's avatar
Wiebke Torsten committed
```{r groupbar-jung_verbproz_laub_nadel, echo=FALSE}
ggplot(nproz_verb_ba_bb %>%
  filter(Baumartengruppe %in% c('alle Baumarten', "alle Nadelbäume", "alle Laubbäume"),
         `Verbissart` %in% c("Verbiss", "kein Verbiss"))
  , aes(x = Baumartengruppe, y = Verbissprozent, fill = `Verbissart`)) +
  geom_bar(stat = "identity", position = position_dodge(width = 0.8), width = 0.7) +
  labs(x = "", y = "", 
       title = "Verbissprozent für 'Verbiss' und 'kein Verbiss' nach Baumartengruppe") +
  scale_fill_manual(values = c("Verbiss" = "#fc8d62", "kein Verbiss" = "#66c2a5")) +  # Farben manuell festlegen
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) 
#ggsave("images/groupbar-jung_verbproz_laub_nadel.png", width = 15, height = 10, units = "cm")
```

```{r groupbar-jung_bb_eig_proz, echo=FALSE}
# Reihenfolge der Eigentumsarten festlegen
jung_bb_eig_proz <- jung_bb_eig_proz %>%
  mutate(Eigentumsart = factor(Eigentumsart, 
                               levels = c('Öffentlicher Wald', 
                                          "Staatswald (Land)", 
                                          "Privatwald", 
                                          "alle Eigentumsarten")))

ggplot(jung_bb_eig_proz %>%
  filter(Eigentumsart %in% c('Öffentlicher Wald', 
                              "Staatswald (Land)", 
                              "Privatwald", "alle Eigentumsarten"),
         `Verbissart` %in% c("Verbiss", "kein Verbiss"))
  , aes(x = Eigentumsart, y = Verbissprozent, fill = `Verbissart`)) +
  geom_bar(stat = "identity", position = position_dodge(width = 0.8), width = 0.7) +
  labs(x = "", y = "", 
       title = "Verbissprozent für 'Verbiss' und 'kein Verbiss' nach Eigentumsarten") +
  scale_fill_manual(values = c("Verbiss" = "#fc8d62", "kein Verbiss" = "#66c2a5")) +  # Farben manuell festlegen
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) 
#ggsave("images/groupbar-jung_bb_eig_proz.png", width = 15, height = 10, units = "cm")
```

```{r stackbar-bestyp_eig_bb_ha_anteile, echo=FALSE}
# Berechnung der Anteile und Hinzufügen der Spalte Anteil
bestyp_eig_bb_ha_anteile <- bestyp_eig_bb_ha %>%
  filter(Eigentumsart %in% c('Öffentlicher Wald', 
                             "Staatswald (Land)", 
                             "Privatwald", 
                             "alle Eigentumsarten"),
         !Bestockungstyp %in% c("Laubwald-Typ", "Nadelwald-Typ")) %>%
  group_by(Eigentumsart) %>%
  mutate(Gesamtfläche = Waldfläche[Bestockungstyp == "alle Laub-/Nadelwaldtypen"],
         Anteil = (Waldfläche / Gesamtfläche) * 100) %>%
  filter(!Bestockungstyp %in% c("alle Laub-/Nadelwaldtypen")) %>%
  ungroup() %>%
Wiebke Torsten's avatar
Wiebke Torsten committed
  mutate(Bestockungstyp = factor(Bestockungstyp, levels = c(
    "reiner Laubwald",
    "Laubwald mit Nadelbeimischung",
    "Laub-/Nadel-Mischwald mit gleichen Anteilen",
    "Nadelwald mit Laubbeimischung",
    "reiner Nadelwald")))  %>% 
Wiebke Torsten's avatar
Wiebke Torsten committed
  mutate(Eigentumsart = factor(Eigentumsart, 
                               levels = c('Öffentlicher Wald', 
                                          "Staatswald (Land)", 
                                          "Privatwald", 
                                          "alle Eigentumsarten")))

# Erstelle das gestapelte Balkendiagramm mit Anteilen als Beschriftung
ggplot(bestyp_eig_bb_ha_anteile, aes(x = Eigentumsart, y = Anteil, fill = Bestockungstyp)) +
  geom_bar(stat = "identity", position = "stack", width = 0.7) +
  # geom_text(aes(label = paste0(round(Anteil, 1), "%")), 
Wiebke Torsten's avatar
Wiebke Torsten committed
  #            position = position_stack(vjust = 0.5), size = 3, color = "black") +
   labs(x = "", y = "Bestockungstypanteile [%]", 
Wiebke Torsten's avatar
Wiebke Torsten committed
       title = "Waldflächenanteile\n nach Bestockungstyp und Eigentumsart") +
  scale_fill_manual(values = c("#66c2a5", "#fc8d62", "#8da0cb", "#e78ac3", "#a6d854", "#ffd92f", "#e5c494")) +  # Manuell definierte Farben für Bestockungstypen
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))
#ggsave("images/stackbar-bestyp_eig_bb_ha_anteile.png", width = 15, height = 10, units = "cm")
Wiebke Torsten's avatar
Wiebke Torsten committed
#ggsave("images/stackbar-bestyp_eig_bb_ha_anteile_label.png", width = 15, height = 10, units = "cm")
Wiebke Torsten's avatar
Wiebke Torsten committed
```{r}
bestyp_eig_bb_ha_anteile %>% 
  filter(Eigentumsart == "alle Eigentumsarten") %>% 
  select(Bestockungstyp, Waldfläche, Anteil) %>%
  flextable() %>%
  colformat_double(big.mark = ".", decimal.mark = ",",digits = 1) %>%
  autofit()

```


Wiebke Torsten's avatar
Wiebke Torsten committed
```{r barplot-ver_bestyp_eig_bb_ha_filtered, echo=FALSE}
Wiebke Torsten's avatar
Wiebke Torsten committed
# Daten filtern und Bestockungstyp als Faktor setzen
ver_bestyp_eig_bb_ha_filtered <- ver_bestyp_eig_bb_ha %>%
Wiebke Torsten's avatar
Wiebke Torsten committed
  filter(Eigentumsart == "alle Eigentumsarten" &
Wiebke Torsten's avatar
Wiebke Torsten committed
         !Bestockungstyp %in% c("alle Laub-/Nadelwaldtypen","Laubwald-Typ", "Nadelwald-Typ")) %>%
Wiebke Torsten's avatar
Wiebke Torsten committed
  mutate(Bestockungstyp = factor(Bestockungstyp, levels = c(
    "reiner Laubwald",
    "Laubwald mit Nadelbeimischung",
    "Laub-/Nadel-Mischwald mit gleichen Anteilen",
    "Nadelwald mit Laubbeimischung",
    "reiner Nadelwald")))  
  
Wiebke Torsten's avatar
Wiebke Torsten committed
# Erstelle das Balkendiagramm für die Veränderungen der Bestockungstypen
ggplot(ver_bestyp_eig_bb_ha_filtered, aes(x = Bestockungstyp, y = Waldflächenänderung, fill = Bestockungstyp)) +
  geom_bar(stat = "identity", width = 0.7) +
  labs(x = "", y = "Waldflächenänderung [ha]", 
       title = "Veränderungen der Waldflächen nach Bestockungstypen\n(alle Eigentumsarten)") +
  scale_fill_manual(values = c("#66c2a5", "#fc8d62", "#8da0cb", "#e78ac3", "#a6d854", "#ffd92f", "#e5c494")) +  # Manuell definierte Farben
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1), 
Wiebke Torsten's avatar
Wiebke Torsten committed
       # legend.position = "none"
        )  # Entfernt die Legende
ggsave("images/barplot-ver_bestyp_eig_bb_ha_filtered-legende.png", width = 15, height = 10, units = "cm")
Wiebke Torsten's avatar
Wiebke Torsten committed
```
Wiebke Torsten's avatar
Wiebke Torsten committed
```{r}
ver_bestyp_eig_bb_ha_filtered %>% 
  flextable() %>%
  colformat_double(big.mark = ".", decimal.mark = ",",digits = 0)
```

```{r}
Wiebke Torsten's avatar
Wiebke Torsten committed
# bestyp_eig_bb_ha_filtered %>% 
#   filter(Eigentumsart == "alle Eigentumsarten") %>%
#   flextable() %>%
#   colformat_double(big.mark = ".", decimal.mark = ",",digits = 0)
Wiebke Torsten's avatar
Wiebke Torsten committed
```

```{r}
ver_bestyp_eig_bb_ha %>% 
  filter(Eigentumsart %in% c(
    # 'Öffentlicher Wald',
    # "Staatswald (Land)", 
    # "Privatwald",
    "alle Eigentumsarten"),
         !Bestockungstyp %in% c("alle Laub-/Nadelwaldtypen"))
```
### zuwachs

```{r}
zuw_eig_bag_ha_a %>% 
  filter(Eigentumsart %in% c('Öffentlicher Wald', 
                             "Staatswald (Land)", 
                             "Privatwald", 
                             "alle Eigentumsarten"),
         Baumartengruppe == "alle Baumarten") %>% 
  inner_join(
    nutz_eig_bag_ha_a %>% 
  filter(Eigentumsart %in% c('Öffentlicher Wald', 
                             "Staatswald (Land)", 
                             "Privatwald", 
                             "alle Eigentumsarten"),
         Baumartengruppe == "alle Baumarten"),
  by = c("Eigentumsart", "Baumartengruppe")
  ) %>%
  select(Eigentumsart, Baumartengruppe, Zuwachs, Nutzung) %>%
  pivot_longer(cols = c(Eigentumsart, Baumartengruppe),
               names_to = "ZuNutz", 
               values_to = "Efm")


```
```{r groupbar-zuwachs_nutzung_long, echo=FALSE}
zuwachs_nutzung_long <- zuw_eig_bag_ha_a %>% 
  filter(Eigentumsart %in% c('Öffentlicher Wald', 
                             "Staatswald (Land)", 
                             "Privatwald", 
                             "alle Eigentumsarten"),
         Baumartengruppe == "alle Baumarten") %>% 
  inner_join(
    nutz_eig_bag_ha_a %>% 
      filter(Eigentumsart %in% c('Öffentlicher Wald', 
                                 "Staatswald (Land)", 
                                 "Privatwald", 
                                 "alle Eigentumsarten"),
             Baumartengruppe == "alle Baumarten"),
    by = c("Eigentumsart", "Baumartengruppe")
  ) %>%
  select(Eigentumsart, Zuwachs, Nutzung) %>%
  pivot_longer(cols = c(Zuwachs, Nutzung), names_to = "Typ", values_to = "Wert")%>%
  mutate(Eigentumsart = factor(Eigentumsart, 
                               levels = c('Öffentlicher Wald', 
                                          "Staatswald (Land)", 
                                          "Privatwald", 
                                          "alle Eigentumsarten")))

# Erstelle das gruppierte Balkendiagramm
ggplot(zuwachs_nutzung_long, aes(x = Eigentumsart, y = Wert, fill = Typ)) +
  geom_bar(stat = "identity", position = position_dodge(width = 0.8), width = 0.7) +
  labs(x = "", y = "", 
       title = "Zuwachs und Nutzung nach Eigentumsart in Efm") +
  scale_fill_manual(values = c("Zuwachs" = "#66c2a5", "Nutzung" = "#fc8d62")) +  # Farben manuell festlegen
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))
ggsave("images/groupbar-zuwachs_nutzung_long.png", width = 15, height = 10, units = "cm")
```

Wiebke Torsten's avatar
Wiebke Torsten committed
# Zusammenfassung

- Brandenburg gehört zu den waldreichsten Ländern
- Waldflächenanteil ist stabil und leicht ansteigend
- Brandenburg ist größter Kiefernholzlieferant in Deutschland ?
- Kleinprivatwald erfordert besondere Fürsorge
- Holzvorrat ist anwachsend
- Waldumbau zeigt in Brandenburg Erfolge