Treemap은 nameField(타일 이름), weightField(타일 크기 기준값) 구조여야 하는데, 지금은 aaa, bbb, ccc가 컬럼으로 분리돼 있어서 그대로는 쓰기 어렵울 경우.
Xname | aaa | bbb | ccc
------|------|------|-----
test1 | 1000 | 500 | 700
test2 | 2000 | 1500 | 700
test3 | 800 | 300 | 200
➡️ 이건 행(Row) 기준이 아니라 열(Column) 기준이라서 Treemap에서 직접 쓰기 힘듭니다.
Treemap은 항목 이름 + 값 형태가 기본이에요. 예를 들어:
Xname | category | value
------|----------|------
test1 | aaa | 1000
test1 | bbb | 500
test1 | ccc | 700
test2 | aaa | 2000
test2 | bbb | 1500
test2 | ccc | 700
test3 | aaa | 800
test3 | bbb | 300
test3 | ccc | 200
이렇게 만들어야 nameField="category", weightField="value", groupField="Xname" 같은 식으로 사용할 수 있습니다.
SELECT Xname, category, value
FROM (
SELECT 'test1' as Xname, 1000 as aaa, 500 as bbb, 700 as ccc FROM dual
UNION ALL
SELECT 'test2', 2000, 1500, 700 FROM dual
UNION ALL
SELECT 'test3', 800, 300, 200 FROM dual
) t
UNPIVOT (
value FOR category IN (aaa, bbb, ccc)
);
<rMateChart>
<Options>
<Caption text="Treemap 예제"/>
<Legend/>
</Options>
<TreeMapChart showDataTips="true">
<series>
<TreeMapSeriesnameField="category"
weightField="value"
groupField="Xname"
displayName="Treemap"/>
</series>
</TreeMapChart>
</rMateChart>
✅ 정리
aaa, bbb, ccc가 컬럼으로 나눠진 구조는 Treemap에 바로 적용 불가UNPIVOT 또는 UNION ALL로 행(row) 기반 데이터 구조로 변환 필요nameField=category, weightField=value, groupField=Xname 식으로 연결SELECT 'test1' AS Xname, 'aaa' AS category, 1000 AS value FROM dual
UNION ALL
SELECT 'test1', 'bbb', 500 FROM dual
UNION ALL
SELECT 'test1', 'ccc', 700 FROM dual
UNION ALL
SELECT 'test2', 'aaa', 2000 FROM dual
UNION ALL
SELECT 'test2', 'bbb', 1500 FROM dual
UNION ALL
SELECT 'test2', 'ccc', 700 FROM dual
UNION ALL
SELECT 'test3', 'aaa', 800 FROM dual
UNION ALL
SELECT 'test3', 'bbb', 300 FROM dual
UNION ALL
SELECT 'test3', 'ccc', 200 FROM dual;
Xname | category | value
-------|----------|------
test1 | aaa | 1000
test1 | bbb | 500
test1 | ccc | 700
test2 | aaa | 2000
test2 | bbb | 1500
test2 | ccc | 700
test3 | aaa | 800
test3 | bbb | 300
test3 | ccc | 200
<TreeMapChart showDataTips="true">
<series>
<TreeMapSeriesnameField="category"
weightField="value"
groupField="Xname"
displayName="Treemap"/>
</series>
</TreeMapChart>
✅ 이렇게 하면 test1, test2, test3 그룹별로 묶이고,
그 안에서 aaa/bbb/ccc가 사각형으로 표현되며, 값(value) 크기 비율로 타일 크기가 달라집니다.
이런 구조라면 rMate Treemap의 groupField 속성을 쓰면 됩니다.
말씀하신 건 크게 보면
test1, test2, test3 (큰 박스)aaa, bbb, ccc (작은 사각형)value (숫자 값 기준으로 타일 면적이 달라짐)앞서 만든 UNION ALL 버전이 그대로 적합합니다:
Xname | category | value
-------|----------|------
test1 | aaa | 1000
test1 | bbb | 500
test1 | ccc | 700
test2 | aaa | 2000
test2 | bbb | 1500
test2 | ccc | 700
test3 | aaa | 800
test3 | bbb | 300
test3 | ccc | 200
<rMateChart>
<Options>
<Caption text="Treemap 예제"/>
<Legend/>
</Options>
<TreeMapChart showDataTips="true">
<series>
<TreeMapSeriesgroupField="Xname" <!-- 큰 그룹 -->
nameField="category" <!-- 작은 타일 이름 -->
weightField="value" <!-- 타일 크기 기준 -->
displayName="Treemap"/>
</series>
</TreeMapChart>
</rMateChart>
✅ 이렇게 하면
value 값에 따라 비율로 표시돼요.👉 여기서 선택사항:
labelField="category" 옵션을 주면 타일 안에 aaa/bbb/ccc 글자 표시 가능colorField 같은 속성을 추가하면 aaa/bbb/ccc 별로 색상 다르게 표현 가능