• @[email protected]
      link
      fedilink
      English
      34
      edit-2
      11 months ago

      statistia-netcontrib.csv

      country,netcontrib
      DE,25572
      FR,12380
      NL,6929
      IT,3337
      SE,2826
      DK,1766
      AT,1540
      FI,1109
      IE,703
      MT,-14
      CY,-172
      SI,-386
      EE,-729
      LT,-860
      SK,-1398
      LV,-1544
      BG,-1727
      HR,-1746
      ES,-1946
      LU,-2020
      CZ,-2853
      BE,-2950
      PT,-3132
      RO,-4096
      HU,-4206
      GR,-4278
      PL,-11910
      

      eu-contribution-per-capita.r

      if (!require("pacman")) install.packages("pacman")
      pacman::p_load(
                  countrycode,
                  dplyr,
                  ggdark,
                  ggplot2,
                  r2country
              )
      
      abs <- read.csv("statista-netcontrib.csv",header = TRUE)
      abs2 <- cbind(abs,name = countrycode(abs$country,"iso2c","country.name")) 
      
      df <- inner_join(country_names, abs2)
      df2 <- inner_join(country_population, df)
      df2$percap <- df2$netcontrib/df2$population2023*1000000
      
      df3 <- arrange(df2,percap)
      
      ggplot(df3, aes(x = percap, y = reorder(name, percap))) +
          geom_bar(stat = "identity") +
          dark_theme_gray() +
          ylab("Country") +
          xlab("Euros per capita") +
          scale_x_continuous(breaks = scales::pretty_breaks(n = 20)) +
          geom_text(aes(label = percap))
      
      ggsave("euros-percap.png")
      

      Full size image

      Sorry about the broken escaping of the angle brackets (“<” is “&lt;”) in the source; Lemmy is, regrettably, broken on that at the moment.

      EDIT: Fixed Latvia country code error.

      EDIT2: And Austria country code error.

      • @[email protected]
        link
        fedilink
        English
        12
        edit-2
        11 months ago

        Also, a Markdown table rendition:

        eu-contribution-per-capita-markdown.r

        if (!require("pacman")) install.packages("pacman")
        pacman::p_load(
                    countrycode,
                    dplyr,
                    r2country,
                    simplermarkdown
                )
        
        abs &lt;- read.csv("statista-netcontrib.csv",header = TRUE)
        abs2 &lt;- cbind(abs,name = countrycode(abs$country,"iso2c","country.name")) 
        
        df &lt;- inner_join(country_names, abs2)
        df2 &lt;- inner_join(country_population, df)
        df2$percap &lt;- df2$netcontrib/df2$population2023*1000000
        
        df3 &lt;- arrange(df2,-percap)
        
        md_table(df3)
        

        name percap
        Netherlands 386.91124
        Germany 302.86855
        Denmark 297.09908
        Sweden 267.98643
        Finland 199.90810
        France 181.71677
        Austria 168.68113
        Ireland 136.52768
        Italy 56.76638
        Malta -26.94577
        Spain -40.25217
        Slovenia -182.27546
        Cyprus -187.34343
        Romania -214.99549
        Belgium -250.73894
        Slovakia -257.60767
        Bulgaria -267.84703
        Portugal -299.21568
        Lithuania -300.05251
        Poland -315.86485
        Greece -408.10926
        Hungary -438.25808
        Croatia -449.01298
        Estonia -533.72029
        Latvia -819.79399
        Luxembourg -3056.85909
        • @Whelks_chance
          link
          English
          311 months ago

          This is very clever. Is Lemmy actually running the code to achieve this, or did you paste it just so other people can replicate the process?