Daten laden und aufbereiten

library(tidyverse)
library(DT)
library(plotly)

daten <- readxl::read_excel("Länderfinanzausgleich.xlsx",
                   na = c("", "NA", "./."))
daten <- daten %>% 
  mutate(Volumen = str_remove_all(Volumen, "± ")) %>% 
  mutate_if(is.character, str_remove_all, "\\.") %>% 
  mutate_if(is.character, as.numeric)

daten <- daten %>% 
  gather(-Jahr, key = Bundesland, value = Finanzausgleich) %>% 
  arrange(Jahr, desc(Finanzausgleich)) %>% 
  mutate(Typ = ifelse(Finanzausgleich < 0, "Geberland", "Empfängerland")) %>% 
  mutate(Typ = fct_rev(Typ)) %>% 
  mutate(Finanzausgleich = -Finanzausgleich) %>% 
  filter(Bundesland != "Volumen") %>% 
  mutate(Bundesland = factor(Bundesland))

Bundeslaender <- daten %>% 
  filter(Jahr == 2018) %>%
  mutate(Bundesland = reorder(Bundesland, Finanzausgleich)) %>% 
  pull(Bundesland)

daten <- daten %>% 
  mutate(Bundesland = fct_relevel(Bundesland, as.character(Bundeslaender)))

Diagramm mit Mouse-Over-Effekten: Interaktive Beschriftungen

p <- daten %>% 
  filter(Jahr == 2018 | Jahr == 1995) %>% 
  ggplot(aes(x = Bundesland, y = Finanzausgleich,
             fill = ifelse(Bundesland == "Nordrhein-Westfalen" | Bundesland == "Bayern", "Ja", "Nein"))) +
  geom_col(width = 0.6) +
  labs(x = "",
       y = "Finanzausgleich in Mio. Euro",
       title = "Länderfinanzausgleich 1995 vs. 2018",
       subtitle = "Bayerns Aufstieg und Nordrhein-Westfalens Abstieg",
       caption = "Datenquelle: https://de.wikipedia.org/wiki/Länderfinanzausgleich#Finanzvolumen") +
  coord_flip() +
  facet_wrap(~ Jahr) +
  scale_fill_manual(name = "", values = c("Ja" = "steelblue1", "Nein" = "grey70")) +
  theme_bw() +
  theme(legend.position = "none",
        text = element_text(size = 14))

# Paket: plotly, Funktion: ggplotly
# Wird einfach auf das ggplot-Objekt angewendet

p <- p + labs(y = "", title = "LFA 1995 vs. 2018 in Mio. Euro")

ggplotly(p, tooltip = c("x", "y"))