분산형 차트 채점시 꺾은선형도 채점 허용하도록 변경

This commit is contained in:
2026-02-20 16:19:48 +09:00
parent c13d5feffe
commit d436e4d033
14 changed files with 35 additions and 333 deletions

View File

@@ -532,6 +532,7 @@ class XMLScorer:
# 가로 차트일 경우에만 x축과 y축을 바꿔줌
# 세로, 꺾은선, 원형 차트의 경우 그대로 사용
if "가로" in chart_type:
if "catAx" in chart_xpath:
chart_xpath = chart_xpath.replace("catAx", "valAx")
@@ -543,11 +544,14 @@ class XMLScorer:
# valAx의 axPos(축의위치) 속성값으로 축의 방향을 구분함
elif "분산형" in chart_type:
if "catAx" in chart_xpath:
# valAx[c:axPos/@val='b'] : 값축의 위치가 bottom (가로,x축)
chart_xpath = chart_xpath.replace("catAx", "valAx[c:axPos/@val='b']")
# 분산형 차트는 catAx 대신 valAx를 사용하거나,
# catAx를 사용하더라도 bottom 위치의 축만 해당
xpath_with_valax = chart_xpath.replace("catAx", "valAx[c:axPos/@val='b']")
xpath_with_catax = chart_xpath.replace("catAx", "catAx[c:axPos/@val='b']")
# 두 경로를 OR 조건으로 결합
chart_xpath = xpath_with_valax + " | " + xpath_with_catax
elif "valAx" in chart_xpath:
# valAx[c:axPos/@val='l'] : 값축의 위치가 left (세로,y축)
chart_xpath = chart_xpath.replace("valAx", "valAx[c:axPos/@val='l']")
chart_xpath = chart_xpath.replace("valAx", "valAx[c:axPos/@val='l']")
chart_items = chart_tree.xpath(chart_xpath, namespaces=namespaces) if chart_xpath else []
@@ -1481,9 +1485,9 @@ def main():
# 채점하고자 하는 유형은 주석 해제
exam_types = [
# 'A',
# 'B',
'B',
# 'C',
'D',
# 'D',
]
test_mode = False