첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
본 블로그는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 블로그 콘텐츠 향상을 위해 쓰여집니다.

728x90
반응형
728x170

TestProject.zip
0.02MB

▶ MainForm.cs

using System;
using System.Drawing;
using System.Windows.Forms;

using DevExpress.XtraCharts;
using DevExpress.XtraEditors;

namespace TestProject
{
    /// <summary>
    /// 테스트 폼
    /// </summary>
    public partial class MainForm : XtraForm
    {
        //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
        ////////////////////////////////////////////////////////////////////////////////////////// Public

        #region 생성자 - TestForm()

        /// <summary>
        /// 생성자
        /// </summary>
        public MainForm()
        {
            InitializeComponent();

            foreach(Control control in this.rootFlowLayoutPanel.Controls)
            {
                control.Click += chartButton_Click;
            }
        }

        #endregion

        //////////////////////////////////////////////////////////////////////////////////////////////////// Method
        ////////////////////////////////////////////////////////////////////////////////////////// Private
        //////////////////////////////////////////////////////////////////////////////// Event

        #region 차트 버튼 클릭시 처리하기 - chartButton_Click(sender, e)

        /// <summary>
        /// 차트 버튼 클릭시 처리하기
        /// </summary>
        /// <param name="sender">이벤트 발생자</param>
        /// <param name="e">이벤트 인자</param>
        private void chartButton_Click(object sender, EventArgs e)
        {
            SimpleButton simpleButton = sender as SimpleButton;

            ChartControl chartControl = null;

            switch(simpleButton.Text)
            {
                case "영역 2차원 차트"                    : chartControl = GetArea2DChartControl();                     break;
                case "누적 영역 2차원 차트"               : chartControl = GetStackedArea2DChartControl();              break;
                case "상대 누적 영역 2차원 차트"          : chartControl = GetFullStackedArea2DChartControl();          break;
                case "스플라인 영역 2차원 차트"           : chartControl = GetSplineArea2DChartControl();               break;
                case "누적 스플라인 영역 2차원 차트"      : chartControl = GetStackedSplineArea2DChartControl();        break;
                case "상대 누적 스플라인 영역 2차원 차트" : chartControl = GetFullStackedSplineArea2DChartControl();    break;
                case "레이다 영역 2차원 차트"             : chartControl = GetRadarArea2DChartControl();                break;
                case "극지 영역 2차원 차트"               : chartControl = GetPolarArea2DChartControl();                break;
                case "단계 영역 2차원 차트"               : chartControl = GetStepArea2DChartControl();                 break;
                case "범위 영역 2차원 차트"               : chartControl = GetRangeArea2DChartControl();                break;

                case "영역 3차원 차트"                    : chartControl = GetArea3DChartControl();                     break;
                case "누적 영역 3차원 차트"               : chartControl = GetStackedArea3DChartControl();              break;
                case "상대 누적 영역 3차원 차트"          : chartControl = GetFullStackedArea3DChartControl();          break;
                case "스플라인 영역 3차원 차트"           : chartControl = GetSplineArea3DChartControl();               break;
                case "누적 스플라인 영역 3차원 차트"      : chartControl = GetStackedSplineArea3DChartControl();        break;
                case "상대 누적 스플라인 영역 3차원 차트" : chartControl = GetFullStackedSplineArea3DChartControl();    break;
                case "단계 영역 3차원 차트"               : chartControl = GetStepArea3DChartControl();                 break;
                case "범위 영역 3차원 차트"               : chartControl = GetRangeArea3DChartControl();                break;

                case "막대 2차원 차트"                    : chartControl = GetBar2DChartControl();                      break;
                case "누적 막대 2차원 차트"               : chartControl = GetStackedBar2DChartControl();               break;
                case "상대 누적 막대 2차원 차트"          : chartControl = GetFullStackedBar2DChartControl();           break;
                case "병렬 누적 막대 2차원 차트"          : chartControl = GetSideBySideStackedBar2DChartControl();     break;
                case "병렬 상대 누적 막대 2차원 차트"     : chartControl = GetSideBySideFullStackedBar2DChartControl(); break;

                case "막대 3차원 차트"                    : chartControl = GetBar3DChartControl();                      break;
                case "누적 막대 3차원 차트"               : chartControl = GetStackedBar3DChartControl();               break;
                case "상대 누적 막대 3차원 차트"          : chartControl = GetFullStackedBar3DChartControl();           break;
                case "병렬 누적 막대 3차원 차트"          : chartControl = GetSideBySideStackedBar3DChartControl();     break;
                case "병렬 상대 누적 막대 3차원 차트"     : chartControl = GetSideBySideFullStackedBar3DChartControl(); break;
                case "맨하탄 막대 3차원 차트"             : chartControl = GetManhattanBar3DChartControl();             break;

                case "주식 2차원 차트"                    : chartControl = GetStock2DChartControl();                    break;
                case "캔들 스틱 2차원 차트"               : chartControl = GetCandleStick2DChartControl();              break;

                case "병렬 간트 2차원 차트"               : chartControl = GetSideBySideGantt2DChartControl();          break;
                case "간트 2차원 차트"                    : chartControl = GetGantt2DChartControl();                    break;

                case "파이 2차원 차트"                    : chartControl = GetPie2DChartControl();                      break;
                case "도넛 2차원 차트"                    : chartControl = GetDoughnut2DChartControl();                 break;
                case "깔때기 2차원 차트"                  : chartControl = GetFunnel2DChartControl();                   break;

                case "파이 3차원 차트"                    : chartControl = GetPie3DChartControl();                      break;
                case "도넛 3차원 차트"                    : chartControl = GetDoughnut3DChartControl();                 break;
                case "깔때기 3차원 차트"                  : chartControl = GetFunnel3DChartControl();                   break;

                case "버블 2차원 차트"                    : chartControl = GetBubble2DChartControl();                   break;
                case "선 2차원 차트"                      : chartControl = GetLine2DChartControl();                     break;
                case "누적 선 2차원 차트"                 : chartControl = GetStackedLine2DChartControl();              break;
                case "상대 누적 선 2차원 차트"            : chartControl = GetFullStackedLine2DChartControl();          break;
                case "점 2차원 차트"                      : chartControl = GetPoint2DChartControl();                    break;
                case "극지 선 2차원 차트"                 : chartControl = GetPolarLine2DChartControl();                break;
                case "레이다 선 2차원 차트"               : chartControl = GetRadarLine2DChartControl();                break;
                case "분산 선 2차원 차트"                 : chartControl = GetScatterLine2DChartControl();              break;
                case "스플라인 2차원 차트"                : chartControl = GetSpline2DChartControl();                   break;
                case "단계 선 2차원 차트"                 : chartControl = GetStepLine2DChartControl();                 break;

                case "선 3차원 차트"                      : chartControl = GetLine3DChartControl();                     break;
                case "누적 선 3차원 차트"                 : chartControl = GetStackedLine3DChartControl();              break;
                case "상대 누적 선 3차원 차트"            : chartControl = GetFullStackedLine3DChartControl();          break;
                case "스플라인 3차원 차트"                : chartControl = GetSpline3DChartControl();                   break;
                case "단계 선 3차원 차트"                 : chartControl = GetStepLine3DChartControl();                 break;

                case "병렬 범위 막대 2차원 차트"          : chartControl = GetSideBySideRangeBar2DChartControl();       break;
                case "범위 막대 2차원 차트"               : chartControl = GetRangeBar2DChartControl();                 break;

                case "레이다 점 2차원 차트"               : chartControl = GetRadarPoint2DChartControl();               break;

                case "극지 점 2차원 차트"                 : chartControl = GetPolarPoint2DChartControl();               break;

                default                                   : chartControl = null;                                        break;
            }

            if(chartControl != null)
            {
                Form chartForm = GetChartForm(chartControl);

                chartForm.ShowDialog();
            }
        }

        #endregion

        //////////////////////////////////////////////////////////////////////////////// Function

        #region 차트 폼 구하기 - GetChartForm(chartControl)

        /// <summary>
        /// 차트 폼 구하기
        /// </summary>
        /// <param name="chartControl">차트 컨트롤</param>
        /// <returns>차트 폼</returns>
        private Form GetChartForm(ChartControl chartControl)
        {
            Form form = new Form();

            form.Owner         = this;
            form.Width         = 1000;
            form.Height        = 600;
            form.StartPosition = FormStartPosition.CenterParent;
            form.Text          = chartControl.Titles.Count > 0 ? chartControl.Titles[0].Text : string.Empty;
            form.Padding       = new System.Windows.Forms.Padding(10);

            Splitter splitter = new Splitter();

            splitter.Width = 10;
            splitter.Dock  = DockStyle.Right;

            form.Controls.Add(splitter);

            PropertyGrid propertyGrid = new PropertyGrid();

            propertyGrid.SelectedObject = chartControl;
            propertyGrid.Dock           = DockStyle.Right;
            propertyGrid.Width          = 300;

            form.Controls.Add(propertyGrid);

            chartControl.Dock = DockStyle.Fill;

            form.Controls.Add(chartControl);

            chartControl.BringToFront();

            return form;
        }

        #endregion

        // 영역 시리즈 뷰(Area Series Views)

        // 영역 2차원 차트(Area 2D Charts)

        #region 영역 2차원 차트 컨트롤 구하기 - GetArea2DChartControl()

        /// <summary>
        /// 영역 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetArea2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.Area);
            Series series2 = new Series("시리즈 2", ViewType.Area);

            series1.ArgumentScaleType = ScaleType.Numerical;
            series2.ArgumentScaleType = ScaleType.Numerical;

            ((AreaSeriesView)series1.View).Transparency = 128;
            ((AreaSeriesView)series2.View).Transparency = 128;

            series1.Points.Add(new SeriesPoint(1, 15));
            series1.Points.Add(new SeriesPoint(2, 18));
            series1.Points.Add(new SeriesPoint(3, 25));
            series1.Points.Add(new SeriesPoint(4, 33));

            series2.Points.Add(new SeriesPoint(1, 10));
            series2.Points.Add(new SeriesPoint(2, 12));
            series2.Points.Add(new SeriesPoint(3, 14));
            series2.Points.Add(new SeriesPoint(4, 17));

            chartControl.Series.AddRange(new Series[] { series1, series2 });

            ((XYDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYScrolling = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Area 2D Chart";

            return chartControl;
        }

        #endregion
        #region 누적 영역 2차원 차트 컨트롤 구하기 - GetStackedArea2DChartControl()

        /// <summary>
        /// 누적 영역 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetStackedArea2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.StackedArea);
            Series series2 = new Series("시리즈 2", ViewType.StackedArea);

            series1.ArgumentScaleType = ScaleType.Numerical;
            series2.ArgumentScaleType = ScaleType.Numerical;

            ((StackedAreaSeriesView)series1.View).Transparency = 128;
            ((StackedAreaSeriesView)series2.View).Transparency = 128;

            series1.Points.Add(new SeriesPoint(1, 10));
            series1.Points.Add(new SeriesPoint(2, 12));
            series1.Points.Add(new SeriesPoint(3, 14));
            series1.Points.Add(new SeriesPoint(4, 17));

            series2.Points.Add(new SeriesPoint(1, 15));
            series2.Points.Add(new SeriesPoint(2, 18));
            series2.Points.Add(new SeriesPoint(3, 25));
            series2.Points.Add(new SeriesPoint(4, 33));

            chartControl.Series.AddRange(new Series[] { series1, series2 });

            ((XYDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYScrolling = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Stacked Area 2D Chart";

            return chartControl;
        }

        #endregion
        #region 상대 누적 영역 2차원 차트 컨트롤 구하기 - GetFullStackedArea2DChartControl()

        /// <summary>
        /// 상대 누적 영역 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetFullStackedArea2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.FullStackedArea);
            Series series2 = new Series("시리즈 2", ViewType.FullStackedArea);

            series1.ArgumentScaleType = ScaleType.Numerical;
            series2.ArgumentScaleType = ScaleType.Numerical;

            ((FullStackedAreaSeriesView)series1.View).Transparency = 128;
            ((FullStackedAreaSeriesView)series2.View).Transparency = 128;

            series1.Points.Add(new SeriesPoint(1, 10));
            series1.Points.Add(new SeriesPoint(2, 12));
            series1.Points.Add(new SeriesPoint(3, 14));
            series1.Points.Add(new SeriesPoint(4, 17));

            series2.Points.Add(new SeriesPoint(1, 15));
            series2.Points.Add(new SeriesPoint(2, 18));
            series2.Points.Add(new SeriesPoint(3, 25));
            series2.Points.Add(new SeriesPoint(4, 33));

            chartControl.Series.AddRange(new Series[] { series1, series2 });

            ((XYDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYScrolling = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Full-Stacked Area 2D Chart";

            return chartControl;
        }

        #endregion
        #region 스플라인 영역 2차원 차트 컨트롤 구하기 - GetSplineArea2DChartControl()

        /// <summary>
        /// 스플라인 영역 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetSplineArea2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series = new Series("시리즈 1", ViewType.SplineArea);

            series.ArgumentScaleType = ScaleType.Numerical;

            ((SplineAreaSeriesView)series.View).Transparency = 128;

            series.Points.Add(new SeriesPoint(1, 3 ));
            series.Points.Add(new SeriesPoint(2, 12));
            series.Points.Add(new SeriesPoint(3, 4 ));
            series.Points.Add(new SeriesPoint(4, 17));
            series.Points.Add(new SeriesPoint(5, 3 ));
            series.Points.Add(new SeriesPoint(6, 12));
            series.Points.Add(new SeriesPoint(7, 4 ));
            series.Points.Add(new SeriesPoint(8, 17));

            chartControl.Series.Add(series);

            ((XYDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYScrolling = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Spline Area 2D Chart";

            return chartControl;
        }

        #endregion
        #region 누적 스플라인 영역 2차원 차트 컨트롤 구하기 - GetStackedSplineArea2DChartControl()

        /// <summary>
        /// 누적 스플라인 영역 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetStackedSplineArea2DChartControl()
        {
            ChartControl chartControl = new ChartControl();
            
            Series series1 = new Series("시리즈 1", ViewType.StackedSplineArea);
            Series series2 = new Series("시리즈 2", ViewType.StackedSplineArea);

            series1.ArgumentScaleType = ScaleType.Qualitative;
            series2.ArgumentScaleType = ScaleType.Qualitative;

            ((StackedSplineAreaSeriesView)series1.View).Transparency = 128;
            ((StackedSplineAreaSeriesView)series2.View).Transparency = 128;

            series1.Points.Add(new SeriesPoint("A", 80));
            series1.Points.Add(new SeriesPoint("B", 20));
            series1.Points.Add(new SeriesPoint("C", 50));
            series1.Points.Add(new SeriesPoint("D", 30));

            series2.Points.Add(new SeriesPoint("A", 40));
            series2.Points.Add(new SeriesPoint("B", 60));
            series2.Points.Add(new SeriesPoint("C", 20));
            series2.Points.Add(new SeriesPoint("D", 80));

            chartControl.Series.AddRange(new Series[] { series1, series2 });

            ((XYDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYScrolling = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Stacked Spline Area 2D Chart";

            return chartControl;
        }

        #endregion
        #region 상대 누적 스플라인 영역 2차원 차트 컨트롤 구하기 - GetFullStackedSplineArea2DChartControl()

        /// <summary>
        /// 상대 누적 스플라인 영역 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetFullStackedSplineArea2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.FullStackedSplineArea);
            Series series2 = new Series("시리즈 2", ViewType.FullStackedSplineArea);

            series1.ArgumentScaleType = ScaleType.Qualitative;
            series2.ArgumentScaleType = ScaleType.Qualitative;

            ((FullStackedSplineAreaSeriesView)series1.View).Transparency = 128;
            ((FullStackedSplineAreaSeriesView)series2.View).Transparency = 128;

            series1.Points.Add(new SeriesPoint("A", 80));
            series1.Points.Add(new SeriesPoint("B", 20));
            series1.Points.Add(new SeriesPoint("C", 50));
            series1.Points.Add(new SeriesPoint("D", 30));

            series2.Points.Add(new SeriesPoint("A", 40));
            series2.Points.Add(new SeriesPoint("B", 60));
            series2.Points.Add(new SeriesPoint("C", 20));
            series2.Points.Add(new SeriesPoint("D", 80));

            chartControl.Series.AddRange(new Series[] { series1, series2 });

            ((XYDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYScrolling = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Full-Stacked Spline Area 2D Chart";

            return chartControl;
        }

        #endregion
        #region 레이다 영역 2차원 차트 컨트롤 구하기 - GetRadarArea2DChartControl()

        /// <summary>
        /// 레이다 영역 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetRadarArea2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series = new Series("시리즈 1", ViewType.RadarArea);

            series.ArgumentScaleType = ScaleType.Numerical;

            ((RadarAreaSeriesView)series.View).Transparency = 128;

            series.Points.Add(new SeriesPoint(  0,  90));
            series.Points.Add(new SeriesPoint( 90,  95));
            series.Points.Add(new SeriesPoint(180,  50));
            series.Points.Add(new SeriesPoint(270,  55));
            series.Points.Add(new SeriesPoint(  0, 180));
            series.Points.Add(new SeriesPoint( 90, 185));
            series.Points.Add(new SeriesPoint(180, 270));
            series.Points.Add(new SeriesPoint(270, 275));

            chartControl.Series.Add(series);

            ((RadarDiagram)chartControl.Diagram).StartAngleInDegrees = 180;
            ((RadarDiagram)chartControl.Diagram).RotationDirection   = RadarDiagramRotationDirection.Counterclockwise;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Radar Area 2D Chart";

            return chartControl;
        }

        #endregion
        #region 극지 영역 2차원 차트 컨트롤 구하기 - GetPolarArea2DChartControl()

        /// <summary>
        /// 극지 영역 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetPolarArea2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series = new Series("시리즈 1", ViewType.PolarArea);

            series.ArgumentScaleType = ScaleType.Numerical;

            ((PolarAreaSeriesView)series.View).Transparency = 128;

            series.Points.Add(new SeriesPoint(  0,  90));
            series.Points.Add(new SeriesPoint( 90,  70));
            series.Points.Add(new SeriesPoint(180,  50));
            series.Points.Add(new SeriesPoint(270, 100));

            chartControl.Series.Add(series);

            ((PolarDiagram)chartControl.Diagram).StartAngleInDegrees = 180;
            ((PolarDiagram)chartControl.Diagram).RotationDirection   = RadarDiagramRotationDirection.Counterclockwise;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Polar Area 2D Chart";

            return chartControl;
        }

        #endregion
        #region 단계 영역 2차원 차트 컨트롤 구하기 - GetStepArea2DChartControl()

        /// <summary>
        /// 단계 영역 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetStepArea2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series = new Series("시리즈 1", ViewType.StepArea);

            series.ArgumentScaleType = ScaleType.Numerical;

            ((StepAreaSeriesView)series.View).Transparency = 128;

            series.Points.Add(new SeriesPoint(1, 15));
            series.Points.Add(new SeriesPoint(2, 18));
            series.Points.Add(new SeriesPoint(3, 25));
            series.Points.Add(new SeriesPoint(4, 33));

            chartControl.Series.AddRange(new Series[] { series });

            ((XYDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYScrolling = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Step Area 2D Chart";

            return chartControl;
        }

        #endregion
        #region 범위 영역 2차원 차트 컨트롤 구하기 - GetRangeArea2DChartControl()

        /// <summary>
        /// 범위 영역 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetRangeArea2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series = new Series("시리즈 1", ViewType.RangeArea);

            series.ArgumentScaleType = ScaleType.Qualitative;

            ((RangeAreaSeriesView)series.View).Transparency = 128;

            series.Points.Add(new SeriesPoint("Jan", 15, 10));
            series.Points.Add(new SeriesPoint("Feb", 18,  5));
            series.Points.Add(new SeriesPoint("Mar", 25, 12));
            series.Points.Add(new SeriesPoint("Apr", 33, 27));

            chartControl.Series.AddRange(new Series[] { series });

            ((XYDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYScrolling = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Range Area 2D Chart";

            return chartControl;
        }

        #endregion

        // 영역 3차원 차트(Area 3D Charts)
        #region 영역 3차원 차트 컨트롤 구하기 - GetArea3DChartControl()

        /// <summary>
        /// 영역 3차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetArea3DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series = new Series("시리즈 1", ViewType.Area3D);

            series.ArgumentScaleType = ScaleType.Qualitative;

            ((Area3DSeriesView)series.View).AreaWidth    = 1;
            ((Area3DSeriesView)series.View).Transparency = 128;

            series.Points.Add(new SeriesPoint("A", 10));
            series.Points.Add(new SeriesPoint("B",  2));
            series.Points.Add(new SeriesPoint("C", 14));
            series.Points.Add(new SeriesPoint("D",  7));

            chartControl.Series.Add(series);

            ((XYDiagram3D)chartControl.Diagram).RuntimeRotation  = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeZooming   = true;

            ((XYDiagram3D)chartControl.Diagram).RotationType   = RotationType.UseMouseAdvanced;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleX = -10;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleY = 0;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleZ = 0;

            ((XYDiagram3D)chartControl.Diagram).HorizontalScrollPercent = 0;
            ((XYDiagram3D)chartControl.Diagram).VerticalScrollPercent   = 0;

            ((XYDiagram3D)chartControl.Diagram).ZoomPercent = 120;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Area 3D Chart";

            return chartControl;
        }

        #endregion
        #region 누적 영역 3차원 차트 컨트롤 구하기 - GetStackedArea3DChartControl()

        /// <summary>
        /// 누적 영역 3차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetStackedArea3DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.StackedArea3D);
            Series series2 = new Series("시리즈 2", ViewType.StackedArea3D);

            series1.ArgumentScaleType = ScaleType.Qualitative;
            series2.ArgumentScaleType = ScaleType.Qualitative;

            ((StackedArea3DSeriesView)series1.View).AreaWidth = 1;
            ((StackedArea3DSeriesView)series2.View).AreaWidth = 1;

            ((StackedArea3DSeriesView)series1.View).Transparency = 128;
            ((StackedArea3DSeriesView)series2.View).Transparency = 128;

            series1.Points.Add(new SeriesPoint("A", 80));
            series1.Points.Add(new SeriesPoint("B", 20));
            series1.Points.Add(new SeriesPoint("C", 50));
            series1.Points.Add(new SeriesPoint("D", 30));

            series2.Points.Add(new SeriesPoint("A", 40));
            series2.Points.Add(new SeriesPoint("B", 60));
            series2.Points.Add(new SeriesPoint("C", 20));
            series2.Points.Add(new SeriesPoint("D", 80));

            chartControl.Series.AddRange(new Series[] { series1, series2 });

            ((XYDiagram3D)chartControl.Diagram).RuntimeRotation  = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeZooming   = true;

            ((XYDiagram3D)chartControl.Diagram).RotationType   = RotationType.UseMouseAdvanced;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleX = -10;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleY = 0;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleZ = 0;

            ((XYDiagram3D)chartControl.Diagram).HorizontalScrollPercent = 0;
            ((XYDiagram3D)chartControl.Diagram).VerticalScrollPercent   = 0;

            ((XYDiagram3D)chartControl.Diagram).ZoomPercent = 120;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Stacked Area 3D Chart";

            return chartControl;
        }

        #endregion
        #region 상대 누적 영역 3차원 차트 컨트롤 구하기 - GetFullStackedArea3DChartControl()

        /// <summary>
        /// 상대 누적 영역 3차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetFullStackedArea3DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.FullStackedArea3D);
            Series series2 = new Series("시리즈 2", ViewType.FullStackedArea3D);

            series1.ArgumentScaleType = ScaleType.Qualitative;
            series2.ArgumentScaleType = ScaleType.Qualitative;

            ((FullStackedArea3DSeriesView)series1.View).AreaWidth = 1;
            ((FullStackedArea3DSeriesView)series2.View).AreaWidth = 1;

            ((FullStackedArea3DSeriesView)series1.View).Transparency = 128;
            ((FullStackedArea3DSeriesView)series2.View).Transparency = 128;

            series1.Points.Add(new SeriesPoint("A", 80));
            series1.Points.Add(new SeriesPoint("B", 20));
            series1.Points.Add(new SeriesPoint("C", 50));
            series1.Points.Add(new SeriesPoint("D", 30));

            series2.Points.Add(new SeriesPoint("A", 40));
            series2.Points.Add(new SeriesPoint("B", 60));
            series2.Points.Add(new SeriesPoint("C", 20));
            series2.Points.Add(new SeriesPoint("D", 80));

            chartControl.Series.AddRange(new Series[] { series1, series2 });

            ((XYDiagram3D)chartControl.Diagram).RuntimeRotation  = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeZooming   = true;

            ((XYDiagram3D)chartControl.Diagram).RotationType   = RotationType.UseMouseAdvanced;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleX = -10;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleY = 0;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleZ = 0;

            ((XYDiagram3D)chartControl.Diagram).HorizontalScrollPercent = 0;
            ((XYDiagram3D)chartControl.Diagram).VerticalScrollPercent   = 0;

            ((XYDiagram3D)chartControl.Diagram).ZoomPercent = 120;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Full-Stacked Area 3D Chart";

            return chartControl;
        }

        #endregion
        #region 스플라인 영역 3차원 차트 컨트롤 구하기 - GetSplineArea3DChartControl()

        /// <summary>
        /// 스플라인 영역 3차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetSplineArea3DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series = new Series("시리즈 1", ViewType.SplineArea3D);

            series.ArgumentScaleType = ScaleType.Qualitative;

            ((SplineArea3DSeriesView)series.View).AreaWidth    = 1;
            ((SplineArea3DSeriesView)series.View).Transparency = 128;

            series.Points.Add(new SeriesPoint("A", 12));
            series.Points.Add(new SeriesPoint("B",  4));
            series.Points.Add(new SeriesPoint("C", 17));
            series.Points.Add(new SeriesPoint("D",  7));
            series.Points.Add(new SeriesPoint("E", 12));
            series.Points.Add(new SeriesPoint("F",  4));
            series.Points.Add(new SeriesPoint("G", 17));
            series.Points.Add(new SeriesPoint("H",  7));

            chartControl.Series.Add(series);

            ((Area3DSeriesLabel)series.Label).ResolveOverlappingMode = ResolveOverlappingMode.Default;

            ((XYDiagram3D)chartControl.Diagram).RuntimeRotation  = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeZooming   = true;

            ((XYDiagram3D)chartControl.Diagram).RotationType   = RotationType.UseMouseAdvanced;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleX = -10;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleY = 0;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleZ = 0;

            ((XYDiagram3D)chartControl.Diagram).HorizontalScrollPercent = 0;
            ((XYDiagram3D)chartControl.Diagram).VerticalScrollPercent   = 0;

            ((XYDiagram3D)chartControl.Diagram).ZoomPercent = 120;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Spline Area 3D Chart";

            return chartControl;
        }

        #endregion
        #region 누적 스플라인 영역 3차원 차트 컨트롤 구하기 - GetStackedSplineArea3DChartControl()

        /// <summary>
        /// 누적 스플라인 영역 3차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetStackedSplineArea3DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.StackedSplineArea3D);
            Series series2 = new Series("시리즈 2", ViewType.StackedSplineArea3D);

            series1.ArgumentScaleType = ScaleType.Qualitative;
            series2.ArgumentScaleType = ScaleType.Qualitative;

            ((StackedSplineArea3DSeriesView)series1.View).AreaWidth = 1;
            ((StackedSplineArea3DSeriesView)series2.View).AreaWidth = 1;

            ((StackedSplineArea3DSeriesView)series1.View).Transparency = 128;
            ((StackedSplineArea3DSeriesView)series2.View).Transparency = 128;

            series1.Points.Add(new SeriesPoint("A", 80));
            series1.Points.Add(new SeriesPoint("B", 20));
            series1.Points.Add(new SeriesPoint("C", 50));
            series1.Points.Add(new SeriesPoint("D", 30));

            series2.Points.Add(new SeriesPoint("A", 40));
            series2.Points.Add(new SeriesPoint("B", 60));
            series2.Points.Add(new SeriesPoint("C", 20));
            series2.Points.Add(new SeriesPoint("D", 80));

            chartControl.Series.AddRange(new Series[] { series1, series2 });

            ((XYDiagram3D)chartControl.Diagram).RuntimeRotation  = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeZooming   = true;

            ((XYDiagram3D)chartControl.Diagram).RotationType   = RotationType.UseMouseAdvanced;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleX = -10;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleY = 0;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleZ = 0;

            ((XYDiagram3D)chartControl.Diagram).HorizontalScrollPercent = 0;
            ((XYDiagram3D)chartControl.Diagram).VerticalScrollPercent   = 0;

            ((XYDiagram3D)chartControl.Diagram).ZoomPercent = 120;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Stacked Spline Area 3D Chart";

            return chartControl;
        }

        #endregion
        #region 상대 누적 스플라인 영역 3차원 차트 컨트롤 구하기 - GetFullStackedSplineArea3DChartControl()

        /// <summary>
        /// 상대 누적 스플라인 영역 3차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetFullStackedSplineArea3DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.FullStackedSplineArea3D);
            Series series2 = new Series("시리즈 2", ViewType.FullStackedSplineArea3D);

            series1.ArgumentScaleType = ScaleType.Qualitative;
            series2.ArgumentScaleType = ScaleType.Qualitative;

            ((FullStackedSplineArea3DSeriesView)series1.View).AreaWidth = 1;
            ((FullStackedSplineArea3DSeriesView)series2.View).AreaWidth = 1;

            ((FullStackedSplineArea3DSeriesView)series1.View).Transparency = 128;
            ((FullStackedSplineArea3DSeriesView)series2.View).Transparency = 128;

            series1.Points.Add(new SeriesPoint("A", 80));
            series1.Points.Add(new SeriesPoint("B", 20));
            series1.Points.Add(new SeriesPoint("C", 50));
            series1.Points.Add(new SeriesPoint("D", 30));

            series2.Points.Add(new SeriesPoint("A", 40));
            series2.Points.Add(new SeriesPoint("B", 60));
            series2.Points.Add(new SeriesPoint("C", 20));
            series2.Points.Add(new SeriesPoint("D", 80));

            chartControl.Series.AddRange(new Series[] { series1, series2 });

            ((XYDiagram3D)chartControl.Diagram).RuntimeRotation  = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeZooming   = true;

            ((XYDiagram3D)chartControl.Diagram).RotationType   = RotationType.UseMouseAdvanced;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleX = -10;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleY = 0;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleZ = 0;

            ((XYDiagram3D)chartControl.Diagram).HorizontalScrollPercent = 0;
            ((XYDiagram3D)chartControl.Diagram).VerticalScrollPercent   = 0;

            ((XYDiagram3D)chartControl.Diagram).ZoomPercent = 120;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Full-Stacked Spline Area 3D Chart";

            return chartControl;
        }

        #endregion
        #region 단계 영역 3차원 차트 컨트롤 구하기 - GetStepArea3DChartControl()

        /// <summary>
        /// 단계 영역 3차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetStepArea3DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series = new Series("시리즈 1", ViewType.StepArea3D);

            series.ArgumentScaleType = ScaleType.Numerical;

            ((StepArea3DSeriesView)series.View).AreaWidth    = 1;
            ((StepArea3DSeriesView)series.View).Transparency = 128;

            series.Points.Add(new SeriesPoint(1, 15));
            series.Points.Add(new SeriesPoint(2, 18));
            series.Points.Add(new SeriesPoint(3, 25));
            series.Points.Add(new SeriesPoint(4, 33));

            chartControl.Series.AddRange(new Series[] { series });

            ((XYDiagram3D)chartControl.Diagram).RuntimeRotation  = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeZooming   = true;

            ((XYDiagram3D)chartControl.Diagram).RotationType   = RotationType.UseMouseAdvanced;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleX = -10;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleY = 0;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleZ = 0;

            ((XYDiagram3D)chartControl.Diagram).HorizontalScrollPercent = 0;
            ((XYDiagram3D)chartControl.Diagram).VerticalScrollPercent   = 0;

            ((XYDiagram3D)chartControl.Diagram).ZoomPercent = 120;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Step Area 3D Chart";

            return chartControl;
        }

        #endregion
        #region 범위 영역 3차원 차트 컨트롤 구하기 - GetRangeArea3DChartControl()

        /// <summary>
        /// 범위 영역 3차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetRangeArea3DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series = new Series("시리즈 1", ViewType.RangeArea3D);

            series.ArgumentScaleType = ScaleType.Qualitative;

            ((RangeArea3DSeriesView)series.View).AreaWidth    = 1;
            ((RangeArea3DSeriesView)series.View).Transparency = 128;

            series.Points.Add(new SeriesPoint("Jan", 15, 10));
            series.Points.Add(new SeriesPoint("Feb", 18,  5));
            series.Points.Add(new SeriesPoint("Mar", 25, 12));
            series.Points.Add(new SeriesPoint("Apr", 33, 27));

            chartControl.Series.AddRange(new Series[] { series });

            ((XYDiagram3D)chartControl.Diagram).RuntimeRotation  = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeZooming   = true;

            ((XYDiagram3D)chartControl.Diagram).RotationType   = RotationType.UseMouseAdvanced;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleX = -10;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleY = 0;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleZ = 0;

            ((XYDiagram3D)chartControl.Diagram).HorizontalScrollPercent = 0;
            ((XYDiagram3D)chartControl.Diagram).VerticalScrollPercent   = 0;

            ((XYDiagram3D)chartControl.Diagram).ZoomPercent = 120;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Range Area 3D Chart";

            return chartControl;
        }

        #endregion

        // 막대와 컬럼 시리즈 뷰(Bar and Column Series Views)

        // 막대 2차원 차트(Bar 2D Charts)
        #region 막대 2차원 차트 컨트롤 구하기 - GetBar2DChartControl()

        /// <summary>
        /// 막대 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetBar2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.Bar);
            Series series2 = new Series("시리즈 2", ViewType.Bar);

            series1.ArgumentScaleType = ScaleType.Qualitative;
            series2.ArgumentScaleType = ScaleType.Qualitative;

            ((BarSeriesView)series1.View).Transparency = 128;
            ((BarSeriesView)series2.View).Transparency = 128;

            series1.Points.Add(new SeriesPoint("A",  4));
            series1.Points.Add(new SeriesPoint("B",  7));
            series1.Points.Add(new SeriesPoint("C", 12));
            series1.Points.Add(new SeriesPoint("D", 17));

            series2.Points.Add(new SeriesPoint("A",  9));
            series2.Points.Add(new SeriesPoint("B", 11));
            series2.Points.Add(new SeriesPoint("C", 15));
            series2.Points.Add(new SeriesPoint("D", 23));

            chartControl.Series.AddRange(new Series[] { series1, series2 });

            ((XYDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYScrolling = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Bar 2D Chart";

            return chartControl;
        }

        #endregion
        #region 누적 막대 2차원 차트 컨트롤 구하기 - GetStackedBar2DChartControl()

        /// <summary>
        /// 누적 막대 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetStackedBar2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.StackedBar);
            Series series2 = new Series("시리즈 2", ViewType.StackedBar);

            series1.ArgumentScaleType = ScaleType.Qualitative;
            series2.ArgumentScaleType = ScaleType.Qualitative;

            ((StackedBarSeriesView)series1.View).Transparency = 128;
            ((StackedBarSeriesView)series2.View).Transparency = 128;

            series1.Points.Add(new SeriesPoint("A", 10));
            series1.Points.Add(new SeriesPoint("B", 12));
            series1.Points.Add(new SeriesPoint("C", 14));
            series1.Points.Add(new SeriesPoint("D", 17));
    
            series2.Points.Add(new SeriesPoint("A", 15));
            series2.Points.Add(new SeriesPoint("B", 18));
            series2.Points.Add(new SeriesPoint("C", 25));
            series2.Points.Add(new SeriesPoint("D", 33));

            chartControl.Series.AddRange(new Series[] { series1, series2 });

            ((XYDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYScrolling = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Stacked Bar 2D Chart";

            return chartControl;
        }

        #endregion
        #region 상대 누적 막대 2차원 차트 컨트롤 구하기 - GetFullStackedBar2DChartControl()

        /// <summary>
        /// 상대 누적 막대 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetFullStackedBar2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.FullStackedBar);
            Series series2 = new Series("시리즈 2", ViewType.FullStackedBar);

            series1.ArgumentScaleType = ScaleType.Numerical;
            series2.ArgumentScaleType = ScaleType.Numerical;

            ((FullStackedBarSeriesView)series1.View).Transparency = 128;
            ((FullStackedBarSeriesView)series2.View).Transparency = 128;

            series1.Points.Add(new SeriesPoint(1, 10));
            series1.Points.Add(new SeriesPoint(2, 12));
            series1.Points.Add(new SeriesPoint(3, 14));
            series1.Points.Add(new SeriesPoint(4, 17));
    
            series2.Points.Add(new SeriesPoint(1, 15));
            series2.Points.Add(new SeriesPoint(2, 18));
            series2.Points.Add(new SeriesPoint(3, 25));
            series2.Points.Add(new SeriesPoint(4, 33));

            chartControl.Series.AddRange(new Series[] { series1, series2 });

            ((XYDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYScrolling = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Full-Stacked Bar 2D Chart";

            return chartControl;
        }

        #endregion
        #region 병렬 누적 막대 2차원 차트 컨트롤 구하기 - GetSideBySideStackedBar2DChartControl()

        /// <summary>
        /// 병렬 누적 막대 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetSideBySideStackedBar2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.SideBySideStackedBar);
            Series series2 = new Series("시리즈 2", ViewType.SideBySideStackedBar);
            Series series3 = new Series("시리즈 3", ViewType.SideBySideStackedBar);
            Series series4 = new Series("시리즈 4", ViewType.SideBySideStackedBar);

            series1.ArgumentScaleType = ScaleType.Qualitative;
            series2.ArgumentScaleType = ScaleType.Qualitative;
            series3.ArgumentScaleType = ScaleType.Qualitative;
            series4.ArgumentScaleType = ScaleType.Qualitative;

            ((SideBySideStackedBarSeriesView)series1.View).Transparency = 128;
            ((SideBySideStackedBarSeriesView)series2.View).Transparency = 128;
            ((SideBySideStackedBarSeriesView)series3.View).Transparency = 128;
            ((SideBySideStackedBarSeriesView)series4.View).Transparency = 128;

            ((SideBySideStackedBarSeriesView)series1.View).StackedGroup = 0;
            ((SideBySideStackedBarSeriesView)series2.View).StackedGroup = 0;
            ((SideBySideStackedBarSeriesView)series3.View).StackedGroup = 0;
            ((SideBySideStackedBarSeriesView)series4.View).StackedGroup = 0;

            series1.Points.Add(new SeriesPoint("A", 10));
            series1.Points.Add(new SeriesPoint("B", 12));
            series1.Points.Add(new SeriesPoint("C", 14));
            series1.Points.Add(new SeriesPoint("D", 17));

            series2.Points.Add(new SeriesPoint("A", 15));
            series2.Points.Add(new SeriesPoint("B", 18));
            series2.Points.Add(new SeriesPoint("C", 25));
            series2.Points.Add(new SeriesPoint("D", 33));

            series3.Points.Add(new SeriesPoint("A", 11));
            series3.Points.Add(new SeriesPoint("B", 13));
            series3.Points.Add(new SeriesPoint("C", 15));
            series3.Points.Add(new SeriesPoint("D", 18));

            series4.Points.Add(new SeriesPoint("A", 16));
            series4.Points.Add(new SeriesPoint("B", 19));
            series4.Points.Add(new SeriesPoint("C", 26));
            series4.Points.Add(new SeriesPoint("D", 34));

            chartControl.Series.AddRange(new Series[] { series1, series2, series3, series4 });

            ((XYDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYScrolling = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Side-by-Side Stacked Bar 2D Chart";

            return chartControl;
        }

        #endregion
        #region 병렬 상대 누적 막대 2차원 차트 컨트롤 구하기 - GetSideBySideFullStackedBar2DChartControl()

        /// <summary>
        /// 병렬 상대 누적 막대 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetSideBySideFullStackedBar2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.SideBySideFullStackedBar);
            Series series2 = new Series("시리즈 2", ViewType.SideBySideFullStackedBar);
            Series series3 = new Series("시리즈 3", ViewType.SideBySideFullStackedBar);
            Series series4 = new Series("시리즈 4", ViewType.SideBySideFullStackedBar);

            series1.ArgumentScaleType = ScaleType.Qualitative;
            series2.ArgumentScaleType = ScaleType.Qualitative;
            series3.ArgumentScaleType = ScaleType.Qualitative;
            series4.ArgumentScaleType = ScaleType.Qualitative;

            ((SideBySideFullStackedBarSeriesView)series1.View).Transparency = 128;
            ((SideBySideFullStackedBarSeriesView)series2.View).Transparency = 128;
            ((SideBySideFullStackedBarSeriesView)series3.View).Transparency = 128;
            ((SideBySideFullStackedBarSeriesView)series4.View).Transparency = 128;

            ((SideBySideFullStackedBarSeriesView)series1.View).StackedGroup = 0;
            ((SideBySideFullStackedBarSeriesView)series2.View).StackedGroup = 0;
            ((SideBySideFullStackedBarSeriesView)series3.View).StackedGroup = 0;
            ((SideBySideFullStackedBarSeriesView)series4.View).StackedGroup = 0;

            series1.Points.Add(new SeriesPoint("A", 10));
            series1.Points.Add(new SeriesPoint("B", 12));
            series1.Points.Add(new SeriesPoint("C", 14));
            series1.Points.Add(new SeriesPoint("D", 17));

            series2.Points.Add(new SeriesPoint("A", 15));
            series2.Points.Add(new SeriesPoint("B", 18));
            series2.Points.Add(new SeriesPoint("C", 25));
            series2.Points.Add(new SeriesPoint("D", 33));

            series3.Points.Add(new SeriesPoint("A", 11));
            series3.Points.Add(new SeriesPoint("B", 13));
            series3.Points.Add(new SeriesPoint("C", 15));
            series3.Points.Add(new SeriesPoint("D", 18));

            series4.Points.Add(new SeriesPoint("A", 16));
            series4.Points.Add(new SeriesPoint("B", 19));
            series4.Points.Add(new SeriesPoint("C", 26));
            series4.Points.Add(new SeriesPoint("D", 34));

            chartControl.Series.AddRange(new Series[] { series1, series2, series3, series4 });

            ((XYDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYScrolling = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Side-by-Side Full-Stacked Bar 2D Chart";

            return chartControl;
        }

        #endregion

        // 막대 3차원 차트(3D Bar Charts)
        #region 막대 3차원 차트 컨트롤 구하기 - GetBar3DChartControl()

        /// <summary>
        /// 막대 3차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetBar3DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.Bar3D);
            Series series2 = new Series("시리즈 2", ViewType.Bar3D);

            series1.ArgumentScaleType = ScaleType.Qualitative;
            series2.ArgumentScaleType = ScaleType.Qualitative;

            ((Bar3DSeriesView)series1.View).Transparency = 128;
            ((Bar3DSeriesView)series2.View).Transparency = 128;

            ((Bar3DSeriesView)series1.View).Model = Bar3DModel.Cylinder;
            ((Bar3DSeriesView)series2.View).Model = Bar3DModel.Cylinder;

            series1.Points.Add(new SeriesPoint("A",  4));
            series1.Points.Add(new SeriesPoint("B",  7));
            series1.Points.Add(new SeriesPoint("C", 12));
            series1.Points.Add(new SeriesPoint("D", 17));

            series2.Points.Add(new SeriesPoint("A",  9));
            series2.Points.Add(new SeriesPoint("B", 11));
            series2.Points.Add(new SeriesPoint("C", 15));
            series2.Points.Add(new SeriesPoint("D", 23));

            chartControl.Series.AddRange(new Series[] { series1, series2 });

            ((XYDiagram3D)chartControl.Diagram).RuntimeRotation  = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeZooming   = true;

            ((XYDiagram3D)chartControl.Diagram).RotationType   = RotationType.UseMouseAdvanced;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleX = -10;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleY = 0;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleZ = 0;

            ((XYDiagram3D)chartControl.Diagram).HorizontalScrollPercent = 0;
            ((XYDiagram3D)chartControl.Diagram).VerticalScrollPercent   = 0;

            ((XYDiagram3D)chartControl.Diagram).ZoomPercent = 120;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Bar 3D Chart";

            return chartControl;
        }

        #endregion
        #region 누적 막대 3차원 차트 컨트롤 구하기 - GetStackedBar3DChartControl()

        /// <summary>
        /// 누적 막대 3차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetStackedBar3DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.StackedBar3D);
            Series series2 = new Series("시리즈 2", ViewType.StackedBar3D);

            series1.ArgumentScaleType = ScaleType.Qualitative;
            series2.ArgumentScaleType = ScaleType.Qualitative;

            ((StackedBar3DSeriesView)series1.View).Transparency = 128;
            ((StackedBar3DSeriesView)series2.View).Transparency = 128;

            ((StackedBar3DSeriesView)series1.View).Model = Bar3DModel.Cylinder;
            ((StackedBar3DSeriesView)series2.View).Model = Bar3DModel.Cylinder;

            series1.Points.Add(new SeriesPoint("A", 80));
            series1.Points.Add(new SeriesPoint("B", 20));
            series1.Points.Add(new SeriesPoint("C", 50));
            series1.Points.Add(new SeriesPoint("D", 30));

            series2.Points.Add(new SeriesPoint("A", 40));
            series2.Points.Add(new SeriesPoint("B", 60));
            series2.Points.Add(new SeriesPoint("C", 20));
            series2.Points.Add(new SeriesPoint("D", 80));

            chartControl.Series.AddRange(new Series[] { series1, series2 });

            ((XYDiagram3D)chartControl.Diagram).RuntimeRotation  = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeZooming   = true;

            ((XYDiagram3D)chartControl.Diagram).RotationType   = RotationType.UseMouseAdvanced;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleX = -10;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleY = 0;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleZ = 0;

            ((XYDiagram3D)chartControl.Diagram).HorizontalScrollPercent = 0;
            ((XYDiagram3D)chartControl.Diagram).VerticalScrollPercent   = 0;

            ((XYDiagram3D)chartControl.Diagram).ZoomPercent = 120;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Stacked Bar 3D Chart";

            return chartControl;
        }

        #endregion
        #region 상대 누적 막대 3차원 차트 컨트롤 구하기 - GetFullStackedBar3DChartControl()

        /// <summary>
        /// 상대 누적 막대 3차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetFullStackedBar3DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.FullStackedBar3D);
            Series series2 = new Series("시리즈 2", ViewType.FullStackedBar3D);

            series1.ArgumentScaleType = ScaleType.Qualitative;
            series2.ArgumentScaleType = ScaleType.Qualitative;

            ((FullStackedBar3DSeriesView)series1.View).Transparency = 128;
            ((FullStackedBar3DSeriesView)series2.View).Transparency = 128;

            ((FullStackedBar3DSeriesView)series1.View).Model = Bar3DModel.Cylinder;
            ((FullStackedBar3DSeriesView)series2.View).Model = Bar3DModel.Cylinder;

            series1.Points.Add(new SeriesPoint("A", 80));
            series1.Points.Add(new SeriesPoint("B", 20));
            series1.Points.Add(new SeriesPoint("C", 50));
            series1.Points.Add(new SeriesPoint("D", 30));

            series2.Points.Add(new SeriesPoint("A", 40));
            series2.Points.Add(new SeriesPoint("B", 60));
            series2.Points.Add(new SeriesPoint("C", 20));
            series2.Points.Add(new SeriesPoint("D", 80));

            chartControl.Series.AddRange(new Series[] { series1, series2 });

            ((XYDiagram3D)chartControl.Diagram).RuntimeRotation  = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeZooming   = true;

            ((XYDiagram3D)chartControl.Diagram).RotationType   = RotationType.UseMouseAdvanced;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleX = -10;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleY = 0;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleZ = 0;

            ((XYDiagram3D)chartControl.Diagram).HorizontalScrollPercent = 0;
            ((XYDiagram3D)chartControl.Diagram).VerticalScrollPercent   = 0;

            ((XYDiagram3D)chartControl.Diagram).ZoomPercent = 120;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Full-Stacked Bar 3D Chart";

            return chartControl;
        }

        #endregion
        #region 병렬 누적 막대 3차원 차트 컨트롤 구하기 - GetSideBySideStackedBar3DChartControl()

        /// <summary>
        /// 병렬 누적 막대 3차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetSideBySideStackedBar3DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.SideBySideStackedBar3D);
            Series series2 = new Series("시리즈 2", ViewType.SideBySideStackedBar3D);
            Series series3 = new Series("시리즈 3", ViewType.SideBySideStackedBar3D);
            Series series4 = new Series("시리즈 4", ViewType.SideBySideStackedBar3D);

            series1.ArgumentScaleType = ScaleType.Qualitative;
            series2.ArgumentScaleType = ScaleType.Qualitative;
            series3.ArgumentScaleType = ScaleType.Qualitative;
            series4.ArgumentScaleType = ScaleType.Qualitative;

            ((SideBySideStackedBar3DSeriesView)series1.View).Transparency = 128;
            ((SideBySideStackedBar3DSeriesView)series2.View).Transparency = 128;
            ((SideBySideStackedBar3DSeriesView)series3.View).Transparency = 128;
            ((SideBySideStackedBar3DSeriesView)series4.View).Transparency = 128;

            ((SideBySideStackedBar3DSeriesView)series1.View).Model = Bar3DModel.Cylinder;
            ((SideBySideStackedBar3DSeriesView)series2.View).Model = Bar3DModel.Cylinder;
            ((SideBySideStackedBar3DSeriesView)series3.View).Model = Bar3DModel.Cylinder;
            ((SideBySideStackedBar3DSeriesView)series4.View).Model = Bar3DModel.Cylinder;

            ((SideBySideStackedBar3DSeriesView)series1.View).StackedGroup = 0;
            ((SideBySideStackedBar3DSeriesView)series2.View).StackedGroup = 0;
            ((SideBySideStackedBar3DSeriesView)series3.View).StackedGroup = 1;
            ((SideBySideStackedBar3DSeriesView)series4.View).StackedGroup = 1;

            series1.Points.Add(new SeriesPoint("A", 10));
            series1.Points.Add(new SeriesPoint("B", 12));
            series1.Points.Add(new SeriesPoint("C", 14));
            series1.Points.Add(new SeriesPoint("D", 17));

            series2.Points.Add(new SeriesPoint("A", 5));
            series2.Points.Add(new SeriesPoint("B", 8));
            series2.Points.Add(new SeriesPoint("C", 5));
            series2.Points.Add(new SeriesPoint("D", 3));

            series3.Points.Add(new SeriesPoint("A", 11));
            series3.Points.Add(new SeriesPoint("B", 13));
            series3.Points.Add(new SeriesPoint("C", 15));
            series3.Points.Add(new SeriesPoint("D", 18));

            series4.Points.Add(new SeriesPoint("A", 6));
            series4.Points.Add(new SeriesPoint("B", 9));
            series4.Points.Add(new SeriesPoint("C", 6));
            series4.Points.Add(new SeriesPoint("D", 4));

            chartControl.Series.AddRange(new Series[] { series1, series2, series3, series4 });

            ((XYDiagram3D)chartControl.Diagram).RuntimeRotation  = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeZooming   = true;

            ((XYDiagram3D)chartControl.Diagram).RotationType   = RotationType.UseMouseAdvanced;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleX = -10;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleY = 0;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleZ = 0;

            ((XYDiagram3D)chartControl.Diagram).HorizontalScrollPercent = 0;
            ((XYDiagram3D)chartControl.Diagram).VerticalScrollPercent   = 0;

            ((XYDiagram3D)chartControl.Diagram).ZoomPercent = 120;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Side-by-Side Stacked Bar 3D Chart";

            return chartControl;
        }

        #endregion
        #region 병렬 상대 누적 막대 3차원 차트 컨트롤 구하기 - GetSideBySideFullStackedBar3DChartControl()

        /// <summary>
        /// 병렬 상대 누적 막대 3차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetSideBySideFullStackedBar3DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.SideBySideFullStackedBar3D);
            Series series2 = new Series("시리즈 2", ViewType.SideBySideFullStackedBar3D);
            Series series3 = new Series("시리즈 3", ViewType.SideBySideFullStackedBar3D);
            Series series4 = new Series("시리즈 4", ViewType.SideBySideFullStackedBar3D);

            series1.ArgumentScaleType = ScaleType.Qualitative;
            series2.ArgumentScaleType = ScaleType.Qualitative;
            series3.ArgumentScaleType = ScaleType.Qualitative;
            series4.ArgumentScaleType = ScaleType.Qualitative;

            ((SideBySideFullStackedBar3DSeriesView)series1.View).Transparency = 128;
            ((SideBySideFullStackedBar3DSeriesView)series2.View).Transparency = 128;
            ((SideBySideFullStackedBar3DSeriesView)series3.View).Transparency = 128;
            ((SideBySideFullStackedBar3DSeriesView)series4.View).Transparency = 128;

            ((SideBySideFullStackedBar3DSeriesView)series1.View).Model = Bar3DModel.Cylinder;
            ((SideBySideFullStackedBar3DSeriesView)series2.View).Model = Bar3DModel.Cylinder;
            ((SideBySideFullStackedBar3DSeriesView)series3.View).Model = Bar3DModel.Cylinder;
            ((SideBySideFullStackedBar3DSeriesView)series4.View).Model = Bar3DModel.Cylinder;

            ((SideBySideFullStackedBar3DSeriesView)series1.View).StackedGroup = 0;
            ((SideBySideFullStackedBar3DSeriesView)series2.View).StackedGroup = 0;
            ((SideBySideFullStackedBar3DSeriesView)series3.View).StackedGroup = 1;
            ((SideBySideFullStackedBar3DSeriesView)series4.View).StackedGroup = 1;

            series1.Points.Add(new SeriesPoint("A", 10));
            series1.Points.Add(new SeriesPoint("B", 12));
            series1.Points.Add(new SeriesPoint("C", 14));
            series1.Points.Add(new SeriesPoint("D", 17));

            series2.Points.Add(new SeriesPoint("A", 5));
            series2.Points.Add(new SeriesPoint("B", 8));
            series2.Points.Add(new SeriesPoint("C", 5));
            series2.Points.Add(new SeriesPoint("D", 3));

            series3.Points.Add(new SeriesPoint("A", 11));
            series3.Points.Add(new SeriesPoint("B", 13));
            series3.Points.Add(new SeriesPoint("C", 15));
            series3.Points.Add(new SeriesPoint("D", 18));

            series4.Points.Add(new SeriesPoint("A", 6));
            series4.Points.Add(new SeriesPoint("B", 9));
            series4.Points.Add(new SeriesPoint("C", 6));
            series4.Points.Add(new SeriesPoint("D", 4));

            chartControl.Series.AddRange(new Series[] { series1, series2, series3, series4 });

            ((XYDiagram3D)chartControl.Diagram).RuntimeRotation  = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeZooming   = true;

            ((XYDiagram3D)chartControl.Diagram).RotationType   = RotationType.UseMouseAdvanced;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleX = -10;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleY = 0;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleZ = 0;

            ((XYDiagram3D)chartControl.Diagram).HorizontalScrollPercent = 0;
            ((XYDiagram3D)chartControl.Diagram).VerticalScrollPercent   = 0;

            ((XYDiagram3D)chartControl.Diagram).ZoomPercent = 120;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Side-by-Side Full Stacked Bar 3D Chart";

            return chartControl;
        }

        #endregion
        #region 맨하탄 막대 3차원 차트 컨트롤 구하기 - GetManhattanBar3DChartControl()

        /// <summary>
        /// 맨하탄 막대 3차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetManhattanBar3DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.ManhattanBar);
            Series series2 = new Series("시리즈 2", ViewType.ManhattanBar);

            series1.ArgumentScaleType = ScaleType.Qualitative;
            series2.ArgumentScaleType = ScaleType.Qualitative;

            ((ManhattanBarSeriesView)series1.View).Transparency = 128;
            ((ManhattanBarSeriesView)series2.View).Transparency = 128;

            ((ManhattanBarSeriesView)series1.View).Model = Bar3DModel.Cylinder;
            ((ManhattanBarSeriesView)series2.View).Model = Bar3DModel.Cylinder;

            series1.Points.Add(new SeriesPoint("A", 10));
            series1.Points.Add(new SeriesPoint("B", 12));
            series1.Points.Add(new SeriesPoint("C", 14));
            series1.Points.Add(new SeriesPoint("D", 17));

            series2.Points.Add(new SeriesPoint("A",  5));
            series2.Points.Add(new SeriesPoint("B",  4));
            series2.Points.Add(new SeriesPoint("C", 10));
            series2.Points.Add(new SeriesPoint("D", 12));

            chartControl.Series.AddRange(new Series[] { series1, series2 });

            ((XYDiagram3D)chartControl.Diagram).RuntimeRotation  = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeZooming   = true;

            ((XYDiagram3D)chartControl.Diagram).RotationType   = RotationType.UseMouseAdvanced;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleX = 30;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleY = -30;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleZ = 0;

            ((XYDiagram3D)chartControl.Diagram).HorizontalScrollPercent = 0;
            ((XYDiagram3D)chartControl.Diagram).VerticalScrollPercent   = 0;

            ((XYDiagram3D)chartControl.Diagram).ZoomPercent = 120;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Manhattan Bar 3D Chart";

            return chartControl;
        }

        #endregion

        // 재무 시리즈 뷰(Financial Series Views)
        #region 주식 2차원 차트 컨트롤 구하기 - GetStock2DChartControl()

        /// <summary>
        /// 주식 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetStock2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.Stock);

            series1.ArgumentScaleType = ScaleType.DateTime;

            ((StockSeriesView)series1.View).ShowOpenClose  = StockType.Both;
            ((StockSeriesView)series1.View).Shadow.Visible = true;

            series1.Points.Add(new SeriesPoint(new DateTime(2012, 9,  3), 20900, 21450, 21200, 21400));
            series1.Points.Add(new SeriesPoint(new DateTime(2012, 9,  4), 21250, 21800, 21350, 21500));
            series1.Points.Add(new SeriesPoint(new DateTime(2012, 9,  5), 21200, 21650, 21500, 21200));
            series1.Points.Add(new SeriesPoint(new DateTime(2012, 9,  6), 20550, 21400, 21400, 20900));
            series1.Points.Add(new SeriesPoint(new DateTime(2012, 9,  7), 21750, 22550, 22000, 22500));
            series1.Points.Add(new SeriesPoint(new DateTime(2012, 9, 10), 22150, 22500, 22350, 22250));
            series1.Points.Add(new SeriesPoint(new DateTime(2012, 9, 11), 21800, 22150, 22150, 21950));
            series1.Points.Add(new SeriesPoint(new DateTime(2012, 9, 12), 22000, 22400, 22200, 22200));
            series1.Points.Add(new SeriesPoint(new DateTime(2012, 9, 13), 21800, 22150, 22100, 21850));
            series1.Points.Add(new SeriesPoint(new DateTime(2012, 9, 14), 22350, 23000, 22550, 22950));

            chartControl.Series.AddRange(new Series[] { series1 });

            ((XYDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYScrolling = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Stock 2D Chart";

            return chartControl;
        }

        #endregion
        #region 캔들 스틱 2차원 차트 컨트롤 구하기 - GetCandleStick2DChartControl()

        /// <summary>
        /// 캔들 스틱 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetCandleStick2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.CandleStick);

            series1.ArgumentScaleType = ScaleType.DateTime;

            ((CandleStickSeriesView)series1.View).Shadow.Visible = true;

            ((CandleStickSeriesView)series1.View).Color                  = Color.Red;
            ((CandleStickSeriesView)series1.View).ReductionOptions.Color = Color.Blue;

            series1.Points.Add(new SeriesPoint(new DateTime(2012, 9,  3), 20900, 21450, 21200, 21400));
            series1.Points.Add(new SeriesPoint(new DateTime(2012, 9,  4), 21250, 21800, 21350, 21500));
            series1.Points.Add(new SeriesPoint(new DateTime(2012, 9,  5), 21200, 21650, 21500, 21200));
            series1.Points.Add(new SeriesPoint(new DateTime(2012, 9,  6), 20550, 21400, 21400, 20900));
            series1.Points.Add(new SeriesPoint(new DateTime(2012, 9,  7), 21750, 22550, 22000, 22500));
            series1.Points.Add(new SeriesPoint(new DateTime(2012, 9, 10), 22150, 22500, 22350, 22250));
            series1.Points.Add(new SeriesPoint(new DateTime(2012, 9, 11), 21800, 22150, 22150, 21950));
            series1.Points.Add(new SeriesPoint(new DateTime(2012, 9, 12), 22000, 22400, 22200, 22200));
            series1.Points.Add(new SeriesPoint(new DateTime(2012, 9, 13), 21800, 22150, 22100, 21850));
            series1.Points.Add(new SeriesPoint(new DateTime(2012, 9, 14), 22350, 23000, 22550, 22950));

            chartControl.Series.AddRange(new Series[] { series1 });

            ((XYDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYScrolling = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Candle Stick 2D Chart";

            return chartControl;
        }

        #endregion

        // 간트 시리즈 뷰(Gantt Series Views)
        #region 병렬 간트 2차원 차트 컨트롤 구하기 - GetSideBySideGantt2DChartControl()

        /// <summary>
        /// 병렬 간트 2차원 차트 컨트롤 구하기
        /// </summary>
        private ChartControl GetSideBySideGantt2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("계획", ViewType.SideBySideGantt);
            Series series2 = new Series("실적", ViewType.SideBySideGantt);

            series1.ArgumentScaleType = ScaleType.Qualitative;
            series2.ArgumentScaleType = ScaleType.Qualitative;

            series1.ValueScaleType = ScaleType.DateTime;
            series2.ValueScaleType = ScaleType.DateTime;

            ((SideBySideGanttSeriesView)series1.View).BarWidth = 0.5;
            ((SideBySideGanttSeriesView)series2.View).BarWidth = 0.5;

            ((SideBySideGanttSeriesView)series1.View).Transparency = 128;
            ((SideBySideGanttSeriesView)series2.View).Transparency = 128;

            series1.Points.Add(new SeriesPoint("작업 1", new DateTime[] { new DateTime(2006,  8, 16), new DateTime(2006,  8, 31) }));
            series1.Points.Add(new SeriesPoint("작업 2", new DateTime[] { new DateTime(2006,  8, 31), new DateTime(2006,  9, 15) }));
            series1.Points.Add(new SeriesPoint("작업 3", new DateTime[] { new DateTime(2006,  9, 15), new DateTime(2006,  9, 30) }));
            series1.Points.Add(new SeriesPoint("작업 4", new DateTime[] { new DateTime(2006,  9, 30), new DateTime(2006, 10, 15) }));

            series2.Points.Add(new SeriesPoint("작업 1", new DateTime[] { new DateTime(2006,  8, 16), new DateTime(2006,  9,  5) }));
            series2.Points.Add(new SeriesPoint("작업 2", new DateTime[] { new DateTime(2006,  9,  5), new DateTime(2006,  9, 22) }));
            series2.Points.Add(new SeriesPoint("작업 3", new DateTime[] { new DateTime(2006,  9, 22), new DateTime(2006, 10, 10) }));
            series2.Points.Add(new SeriesPoint("작업 4", new DateTime[] { new DateTime(2006, 10, 10), new DateTime(2006, 10, 23) }));

            chartControl.Series.AddRange(new Series[] { series1, series2 });

            ((GanttDiagram)chartControl.Diagram).AxisY.Interlaced = true;
            ((GanttDiagram)chartControl.Diagram).AxisY.GridSpacing = 10;
            ((GanttDiagram)chartControl.Diagram).AxisY.Label.Angle = 90;
            ((GanttDiagram)chartControl.Diagram).AxisY.DateTimeOptions.Format = DateTimeFormat.ShortDate;

            ConstantLine pConstantLine = new ConstantLine("마감일", new DateTime(2006, 10, 15));

            pConstantLine.Color           = Color.Red;
            pConstantLine.ShowInLegend    = false;
            pConstantLine.Title.Alignment = ConstantLineTitleAlignment.Far;

            ((GanttDiagram)chartControl.Diagram).AxisY.ConstantLines.Add(pConstantLine);

            ((GanttDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((GanttDiagram)chartControl.Diagram).EnableAxisYScrolling = true;
            ((GanttDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((GanttDiagram)chartControl.Diagram).EnableAxisYZooming   = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Side-by-Side Gantt 2D Chart";

            return chartControl;
        }

        #endregion
        #region 간트 2차원 차트 컨트롤 구하기 - GetGantt2DChartControl()

        /// <summary>
        /// 간트 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetGantt2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("계획", ViewType.Gantt);
            Series series2 = new Series("실적", ViewType.Gantt);

            series1.ArgumentScaleType = ScaleType.Qualitative;
            series2.ArgumentScaleType = ScaleType.Qualitative;

            series1.ValueScaleType = ScaleType.DateTime;
            series2.ValueScaleType = ScaleType.DateTime;

            ((GanttSeriesView)series1.View).BarWidth = 0.5;
            ((GanttSeriesView)series2.View).BarWidth = 0.3;

            ((GanttSeriesView)series1.View).Transparency = 128;
            ((GanttSeriesView)series2.View).Transparency = 128;

            ((GanttSeriesView)series1.View).LinkOptions.ArrowHeight = 7;
            ((GanttSeriesView)series1.View).LinkOptions.ArrowWidth  = 11;

            series1.Points.Add(new SeriesPoint("Market analysis"     , new DateTime[] { new DateTime(2006, 8, 16), new DateTime(2006,  8, 23) }));
            series1.Points.Add(new SeriesPoint("Feature planning"    , new DateTime[] { new DateTime(2006, 8, 23), new DateTime(2006,  8, 26) }));
            series1.Points.Add(new SeriesPoint("Implementation"      , new DateTime[] { new DateTime(2006, 8, 26), new DateTime(2006,  9, 26) }));
            series1.Points.Add(new SeriesPoint("Testing & bug fixing", new DateTime[] { new DateTime(2006, 9, 26), new DateTime(2006, 10, 10) }));

            series2.Points.Add(new SeriesPoint("Market analysis"     , new DateTime[] { new DateTime(2006, 8, 16), new DateTime(2006, 8, 23) }));
            series2.Points.Add(new SeriesPoint("Feature planning"    , new DateTime[] { new DateTime(2006, 8, 23), new DateTime(2006, 8, 26) }));
            series2.Points.Add(new SeriesPoint("Implementation"      , new DateTime[] { new DateTime(2006, 8, 26), new DateTime(2006, 9, 10) }));

            chartControl.Series.AddRange(new Series[] { series1, series2 });

            for(int i = 1; i < series1.Points.Count; i++)
            {
                series1.Points[i].Relations.Add(series1.Points[i - 1]);
            }

            ((GanttDiagram)chartControl.Diagram).AxisY.Interlaced = true;
            ((GanttDiagram)chartControl.Diagram).AxisY.GridSpacing = 10;
            ((GanttDiagram)chartControl.Diagram).AxisY.Label.Angle = 90;
            ((GanttDiagram)chartControl.Diagram).AxisY.DateTimeOptions.Format = DateTimeFormat.ShortDate;

            ConstantLine pConstantLine = new ConstantLine("현재 진행", new DateTime(2006, 9, 10));

            pConstantLine.Color           = Color.Blue;
            pConstantLine.ShowInLegend    = false;
            pConstantLine.Title.Alignment = ConstantLineTitleAlignment.Far;

            ((GanttDiagram)chartControl.Diagram).AxisY.ConstantLines.Add(pConstantLine);

            ((GanttDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((GanttDiagram)chartControl.Diagram).EnableAxisYScrolling = true;
            ((GanttDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((GanttDiagram)chartControl.Diagram).EnableAxisYZooming   = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Gantt 2D Chart";

            return chartControl;
        }

        #endregion

        //파이, 도넛 그리고 깔때기 시리즈 뷰(Pie, Doughnut and Funnel Series Views)

        // 2차원 파이, 도넛, 그리고 깔때기 차트(2D Pie, Doughnut and Funnel Charts)
        #region 파이 2차원 차트 컨트롤 구하기 - GetPie2DChartControl()

        /// <summary>
        /// 파이 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetPie2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series = new Series("시리즈 1", ViewType.Pie);

            series.ArgumentScaleType = ScaleType.Qualitative;

            series.Label.PointOptions.PointView                     = PointView.ArgumentAndValues;
            series.Label.PointOptions.ValueNumericOptions.Format    = NumericFormat.Percent;
            series.Label.PointOptions.ValueNumericOptions.Precision = 2;

            series.SeriesPointsSorting    = SortingMode.Ascending;
            series.SeriesPointsSortingKey = SeriesPointKey.Argument;

            ((PieSeriesLabel)series.Label).Position                    = PieSeriesLabelPosition.TwoColumns;
            ((PieSeriesLabel)series.Label).ResolveOverlappingMode      = ResolveOverlappingMode.Default;
            ((PieSeriesLabel)series.Label).ResolveOverlappingMinIndent = 5;

            ((PieSeriesView)series.View).ExplodedPointsFilters.Add(new SeriesPointFilter(SeriesPointKey.Value_1 , DataFilterCondition.GreaterThanOrEqual, 9.5     ));
            ((PieSeriesView)series.View).ExplodedPointsFilters.Add(new SeriesPointFilter(SeriesPointKey.Argument, DataFilterCondition.NotEqual          , "Others"));

            ((PieSeriesView)series.View).ExplodeMode                = PieExplodeMode.UseFilters;
            ((PieSeriesView)series.View).ExplodedDistancePercentage = 30;
            ((PieSeriesView)series.View).RuntimeExploding           = true;

            series.Points.Add(new SeriesPoint("Russia"   , 17.0752  ));
            series.Points.Add(new SeriesPoint("Canada"   ,  9.98467 ));
            series.Points.Add(new SeriesPoint("USA"      ,  9.63142 ));
            series.Points.Add(new SeriesPoint("China"    ,  9.59696 ));
            series.Points.Add(new SeriesPoint("Brazil"   ,  8.511965));
            series.Points.Add(new SeriesPoint("Australia",  7.68685 ));
            series.Points.Add(new SeriesPoint("India"    ,  3.28759 ));
            series.Points.Add(new SeriesPoint("Others"   , 81.2     ));

            chartControl.Series.Add(series);

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Pie 2D Chart";

            return chartControl;
        }

        #endregion
        #region 도넛 2차원 차트 컨트롤 구하기 - GetDoughnut2DChartControl()

        /// <summary>
        /// 도넛 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetDoughnut2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series = new Series("시리즈 1", ViewType.Doughnut);

            series.ArgumentScaleType = ScaleType.Qualitative;

            series.Label.PointOptions.PointView                     = PointView.ArgumentAndValues;
            series.Label.PointOptions.ValueNumericOptions.Format    = NumericFormat.Percent;
            series.Label.PointOptions.ValueNumericOptions.Precision = 0;

            series.SeriesPointsSorting    = SortingMode.Ascending;
            series.SeriesPointsSortingKey = SeriesPointKey.Argument;

            ((DoughnutSeriesLabel)series.Label).Position                    = PieSeriesLabelPosition.TwoColumns;
            ((DoughnutSeriesLabel)series.Label).ResolveOverlappingMode      = ResolveOverlappingMode.Default;
            ((DoughnutSeriesLabel)series.Label).ResolveOverlappingMinIndent = 5;

            ((DoughnutSeriesView)series.View).ExplodedPointsFilters.Add(new SeriesPointFilter(SeriesPointKey.Value_1 , DataFilterCondition.GreaterThanOrEqual, 9.5     ));
            ((DoughnutSeriesView)series.View).ExplodedPointsFilters.Add(new SeriesPointFilter(SeriesPointKey.Argument, DataFilterCondition.NotEqual          , "Others"));

            ((DoughnutSeriesView)series.View).ExplodeMode                = PieExplodeMode.UseFilters;
            ((DoughnutSeriesView)series.View).ExplodedDistancePercentage = 30;
            ((DoughnutSeriesView)series.View).RuntimeExploding           = true;
            ((DoughnutSeriesView)series.View).HoleRadiusPercent          = 30;

            series.Points.Add(new SeriesPoint("Russia"   , 17.0752  ));
            series.Points.Add(new SeriesPoint("Canada"   ,  9.98467 ));
            series.Points.Add(new SeriesPoint("USA"      ,  9.63142 ));
            series.Points.Add(new SeriesPoint("China"    ,  9.59696 ));
            series.Points.Add(new SeriesPoint("Brazil"   ,  8.511965));
            series.Points.Add(new SeriesPoint("Australia",  7.68685 ));
            series.Points.Add(new SeriesPoint("India"    ,  3.28759 ));
            series.Points.Add(new SeriesPoint("Others"   , 81.2     ));

            chartControl.Series.Add(series);

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Doughnut 2D Chart";

            return chartControl;
        }

        #endregion
        #region 깔때기 2차원 차트 컨트롤 구하기 - GetFunnel2DChartControl()

        /// <summary>
        /// 깔때기 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetFunnel2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series = new Series("시리즈 1", ViewType.Funnel);

            series.ArgumentScaleType = ScaleType.Qualitative;

            ((FunnelPointOptions)series.PointOptions).PercentOptions.ValueAsPercent = true;

            series.Label.PointOptions.PointView                     = PointView.ArgumentAndValues;
            series.Label.PointOptions.ValueNumericOptions.Format    = NumericFormat.Percent;
            series.Label.PointOptions.ValueNumericOptions.Precision = 2;

            ((FunnelSeriesLabel)series.Label).Position = FunnelSeriesLabelPosition.RightColumn;

            ((FunnelSeriesView)series.View).HeightToWidthRatioAuto = false;
            ((FunnelSeriesView)series.View).HeightToWidthRatio     = 1;
            ((FunnelSeriesView)series.View).PointDistance          = 10;

            series.Points.Add(new SeriesPoint("A", 48.5));
            series.Points.Add(new SeriesPoint("B", 29.6));
            series.Points.Add(new SeriesPoint("C", 17.1));
            series.Points.Add(new SeriesPoint("D", 13.3));
            series.Points.Add(new SeriesPoint("E", 11.6));

            chartControl.Series.Add(series);

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Funnel 2D Chart";

            return chartControl;
        }

        #endregion

        // 3차원 파이, 도넛, 그리고 깔때기 차트(2D Pie, Doughnut and Funnel Charts)
        #region 파이 3차원 차트 컨트롤 구하기 - GetPie3DChartControl()

        /// <summary>
        /// 파이 3차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetPie3DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.Pie3D);

            series1.ArgumentScaleType = ScaleType.Qualitative;

            series1.Label.PointOptions.PointView                     = PointView.ArgumentAndValues;
            series1.Label.PointOptions.ValueNumericOptions.Format    = NumericFormat.Percent;
            series1.Label.PointOptions.ValueNumericOptions.Precision = 2;

            series1.SeriesPointsSorting    = SortingMode.Ascending;
            series1.SeriesPointsSortingKey = SeriesPointKey.Argument;

            ((Pie3DSeriesLabel)series1.Label).Position                    = PieSeriesLabelPosition.TwoColumns;
            ((Pie3DSeriesLabel)series1.Label).ResolveOverlappingMode      = ResolveOverlappingMode.Default;
            ((Pie3DSeriesLabel)series1.Label).ResolveOverlappingMinIndent = 5;

            ((Pie3DSeriesView)series1.View).ExplodedPointsFilters.Add(new SeriesPointFilter(SeriesPointKey.Value_1 , DataFilterCondition.GreaterThanOrEqual, 9.5     ));
            ((Pie3DSeriesView)series1.View).ExplodedPointsFilters.Add(new SeriesPointFilter(SeriesPointKey.Argument, DataFilterCondition.NotEqual          , "Others"));

            ((Pie3DSeriesView)series1.View).ExplodeMode                = PieExplodeMode.UseFilters;
            ((Pie3DSeriesView)series1.View).ExplodedDistancePercentage = 30;

            ((Pie3DSeriesView)series1.View).Depth = 30;

            series1.Points.Add(new SeriesPoint("Russia"   , 17.0752  ));
            series1.Points.Add(new SeriesPoint("Canada"   ,  9.98467 ));
            series1.Points.Add(new SeriesPoint("USA"      ,  9.63142 ));
            series1.Points.Add(new SeriesPoint("China"    ,  9.59696 ));
            series1.Points.Add(new SeriesPoint("Brazil"   ,  8.511965));
            series1.Points.Add(new SeriesPoint("Australia",  7.68685 ));
            series1.Points.Add(new SeriesPoint("India"    ,  3.28759 ));
            series1.Points.Add(new SeriesPoint("Others"   , 81.2     ));

            chartControl.Series.Add(series1);

            ((SimpleDiagram3D)chartControl.Diagram).RuntimeRotation  = true;
            ((SimpleDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
            ((SimpleDiagram3D)chartControl.Diagram).RuntimeZooming   = true;

            ((SimpleDiagram3D)chartControl.Diagram).RotationType     = RotationType.UseMouseAdvanced;
            ((SimpleDiagram3D)chartControl.Diagram).RotationAngleX   = -30;
            ((SimpleDiagram3D)chartControl.Diagram).RotationAngleY   = 30;
            ((SimpleDiagram3D)chartControl.Diagram).RotationAngleZ   = 0;

            ((SimpleDiagram3D)chartControl.Diagram).HorizontalScrollPercent = 0;
            ((SimpleDiagram3D)chartControl.Diagram).VerticalScrollPercent   = 0;

            ((SimpleDiagram3D)chartControl.Diagram).ZoomPercent = 100;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Pie 3D Chart";

            return chartControl;
        }

        #endregion
        #region 도넛 3차원 차트 컨트롤 구하기 - GetDoughnut3DChartControl()

        /// <summary>
        /// 도넛 3차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetDoughnut3DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series = new Series("Doughnut Series 1", ViewType.Doughnut3D);

            series.ArgumentScaleType = ScaleType.Qualitative;

            series.Label.PointOptions.PointView                     = PointView.ArgumentAndValues;
            series.Label.PointOptions.ValueNumericOptions.Format    = NumericFormat.Percent;
            series.Label.PointOptions.ValueNumericOptions.Precision = 0;

            series.SeriesPointsSorting    = SortingMode.Ascending;
            series.SeriesPointsSortingKey = SeriesPointKey.Argument;

            ((Doughnut3DSeriesLabel)series.Label).Position                    = PieSeriesLabelPosition.TwoColumns;
            ((Doughnut3DSeriesLabel)series.Label).ResolveOverlappingMode      = ResolveOverlappingMode.Default;
            ((Doughnut3DSeriesLabel)series.Label).ResolveOverlappingMinIndent = 5;

            ((Doughnut3DSeriesView)series.View).ExplodedPointsFilters.Add(new SeriesPointFilter(SeriesPointKey.Value_1 , DataFilterCondition.GreaterThanOrEqual, 9.5     ));
            ((Doughnut3DSeriesView)series.View).ExplodedPointsFilters.Add(new SeriesPointFilter(SeriesPointKey.Argument, DataFilterCondition.NotEqual          , "Others"));

            ((Doughnut3DSeriesView)series.View).ExplodeMode                = PieExplodeMode.UseFilters;
            ((Doughnut3DSeriesView)series.View).ExplodedDistancePercentage = 30;
            ((Doughnut3DSeriesView)series.View).HoleRadiusPercent          = 30;

            series.Points.Add(new SeriesPoint("Russia"   , 17.0752  ));
            series.Points.Add(new SeriesPoint("Canada"   ,  9.98467 ));
            series.Points.Add(new SeriesPoint("USA"      ,  9.63142 ));
            series.Points.Add(new SeriesPoint("China"    ,  9.59696 ));
            series.Points.Add(new SeriesPoint("Brazil"   ,  8.511965));
            series.Points.Add(new SeriesPoint("Australia",  7.68685 ));
            series.Points.Add(new SeriesPoint("India"    ,  3.28759 ));
            series.Points.Add(new SeriesPoint("Others"   , 81.2     ));

            chartControl.Series.Add(series);

            ((SimpleDiagram3D)chartControl.Diagram).RuntimeRotation  = true;
            ((SimpleDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
            ((SimpleDiagram3D)chartControl.Diagram).RuntimeZooming   = true;

            ((SimpleDiagram3D)chartControl.Diagram).RotationType     = RotationType.UseMouseAdvanced;
            ((SimpleDiagram3D)chartControl.Diagram).RotationAngleX   = -30;
            ((SimpleDiagram3D)chartControl.Diagram).RotationAngleY   = 30;
            ((SimpleDiagram3D)chartControl.Diagram).RotationAngleZ   = 0;

            ((SimpleDiagram3D)chartControl.Diagram).HorizontalScrollPercent = 0;
            ((SimpleDiagram3D)chartControl.Diagram).VerticalScrollPercent   = 0;

            ((SimpleDiagram3D)chartControl.Diagram).ZoomPercent = 100;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Doughnut 3D Chart";

            return chartControl;
        }

        #endregion
        #region 깔때기 3차원 차트 컨트롤 구하기 - GetFunnel3DChartControl()

        /// <summary>
        /// 깔때기 3차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetFunnel3DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series = new Series("시리즈 1", ViewType.Funnel3D);

            series.ArgumentScaleType = ScaleType.Qualitative;

            ((FunnelPointOptions)series.PointOptions).PercentOptions.ValueAsPercent = true;

            series.Label.PointOptions.PointView                     = PointView.ArgumentAndValues;
            series.Label.PointOptions.ValueNumericOptions.Format    = NumericFormat.Percent;
            series.Label.PointOptions.ValueNumericOptions.Precision = 2;

            ((Funnel3DSeriesLabel)series.Label).Position = FunnelSeriesLabelPosition.LeftColumn;

            ((Funnel3DSeriesView)series.View).HeightToWidthRatio = 1;
            ((Funnel3DSeriesView)series.View).PointDistance      = 10;
            ((Funnel3DSeriesView)series.View).HoleRadiusPercent  = 70;
            ((Funnel3DSeriesView)series.View).PointDistance      = 10;

            series.Points.Add(new SeriesPoint("A", 28.5));
            series.Points.Add(new SeriesPoint("B", 19.6));
            series.Points.Add(new SeriesPoint("C", 17.1));
            series.Points.Add(new SeriesPoint("D", 12.5));
            series.Points.Add(new SeriesPoint("E",  9.6));

            chartControl.Series.Add(series);
                
            ((SimpleDiagram3D)chartControl.Diagram).RuntimeRotation  = true;
            ((SimpleDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
            ((SimpleDiagram3D)chartControl.Diagram).RuntimeZooming   = true;

            ((SimpleDiagram3D)chartControl.Diagram).RotationType     = RotationType.UseMouseAdvanced;
            ((SimpleDiagram3D)chartControl.Diagram).RotationAngleX   = -30;
            ((SimpleDiagram3D)chartControl.Diagram).RotationAngleY   = 30;
            ((SimpleDiagram3D)chartControl.Diagram).RotationAngleZ   = 0;

            ((SimpleDiagram3D)chartControl.Diagram).HorizontalScrollPercent = 0;
            ((SimpleDiagram3D)chartControl.Diagram).VerticalScrollPercent   = 0;

            ((SimpleDiagram3D)chartControl.Diagram).ZoomPercent = 100;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Funnel 3D Chart";

            return chartControl;
        }

        #endregion

        // 점, 선 그리고 스플라인 시리즈 뷰(Point, Line and Spline Series Views)

        // 2차원 점과 선 차트(2D Point and Line Charts)
        #region 버블 2차원 차트 컨트롤 구하기 - GetBubble2DChartControl()

        /// <summary>
        /// 버블 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetBubble2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.Bubble);
            Series series2 = new Series("시리즈 2", ViewType.Bubble);

            series1.ArgumentScaleType = ScaleType.Numerical;
            series2.ArgumentScaleType = ScaleType.Numerical;

            ((BubbleSeriesView)series1.View).Transparency = 128;
            ((BubbleSeriesView)series2.View).Transparency = 128;

            ((BubbleSeriesView)series1.View).BubbleMarkerOptions.Kind = MarkerKind.Circle;
            ((BubbleSeriesView)series2.View).BubbleMarkerOptions.Kind = MarkerKind.Circle;

            ((BubbleSeriesView)series1.View).MaxSize = 2;
            ((BubbleSeriesView)series2.View).MaxSize = 2;

            ((BubbleSeriesView)series1.View).MinSize = 1;
            ((BubbleSeriesView)series2.View).MinSize = 1;

            series1.Points.Add(new SeriesPoint(1, 11, 2));
            series1.Points.Add(new SeriesPoint(2, 10, 1));
            series1.Points.Add(new SeriesPoint(3, 14, 3));
            series1.Points.Add(new SeriesPoint(4, 17, 2));

            series2.Points.Add(new SeriesPoint(1, 15, 3));
            series2.Points.Add(new SeriesPoint(2, 18, 4));
            series2.Points.Add(new SeriesPoint(3, 25, 2));
            series2.Points.Add(new SeriesPoint(4, 33, 1));

            chartControl.Series.AddRange(new Series[] { series1, series2 });

            ((XYDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYScrolling = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Bubble 2D Chart";

            return chartControl;
        }

        #endregion
        #region 선 2차원 차트 컨트롤 구하기 - GetLine2DChartControl()

        /// <summary>
        /// 선 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetLine2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series = new Series("Series 1", ViewType.Line);

            series.ArgumentScaleType = ScaleType.Numerical;

            ((LineSeriesView)series.View).LineMarkerOptions.Kind = MarkerKind.Triangle;
            ((LineSeriesView)series.View).LineStyle.DashStyle    = DashStyle.Dash;

            series.Points.Add(new SeriesPoint(1,  2));
            series.Points.Add(new SeriesPoint(2, 12));
            series.Points.Add(new SeriesPoint(3, 14));
            series.Points.Add(new SeriesPoint(4, 17));

            chartControl.Series.Add(series);

            ((XYDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYScrolling = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Line 2D Chart";

            return chartControl;
        }

        #endregion
        #region 누적 선 2차원 차트 컨트롤 구하기 - GetStackedLine2DChartControl()

        /// <summary>
        /// 누적 선 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetStackedLine2DChartControl()
        {
            ChartControl chartControl = new ChartControl();
            
            Series series1 = new Series("시리즈 1", ViewType.StackedLine);
            Series series2 = new Series("시리즈 2", ViewType.StackedLine);

            series1.ArgumentScaleType = ScaleType.Qualitative;
            series2.ArgumentScaleType = ScaleType.Qualitative;

            ((StackedLineSeriesView)series1.View).LineMarkerOptions.Kind = MarkerKind.Triangle;
            ((StackedLineSeriesView)series2.View).LineMarkerOptions.Kind = MarkerKind.Pentagon;

            ((StackedLineSeriesView)series1.View).LineStyle.DashStyle = DashStyle.Solid;
            ((StackedLineSeriesView)series2.View).LineStyle.DashStyle = DashStyle.Dash;

            series1.Points.Add(new SeriesPoint("A", 80));
            series1.Points.Add(new SeriesPoint("B", 20));
            series1.Points.Add(new SeriesPoint("C", 50));
            series1.Points.Add(new SeriesPoint("D", 30));

            series2.Points.Add(new SeriesPoint("A", 40));
            series2.Points.Add(new SeriesPoint("B", 60));
            series2.Points.Add(new SeriesPoint("C", 20));
            series2.Points.Add(new SeriesPoint("D", 80));

            chartControl.Series.AddRange(new Series[] { series1, series2 });

            ((XYDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYScrolling = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Stacked Line 2D Chart";

            return chartControl;
        }

        #endregion
        #region 상대 누적 선 2차원 차트 컨트롤 구하기 - GetFullStackedLine2DChartControl()

        /// <summary>
        /// 상대 누적 선 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetFullStackedLine2DChartControl()
        {
            ChartControl chartControl = new ChartControl();
            
            Series series1 = new Series("시리즈 1", ViewType.FullStackedLine);
            Series series2 = new Series("시리즈 2", ViewType.FullStackedLine);

            series1.ArgumentScaleType = ScaleType.Qualitative;
            series2.ArgumentScaleType = ScaleType.Qualitative;

            ((FullStackedLineSeriesView)series1.View).LineMarkerOptions.Kind = MarkerKind.Triangle;
            ((FullStackedLineSeriesView)series2.View).LineMarkerOptions.Kind = MarkerKind.Pentagon;

            ((FullStackedLineSeriesView)series1.View).LineStyle.DashStyle = DashStyle.Solid;
            ((FullStackedLineSeriesView)series2.View).LineStyle.DashStyle = DashStyle.Dash;

            series1.Points.Add(new SeriesPoint("A", 80));
            series1.Points.Add(new SeriesPoint("B", 20));
            series1.Points.Add(new SeriesPoint("C", 50));
            series1.Points.Add(new SeriesPoint("D", 30));

            series2.Points.Add(new SeriesPoint("A", 40));
            series2.Points.Add(new SeriesPoint("B", 60));
            series2.Points.Add(new SeriesPoint("C", 20));
            series2.Points.Add(new SeriesPoint("D", 80));

            chartControl.Series.AddRange(new Series[] { series1, series2 });

            ((XYDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYScrolling = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Full-Stacked Line 2D Chart";

            return chartControl;
        }

        #endregion
        #region 점 2차원 차트 컨트롤 구하기 - GetPoint2DChartControl()

        /// <summary>
        /// 점 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetPoint2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series = new Series("시리즈 1", ViewType.Point);

            series.ArgumentScaleType = ScaleType.Numerical;

            ((PointSeriesView)series.View).PointMarkerOptions.Kind           = MarkerKind.Star;
            ((PointSeriesView)series.View).PointMarkerOptions.StarPointCount = 5;
            ((PointSeriesView)series.View).PointMarkerOptions.Size           = 20;

            series.Points.Add(new SeriesPoint(1, 10));
            series.Points.Add(new SeriesPoint(2, 22));
            series.Points.Add(new SeriesPoint(3, 14));
            series.Points.Add(new SeriesPoint(4, 27));
            series.Points.Add(new SeriesPoint(5, 15));
            series.Points.Add(new SeriesPoint(6, 28));
            series.Points.Add(new SeriesPoint(7, 15));
            series.Points.Add(new SeriesPoint(8, 33));

            chartControl.Series.Add(series);

            ((XYDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYScrolling = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Point 2D Chart";

            return chartControl;
        }

        #endregion
        #region 극지 선 2차원 차트 컨트롤 구하기 - GetPolarLine2DChartControl()

        /// <summary>
        /// 극지 선 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetPolarLine2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series = new Series("시리즈 1", ViewType.PolarLine);

            series.ArgumentScaleType = ScaleType.Numerical;

            ((PolarLineSeriesView)(series.View)).LineStyle.DashStyle    = DashStyle.Dot;
            ((PolarLineSeriesView)(series.View)).LineMarkerOptions.Kind = MarkerKind.Circle;
            ((PolarLineSeriesView)(series.View)).LineMarkerOptions.Size = 10;

            series.Points.Add(new SeriesPoint(  0,  90));
            series.Points.Add(new SeriesPoint( 90,  70));
            series.Points.Add(new SeriesPoint(180,  50));
            series.Points.Add(new SeriesPoint(270, 100));

            chartControl.Series.Add(series);

            ((PolarDiagram)chartControl.Diagram).StartAngleInDegrees = 180;
            ((PolarDiagram)chartControl.Diagram).RotationDirection   = RadarDiagramRotationDirection.Counterclockwise;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Polar Line 2D Chart";

            return chartControl;
        }

        #endregion
        #region 레이다 선 2차원 차트 컨트롤 구하기 - GetRadarLine2DChartControl()

        /// <summary>
        /// 레이다 선 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetRadarLine2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series = new Series("시리즈 1", ViewType.RadarLine);

            ((RadarLineSeriesView)series.View).LineMarkerOptions.Kind = MarkerKind.Circle;
            ((RadarLineSeriesView)series.View).LineMarkerOptions.Size = 10;
            ((RadarLineSeriesView)series.View).LineStyle.DashStyle    = DashStyle.Dot;

            series.Points.Add(new SeriesPoint(  0,  90));
            series.Points.Add(new SeriesPoint( 90,  95));
            series.Points.Add(new SeriesPoint(180,  50));
            series.Points.Add(new SeriesPoint(270,  55));
            series.Points.Add(new SeriesPoint(  0, 180));
            series.Points.Add(new SeriesPoint( 90, 185));
            series.Points.Add(new SeriesPoint(180, 270));
            series.Points.Add(new SeriesPoint(270, 275));

            chartControl.Series.Add(series);

            ((RadarDiagram)chartControl.Diagram).StartAngleInDegrees = 180;
            ((RadarDiagram)chartControl.Diagram).RotationDirection   = RadarDiagramRotationDirection.Counterclockwise;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Rader Line 2D Chart";

            return chartControl;
        }

        #endregion
        #region 분산 선 2차원 차트 컨트롤 구하기 - GetScatterLine2DChartControl()

        /// <summary>
        /// 분산 선 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetScatterLine2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series = new Series("시리즈 1", ViewType.ScatterLine);

            series.ArgumentScaleType = ScaleType.Numerical;

            ((ScatterLineSeriesView)series.View).LineStyle.DashStyle = DashStyle.Dash;

            series.Points.Add(new SeriesPoint(1  ,  2));
            series.Points.Add(new SeriesPoint(2  , 10));
            series.Points.Add(new SeriesPoint(3  ,  4));
            series.Points.Add(new SeriesPoint(4  , 12));
            series.Points.Add(new SeriesPoint(1.5, 17));
            series.Points.Add(new SeriesPoint(2.5,  3));
            series.Points.Add(new SeriesPoint(3.5, 14));
            series.Points.Add(new SeriesPoint(2  ,  6));

            chartControl.Series.Add(series);

            ((XYDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYScrolling = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Scatter Line 2D Chart";

            return chartControl;
        }

        #endregion
        #region 스플라인 2차원 차트 컨트롤 구하기 - GetSpline2DChartControl()

        /// <summary>
        /// 스플라인 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetSpline2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series = new Series("시리즈 1", ViewType.Spline);

            series.ArgumentScaleType = ScaleType.Numerical;

            ((SplineSeriesView)series.View).LineTensionPercent = 90;

            series.Points.Add(new SeriesPoint(1,  3));
            series.Points.Add(new SeriesPoint(2, 12));
            series.Points.Add(new SeriesPoint(3,  4));
            series.Points.Add(new SeriesPoint(4, 17));
            series.Points.Add(new SeriesPoint(5,  3));
            series.Points.Add(new SeriesPoint(6, 12));
            series.Points.Add(new SeriesPoint(7,  4));
            series.Points.Add(new SeriesPoint(8, 17));

            chartControl.Series.Add(series);

            ((XYDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYScrolling = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Spline 2D Chart";

            return chartControl;
        }

        #endregion
        #region 단계 선 2차원 차트 컨트롤 구하기 - GetStepLine2DChartControl()

        /// <summary>
        /// 단계 선 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetStepLine2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series = new Series("시리즈 1", ViewType.StepLine);

            ((StepLineSeriesView)series.View).LineMarkerOptions.Kind           = MarkerKind.Star;
            ((StepLineSeriesView)series.View).LineMarkerOptions.StarPointCount = 5;
            ((StepLineSeriesView)series.View).LineStyle.DashStyle              = DashStyle.Dash;

            series.ArgumentScaleType = ScaleType.Qualitative;

            series.Points.Add(new SeriesPoint("A", 12));
            series.Points.Add(new SeriesPoint("B",  4));
            series.Points.Add(new SeriesPoint("C", 17));
            series.Points.Add(new SeriesPoint("D",  7));
            series.Points.Add(new SeriesPoint("E", 12));
            series.Points.Add(new SeriesPoint("F",  4));
            series.Points.Add(new SeriesPoint("G", 17));
            series.Points.Add(new SeriesPoint("H",  7));

            chartControl.Series.Add(series);

            ((XYDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYScrolling = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Step Line 2D Chart";

            return chartControl;
        }

        #endregion

        // 3차원 점과 선 차트(3D Point and Line Charts)
        #region 선 3차원 차트 컨트롤 구하기 - GetLine3DChartControl()

        /// <summary>
        /// 선 3차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetLine3DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series = new Series("시리즈 1", ViewType.Line3D);

            series.ArgumentScaleType = ScaleType.Qualitative;

            ((Line3DSeriesView)series.View).LineWidth     = 1;
            ((Line3DSeriesView)series.View).LineThickness = 1;

            series.Points.Add(new SeriesPoint("A", 12));
            series.Points.Add(new SeriesPoint("B",  4));
            series.Points.Add(new SeriesPoint("C", 17));
            series.Points.Add(new SeriesPoint("D",  7));
            series.Points.Add(new SeriesPoint("E", 12));
            series.Points.Add(new SeriesPoint("F",  4));
            series.Points.Add(new SeriesPoint("G", 17));
            series.Points.Add(new SeriesPoint("H",  7));

            chartControl.Series.Add(series);

            ((XYDiagram3D)chartControl.Diagram).RuntimeRotation  = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeZooming   = true;

            ((XYDiagram3D)chartControl.Diagram).RotationType   = RotationType.UseMouseAdvanced;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleX = 30;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleY = -30;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleZ = 0;

            ((XYDiagram3D)chartControl.Diagram).HorizontalScrollPercent = 0;
            ((XYDiagram3D)chartControl.Diagram).VerticalScrollPercent   = 0;

            ((XYDiagram3D)chartControl.Diagram).ZoomPercent = 120;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Line 3D Chart";

            return chartControl;
        }

        #endregion
        #region 누적 선 3차원 차트 컨트롤 구하기 - GetStackedLine3DChartControl()

        /// <summary>
        /// 누적 선 3차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetStackedLine3DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.StackedLine3D);
            Series series2 = new Series("시리즈 2", ViewType.StackedLine3D);

            series1.ArgumentScaleType = ScaleType.Qualitative;
            series2.ArgumentScaleType = ScaleType.Qualitative;

            ((StackedLine3DSeriesView)series1.View).Transparency = 128;
            ((StackedLine3DSeriesView)series2.View).Transparency = 128;

            series1.Points.Add(new SeriesPoint("A", 80));
            series1.Points.Add(new SeriesPoint("B", 20));
            series1.Points.Add(new SeriesPoint("C", 50));
            series1.Points.Add(new SeriesPoint("D", 30));

            series2.Points.Add(new SeriesPoint("A", 40));
            series2.Points.Add(new SeriesPoint("B", 60));
            series2.Points.Add(new SeriesPoint("C", 20));
            series2.Points.Add(new SeriesPoint("D", 80));

            chartControl.Series.AddRange(new Series[] { series1, series2 });

            ((XYDiagram3D)chartControl.Diagram).RuntimeRotation  = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeZooming   = true;

            ((XYDiagram3D)chartControl.Diagram).RotationType   = RotationType.UseMouseAdvanced;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleX = -10;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleY = 0;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleZ = 0;

            ((XYDiagram3D)chartControl.Diagram).HorizontalScrollPercent = 0;
            ((XYDiagram3D)chartControl.Diagram).VerticalScrollPercent   = 0;

            ((XYDiagram3D)chartControl.Diagram).ZoomPercent = 120;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Stacked Line 3D Chart";

            return chartControl;
        }

        #endregion
        #region 상대 누적 선 3차원 차트 컨트롤 구하기 - GetFullStackedLine3DChartControl()

        /// <summary>
        /// 상대 누적 선 3차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetFullStackedLine3DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.FullStackedLine3D);
            Series series2 = new Series("시리즈 2", ViewType.FullStackedLine3D);

            series1.ArgumentScaleType = ScaleType.Qualitative;
            series2.ArgumentScaleType = ScaleType.Qualitative;

            ((FullStackedLine3DSeriesView)series1.View).Transparency = 128;
            ((FullStackedLine3DSeriesView)series2.View).Transparency = 128;

            series1.Points.Add(new SeriesPoint("A", 80));
            series1.Points.Add(new SeriesPoint("B", 20));
            series1.Points.Add(new SeriesPoint("C", 50));
            series1.Points.Add(new SeriesPoint("D", 30));

            series2.Points.Add(new SeriesPoint("A", 40));
            series2.Points.Add(new SeriesPoint("B", 60));
            series2.Points.Add(new SeriesPoint("C", 20));
            series2.Points.Add(new SeriesPoint("D", 80));

            chartControl.Series.AddRange(new Series[] { series1, series2 });

            ((XYDiagram3D)chartControl.Diagram).RuntimeRotation  = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeZooming   = true;

            ((XYDiagram3D)chartControl.Diagram).RotationType   = RotationType.UseMouseAdvanced;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleX = -10;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleY = 0;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleZ = 0;

            ((XYDiagram3D)chartControl.Diagram).HorizontalScrollPercent = 0;
            ((XYDiagram3D)chartControl.Diagram).VerticalScrollPercent   = 0;

            ((XYDiagram3D)chartControl.Diagram).ZoomPercent = 120;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Full Stacked Line 3D Chart";

            return chartControl;
        }

        #endregion
        #region 스플라인 3차원 차트 컨트롤 구하기 - GetSpline3DChartControl()

        /// <summary>
        /// 스플라인 3차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetSpline3DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series = new Series("시리즈 1", ViewType.Spline3D);

            series.ArgumentScaleType = ScaleType.Qualitative;

            ((Spline3DSeriesView)series.View).LineWidth     = 1;
            ((Spline3DSeriesView)series.View).LineThickness = 4;
            ((Spline3DSeriesView)series.View).Transparency  = 128;

            series.Points.Add(new SeriesPoint("A", 12));
            series.Points.Add(new SeriesPoint("B",  4));
            series.Points.Add(new SeriesPoint("C", 17));
            series.Points.Add(new SeriesPoint("D",  7));
            series.Points.Add(new SeriesPoint("E", 12));
            series.Points.Add(new SeriesPoint("F",  4));
            series.Points.Add(new SeriesPoint("G", 17));
            series.Points.Add(new SeriesPoint("H",  7));

            chartControl.Series.Add(series);

            ((XYDiagram3D)chartControl.Diagram).RuntimeRotation  = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeZooming   = true;

            ((XYDiagram3D)chartControl.Diagram).RotationType   = RotationType.UseMouseAdvanced;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleX = -10;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleY = 0;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleZ = 0;

            ((XYDiagram3D)chartControl.Diagram).HorizontalScrollPercent = 0;
            ((XYDiagram3D)chartControl.Diagram).VerticalScrollPercent   = 0;

            ((XYDiagram3D)chartControl.Diagram).ZoomPercent = 120;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Spline 3D Chart";

            return chartControl;
        }

        #endregion
        #region 단계 선 3차원 차트 컨트롤 구하기 - GetStepLine3DChartControl()

        /// <summary>
        /// 단계 선 3차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns></returns>
        private ChartControl GetStepLine3DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series = new Series("시리즈 1", ViewType.StepLine3D);

            series.ArgumentScaleType = ScaleType.Qualitative;

            ((StepLine3DSeriesView)series.View).LineWidth     = 1;
            ((StepLine3DSeriesView)series.View).LineThickness = 4;
            ((StepLine3DSeriesView)series.View).Transparency  = 128;

            series.Points.Add(new SeriesPoint("A", 12));
            series.Points.Add(new SeriesPoint("B",  4));
            series.Points.Add(new SeriesPoint("C", 17));
            series.Points.Add(new SeriesPoint("D",  7));
            series.Points.Add(new SeriesPoint("E", 12));
            series.Points.Add(new SeriesPoint("F",  4));
            series.Points.Add(new SeriesPoint("G", 17));
            series.Points.Add(new SeriesPoint("H",  7));

            chartControl.Series.Add(series);

            ((XYDiagram3D)chartControl.Diagram).RuntimeRotation  = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeScrolling = true;
            ((XYDiagram3D)chartControl.Diagram).RuntimeZooming   = true;

            ((XYDiagram3D)chartControl.Diagram).RotationType   = RotationType.UseMouseAdvanced;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleX = -10;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleY = 0;
            ((XYDiagram3D)chartControl.Diagram).RotationAngleZ = 0;

            ((XYDiagram3D)chartControl.Diagram).HorizontalScrollPercent = 0;
            ((XYDiagram3D)chartControl.Diagram).VerticalScrollPercent   = 0;

            ((XYDiagram3D)chartControl.Diagram).ZoomPercent = 120;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Step Line 3D Chart";

            return chartControl;
        }

        #endregion

        // 범위 시리즈 뷰(Range Series Views)

        // 2차원 범위 차트(2D Range Charts)
        #region 범위 막대 2차원 차트 컨트롤 구하기 - GetRangeBar2DChartControl()

        /// <summary>
        /// 범위 막대 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetRangeBar2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.RangeBar);
            Series series2 = new Series("시리즈 2", ViewType.RangeBar);

            ((RangeBarSeriesView)series1.View).BarWidth = 0.4;
            ((RangeBarSeriesView)series2.View).BarWidth = 0.3;

            ((RangeBarSeriesView)series1.View).Transparency = 128;
            ((RangeBarSeriesView)series2.View).Transparency = 128;

            series1.Points.Add(new SeriesPoint("A",  9, 15));
            series1.Points.Add(new SeriesPoint("B",  4, 10));
            series1.Points.Add(new SeriesPoint("C",  3, 13));
            series1.Points.Add(new SeriesPoint("D",  2, 11));
            series1.Points.Add(new SeriesPoint("E",  1, 10));

            series2.Points.Add(new SeriesPoint("A", 10, 13));
            series2.Points.Add(new SeriesPoint("B",  5,  7));
            series2.Points.Add(new SeriesPoint("C",  6,  9));
            series2.Points.Add(new SeriesPoint("D",  3,  7));
            series2.Points.Add(new SeriesPoint("E",  2,  8));

            chartControl.Series.AddRange(new Series[] { series1, series2 });

            ((XYDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYScrolling = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Range Bar 2D Chart";

            return chartControl;
        }

        #endregion
        #region 병렬 범위 막대 2차원 차트 컨트롤 구하기 - GetSideBySideRangeBar2DChartControl()

        /// <summary>
        /// 병렬 범위 막대 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetSideBySideRangeBar2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series1 = new Series("시리즈 1", ViewType.SideBySideRangeBar);
            Series series2 = new Series("시리즈 2", ViewType.SideBySideRangeBar);

            series1.ArgumentScaleType = ScaleType.Qualitative;
            series2.ArgumentScaleType = ScaleType.Qualitative;

            ((SideBySideRangeBarSeriesView)series1.View).BarWidth = 0.5;
            ((SideBySideRangeBarSeriesView)series2.View).BarWidth = 0.5;

            ((SideBySideRangeBarSeriesView)series1.View).Transparency = 128;
            ((SideBySideRangeBarSeriesView)series2.View).Transparency = 128;

            series1.Points.Add(new SeriesPoint("A", 10, 15));
            series1.Points.Add(new SeriesPoint("B",  4,  7));
            series1.Points.Add(new SeriesPoint("C",  3, 13));
            series1.Points.Add(new SeriesPoint("D",  2, 11));
            series1.Points.Add(new SeriesPoint("E",  1,  8));

            series2.Points.Add(new SeriesPoint("A",  9, 13));
            series2.Points.Add(new SeriesPoint("B",  5, 10));
            series2.Points.Add(new SeriesPoint("C",  1,  9));
            series2.Points.Add(new SeriesPoint("D",  3,  7));
            series2.Points.Add(new SeriesPoint("E",  2, 10));

            chartControl.Series.AddRange(new Series[] { series1, series2 });

            ((XYDiagram)chartControl.Diagram).EnableAxisXZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYZooming   = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisXScrolling = true;
            ((XYDiagram)chartControl.Diagram).EnableAxisYScrolling = true;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Side-by-Side Range Bar 2D Chart";

            return chartControl;
        }

        #endregion

        // 레이다 시리즈 뷰(Radar Series Views)
        // 2차원 레이다 차트(2D Radar Charts)
        #region 레이다 점 2차원 차트 컨트롤 구하기 - GetRadarPoint2DChartControl()

        /// <summary>
        /// 레이다 점 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetRadarPoint2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series = new Series("시리즈 1", ViewType.RadarPoint);

            series.ArgumentScaleType = ScaleType.Numerical;

            series.Points.Add(new SeriesPoint(  0,  90));
            series.Points.Add(new SeriesPoint( 90,  95));
            series.Points.Add(new SeriesPoint(180,  50));
            series.Points.Add(new SeriesPoint(270,  55));
            series.Points.Add(new SeriesPoint(  0, 180));
            series.Points.Add(new SeriesPoint( 90, 185));
            series.Points.Add(new SeriesPoint(180, 270));
            series.Points.Add(new SeriesPoint(270, 275));

            chartControl.Series.Add(series);

            ((RadarDiagram)chartControl.Diagram).StartAngleInDegrees = 180;
            ((RadarDiagram)chartControl.Diagram).RotationDirection   = RadarDiagramRotationDirection.Counterclockwise;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Radar Point 2D Chart";

            return chartControl;
        }

        #endregion

        // 극지 시리즈 뷰(Polar Series Views)
        // 2차원 극지 차트(2D Polar Charts)
        #region 극지 점 2차원 차트 컨트롤 구하기 - GetPolarPoint2DChartControl()

        /// <summary>
        /// 극지 점 2차원 차트 컨트롤 구하기
        /// </summary>
        /// <returns>차트 컨트롤</returns>
        private ChartControl GetPolarPoint2DChartControl()
        {
            ChartControl chartControl = new ChartControl();

            Series series = new Series("시리즈 1", ViewType.PolarPoint);

            series.ArgumentScaleType = ScaleType.Numerical;

            ((PolarPointSeriesView)series.View).PointMarkerOptions.Kind           = MarkerKind.Star;
            ((PolarPointSeriesView)series.View).PointMarkerOptions.StarPointCount = 5;
            ((PolarPointSeriesView)series.View).PointMarkerOptions.Size           = 20;

            series.Points.Add(new SeriesPoint(  0,  90));
            series.Points.Add(new SeriesPoint( 45,  70));
            series.Points.Add(new SeriesPoint( 90,  50));
            series.Points.Add(new SeriesPoint(135, 100));
            series.Points.Add(new SeriesPoint(180,  90));
            series.Points.Add(new SeriesPoint(225,  70));
            series.Points.Add(new SeriesPoint(270,  50));

            chartControl.Series.Add(series);

            ((PolarDiagram)chartControl.Diagram).StartAngleInDegrees = 180;
            ((PolarDiagram)chartControl.Diagram).RotationDirection   = RadarDiagramRotationDirection.Counterclockwise;

            chartControl.Titles.Add(new ChartTitle());

            chartControl.Titles[0].Text = "Polar Point 2D Chart";

            return chartControl;
        }

        #endregion
    }
}
728x90
반응형
그리드형
Posted by 사용자 icodebroker

댓글을 달아 주세요