#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= "Средний ВВП 
на душу населения")