RStudioのmanipulate関数でグラフ描画にインタラクティブな操作を追加する(4)

イメージ 1 Rstudioのmanipulate関数を使って、snaパッケージのgplotで有無・無向の別、描画アルゴリズム、ノード、ラベル、辺などの描画オプションをGUIで選べるようにした例。

library(sna)
library(manipulate)

graph <- rgraph(30, tprob =0.02)
manipulate(
gplot(graph, jitter = FALSE, vertex.sides = 20, usearrows = graph_type, displayisolates = isolates, displaylabels = display_labels, vertex.cex = vertex_size, vertex.col = vertex_color, label.cex = label_size, label.pos = label_position, mode = algorithm, edge.lwd = edge_width, edge.col = grey(edge_grey_scale)),
graph_type = checkbox(FALSE, "directed"),
algorithm = picker("circle" = "circle", "eigenstructure" = "eigen", "PCA" = "princoord", "Hall" = "hall", "MDS" = "mds", "spring" = "spring" ,"Fruchterman and Reingold" = "fruchtermanreingold", "Kamada-Kawai" = "kamadakawai", "target" = "target", "random" = "random"),
isolates = checkbox(TRUE, "display isolates"),
display_labels = checkbox(TRUE, "display labels"),
vertex_size = picker("small" = 1, "middle" = 2, "large" = 3),
vertex_color = picker("red" = "red", "white" = "white", "black" = "black"),
label_size = picker("small" = 0.5, "middle" = 1, "large" = 1.5),
label_position = picker("auto" = 0, "below" = 1, "above" = 3, "left" = 2, "right" = 4, "on the vertex" = 5),
edge_width = picker("narrow" = 1, "middle" = 3, "wide" = 5, "adjacency matrix" = graph),
edge_grey_scale = slider(0, 1))