График beeswarm — это вид визуализации данных, который позволяет отображать распределение и плотность значений категориальных переменных. Он похож на ящик с усами (boxplot) или точечный график, но с уникальной особенностью: данные расположены по горизонтальной или вертикальной оси, таким образом, чтобы не перекрывать друг друга. Это делает его особенно полезным для визуализации небольших наборов данных, где важна манипуляция с точками и ясность представления.

#Source: https://t.me/rstudioprogr
library(gapminder)
library(dplyr)
library(beeswarm)

head(gapminder)
## # A tibble: 6 × 6
##   country     continent  year lifeExp      pop gdpPercap
##   <fct>       <fct>     <int>   <dbl>    <int>     <dbl>
## 1 Afghanistan Asia       1952    28.8  8425333      779.
## 2 Afghanistan Asia       1957    30.3  9240934      821.
## 3 Afghanistan Asia       1962    32.0 10267083      853.
## 4 Afghanistan Asia       1967    34.0 11537966      836.
## 5 Afghanistan Asia       1972    36.1 13079460      740.
## 6 Afghanistan Asia       1977    38.4 14880372      786.
gapminder <- gapminder %>% filter(year < 1970)

lifeExp <- gapminder$lifeExp
year <- gapminder$year
continent <- gapminder$continent

# Bee swarm plot by group
beeswarm(lifeExp ~ year,
         pch = 19, 
         pwcol = as.numeric(continent), 
         method = "hex", 
         col = c("#3FA0FF", "#FFE099", "#F76D5E", "lightblue", "darkblue"))

legend("bottomright", legend = c("Asia", "Europe", "Africa", "Americas", "Oceania"),
       col = 1:5, pch = 19)