0

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

生成的可视化看起来与预期的一样,除了线条绘制在图像字形之上。有没有办法控制图层的视觉顺序,即节点(图像)绘制在顶部,线条绘制在后面?

在此处输入图像描述

4

1 回答 1

1

这里的问题是使用webgl = TRUE. 有关更多详细信息,请参阅Bokeh 文档(请参阅“支持”和“注释”部分。要点是并非所有字形都可以使用 WebGL 渲染(线条可以,图像不能)和“使用WebGL 绘制在未在 WebGL 中绘制的字形之上。”

如果你摆脱了webgl = TRUE,你应该在良好的状态!

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

于 2017-10-13T22:16:44.140 回答