2017-06-16 38 views
0

我有来自不同书籍的标题数据集。我希望使用每本书的标题之间的余弦相似度的网络图来显示它。这些书籍分为两类 - 10 - 我想根据类别进行颜色坐标。每个标题之间的余弦相似度应该是顶点的权重。将数据可视化为图形

为此,我已经写此代码:

cs_title = squareform(pdist(tit.toarray(), 'cosine')) 
cs_abstract = squareform(pdist(abst.toarray(), 'cosine')) 
X = cs_title + cs_abstract 
print(X.shape) 

其输出X每本书之间的余弦相似性的一个方阵。我现在想在一个无向图中使用graph-tools来想象这个。到目前为止,我已经写了这个实例的图形类:

g = Graph(directed=False) 

但我现在不知道该如何添加到可视化的数据。

+0

正方形'X'矩阵被称为加权邻接矩阵。如果你在文档中检查,我很确定图形工具应该有一种方法来加载一个邻接矩阵。 –

回答

0

使用下面的代码,你可以邻接矩阵转换成图表:

g = graph_tool.Graph(directed = False) 
     g.add_vertex(len(X)) 
     edge_weights = g.new_edge_property('double') 
     for i in range(X.shape[0]): 
      for j in range(X.shape[1]): 
       if i > j and X[i,j] != 0: 
        e = g.add_edge(i, j) 
        edge_weights[e] = X[i,j] 
     graph_draw(g, vertex_text=g.vertex_index, vertex_font_size=18, output_size=(200, 200), output="two-nodes.png") 

注:这不色坐标的要求。