this post was submitted on 16 Dec 2023
224 points (93.1% liked)

Europe

8484 readers
3 users here now

News/Interesting Stories/Beautiful Pictures from Europe ๐Ÿ‡ช๐Ÿ‡บ

(Current banner: Thunder mountain, Germany, ๐Ÿ‡ฉ๐Ÿ‡ช ) Feel free to post submissions for banner pictures

Rules

(This list is obviously incomplete, but it will get expanded when necessary)

  1. Be nice to each other (e.g. No direct insults against each other);
  2. No racism, antisemitism, dehumanisation of minorities or glorification of National Socialism allowed;
  3. No posts linking to mis-information funded by foreign states or billionaires.

Also check out !yurop@lemm.ee

founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[โ€“] tal@lemmy.today 34 points 11 months ago* (last edited 11 months ago) (2 children)

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.

[โ€“] tal@lemmy.today 13 points 11 months ago* (last edited 11 months ago) (1 children)

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@lemmy.world 3 points 11 months ago (1 children)

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?

[โ€“] tal@lemmy.today 5 points 11 months ago

Nah, I just pasted it so that other people can reproduce.

[โ€“] interolivary@beehaw.org 11 points 11 months ago* (last edited 11 months ago) (1 children)

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@lemmy.today 6 points 11 months ago* (last edited 11 months ago) (1 children)

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.

[โ€“] interolivary@beehaw.org 1 points 11 months ago

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