Как отображать категориальные данные в R (с примерами)


В статистике категориальные данные представляют данные, которые могут иметь имена или метки.

Примеры включают:

  • Статус курения («курящий», «некурящий»)
  • Цвет глаз («голубой», «зеленый», «ореховый»)
  • Уровень образования (например, «средняя школа», «бакалавр», «магистр»)

Три графика, которые обычно используются для визуализации данных этого типа, включают:

  • Гистограммы
  • Мозаичные сюжеты
  • Блочные диаграммы по группам

В следующих примерах показано, как создать каждый из этих графиков в R.

Пример 1: гистограммы

В следующем коде показано, как создать гистограмму для визуализации частоты команд в определенном фрейме данных:

library (ggplot2) 

#create data frame
df <- data.frame(result = c('W', 'L', 'W', 'W', 'W', 'L', 'W', 'L', 'W', 'L'),
 team = c('B', 'B', 'B', 'B', 'D', 'A', 'A', 'A', 'C', 'C'),
 points = c(12, 28, 19, 22, 32, 45, 22, 28, 13, 19),
 rebounds = c(5, 7, 7, 12, 11, 4, 10, 7, 8, 8))

#create bar chart of teams
ggplot(df, aes (x=team)) +
 geom_bar()

На оси X отображается название каждой команды, а на оси Y — частота появления каждой команды во фрейме данных.

Мы также можем использовать следующий код, чтобы упорядочить столбцы на диаграмме от наибольшего к наименьшему:

#create bar chart of teams, ordered from large to small
ggplot(df, aes (x= reorder (team, team, function (x)- length (x)))) +
 geom_bar(fill='steelblue') +
 labs(x='Team') 

Пример 2: Блочные диаграммы по группам

Сгруппированные диаграммы — полезный способ визуализировать числовую переменную, сгруппированную по категориальной переменной.

Например, в следующем коде показано, как создавать диаграммы, которые показывают распределение набранных очков, сгруппированных по командам:

library (ggplot2) 

#create data frame
df <- data.frame(result = c('W', 'L', 'W', 'W', 'W', 'L', 'W', 'L', 'W', 'L'),
 team = c('B', 'B', 'B', 'B', 'D', 'A', 'A', 'A', 'C', 'C'),
 points = c(12, 28, 19, 22, 32, 45, 22, 28, 13, 19),
 rebounds = c(5, 7, 7, 12, 11, 4, 10, 7, 8, 8))

#create boxplots of points, grouped by team
ggplot(df, aes (x=team, y=points)) +
 geom_boxplot(fill='steelblue')

По оси X отображаются команды, а по оси Y — распределение очков, набранных каждой командой.

Пример 3: Мозаика

Мозаичный график — это тип графика, который отображает частоты двух разных категориальных переменных на одном графике.

Например, следующий код показывает, как создать мозаичный график, который показывает частоту категориальных переменных «результат» и «команда» на одном графике:

#create data frame
df <- data.frame(result = c('W', 'L', 'W', 'W', 'W', 'L', 'W', 'L', 'W', 'L'),
 team = c('B', 'B', 'B', 'B', 'D', 'A', 'A', 'A', 'C', 'C'),
 points = c(12, 28, 19, 22, 32, 45, 22, 28, 13, 19),
 rebounds = c(5, 7, 7, 12, 11, 4, 10, 7, 8, 8))

#create table of counts
counts <- table(df$result, df$team)

#create mosaic plot
mosaicplot(counts, xlab='Game Result', ylab='Team',
 main='Wins by Team', col='steelblue') 

По оси X отображается результат игры, а по оси Y — четыре разные команды.

Дополнительные ресурсы

В следующих руководствах объясняется, как создавать другие распространенные графики в R:

Как создать столбчатую диаграмму с накоплением в R
Как создать сгруппированную гистограмму в R
Как создать точечный график с накоплением в R