C#/WindowForm

C# 그래프 그리기

hyun0229 2022. 6. 1. 19:06

디자인

Chart를 사용하여 그래프를 그려보자

namespace _041_Graph
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.Text = "Graph using Chart control";
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            ChartSetting();
        }

        private void ChartSetting()
        {
            ch.ChartAreas[0].BackColor = Color.Black;
            // X축과 Y축을 설정
            ch.ChartAreas[0].AxisX.Minimum = -20; 
            ch.ChartAreas[0].AxisX.Maximum = 20; 
            ch.ChartAreas[0].AxisX.Interval = 2; 
            ch.ChartAreas[0].AxisX.MajorGrid.LineColor = Color.Gray; 
            ch.ChartAreas[0].AxisX.MajorGrid.LineDashStyle = ChartDashStyle.Dash;
            
            ch.ChartAreas[0].AxisY.Minimum = -1;
            ch.ChartAreas[0].AxisY.Maximum = 1;
            ch.ChartAreas[0].AxisY.Interval = 0.2;
            ch.ChartAreas[0].AxisY.MajorGrid.LineColor = Color.Gray;
            ch.ChartAreas[0].AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dash;

            //Series[0] 설정 = sin(x)/x
            ch.Series[0].ChartType = SeriesChartType.Line;
            ch.Series[0].Color = Color.LightGreen;
            ch.Series[0].BorderWidth = 2;
            ch.Series[0].LegendText = "Sin(x) / x";

            //Series 추가
            ch.Series.Add("Cos(x)/x");
            ch.Series["Cos(x)/x"].LegendText = "Cos(x) / x";
            ch.Series[1].ChartType = SeriesChartType.Line;
            ch.Series[1].Color = Color.Orange;
            ch.Series[1].BorderWidth = 2;
            //데이터 추가
            for (double x = -20; x < 20; x+=0.1)
            {
                double y = Math.Sin(x)/x;
                ch.Series[0].Points.AddXY(x, y);
                y = Math.Cos(x) / x;
                ch.Series[1].Points.AddXY(x, y);
            }
        }
    }
}

ChartSetting의 함수를 만들어 그래프를 그려보자

방법은 저번에 사용한 Chart 그리기 -1,2와 동일하다

차트의 x,y축을 AxisX와 AxisY를 통해 설정한다.

값의 설정은 Math.Sin과 Math.Cos인을 통해 계산하였다.

실행결과

실행결과