Python Graphviz强制等级至少是sam

2024-04-27 00:45:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做什么

我在graphviz做一棵球场树。每门课程都是一个节点,先决条件和辅助条件都表示为节点之间的边。你知道吗

工作原理

这个布局很好地把课程放在了他们的先决条件之下

什么不起作用

我把constraint='false'放在了corequisites上。但是,我希望corequisites在上至少彼此具有相同的等级(也就是说,corequisites应该指向侧面和/或向下)。你知道吗

代码

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)

电流输出

enter image description here

数学101作为数学152的一个补充,所以它们至少应该在同一个等级上(不一定是同一等级)。但是,箭头指向上是因为边由于没有约束而不用于排序。你知道吗

问题

如何使一个节点的级别与另一个节点相同或更高

如何将节点的秩设置为数字?(我至少要上第二年的课?)你知道吗


Tags: inidfalsefordata节点先决条件课程