차트 종류가 분산형일 경우 예외처리 [2-53~58]

This commit is contained in:
2025-10-29 16:19:12 +09:00
parent d97502ff5c
commit 58d329d816
131 changed files with 1435 additions and 45842 deletions

View File

@@ -533,6 +533,17 @@ class XMLScorer:
chart_xpath = chart_xpath.replace("catAx", "valAx")
elif "valAx" in chart_xpath:
chart_xpath = chart_xpath.replace("valAx", "catAx")
# 분산형 차트의 경우
# xml파일 내부에서 x, y축 모두 valAx로 표기되고
# 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']")
elif "valAx" in chart_xpath:
# valAx[c:axPos/@val='l'] : 값축의 위치가 left (세로,y축)
chart_xpath = chart_xpath.replace("valAx", "valAx[c:axPos/@val='l']")
chart_items = chart_tree.xpath(chart_xpath, namespaces=namespaces) if chart_xpath else []
@@ -1055,7 +1066,8 @@ class XMLScorer:
'묶은세로막대형': "//c:barChart[c:barDir[@val='col'] and c:grouping[@val='clustered']]",
'누적세로막대형': "//c:barChart[c:barDir[@val='col'] and c:grouping[@val='stacked']]",
'원형': "//c:pieChart",
'분산형': "//c:scatterChart"
'분산형': "//c:scatterChart",
'표식만있는분산형': "//c:scatterChart[c:scatterStyle[@val='marker']]",
}
chart_type = criterion.get('chart_type').replace(" ","")
@@ -1456,7 +1468,7 @@ def main():
# 채점하고자 하는 유형은 주석 해제
exam_types = [
'A',
# 'A',
'B',
# 'C',
# 'D',