Диаграммы Вена — это эффективный способ графически изображать отношения между множествами. В R есть замечательный пакет
VennDiagram, который успешно решает эту задачу. Но получающиеся диаграммы получаются чёрно-белыми. Сделать картинки немного интереснее поможет пакет
colorfulVennPlot. Он позволяет создавать цветные диаграммы для трёх множеств следующего вида:
Давайте разберёмся с тем, как он работает.
Для начала установим и подключим пакет:
Для рисования диаграммы нам понадобятся данные. Вслед за
мунаулом будем использовать фрейм данных survey (данные о 237 студентах университета Аделаиды) из пакета
MASS. Сделаем импорт этих данных:
data(survey, package = "MASS") # Справка: ?MASS::survey
Теперь нам нужно подготовить данные для диаграммы. Делается это командой createVennData:
# Grouping students by Pulse, Height and Age
vennData <- createVennData(survey,
Cols = c("Pulse","Height","Age"),
Splits = c(75, 170, 20), ## Split Pulse at 75, split Height at 170, split Age at 20
Labels = NULL, ## Keep Labels NULL, as we wish to stick with Pulse, Height and Age titles.
type = c("percent")) ## generate data as percents
Давайте разберёмся с её синтаксисом. Общий вид выглядит следующим образом:
createVennData(
x,
Cols = NULL,
Splits = c(0, 0, 0),
Labels = NULL,
type = c("count", "percent"))
- x — таблица с численными значениями, на основе которой будет рисоваться диаграмма (должно быть хотя бы три колонки)
- Cols — вектор длины 3, определяющий названия наших множеств (они же — столбцы таблицы x)
- Splits — вектор длины 3, который определяет пороговую величину, по которой будет происходить разбиение на множества
- Labels — подписи для каждого множества
- type — тип графика: count для непосредственных значений или percent для процентов
Теперь, когда данные готовы, осталось только нарисовать график:
plotVenn(vennData$x, vennData$labels)
Результат можно видеть на заглавном изображении.
Стоит отметить, что функцию plotVenn можно использовать непосредственно, без обращения к createVennData. Для этого необходимо явно указать все расчётные величины. Проще всего понять на примере:
y <- c(37,29,6,232,121,77,25)
names(y) <- c("001","010","011","100","101","110","111")
labels <- c("A","B","C")
plotVenn(y, labels, Colors=rainbow(7))
Комментариев нет:
Отправить комментарий