我目前正在开发一个R/闪亮应用程序,该应用程序使用VisNetwork框架生成网络图。我的同事将需要我将生成的地块导出到Gephi。我研究了所有可能的选择,但没有一个是理想的。什么是将VisNetwork图导出到地理信息库的最佳方法?
节点颜色,线宽,背景色.没关系--事实上,总体来说,审美并不重要。我们想要做的就是简单地将数据导出到地理信息库。一旦我们将这些数据加载到地理信息中,我们应该得到一个相似的情节,尽管有着不同的美学。
现在,有不同的选项可以将文件加载到Gephi中。当我们查看伤寒氏文献时,我们可以看到最优的格式是GEFX (具有边缘权重、层次结构和XML结构)或CSV (具有边缘列表/矩阵结构)。
但是,VisNetwork不允许导出到这些格式。
Gephi可以导出一个JSon文件,然后可以用VisNetwork打开该文件--但似乎不可能出现相反的情况。实际上,VisNetwork具有函数visNetwork(gephi = 'network.json'),但它似乎不允许导出json文件,只允许导入。
VisNetwork也提供了visExport()函数,但它只允许用户导出图像(png/jpg/pdf)。
下面是一个非常简单的VisNetwork图,作为一个最小可复制的示例:
nodes <- data.frame(id = 1:10, label = paste("Label", 1:10),
group = sample(c("A", "B"), 10, replace = TRUE))
edges <- data.frame(from = c(2,5,10), to = c(1,2,10))
network <- visNetwork(nodes, edges, height = "400px", width = "100%")
visNetwork(gephi = 'network.json') #does not work最后,我可能需要编写一个将图形数据写入文本文件的函数。在你看来,最好的办法是什么?我应该优先考虑一个特定的格式吗?
谢谢。
发布于 2020-08-22 01:54:13
我知道现在有点晚了,但无论如何我都会尽力帮忙的。Gephi很好地从CSV文件中读取交互。所以:
R
您的示例几乎没有问题,只是在列名为的边缘进行了一点小小的更改。
nodes <- data.frame(id = 1:10, label = paste("Label", 1:10),
group = sample(c("A", "B"), 10, replace = TRUE))
edges <- data.frame(from = c(2,5,10), to = c(1,2,10))
colnames(edges)<-c('source', 'target')那么您应该以CSV的形式导出:
write.csv(edges,'edges.csv')
write.csv(nodes,'nodes.csv')伤寒
然后,我们去格菲,然后:
文件->导入电子表格
请注意:
发布于 2019-07-11 09:03:37
苏,几天后,我没有回答,并挖掘了更多。事实上,没有办法直接将数据从VisNetwork地块导出到地理信息库。我发现最有效的方法是硬写到GEXF文件中。这有点乏味,但是您的数据将被加载到Gephi中,而不需要任何担心。
https://stackoverflow.com/questions/56949127
复制相似问题