•  Thorry84   ( @Thorry84@feddit.nl ) 
    link
    fedilink
    English
    1316 months ago

    These kinds of charts are a bit dangerous, as it will be used by anti-EU folk in net contributing countries to say look at how much money we can save when we leave the EU. But this looks only at money being shipped back and forth. The EU has so much benefits in terms of trade and collaboration, it’s a steal at any price.

    •  tal   ( @tal@lemmy.today ) 
      link
      fedilink
      English
      20
      edit-2
      6 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.

      •  interolivary   ( @interolivary@beehaw.org ) 
        link
        fedilink
        English
        11
        edit-2
        6 months ago

        statistia-netcontrib.csv is using some weird country code that isn’t ISO 3166-2, because it’s got what I assume to be Latvia with the code LA which is actually Laos, and that’s reflected on your chart too – I was initially a bit puzzled as to why Laos was listed as being in the EU. At a quick glance it seems to be the only weird one though

        •  tal   ( @tal@lemmy.today ) 
          link
          fedilink
          English
          7
          edit-2
          6 months ago

          That’s just me not knowing my country codes. Over here, “LA” is generally Los Angeles. I’ll fix it; thanks.

          EDIT: Also, Austria appears to be “AT” rather than “AU”. One more fix.

          • Ah I thought you pulled that from some Eurostat database and they were using wonky country codes. The AU / AT mixup is a classic one, and since the spelling of Austria and Australia is so close it’s easy to miss that mistake – just like I did

      •  tal   ( @tal@lemmy.today ) 
        link
        fedilink
        English
        5
        edit-2
        6 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