Gephi - 使用矩阵数据生成图形

Gephi - generate graph using matrix data

你能帮我想象一下无向图吗?

我有大约 500 个字符串,如下所示:

;javascript;java;tapestry;d;design;jquery;css;html;com;air;testing;events;crm;soa;documentation;.a;email;iso;dynamic;mobile;this;project;resolution;s;automation;web;like;e-commerce;profile;commerce;out;jobs;inventory;operators;environment;system;include;integration;relationship;field;implementation;key;.profile;planning;knockout.js;sun;packaging;collaboration;report;public;virtual;communication;send;state;member;execution;solution;provider;members;continuous;writing;e;cuba;required;transactional;subject;manual;capacity;portfolio;.so;leader;take


;c;python;java;.a;basic;equivalent;cad;requirements;catia;.x;nx;self;communication;selected;base;summary


;javascript;c;python;java;rest;android;security;linux;sql;git;design;perl;css;html;svn;yaml;architecture;ios;json;api;ubuntu;pyramid;deployment;bash;documentation;configuration;frameworks;module;object;.a;multitasking;centos;hosting;project;fluent;administrator;monitoring;control;specifications;web;version;platform;admin;components;out;minimum;environment;system;include;using;key;falcon;communication;migrate;deadlines;ansible;back;cycle;production;red;analysis;administration;graphic;maintenance;autonomy;french;required;environments;hat;lead;arch;take

我想用它们做的是计算和可视化字符串共享元素之间的边缘。就像如果在前两个字符串中我们找到 javascript 和 python,那么对于最终图中所有字符串中的每个匹配项,它们之间的边会更粗。

到目前为止我所做的是解析字符串并将每个字符串分隔成 1/0 矩阵,字符串名称作为列名称(在 csv 文件中),但这似乎不起作用,因为我不知道在 Gelphi 中是否可以将标签视为列名。

           javascript java tapestry
--------------------------------------- 
    Row 1   1          0    1
    Row 2   0          1    0
    Row 3   1          1    1

所以我转置了矩阵,将所有字符串都放在一列中,但是那些按数字枚举的列对我来说意义不大。

name      Col1  Col2 Col3 Col4
-------  ------------------------
javascript  1   0   0   0   1
java        0   1   1   0   0
tapestry    1   0   1   0   1

我认为矩阵乘以它的横向可能会有所帮助,尽管我不确定数学如何用于结果解释。

what I would like to do with them is calculate and visualise the edges between the shared elements of the strings.

Gephi 只是可视化手动创建的内容,或者 selected for import

Can you help me visualise an undirected graph?

图形为 .csv

将关联转化为静态图(如Gephi-compatible .csv file):

节点

  • 列出唯一名称,保存为 .csv,如:

    id,label
    0,"node #1"
    1,"node #2"
    2,"node #3"
    
  • (可选)根据需要添加其他列。

  • 枚举关联,为每次出现添加权重,保存为 .csv,如:

    id,source,target,label,weight
    0,0,1,"edge #1",1
    1,0,2,"edge #2",3
    

    或者,创建新边每次关联出现并在导入后合并它们。

  • 不为 0 权重值(无连接)创建边。
  • sourcetarget - 列引用节点 id.
  • label - 列是可选的。
  • 可能包含 type 列(允许 DirectedUndirected 值)。
  • 可选地,通过重新计算权重转换为权重(0.0 - 1.0 而不是 数量 ):

    weight = weight / highest_weight