Создание «дерева комбинаций» в R с помощью ggplot2

#r #ggplot2 #tree #combinatorics

#r #ggplot2 #дерево #комбинаторика

Вопрос:

Я заинтересован в создании такого изображения:

введите описание изображения здесь

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

Есть ли простой способ сделать это?

Я создал некоторые данные, подобные этому:

 var1 <- sample( LETTERS[1:5], 100, replace=TRUE, prob=c(0.2, 0.2, 0.2, 0.2, 0.2) )

var2 <- sample( LETTERS[6:7], 100, replace=TRUE, prob=c(0.5, 0.5) )

var3<- sample( LETTERS[8:11], 100, replace=TRUE, prob=c(0.1, 0.2, 0.65, 0.05) )

f <- data.frame(var1, var2, var3)

f$var1 = as.factor(f$var1)

f$var2 = as.factor(f$var2)

f$var3 = as.factor(f$var3)
  

Я пытался:

 plot(f)
  

Но это не сработало.
Спасибо!

Ответ №1:

Галерея R-graph дает нам действительно хорошую отправную точку.

 library(ggraph)
library(igraph)
library(tidyverse)

d1 <- data.frame(from="origin", to=LETTERS[1:5])
d2 <- data.frame(from=rep(d1$to, each=2), to=paste(LETTERS[6:7], 1:10, sep="_"))
d3 <- data.frame(from=rep(d2$to, each=3), to=paste(LETTERS[8:10], 1:30, sep="_"))
edges <- do.call(rbind, list(d1, d2, d3))

mygraph <- graph_from_data_frame(edges)

# Basic tree
ggraph(mygraph, layout = 'dendrogram', circular = FALSE)   
    geom_edge_diagonal()  
    geom_node_point()  
    geom_node_text(aes(label = c("origin", gsub("[0-9]|_","",edges$to))), repel = TRUE, colour = 'blue')  
    theme_void()
  

введите описание изображения здесь