목 차
-
MS Chart 란
- MS Chart 설치 및 예제
MS에서 제공하는 무료 WinForm / ASP.NET 차트입니다.
아래와 같은 차트를 아주 쉽게 MS Chart를 이용해 사용 하실 수 있습니다.
==============================================================
컨트롤과 차트 컨트롤 설치하시고, 비쥬얼 스튜디오 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부터 시작하여 자동적으로 늘어 나는 것을 확인 하실 수 있습니다.