现在是否有人可以让我在Julia中导入图表(网络)?
使用Python,我使用了图形工具包,这对我很有帮助!我有.gt文件格式的图表。我可以在Julia中使用任何模块,以便我可以在那里导入它们吗?
我搜索过LightGraphs和Junet,这是一个相当新的但似乎无法在文档中看到任何“导入”部分。
答案 0 :(得分:2)
最直接的解决方案是将您的gt
文件转换为graphml
格式,该格式与LightGraphs兼容,并且为the recommended alternative format by graph-tool。
假设您有一个以前由以下python代码生成的“.gt”文件:
from graph_tool.all import *
g = Graph()
v1 = g.add_vertex()
v2 = g.add_vertex()
e = g.add_edge(v1,v2)
g.save('g.gt')
开始一个新的python会话,并从“gt”转换为“graphml”格式:
import graph_tool as gt
g = gt.Graph()
g.load('g.gt')
g.save('g.xml.gz')
然后,在julia中,使用带有LightGraphs
包的GraphIO
从GraphML文件加载:
using LightGraphs, GraphIO
D = loadgraphs("g.xml.gz", GraphMLFormat())
#> Dict{String,LightGraphs.AbstractGraph} with 1 entry:
# "G" => {2, 1} directed simple Int64 graph
如果您想使用PyCall
直接在julia中执行转换(例如在脚本中),请按以下步骤操作:
using PyCall
@pyimport graph_tool as gt
G = gt.Graph()
G[:load]("g.gt")
G[:save]("g.xml.gz")
(请注意,这意味着python和图形工具库已经安装在您的计算机上,可以从julia访问)。
理论上,如果您更喜欢图形工具并且习惯了它的语法,并希望继续使用.gt
文件格式,那么可以通过PyCall从中使用它在整个朱莉娅内如上。这是否更适合迁移到为julia 设计的LightGraphs,这是另一回事。这是你的电话:)
<子> PS。来自Leamington的Leamington的问候!
答案 1 :(得分:1)