블로그 이미지
Sunny's

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

2009. 11. 6. 13:17 .NET Framework

X축 데이터가 연도이고 Y축 데이터가 값이라고 가정합니다.
1년 간격으로 값이 입력된 로우셋을 Chart에 바인딩하는데 간혹 중간에 값이 입력되지 않았을 경우 어떻게 처리하면 될까요?

별다른 처리를 하지 않을 경우 평균 값으로 처리가 되기 때문에 마치 실제 데이터가 입력된 것 같은 오해를 불러일으키게 됩니다. 다음 그림을 보면 1993년도에 값이 없음에도 마치 있는 것과 같은 착각을 불러일으킵니다.

그림 1



값이 없음을 다음 그림과 같이 명확하게 출력해 주어야 합니다.
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

값이 없음을 나타내는 여러가지 경우입니다.
위와 같이 출력하는 방법은 다음의 코드를 해당 Series에 적용하면 됩니다.

    1 chart.DataManipulator.Group("AVE", 5, IntervalType.Minutes, series);

    2 chart.DataManipulator.InsertEmptyPoints(5, IntervalType.Minutes, series);


예시한 그림과는 조금 다른 코드인데 간단히 설명하면 다음과 같습니다.
1번 라인은 데이터를 5분 간격으로 평균 값을 내어 데이터를 정규화합니다.
2번 라인에서 비로소 정규화한 데이터에서 특정 구간에 값이 없을 경우(간격은 5분입니다.) 빈 값을 추가하게 됩니닫.

빈 값을 위 세 가지(더 다양합니다.) 그림처럼 다르게 표현하는 방법은 Series의 EmptyPointStyle속성과 EmptyPointValue를 변경해서 구현합니다.

좀 더 자세한 정보는 다음 링크에서 WinFormSample을 직접 다운로드 받아 Working with Data 메뉴의 Empty Points 항목을 살펴보시기 바랍니다.

http://code.msdn.microsoft.com/mschart/Release/ProjectReleases.aspx?ReleaseId=1591

posted by Sunny's
prev 1 next