将网络/图形对象转换为绘图

时间:2019-06-26 15:44:33

标签: r plotly

我已经建立了一个网络并创建了igraph和网络对象。我可以使用ggplot绘制对象,然后使用ggplotly导出到plot_ly。

问题是我对图形没有真正的控制权,所以我想知道是否有更好的方法将网络(或Ig图形)导入到图形中以更好地控制布局。

例如,当连接两个节点时,我有一个权重分数,并想添加一个滑块以根据权重分数(介于0和1之间)进行过滤。

我猜想plotly可能是一个不错的选择,它将允许对网络图进行动态过滤。

这是一个可重复的示例。

我创建了如下的双向网络:

library(ggnet)
library(plotly)
library(network)
n <- data.frame(event1 = c(-0.2,0.8,0.4,0),
                event2 = c(0.34,-0.17,0.3,0),
                event3 = c(0.2,0.1,-0.73,0),
                row.names = letters[1:4])
net <- network(n,
               matrix.type = "bipartite",
               ignore.eval = FALSE,
               names.eval = "weights")

col = c("actor" = "grey", "event" = "gold")
set.edge.attribute(net, "color", ifelse(net %e% "weights" > 0, "green", "red"))
g <- ggnet2(net, color = "mode", palette = col, label = TRUE, edge.color = "color",edge.label="weights")

enter image description here 谢谢,

我将绘图转换为ggplot格式:

gp <- ggplotly(g)
htmlwidgets::saveWidget(as_widget(gp), "ggplot.html")

我得到下图。

enter image description here

如何向图形添加滑块,以便可以(动态地)滤除上方或下方的某个值?

例如查看所有边> 0 ???我从图表本身知道如何做,但是它不是动态的。我想使用plotly来查看并使用滑块删除边缘。

谢谢

0 个答案:

没有答案