Pymnet - создание многослойной сетевой визуализации - PullRequest
0 голосов
/ 09 октября 2018

У меня есть код ниже для загрузки данных:

from pymnet import * 
import pandas as pd 

nodes_id = ['a',    'b',    'c',    'd',    'e',    'f',    'g',    1,  2,  3,  'aa',   'bb',   'cc']
layers = [1,    1,  1,  1,  1,  1,  1,  2,  2,  2,  3,  3,  3]
nodes = {'nodes': nodes_id, 'layers': layers}
df_nodes = pd.DataFrame(nodes)

to = ['b',  'c',    'd',    'f',    1,  2,  3,  'bb',    'cc',  2,  3,  'a',    'g']
from_edges = ['a',  'a',    'b',    'e',    'a',    'b',    'e',    'aa',   'aa',   'aa', 1, 2, 3]
edges = {'to': to, 'from': from_edges}
df_edges = pd.DataFrame(edges)

Я пытаюсь использовать pymnet в качестве пакета для создания многоуровневой сети.(http://www.mkivela.com/pymnet/)

Кто-нибудь знает, как создать 3-уровневую визуализацию сети с помощью этой диаграммы? Учебники, кажется, добавляют узлы по одному, и неясно, как использовать для этой цели фрейм данных узлов и ребер.. Группы слоев предоставляются в df_nodes.

Спасибо

1 Ответ

0 голосов
/ 25 августа 2019

Мне было интересно то же самое, взгляните на этот пост: https://qiita.com/malimo1024/items/499a4ebddd14d29fd320 Используйте формат этого: mnet [from_node, to_node_2, layer_1, layer_2] = 1, чтобы добавить ребра (inter / intra).Например:

from pymnet import *
import matplotlib.pyplot as plt
%matplotlib inline

mnet = MultilayerNetwork(aspects=1)
mnet['sato','tanaka','work','work'] = 1
mnet['sato','suzuki','friendship','friendship'] = 1
mnet['sato','yamada','friendship','friendship'] = 1
mnet['sato','yamada','work','work'] = 1
mnet['sato','sato','work','friendship'] = 1
mnet['tanaka','tanaka','work','friendship'] = 1
mnet['suzuki','suzuki','work','friendship'] = 1
mnet['yamada','yamada','work','friendship'] = 1
fig=draw(mnet)

enter image description here

...