목 차

 

 

  • MS Chart 란

     

  • MS Chart 설치 및 예제

 

 

 

 

 

  • MS Chart 란

MS에서 제공하는 무료 WinForm / ASP.NET 차트입니다.

아래와 같은 차트를 아주 쉽게 MS Chart를 이용해 사용 하실 수 있습니다.

 

 

 

 

==============================================================

 

  • MS Chart 설치 및 예제

 

차트 컨트롤을 비쥬얼 스튜디오 2008과 통합 :

Microsoft Chart Controls Add-on for Microsoft Visual Studio 2008

 

컨트롤과 차트 컨트롤 설치하시고, 비쥬얼 스튜디오 2008과 통합 시켜주는 AddOn을 다운받아 설치 하시면 됩니다. 설치 중 특별한 것은 없으므로 넘어 가도록 하겠습니다.

 

도구 상자 항목 선택으로 가서 Chart 2개 모두 체크하고 확인 버튼을 누릅니다.

 

 

도구 상자에 Chart 컨트롤을 확인 하실 수 있습니다. 드래그 하여 Form으로 옮깁니다.

 

 

 

속성을 중 Annotations는 차트 주석 컬렉션이고, ChartAreas는 차트 영역으로 여러 개의 차트를 설정 할 수 있고, Legends는 차트 범례입니다. Series는 차트 계열로써 차트 타입을 선택 할 수 있습니다. Titles는 차트 제목입니다.

 

 

 

Series의 속성 ChartType으로 차트 타입을 추가 하실 수 있습니다.

비하인드 코드로 파이를 설정 하는 예제를 보겠습니다.

 

 

 

 

 

==============================================================

 

 

아래의 이미지는 예제의 결과 입니다.

Series 3개를 생성하여 각각 Bubble, Range, Spline 타입으로 설정하였습니다.

 

 

 

 

namespace AboutChart

{

public partial class Form1 : Form

{

Series weight_series = new Series();

Series height_series = new Series();

Series fat_series = new Series();

 

public Form1()

{

InitializeComponent();

 

}

필드에서는 체중,키,비만의 Series 개체를 생성합니다.

 

 

private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)

{

if (e.Index == 0)

{

if (e.CurrentValue == CheckState.Checked)

{

chart1.Series.Remove(fat_series);

}

else

{

MakeFatStatisticsChart();

}

}

else if (e.Index == 1)

{

if (e.CurrentValue == CheckState.Checked)

{

chart1.Series.Remove(weight_series);

}

else

{

MakeWeightStatisticsChart();

}

}

else if (e.Index == 2)

{

if (e.CurrentValue == CheckState.Checked)

{

chart1.Series.Remove(height_series);

}

else

{

MakeHeightStatisticsChart();

}

}

 

}

체크 리스트 박스에서 체크 박스를 선택하게 변하게 되면 이벤트가 발생하게 하였습니다.

체크가 안되어 있을 때 선택 하였을 때는, 화면에 해당 차트를 보여주고, 체크가 되어 있을 때 선택 하였을 때는 해당 차트를 제거합니다.

 

 

private void MakeFatStatisticsChart()

{

fat_series.Points.Clear();

 

fat_series.Name = "자기 비만도";

fat_series.ChartArea = "ChartArea1";

fat_series.ChartType = SeriesChartType.Bubble;

fat_series.Legend = "Legend1";

 

chart1.Series.Add(fat_series);

 

Push_data(fat_series, "2010.11.1", 50);

Push_data(fat_series, "2010.11.2", 30);

Push_data(fat_series, "2010.11.3", 40);

Push_data(fat_series, "2010.11.4", 10);

 

}

Series클래스의 Points는 차트의 X, Y축의 값입니다.

Name은 차트 오른쪽 상단에 이름이며, ChartArea는 생성한 ChartArea 이름 입니다.

ChartType은 Bubble로 설정해 주었습니다.

Chart에 Series를 추가해주고, Push_data 메소드를 통해 fat_series Series에 x, y축의 데이터를 추가하게 됩니다.

 

private void Push_data(Series series, string p, int p_3)

{

DataPoint dp = new DataPoint();

dp.SetValueXY(p, p_3);

series.Points.Add(dp);

}

 

 

 

private void MakeWeightStatisticsChart()

{

weight_series.Points.Clear();

 

weight_series.Name = "체중 변화도";

weight_series.ChartArea = "ChartArea1";

 

weight_series.ChartType = SeriesChartType.Range;

weight_series.Legend = "Legend1";

 

chart1.Series.Add(weight_series);

 

Push_data(weight_series, "2010.11.1", 30);

Push_data(weight_series, "2010.11.2", 40);

Push_data(weight_series, "2010.11.3", 10);

Push_data(weight_series, "2010.11.4", 20);

}

 

private void MakeHeightStatisticsChart()

{

height_series.Points.Clear();

 

height_series.Name = "키 변화도";

height_series.ChartArea = "ChartArea1";

height_series.ChartType = SeriesChartType.Spline;

height_series.Legend = "Legend1";

 

chart1.Series.Add(height_series);

 

Push_data(height_series, "2010.11.1", 10);

Push_data(height_series, "2010.11.2", 30);

Push_data(height_series, "2010.11.3", 50);

Push_data(height_series, "2010.11.4", 20);

}

키와 체중도 ChartType을 제외하곤 같습니다.

 

 

==============================================================

 

 

 

 

DataPoint dp = new DataPoint();

dp.SetValueY(textBox2.Text);

series1.Points.Add(dp);

X축의 데이터를 추가하지 않으시면, 아래의 그림과 같이포인트를 추가 할 수록 X값이 1부터 시작하여 자동적으로 늘어 나는 것을 확인 하실 수 있습니다.

 

 

+ Recent posts