让g
成为igraph
个对象。例如,一个简单的
library(igraph)
g <- make_graph(~A-B-C)
如果我多次绘制此图形,布局可能会有所不同。我想以某种方式解决它,所以我提出了这个解决方案:
attr(g, "layout") <- layout.auto(g)
plot_flo <- function(graph, ...){
plot(graph, layout = attr(graph, "layout"), ...)
}
现在,如果我使用plot_flo
绘制图形(flo用于“固定布局”)布局保持不变。
现在我想做的是通过将属性设置为单个函数调用来缩短此行。我的意思是这样的:
update_layout(g)
。
任何想法如何实现这一目标?
更新 好的,我设法建立了这样一个功能:
update_layout <- function(x){
name <- deparse(substitute(x))
paste0(name, "$layout <<- layout_nicely(", name, ")") %>%
parse(text = .) %>%
eval()
}
不知道它如何处理良好的R代码原则,但似乎有效 不过,谢谢@GaborCsardi的提示,现在不需要额外的绘图功能。