oss2024hnu / coursegraph-py

BSD 2-Clause "Simplified" License
5 stars 69 forks source link

#472이슈 해결 show_graph의 최상단 학년 구분노드 생성 코드를 개선했습니다. #473

Closed Wonsoox closed 3 months ago

Wonsoox commented 3 months ago

show_graph내에서 다른분이 최상단에 노드를 추가하신 코드를 개선하였습니다. 기존의 코드는 기존의 코드내용을 가져와서 적용시킨 케이스였지만,

    # 학년 노드 추가
    non_empty_positions = [max(y_values) for y_values in adjusted_pos.values() if y_values]
    max_y = max(non_empty_positions) if non_empty_positions else 0

    for grade in range(1, 5):
        G.add_node(f"{grade}학년", pos=(grade, max_y - 0.1))

    pos = nx.get_node_attributes(G, 'pos')

    for grade in range(1, 5):
        x, y = pos[f"{grade}학년"]
        bbox_props = dict(boxstyle=f"round,pad=0.5", ec='black', lw=2, facecolor='white')
        plt.text(x, y, f"{grade}학년", fontsize=18, ha='center', va='center', fontweight='bold', bbox=bbox_props)

    # 학기 노드 추가
    max_x = max([x for x, y in pos.values()]) - 3.85
    min_y = min([y for x, y in pos.values()])
    max_y = max([y for x, y in pos.values()])
    y_range = max_y - min_y
    semester_positions = [min_y + y_range * 0.33, min_y + y_range * 0.85]

    for semester in range(1, 3):
        G.add_node(f"{semester}학기", pos=(max_x, semester_positions[semester - 1]))

    pos = nx.get_node_attributes(G, 'pos')

    for semester in range(1, 3):
        x, y = pos[f"{semester}학기"]
        bbox_props = dict(boxstyle=f"round,pad=0.5", ec='black', lw=2, facecolor='white')
        plt.text(x, y, f"{semester}학기", fontsize=18, ha='center', va='center', fontweight='bold', bbox=bbox_props)

이코드를

 bbox_props = dict(boxstyle=f"round,pad=0.5", ec='black', lw=2, facecolor='white')
    for x in range(1,5):
        plt.text(x,0, f"{x}학년", fontsize=18, ha='center', va='center', fontweight='bold', bbox=bbox_props)

이렇게 적용할수있습니다.

kyagrd commented 3 months ago

충돌이 나고 있는데 해결해 주세요

Wonsoox commented 3 months ago

해결했습니다.