我正在尝试使用rbokeh
包构建网络可视化。
library(igraph)
library(rbokeh)
library(dplyr)
g <- random.graph.game(n=100,p=0.3)
L <- as.data.frame(igraph::layout_with_fr(g)) %>% rename(x=V1,y=V2)
url1 <- 'http://icons.veryicon.com/png/Business/Flat%20Finance/person.png'
p <- figure(xlab = "x", ylab = "y", height = 500,width=1000,xgrid=F,ygrid=F,webgl = T,
xaxes = F,yaxes = F,h_symmetry = T,v_symmetry = T) %>%
ly_lines(x = L$x,y=L$y,color = '#FFA700', width = 4, alpha = 0.2) %>%
ly_image_url(x = L$x, y=L$y, image_url = url1, w = rep(0.1,vcount(g)), h=rep(0.2,vcount(g)),
anchor = "center",lname = 'nodes')
除了在图像字形顶部绘制线条之外,所得到的可视化效果与预期一致。有没有办法控制图层的视觉顺序,以节点(图像)绘制在顶部,后面绘制线条?
答案 0 :(得分:1)
此处的问题是使用webgl = TRUE
。有关详细信息,请参阅Bokeh documentation(请参阅&#34;支持&#34;和&#34;说明&#34;部分。主要观点是,并非所有字形都可以使用WebGL呈现(是对于线条,没有用于图像)和那些&#34;使用WebGL绘制的字形绘制在未在WebGL中绘制的字形之上。&#34;
如果你摆脱webgl = TRUE
,你应该保持良好状态!
另外,为了进一步回答如何控制图层顺序的整体问题,答案是在这样的边缘情况之外,其中一个图层使用WebGL渲染而另一个图层不是,图层被绘制成它们被指定的顺序。