Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在igraph for R中为自定义形状更改vertex.frame.color?_R_Data Visualization_Igraph_Shapes - Fatal编程技术网

如何在igraph for R中为自定义形状更改vertex.frame.color?

如何在igraph for R中为自定义形状更改vertex.frame.color?,r,data-visualization,igraph,shapes,R,Data Visualization,Igraph,Shapes,你能帮帮我吗 我正在igraph中使用自定义菱形绘制网络。使用以下函数创建形状,这是对中提供的三角形形状函数的修改: MyDiamond我找到了解决方案 只需在调用符号时,将fg参数添加到菱形函数的末尾即可 MyDiamond <- function(coords, v=NULL, params) { vertex.color <- params("vertex", "color") if (length(vertex.color) !

你能帮帮我吗

我正在
igraph
中使用自定义菱形绘制网络。使用以下函数创建形状,这是对中提供的三角形形状函数的修改:

MyDiamond我找到了解决方案

只需在调用
符号时,将
fg
参数添加到菱形函数的末尾即可

MyDiamond <- function(coords, v=NULL, params) {
  vertex.color <- params("vertex", "color")
  if (length(vertex.color) != 1 && !is.null(v)) {
    vertex.color <- vertex.color[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.size <- 1/200 * params("vertex", "size")
  if (length(vertex.size) != 1 && !is.null(v)) {
    vertex.size <- vertex.size[v]
  }
  
  symbols(x=coords[,1], y=coords[,2], bg=vertex.color, fg=vertex.frame.color,
          stars=cbind(vertex.size, vertex.size, vertex.size, vertex.size),
          add=TRUE, inches=FALSE)
}
add_shape("diamond", clip=shapes("circle")$clip,
          plot=MyDiamond, parameters=list(vertex.frame.color="white",
                                           vertex.frame.width=1))
MyDiamond
shapes <- setdiff(shapes(), "")

g <- make_ring(length(shapes))

plot(g, vertex.shape="diamond", 
     vertex.color=rainbow(vcount(g)),
     vertex.frame.color = "white",
     vertex.size=seq(10,20,length=vcount(g)))
MyDiamond <- function(coords, v=NULL, params) {
  vertex.color <- params("vertex", "color")
  if (length(vertex.color) != 1 && !is.null(v)) {
    vertex.color <- vertex.color[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.size <- 1/200 * params("vertex", "size")
  if (length(vertex.size) != 1 && !is.null(v)) {
    vertex.size <- vertex.size[v]
  }
  
  symbols(x=coords[,1], y=coords[,2], bg=vertex.color, fg=vertex.frame.color,
          stars=cbind(vertex.size, vertex.size, vertex.size, vertex.size),
          add=TRUE, inches=FALSE)
}
add_shape("diamond", clip=shapes("circle")$clip,
          plot=MyDiamond, parameters=list(vertex.frame.color="white",
                                           vertex.frame.width=1))