Импорт данных GraphML, сгенерированных NetworkX, в Gephi

Я пытаюсь импортировать данные из файла graphml в Gephi, но атрибуты загружаются неправильно. Пример этой проблемы (только с одним узлом и без ребер):

<?xml version='1.0' encoding='utf-8'?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns  http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
  <key attr.name="g" attr.type="long" for="edge" id="d10" />
  <key attr.name="r" attr.type="long" for="edge" id="d9" />
  <key attr.name="b" attr.type="long" for="edge" id="d8" />
  <key attr.name="g" attr.type="long" for="node" id="d7" />
  <key attr.name="b" attr.type="long" for="node" id="d6" />
  <key attr.name="y" attr.type="double" for="node" id="d5" />
  <key attr.name="size" attr.type="double" for="node" id="d4" />
  <key attr.name="r" attr.type="long" for="node" id="d3" />
  <key attr.name="x" attr.type="double" for="node" id="d2" />
  <key attr.name="z" attr.type="double" for="node" id="d1" />
  <key attr.name="label" attr.type="string" for="node" id="d0" />
  <graph edgedefault="undirected">
    <node id="Node 1">
      <data key="d0">Node 1</data>
      <data key="d1">0.0</data>
      <data key="d2">-430.34348</data>
      <data key="d3">255</data>
      <data key="d4">10.0</data>
      <data key="d5">-32.351364</data>
      <data key="d6">0</data>
      <data key="d7">0</data>
    </node>
</graph>
</graphml>

Примечание: файл генерируется networkx, поэтому у меня нет слишком большого контроля над порядком атрибутов.

Как только я импортирую этот файл в Gephi, когда я проверяю атрибуты, я вижу, что:

size = 4
x,y,z = (0,0,0)
r,g,b = (0,0,0)
Id = Node 1
Label = 255

Если я снова запущу тот же код (и NetworkX запишет ключи в другом порядке), другие другие атрибуты будут считаны неправильно)

Для создания графа я использую что-то вроде:

nodeid = 'Node 1'
G = nx.Graph()
G.add_node(nodeid)
G.node[nodeid]['label'] = nodeid
G.node[nodeid]['size'] = 4
G.node[nodeid]['x'] = -430.34348
G.node[nodeid]['y'] = -32.351364
G.node[nodeid]['z'] = 0.0
G.node[nodeid]['r'] = 255
G.node[nodeid]['g'] = 0
G.node[nodeid]['b'] = 0
nx.write_graphml(G, 'test.graphml')

Есть ли способ:

1) убедить Gephi правильно загрузить атрибуты

2) убедить NetworkX записать (в файле graphml) атрибуты, отсортированные по алфавиту?


person Valerian    schedule 17.05.2017    source источник
comment
Я использую Python 3.4.6   -  person Valerian    schedule 19.05.2017
comment
Последующие действия: описанное выше поведение было подтверждено как ошибка Gephi при загрузке данных из файла graphml в: [github.com/gephi/gephi/issues/1719] и планируется исправить в выпуске 0.9.2.   -  person Valerian    schedule 25.05.2017


Ответы (1)


Вышеописанная проблема была подтверждена как ошибка и исправлена ​​в выпуске Gephi 0.9.2.

person Valerian    schedule 03.12.2018