히포차트 시리즈(Series) 개념의 이해



 히포차트를 그리기 위해서는 시리즈를 올바르게 이해해야 합니다. 물론 여타의 차트들도 시리즈 개념을 차용하고 있지만 히포차트에서는 사뭇 다를 수 있으므로 정리해봅니다.

 조금 쉽게 다가가기 위해 간단히 설명을 하자면, 
 화합물  분자들의 집합  분자  원자
 히포차트(hippoChart)  시리즈리스트(SeriesList)  시리즈(Series)  시리즈아이템(SeriesItem)

와 같이 비유할 수 있습니다. 원자가 모여 분자가 되고 분자들의 집합 구조로 하나의 화합물을 이루듯이 히포차트 또한 시리즈아이템이 모여 하나의 시리즈를 구성하고 시리즈가 모여 시리즈 리스트를 구성해 하나의 완성된 차트를 만들게 됩니다. 참 ~  쉽죠잉 ~ ^^ 

그럼 본격적으로 알아봅시다.


1. 시리즈 리스트(SeriesList)

 시리즈 리스트는 하나의 차트군을 그리기 위한 가장 기본적인 객체입니다. 차트군이란 같은 부류의 차트들의 무리를 의미하는 것으로써 아래와 같이 분류할 수 있습니다. 

  1) 좌표 특성의 차트  2) 비좌표 특성의 차트

 LineChart
 ColumnChart
 CircularChart
 ConeChart
 SplineChart
 ScatterChart
 BarChart
 GanttChart
 ImageBarChart
 KagiChart
 StackedBarChart
 StackedColumnChart
 StackedLineChart
 StackedSplineChart
 StackedCircularChart
 PieChart
 PylamidChart
 GaugeChart
 RadialChart










(베타 2.0 기준, 총 19개의 차트 지원)

 위 표에서 구분하였듯이 같은 부류의 차트들은 한 시리즈 리스트에 시리즈(Series)- 아래에서 알아봅니다.-라는 개념을 이용하여 그릴 수 있습니다.
 시리즈 리스트는 콤포넌트 객체의 SeriesListDictionary 라는 컬렉션 객체에 추가되어 최종 차트로 그려지게 됩니다.


 우선, 시리즈 리스트는 ChartType 이라는 속성을 포함하고 있습니다. 이는 그려지는 차트군 전체의 차트 타입을 결정하며 아래에서 설명할 시리즈(Series) 의 ChartType에 의해 개별적으로 오버라이드될 수 있습니다. 
 
 좌표 특성의 차트일 경우 축(Axis)이 존재하게 되는데 이 기본 축은 시리즈 리스트에 한 개가 존재합니다. 축에 대한  공통 특성의 정의는 AxisFactor 라는 속성클래스로 가능하며 X축은 XAxis, Y축은 YAxis 라는 속성클래스로 정의할 수 있습니다. 또한, CultureInfo 속성 클래스를 이용한 문화권 정보의 반영과 Orientation 으로 축의 방향을 조절하고 Description 을 통해 차트에 대한 간단한 메모를 할 수도 있습니다. 

이들 모두가 한 차트군에 공통으로 적용되는 속성들 이라고 이해하시면 되겠습니다.



2. 시리즈(Series)

 시리즈는 하나의 차트를 그리기 위한 최소한의 단위라고 정의할 수 있습니다. 즉, 하나의 차트를 구성하기 위해서는 최소한 한 개의 시리즈 리스트와 한 개의 시리즈가 있어야됩니다. 

 시리즈는 시리즈 리스트의 SeriesCollection 라는 컬렉션 객체에 추가가 되어 반영이 됩니다. 그리고 위에서 언급했듯이 시리즈 리스트에서 설정한 ChartType 을 오버라이드할 수 있습니다. 이때 중요한 것은 반드시 같은 부류의 차트이어야 한다는 것입니다. 시리즈 리스트에서 Line 차트로 설정했는데 이에 포함되어 있는 시리즈에서는 Pie차트로 한다면 예기치 못한 에러가 날 수 있음을 유념해야겠습니다.


 그리고 시리즈(Series)는 실질적으로 차트를 그리기 위한 객체이므로 이에 필요한 각종 속성 클래스들이 포진(?) 하고 있습니다. 예를 들어, 라인 차트를 그린다고 하면 Line 이라는 속성, Column 차트를 그린다면 Column 이라는 속성, 스케터 차트나 스플라인 차트를 그린다면 Points 속성을 이용해서 알맞게 설정하시면 되겠습니다.


물론 위 속성들은 시리즈의 최소 개념인 시리즈아이템(SeriesItem) 에서 다시 모두 오버라이드될 수 있습니다.

 
3. 시리즈 아이템(SeriesItem)

 위에서 잠깐 설명했듯이 시리즈 아이템은 차트의 "원자" 단위라고 할 수 있습니다. 라인, 스플라인, 스케터 차트일 경우는 한 점을 의미할 것이고, 컬럼, 바 차트일 경우는 한 렉텡글을 의미할 것이고, 파이차트일 경우는 한 파이 조각을 의미할 것입니다. 

 시리즈 아이템은 시리즈의 items 라는 컬렉션 속성에 추가가 되어 반영됩니다. 


 시리즈 아이템 역시 차트를 그리는 요소이므로 Column, Points 과 같은 Factor class Property (요소 클래스 속성) 을 가지고 있는데 여기서 유의할 점은 시리즈 아이템 레벨에서는 이 속성들은 모두 null 인 상태라는 점입니다. 그러므로 아이템 레벨에서 저들을 설정할 경우는 반드시 인스턴스화를 해주어야합니다.
(단, 요소 속성 중 Line 속성은 없습니다. Line 이란, 두 개 이상의 점으로 이루어지므로 Series 레벨에서 설정 가능합니다.)
 


이 밖에도 itemColor 로 개별 아이템의 색상을 수정하여 강조 효과를 줄 수 있고, Balloon 이라는 속성을 통해 아이템에 관한 설명을 달수도 있습니다.


4. 마무리

  전체적인 시리즈 구조가 어느정도 이해가 되셨으리라 봅니다. 실제적으로 그려진 차트를 보며 정리를 해보면,


 위 차트는 총 1개의 시리즈 리스트에 4개의 시리즈가 포함되어 있고 각 시리즈에는 7개씩의 시리즈 아이템이 추가가 되어있는 형태입니다. 

 이해는 되었다 하더라도 막상 설정을 할려고 할 때 어느 레벨에 원하는 속성이 있는지 헷갈릴 수가 있는데, 물론 제공되는 SDK를 보시면서 개발하셔야 겠지만 우선적으로 본인이 설정하고자 하는 부분이 시리즈의 어느 레벨인지만 명확히 인지한다면 쉽게 접근할 수 있으리라 생각합니다. 예를 들어, '녹색 포인트 중에 3번째 것에 풍선 도움말을 넣고 싶다' 라고 생각했다면 


와 같이 계층적으로 접근할 수 있어야 겠습니다. 


 

사업자 정보 표시
히포차트 | 하영대 | 경기도 성남시 수정구 복정동 631-5 401 | 사업자 등록번호 : 129-34-55719 | TEL : 031-751-6673 | Mail : hippochart@gmail.com | 통신판매신고번호 : 제 2010-경기성남-1203호 | 사이버몰의 이용약관 바로가기

Posted by 리바이 병장
,


/* 다음 웹인사이드 로그 분석*/