애노테이션

애노테이션은 설명이나 강조를 위해 차트에 배치하는 일종의 도형이다. Annotation 클래스로부터 13개의 클래스가 파생되며 각자 모양이나 용도가 다르다.

 

이 중 2개의 애노테이션을 생성하여 차트에 배치해 보자. 축을 기준으로 상대 좌표에 놓을 수도 있고 특정 데이터 포인트에 부착할 수도 있다. 원하는 객체를 생성하고 속성을 조정한 후 차트의 Annotations 컬렉션에 추가하면 화면에 나타난다.

 

private void Form1_Load(object sender, EventArgs e)

{

       Random R = new Random(100);

       for (int i = 0; i < 5; i++)

       {

                  chart1.Series[0].Points.AddY(R.Next(10, 100));

       }

 

       Border3DAnnotation b3d = new Border3DAnnotation();

       b3d.BackColor = Color.Lime;

       b3d.Text = "최저";

       b3d.Width = 13;

       b3d.Height = 12;

       b3d.AnchorDataPoint = chart1.Series[0].Points[1];

       chart1.Annotations.Add(b3d);

 

       ArrowAnnotation aa = new ArrowAnnotation();

       aa.ArrowStyle = ArrowStyle.Simple;

       aa.Height = -10;

       aa.Width = 0;

       aa.ArrowSize = 7;

       aa.LineColor = Color.Red;

       aa.LineWidth = 2;

       aa.BackColor = Color.Yellow;

       aa.AnchorDataPoint = chart1.Series[0].Points[2];

       aa.AnchorOffsetY = -2;

       aa.AllowMoving = true;

       chart1.Annotations.Add(aa);

}

두 번째, 세 번째 데이터 포인트 위에 애노테이션을 붙였다. 코드에서 보다시피 크기, 색상, 굵기, 모양, 거리, 이동 여부 등을 세세하게 조정할 수 있다. 화살표 애노테이션은 마우스로 드래그하여 이동할 수도 있다.

필요한 속성은 거의 다 있지만 타입별로 속성이 다르고 사용 방법도 상이해 한번에 다 알기는 어렵다. 이럴 때는 코드로 속성을 바꿔 보는 것보다 디자이너에서 속성을 바꿔 가며 실시간으로 효과를 확인해 보는 것이 좋다.

양이 너무 많으니 여기서는 애노테이션의 용도 정도만 소개하고 필요할 때 레퍼런스를 참고하여 사용해 보자. 클래스가 너무 많아 여기서 일일이 설명할 수가 없다. 솔직히 다 써 보지도 않았다.