Minimum, Maximum, Q1, Q2, Q3로 이루어진 Chart로써 데이터 분포를 설명하는데 사용됩니다.
<이미지 1> BoxChart(Whisker Chart)의 예제
UltraChart에 Binding 할 때 DataTable의 구조는 Minimum, Q1, Q2, Q3, Maximum, Label 순서입니다.
각 Row당 한 개의 Box를 나타내며 Box의 구조는 아래 <이미지 2>와 동일합니다.
박스의 크기는 BoxChart 개체의 BoxWidthFactor 속성으로 변경가능합니다.
<이미지2> 구성된 구조 (출처:Infragistics)
Infragistics의 UltraChart는 아래의 이미지와 같이 구성되어야합니다. (Column명은 무관)
<이미지 3> DataTable 구조
아래는 SampleCode 입니다.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace AboutUltraChart { public partial class AboutWhiskerChart : Form { public AboutWhiskerChart() { InitializeComponent(); } private void AboutWhiskerChart_Load(object sender, EventArgs e) { Infragistics.Win.UltraWinChart.UltraChart chart = this.CreateSampleBoxChart(); DataTable dtResult = this.CreateBoxChartSampleData(); chart.DataSource = dtResult; chart.DataBind(); } /// <summary> /// Sample DataTable 생성 /// </summary> /// <returns></returns> private DataTable CreateBoxChartSampleData() { DataTable dtResult = new DataTable(); dtResult.Columns.Add("Min", typeof(float)); dtResult.Columns.Add("Q1", typeof(float)); dtResult.Columns.Add("Q2", typeof(float)); dtResult.Columns.Add("Q3", typeof(float)); dtResult.Columns.Add("Max", typeof(float)); dtResult.Columns.Add("Label", typeof(string)); DataRow dr = dtResult.NewRow(); dr[0] = 9; dr[1] = 10; dr[2] = 15; dr[3] = 21; dr[4] = 28; dr[5] = "Junction1"; dtResult.Rows.Add(dr); dr = dtResult.NewRow(); dr[0] = 4; dr[1] = 10; dr[2] = 20; dr[3] = 30; dr[4] = 38; dr[5] = "Junction2"; dtResult.Rows.Add(dr); dr = dtResult.NewRow(); dr[0] = 20; dr[1] = 23; dr[2] = 32; dr[3] = 35; dr[4] = 37; dr[5] = "Junction3"; dtResult.Rows.Add(dr); dr = dtResult.NewRow(); dr[0] = 30; dr[1] = 35; dr[2] = 36; dr[3] = 42; dr[4] = 44; dr[5] = "Junction4"; dtResult.Rows.Add(dr); dr = dtResult.NewRow(); dr[0] = 30; dr[1] = 30; dr[2] = 30; dr[3] = 32; dr[4] = 35; dr[5] = "Junction5"; dtResult.Rows.Add(dr); dr = dtResult.NewRow(); dr[0] = 10; dr[1] = 14; dr[2] = 16; dr[3] = 20; dr[4] = 24; dr[5] = "Junction6"; dtResult.Rows.Add(dr); dr = dtResult.NewRow(); dr[0] = 11; dr[1] = 13; dr[2] = 14; dr[3] = 15; dr[4] = 16; dr[5] = "Junction7"; dtResult.Rows.Add(dr); dr = dtResult.NewRow(); dr[0] = 12; dr[1] = 16; dr[2] = 21; dr[3] = 23; dr[4] = 25; dr[5] = "Junction8"; dtResult.Rows.Add(dr); return dtResult; } /// <summary> /// BoxChart 생성 /// </summary> /// <returns></returns> private Infragistics.Win.UltraWinChart.UltraChart CreateSampleBoxChart() { this.Controls.Clear(); Infragistics.Win.UltraWinChart.UltraChart chart = new Infragistics.Win.UltraWinChart.UltraChart(); chart.ChartType = Infragistics.UltraChart.Shared.Styles.ChartType.BoxChart; chart.Dock = DockStyle.Fill; this.Controls.Add(chart); return chart; } } }
'.Net > Component' 카테고리의 다른 글
[ERWIN] 컬럼 순서 (0) | 2013.03.18 |
---|---|
C# Infragistic NetAdvantage 2011.1 Gauge Marker 이동 (0) | 2013.02.05 |
FarPoint Column Width 조절 (0) | 2012.08.16 |
FpSpreadSheet4.0 Sheet의 데이터 및 스키마를 Save 및 Open 하기 (0) | 2012.06.27 |
FarPoint FpSpread4.0 SheetView 추가하여 Column Header 조작하기 (0) | 2012.06.12 |