将数据可视化为图形
问题描述:
我有来自不同书籍的标题数据集。我希望使用每本书的标题之间的余弦相似度的网络图来显示它。这些书籍分为两类 - 1
或0
- 我想根据类别进行颜色坐标。每个标题之间的余弦相似度应该是顶点的权重。将数据可视化为图形
为此,我已经写此代码:
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)
但我现在不知道该如何添加到可视化的数据。
答
使用下面的代码,你可以邻接矩阵转换成图表:
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")
注:这不色坐标的要求。
正方形'X'矩阵被称为加权邻接矩阵。如果你在文档中检查,我很确定图形工具应该有一种方法来加载一个邻接矩阵。 –