【发布时间】:2022-05-06 19:41:52
【问题描述】:
我正在尝试使用 Python 绘制知识图,查看了许多示例和答案,但仍然无法从边缘列表中自动绘制边缘标签。这是我正在尝试做的一个简化的工作示例:
import pandas as pd
import networkx as nx
minidf = pd.DataFrame(data={'relation': ['subject', 'subject', 'broader'],
'source': ['pmt3423', 'pmt2040', 'category:myoblasts'],
'target': ['conceito', 'frio', 'category:non-terminally_differentiated_(blast)']})
miniG = nx.from_pandas_edgelist(minidf,'source', 'target',
edge_key='relation', create_using=nx.MultiDiGraph())
nx.draw_networkx(miniG, with_labels=True)
我得到的输出如下:
我也尝试过 draw_circular 等。我也尝试过使用 pyvis 并生成一个点文件 + 使用neato 转换为 png。还没有完全明白。
任何帮助表示赞赏。
【问题讨论】:
-
你检查过这个问题吗:stackoverflow.com/questions/32905262/…? nx.draw_networkx_edge_labels 似乎不支持 MultiGraphs。
-
是的。我已经尝试过了,但它仍然无法正常工作。不知何故,我的图表似乎不受支持。此外,当我使用 edge_attr=True、列关系甚至列表 ['relation'] 创建图形时,它会运行,但在将属性添加到边时没有效果。但是感谢@Sparky05,我想我现在会放弃这个可视化。
-
我刚刚看到在您给定的示例中,创建的图中没有边属性。不确定这是否是您的最小示例(顺便说一句非常有用)或您的一般代码中的错误,请查看from_pandas_edgelist 中的示例。如果我正确理解文档,则您需要多图
edge_key和edge_column。
标签: python graph networkx graph-visualization knowledge-graph