Python - ранг силы Графвиза должен быть как минимум одинаковым - PullRequest
0 голосов
/ 16 октября 2018

Что я делаю

Я создаю дерево курса в графвизе.Каждый курс является узлом, а предварительные условия и основные компоненты обозначены как ребра между узлами.

Что работает

Макет довольно неплохо работает, когда курсы ниже их предварительных условий

Что не работает

Я поставил constraint='false' на основные компоненты.Тем не менее, я хочу, чтобы 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, поэтому они должны иметь по крайней мере один и тот же ранг (необязательно одинаковый ранг)).Однако стрелка указывает вверх, потому что край не используется в ранжировании из-за отсутствия ограничений.

Вопросы

Как сделать так, чтобы узел находился на том же или более высоком ранге, чем другой узел

Как установить ранг узла на число?(Как установить курс второго года как минимум на 3-е место?)

...