简体   繁体   中英

Plotting titles and legends on interactive igraph plot? (R)

I'm having trouble adding a title and legend to the inside of my graph. Is it not possible with tkplot OR plot?

    dff <- data.frame(a = c(0,1,2,3,4),b = c(3,4,5,6,7))
    nod <- data.frame(node = c(0:7),wt = c(1:8))
    pg <- graph_from_data_frame(d = dff, vertices = nod,directed = F)

    # plot function with edge.label added
    tkplot(pg, edge.label = nod$wt, main = "this is my graph")
    legend('topleft',legend= degree(pg)*5,pt.cex=20,col='white',
    pch=21, pt.bg='white')

It doesn't seem to want to work the way I want it to. I just want the legend to show the vertices adjusted to be bigger for a higher degree.

I was also wondering if there is a way to plot only certain vertices from the graph? For example, you choose one vertex and plot only the vertices that form a path back to it?

Based on the help for tkplot , here's an example of how to add a title to an interactive plot:

library(tcltk)

id = tkplot(pg, edge.label = nod$wt, main = "this is my graph")
canvas = tk_canvas(id)

width = as.numeric(tkcget(canvas, "-width"))
height = as.numeric(tkcget(canvas, "-height"))
tkcreate(canvas, "text", width/2, 25, text="My title",
         justify="center", 
         font=tkfont.create(family="helvetica", size=20, weight="bold"))

在此处输入图片说明

For the standard base R plot, your code works as is:

plot(pg, edge.label = nod$wt, main = "this is my graph")
legend('topleft',legend= degree(pg)*5,pt.cex=20,col='white',
       pch=21, pt.bg='white')

在此处输入图片说明

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM