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; 
        } 
    } 
} 

+ Recent posts