Вы можете сделать это с пакетом igraph
.Ваш фрейм данных - это матрица смежности, а в igraph есть функция, которая превращает это в граф.Мой код ниже добавляет макет для позиционирования вершин в положениях, которые вы указали в своем образце графика.
## Your data
df = read.table(text="a b c classes
1 2 0 a
0 0 2 b
0 1 0 c",
header=TRUE)
library(igraph)
g = graph_from_adjacency_matrix(as.matrix(df[,1:3]), weighted=TRUE)
LO = matrix(c(0,0,0,3,2,1), ncol=2)
plot(g, layout=LO, edge.label=E(g)$weight, vertex.shape="rectangle",
vertex.color="white", edge.curved=c(0,0,0.15,0.15))
