If you have an edgelist you can do something very simillar with with igraph:
el <- matrix( c( "H" , "V" , "H" , "V2" , "V" , "1" , "V" , "V3" , "V3" , "3" , "V3" , "4" , "V2" , "2" , "V2" , "H2" ) , ncol = 2 , byrow = TRUE )
g <- graph.edgelist(el , directed = TRUE )
V(g)$label <- get.vertex.attribute(g, 'name')
plot(g,layout=layout.reingold.tilford)
You can also name you nodes in the el
command as letters and then use get.vertex.attribute(g, 'name')
to see what the resulting nodes are called, and then pass whatever character vector you like to get your labels as they are in the picture.