#Source: https://t.me/rstudioprogr
#Source data: https://ru.tradingeconomics.com/country-list/gdp-per-capita?continent=europe
library(ggplot2)
df <- data.frame(Country = c("Люксембург", "Ирландия", "Швейцария", "Норвегия", "Дания", "Исландия",
"Швеция", "Нидерланды", "Великобритания", "Финляндия", "Австрия", "Бельгия",
"Германия", "Андорра", "Франция", "Италия", "Мальта", "Кипр", "Испания",
"Словения", "Португалия", "Греция", "Эстония", "Чехия", "Словакия", "Литва",
"Польша", "Хорватия", "Латвия", "Венгрия", "Турция", "Румыния", "Болгария",
"Черногория", "Сербия", "Беларусь", "Босния и Герцеговина", "Македония",
"Албания", "Косово", "Молдова"),
GDP_per_capita = c(105997, 91783, 89943, 78939, 61032, 58393, 55521, 50100, 47005, 45939,
45852, 44283, 42879, 40162, 38976, 33774, 31190, 30769, 28047, 25643,
22378, 20827, 20245, 19800, 19217, 18214, 17270, 17234, 16945, 16287,
14630, 12386, 9780, 8375, 7736, 6483, 6421, 6350, 5394, 4854, 3685))
median(df$GDP_per_capita)
## [1] 22378
df$criteria <- ifelse(df$GDP_per_capita > median(df$GDP_per_capita), "Выше медианы", "Ниже медианы")
df$diff <- df$GDP_per_capita - median(df$GDP_per_capita)
head(df)
## Country GDP_per_capita criteria diff
## 1 Люксембург 105997 Выше медианы 83619
## 2 Ирландия 91783 Выше медианы 69405
## 3 Швейцария 89943 Выше медианы 67565
## 4 Норвегия 78939 Выше медианы 56561
## 5 Дания 61032 Выше медианы 38654
## 6 Исландия 58393 Выше медианы 36015
ggplot(data = df, aes(x = diff, y = reorder(Country, diff), fill = criteria)) + geom_col()+ ylab("Страна") + xlab("Разница в ВВП на душу населения") +
guides(fill=guide_legend(title="Критерий")) + theme_minimal() + theme(legend.position = "top") + scale_fill_manual(values = c("lightblue", "coral")) +
geom_vline(aes(xintercept = mean(GDP_per_capita)), linetype="dashed", color = "grey3", size=1) +
annotate("text", x=mean(df$GDP_per_capita)+7000, y="Косово", label= "Средний ВВП
на душу населения")
