Winform Chart(윈폼 차트)
윈폼에는 다양한 차트를 만들 수 있는 chart 컨트롤이 제공된다. Chart 컨트롤은System.Window.Forms.DataVisualization.Charting 네임스페이스에 포함되어있으므로 C# 코드에서 차트 컨트롤을 사용하려면 using문으로 이 네임스페이스를 포함해야한다. Chart 컨트롤은 도구상자의 Data부분에 있다. 이를 드래그 앤 드롭하면 그래프 모양의 차트 컨트롤이 나타난다. 차트를 만들기 위해 차트 컨트롤에서 사용하는 기본 용어가 있다.
- ChartArea : 차트가 그려지는 영역으로, 하나의 차트 객체는 하나 이상의 CartArea(차트영역)을 가질 수 있다.
- Series : 차트 영역에 표시되는 데이터이다. 하나의 차트 영역에 두 개 이상의 시리즈가 있을 수 있다. 차트의 종류를 지정할 수 있으며 차트 영역이 두 개 이상이라면 시지르 별로 어떤 차트 영역에 그려질 지를 지정할 수 있다.
- Legends : 범례이며 시리즈마다 범례를 가질 수 있다.
- Titles : 차트 컨트롤 상단에 표시되는 제목이다.
아래 이미지 처럼 차트 컨트롤들의 속성들이 보인다. 이중에 ChartArea, Legends, Series, Titles 속성은 컬렉션으로 되어있는걸 볼 수 있는데, 이는 여러개를 지정할 수 있다는 뜻이다. ChartArea의 컬렉션 부분을 클릭하면 컬렉션 편집기가 나타난다.
컬렉션 편집기에는 기본값(디폴트)으로 ChartArea1이 멤버로 들어가 있는 것을 확인할 수 있다.
ChartArea에는 ChartArea1이 디폴트로 들어가있는 것을 볼 수 있다
비슷하게 Legends에는 Legend1, Series에는 series1 이 디폴트로 하나씩 들어가 있다.
Legend1, Series1 이 각각 컬렉션 편집기에 들어가 있는 것을 볼 수 있다
Chart 컨트롤 사용
디폴트로 주어진 Series1에 10명의 성적을 넣어서 그래프로 표시하는 프로그램을 만들어보자. 10명의 성적은 랜덤 함수로 랜덤하게 만들고, 디자인은 Chart 컨트롤 하나를 폼에 위치시키기만 하면된다.
도구상자에서 차트만 깔아주고 FormLoad 이벤트만 깔아주고 코드로만 이벤트와 차트를 채울수도 있다.
Chart 컨트롤은 Dock 속성을 Fill로 하여 Form에 가득 차게 해주면 된다.
Form 화면
C# 소스코드는 다음과 같다. 이때, Series에 데이터 value를 추가할때는 Add()나 AddXY() 메서드를 사용한다.
Serires의 범례를 바꿀때는 LegendText 속성을 지정해주면된다.
using System;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
namespace _20200909_001
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Text = "Using Chart Control"; // Form의 이름을 설정
}
private void Form1_Load(object sender, EventArgs e)
{
Random r = new Random(); // 차트를 랜덤으로 출력할 랜덤객체 생성
chart1.Titles.Add("중간고사 성적");
for(int i = 0; i<10; i++) // for문으로 차트 여러개의 차트 출력
{
chart1.Series["Series1"].Points.Add(r.Next(100)); // 차트 한줄 출력해주는 코드
}
chart1.Series["Series1"].LegendText = "수학"; // 차트 이름을 "수학"으로 설정
chart1.Series["Series1"].ChartType = SeriesChartType.Line; // 그래프를 라인으로 출력
}
}
}
'개발자과정준비 > WinForm' 카테고리의 다른 글
[WinForm] 윈폼 Chart 삽입, 삭제 (0) | 2020.09.12 |
---|---|
[WinForm] 두 개의 Chart, 수학 함수 그래프 그리기 (0) | 2020.09.11 |
[Winform] 윈폼 복습 11. TabControl (0) | 2020.08.27 |
[Winform] 윈폼 복습 10. Timer 컨트롤, DateTimePicker (0) | 2020.08.27 |
[Winform] 윈폼 복습 9. MaskedTextBox (0) | 2020.08.26 |