I have tried the solution provided in link, but the width of the vertex did not change after applying the code.
First, I defined the function myvertex using the code from the link.
myvertex <- function(coords, v=NULL, params) {
vertex.color <- params("vertex", "color")
if (length(vertex.color) != 1 && !is.null(v)) {
vertex.color <- vertex.color[v]
}
vertex.size <- 1/200 * params("vertex", "size")
if (length(vertex.size) != 1 && !is.null(v)) {
vertex.size <- vertex.size[v]
}
vertex.frame.color <- params("vertex", "frame.color")
if (length(vertex.frame.color) != 1 && !is.null(v)) {
vertex.frame.color <- vertex.frame.color[v]
}
vertex.frame.width <- params("vertex", "frame.width")
if (length(vertex.frame.width) != 1 && !is.null(v)) {
vertex.frame.width <- vertex.frame.width[v]
}
mapply(coords[,1], coords[,2], vertex.color, vertex.frame.color,
vertex.size, vertex.frame.width,
FUN=function(x, y, bg, fg, size, lwd) {
symbols(x=x, y=y, bg=bg, fg=fg, lwd=lwd,
circles=size, add=TRUE, inches=FALSE)
})
}
add.vertex.shape("fvertex", clip=igraph.shape.noclip,
plot=myvertex, parameters=list(vertex.frame.color=1,
vertex.frame.width=10))
Then, I plot the graph adding the new attribute vertex.frame.width.
plot(g,layout=layout.fruchterman.reingold,
vertex.color=V(g)$color,edge.width=EDGE$count,edge.lty=6,edge.arrow.size=0.3,
vertex.size=V(g)$size, vertex.label.color="grey", vertex.shape=V(g)$shape,
vertex.frame.color=VERTEX$gender, vertex.frame.width=V(g)$width,
frame=F, main = "Network Plot of Teachers and Students", margin = 0.01)
It no longer returns the error message below but the width of the vertex frame remains the same even if I enter a larger value in the vertex.frame.width.
Error in i.parse.plot.params(graph, list(...)) :
Unknown vertex parameters: frame.width
This is what the plot looks like: network plot.
I am wondering if I am missing any steps in between. If anyone can provide a more detailed instruction, that would be great! Thank you in advance!