如何在rbokeh中指定字形层的顺序?

时间:2017-07-26 16:08:22

标签: r bokeh rbokeh

我正在尝试使用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')

除了在图像字形顶部绘制线条之外,所得到的可视化效果与预期一致。有没有办法控制图层的视觉顺序,以节点(图像)绘制在顶部,后面绘制线条?

enter image description here

1 个答案:

答案 0 :(得分:1)

此处的问题是使用webgl = TRUE。有关详细信息,请参阅Bokeh documentation(请参阅&#34;支持&#34;和&#34;说明&#34;部分。主要观点是,并非所有字形都可以使用WebGL呈现(是对于线条,没有用于图像)和那些&#34;使用WebGL绘制的字形绘制在未在WebGL中绘制的字形之上。&#34;

如果你摆脱webgl = TRUE,你应该保持良好状态!

另外,为了进一步回答如何控制图层顺序的整体问题,答案是在这样的边缘情况之外,其中一个图层使用WebGL渲染而另一个图层不是,图层被绘制成它们被指定的顺序。