Gephi: Как добавить цвет к узлам по моему собственному результату кластеризации? - PullRequest
0 голосов
/ 06 июля 2018

В настоящее время я работаю с алгоритмом кластеризации в Python. Мои данные - это разреженная матрица с 40000 узлов и 400000 ребер. Например:

(0, 10)    1
(0, 14)    1

Мой результат кластеризации - список Python, будет похож на следующий, но гораздо больше:

[ 9  9  9  9  9  9  9  9  9  9  2  2  2  2  2  2  3  3  3  3  3  3  3  2  6  6  0  2  7  4  2  2  2  2  4  4  4  4  4 10  6  6  6  2  7  7  5  5 1  0  0 10 10 10  0  0  0  1  1  1  1  1  1  1  1  1  1  1  6  6  6  6 2  8  8  6  1]

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

`
def plotCluster(W, predict):
    color = list(col.cnames.keys())
    # G = nx.from_numpy_matrix(W)
    G = nx.from_scipy_sparse_matrix(W)
    print(type(G))
    color_map = []
    for key in predict:
        for i in predict[key]:
            color_map.append(color[i+10])
    nx.draw(G, node_color=color_map, with_labels=True)
    plt.show()`

Результат будет выглядеть так:

enter image description here

Я хочу использовать gephi сейчас, но я могу только записать свои исходные данные в виде файла gexf и открыть его в gephi. Я не знаю, как использовать свой собственный результат кластеризации и нарисовать график, похожий на Python.

1 Ответ

0 голосов
/ 08 июля 2018
  1. Сохраните идентификаторы кластера для каждого узла в качестве атрибута узла (скажем, «часть»; используйте nx.set_node_attributes()).
  2. Сохраните файл как GraphML, используя nx.write_graphml().
  3. Откройте файл в Gephi.
  4. Применение раздела на основе атрибута "part".
...