我正在用graphviz创建课程树。每个课程都是一个节点,先决条件和并发条件被表示为节点之间的边缘。
布局很好地完成了将课程置于其先决条件之下的任务
我已经将constraint='false'
放在了必要条件上。但是,我希望必备项彼此之间至少相同级别(又名,必备项应指向侧面和/或向下)。
for course in data['CPEN']['courses']:
cpen.node(course['id'])
for course in data['CPEN']['courses']:
for pre in course['prerequisites']:
cpen.edge(pre, course['id'], color='Black')
for co in course['corequisites']:
cpen.edge(co, course['id'], color='Blue', constraint='false')
cpen.render(f'test-output/cpen_{time.time()}.gv', view=True)
数学101是数学152的必备条件,因此它们至少应处于同一等级(不一定是同一等级)。但是,由于没有限制,因此未在排序中使用边缘,因此箭头朝上。
如何使一个节点与另一个节点处于相同或更高的等级
如何将节点的等级设置为数字? (如何将第二年课程设置为至少3级?)