如何在图表中标记特定类型(例如 030T)的所有三元组?

How can I mark all triads of a specific type (e.g. 030T) in a graph?

我有一个 df 数据框:

Source, Target
aaaa, bbbb
aaaa, cccc
aaaa, dddd
bbbb, cccc
cccc, dddd

等等。

文件 "total_edges.csv" (71kb): https://uni-duisburg-essen.sciebo.de/s/WLDD4ytkjekVcIL

我得到一个图形对象,根据 github 问题跟踪器 (https://github.com/igraph/python-igraph/issues/253) 三元组 nodes/edges 但它失败了:

import pandas as pd
import igraph as ig

df_edges = pd.read_csv("total_edges.csv")

g = ig.Graph.TupleList(df_edges.itertuples(index=False), directed=True)
tc = g.triad_census()
ffl = ig.Graph.Formula("A --> B --> C, A --> C")
result = g.get_subisomorphisms_lad(ffl, induced=True)
print(result)

错误消息(VM 更新 Pop_OS x64,Python 3.7.5):

Traceback (most recent call last):
  File "count_triads.py", line 20, in <module>
    ffl = ig.Graph.Formula("A --> B --> C, A --> C")
  File "/home/admin/.local/lib/python3.7/site-packages/igraph/formula.py", line 209, in construct_graph_from_formula
    for start_names, end_names, arrowheads in generate_edges(part):
  File "/home/admin/.local/lib/python3.7/site-packages/igraph/formula.py", line 90, in generate_edges
    raise SyntaxError(msg)
SyntaxError: invalid token found in edge specification: A --> B --> C

如何使用三元组类型 030T 的三元组值(A、B、C、None)标记该图中的所有节点,以便我可以 filter/plot 不同的三元组和非三元组?

关于错误,您似乎遇到了与此类似的问题 issue in the formula parser

尝试应用最近的 changes or installing the development version of python-igraph 可能会有所帮助。