µðÀÚÀΠŸÀÓ¿¡ ¼Ó¼º¸¸ Á¶Á¤Çصµ Â÷Æ®¸¦ ¿øÇÏ´Â Çü½ÄÀ¸·Î ¸¸µé ¼ö ÀÖ´Ù. ºñÁÖ¾ó
½ºÆ©µð¿ÀÀÇ Áö¿øÀÌ ÈǸ¢ÇØ ¼Ó¼ºÀ» ÀÌ°Í Àú°Í ¹Ù²ã º¸¸ç Àç¹ÌÀÖ°Ô °øºÎÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª ¸¶¿ì½º¸¦ ÅëÇÑ
ÆíÁýÀº ÀçÇöÀÌ ¾î·Æ°í ´Ü°è°¡ º¹ÀâÇØ ÇѰ谡 ÀÖ´Ù.
Â÷Æ®¿¡ Ãâ·ÂÇÒ µ¥ÀÌÅ͸¦ ·±Å¸ÀÓ¿¡ Á¦´ë·Î ±¸ÇÒ ¼ö Àֱ⠶§¹®¿¡ °á±¹Àº ÄÚµå·Î ÇÁ·Î±×·¡¹ÖÇØ¾ß ÇÑ´Ù. ¾Õ¿¡¼ µðÀÚÀΠŸÀÓ¿¡ ¸¸µç Â÷Æ® ÄÁÆ®·ÑÀ» »èÁ¦ÇÏ¿© ¿ø·¡´ë·Î ¸®¼ÂÇÑ´Ù.
ºó Æû¿¡ Â÷Æ® ÄÁÆ®·ÑÀ» »õ·Î Çϳª ¹èÄ¡ÇÑ´Ù. Æû Å©±â´Â 500 * 350À¸·Î ÀÛ°Ô ¼³Á¤Çϰí Â÷Æ®ÀÇ Dock ¼Ó¼ºÀ» Fill·Î ÁöÁ¤ÇÏ¿© ÆûÀ» °¡µæ ä¿î´Ù. ĸó¸¦ ÀÛ°Ô Àâ¾Æµµ Â÷Æ®¸¦ Å©°Ô
º¸À̵µ·Ï Çϱâ À§ÇؼÀε¥ ½Ç½ÀÇÒ ¶§´Â ¾Æ¹«·¸°Ô³ª ÇØµµ »ó°ü ¾ø´Ù.
ÀÌ »óÅ·Π½ÇÇàÇϸé Â÷Æ®´Â ±×³É ÇÏ¾á ¿µ¿ªÀ¸·Î Ç¥½ÃµÉ »ÓÀÌ´Ù. Â÷Æ®¿¡
µ¥ÀÌÅ͸¦ Á¦°øÇÏ°í ¼Ó¼ºÀ» ÆíÁýÇÏ´Â Äڵ尡 ÇÊ¿äÇÏ´Ù. ÆûÀÇ ºó ¿µ¿ªÀ» ´õºíŬ¸¯ÇÏ¿© Form1_Load À̺¥Æ® Çڵ鷯¸¦ ÀÛ¼ºÇÏ°í ¿©±â¿¡ ´ÙÀ½ Äڵ带 ÀÛ¼ºÇÑ´Ù.
private void Form1_Load(object sender, EventArgs
e)
{
chart1.Series[0].Points.Add(55);
chart1.Series[0].Points.Add(66);
chart1.Series[0].Points.Add(77);
chart1.Series[0].Points.Add(70);
chart1.Series[0].Points.Add(80);
}
½Ã¸®Áî Çϳª´Â ±âº»ÀûÀ¸·Î »ý¼ºµÇ¾î ÀÖÀ¸¹Ç·Î 0¹ø ½Ã¸®Áî¿¡ µ¥ÀÌÅ͸¸
Á¦°øÇÏ¸é µÈ´Ù. Points Ä÷º¼ÇÀÇ Add ¸Þ¼µå·Î °ªÀ»
³Ö¾î ÁÖ¸é ÀÌ °ªÀÌ Â÷Æ®¿¡ ³ªÅ¸³´Ù. ½ÇÇàÇØ º¸ÀÚ.
µÎ¹øÂ° ÀÌÈÄÀÇ ½Ã¸®Áî´Â Á÷Á¢ »ý¼ºÇØ¾ß ÇÑ´Ù. Series Ä÷º¼ÇÀÇ
Add ¸Þ¼µå·Î Ãß°¡Ç쵂 ÀÌÈÄÀÇ ÂüÁ¶¸¦ À§ÇØ À̸§À» ÁÖ´Â °ÍÀÌ ÁÁ´Ù.
µ¥ÀÌÅÍ´Â Points.Add·Î °è¼Ó Ãß°¡ÇÒ ¼ö ÀÖÁö¸¸ DataBind
¸Þ¼µå¸¦ »ç¿ëÇÏ¸é ¹è¿À» ÇѲ¨¹ø¿¡ µî·ÏÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ Äڵ带 ´õ ÀÛ¼ºÇØ º¸ÀÚ.
chart1.Series.Add("Series2");
chart1.Series[1].Points.DataBindY(new int[] { 33,
44, 22, 40, 50 });
¼Ó¼ºÃ¢¿¡¼´Â ÀÏÀÏÀÌ °ªÀ» ÀÔ·ÂÇØ¾ß ÇÏÁö¸¸ Äڵ带 »ç¿ëÇÏ¸é ¹è¿À̳ª Ä÷º¼ÇÀ» Åë°·Î µî·ÏÇÒ ¼ö ÀÖ¾î Æí¸®ÇÏ´Ù. µÎ °³ÀÇ Â÷Æ®°¡ ³ª¶õÈ÷ ³ªÅ¸³´Ù.
´ÙÀ½Àº ¿¡¸®¾î¸¦ Çϳª ´õ Ãß°¡Çϰí Sereis2¸¦ ¾Æ·¡ÂÊÀ¸·Î ¿Å±ä
ÈÄ Bar ŸÀÔÀ¸·Î ¹Ù²Ù¾î º¸ÀÚ. ´ÙÀ½ ÄÚµå ¼¼ ÁÙÀÌ¸é µÈ´Ù.
chart1.ChartAreas.Add("ChartArea2");
chart1.Series["Series2"].ChartArea
= "ChartArea2";
chart1.Series["Series2"].ChartType
= SeriesChartType.Bar;
ChartAreas Ä÷º¼ÇÀÇ Add
¸Þ¼µå·Î ChartArea2 ¿¡¸®¾î¸¦ Ãß°¡Çß´Ù. ¿©±â±îÁö¸¸
ÇÏ¸é ¾Æ·¡ÂÊ¿¡ ºó ¿¡¸®¾î¸¸ »ý¼ºµÈ´Ù. Series2¸¦ ¾Æ·¡ÂÊ ¿¡¸®¾î·Î À̵¿½ÃÄÑ º¸ÀÚ. ½Ã¸®ÁîÀÇ ChartArea ¼Ó¼º¿¡ ¿øÇÏ´Â ¿¡¸®¾îÀÇ À̸§À» ´ëÀÔÇÑ´Ù.
ÀÌ·± ¿ëµµ·Î ¾²±â À§ÇØ ¸ðµç °´Ã¼¿¡ À̸§À» ºÙ¿© µÎ´Â °ÍÀÌ ÁÁ´Ù. ½Ã¸®Áîµµ
Series Ä÷º¼Ç¿¡¼ 0¹ø, 1¹ø ¼ø¼°ªÀ¸·Î ÂüÁ¶ÇÒ ¼ö ÀÖÁö¸¸ À̸§À» ºÙ¿© µÎ¸é À̸§À¸·Î °Ë»öÇÒ ¼ö ÀÖ´Ù.
À§ µÎ ¹øÂ° ÁÙÀº ´ÙÀ½ ÄÚµå¿Í °°´Ù.
chart1.Series[1].ChartArea =
"ChartArea2";
Sereis[1]ÀÌ µÎ ¹øÂ° Ä÷º¼ÇÀ» ÀǹÌÇÑ´Ù. ±×·¯³ª ½Ã¸®Áî°¡ ¸¹¾ÆÁö¸é ¼ø¼°ªÀº Çò°¥¸®°í Áß°£¿¡ ÷»èµÇ¸é ¹Ù²ð ¼öµµ ÀÖ¾î Àϰü¼ºÀÌ ¶³¾îÁø´Ù. ±×·¡¼ À̸§À» ºÙ¿© µÎ°í Series["Series2"] Çü½ÄÀ¸·Î
À̸§À» ÅëÇØ ã´Â °ÍÀÌ ´õ ÁÁ´Ù.
¼¼¹øÂ° ÁÙÀº ½Ã¸®ÁîÀÇ Â÷Æ® ŸÀÔÀ» Bar·Î º¯°æÇÑ´Ù. SeriesChartTypeÀ» ãÀ» ¼ö ¾ø´Ù´Â ¿¡·¯°¡ ¹ß»ýÇÏ¸é ´ÙÀ½ using¹®À»
¼Ò½º ¼±µÎ¿¡ ÀÛ¼ºÇÑ´Ù.
using
System.Windows.Forms.DataVisualization.Charting;
Â÷Æ®¿Í °ü·ÃµÈ À¢¸¸ÇÑ Å¸ÀÔÀÌ ´Ù Charting ³×ÀÓ½ºÆäÀ̽º¿¡ ¼±¾ðµÇ¾î
ÀÖ¾î ÀÌ using¹®¸¸ Ãß°¡Çϸé Â÷Æ® °ü·Ã ŸÀÔÀ» ÀÚÀ¯·Ó°Ô ¾µ ¼ö ÀÖ´Ù. ¿©±â±îÁöÀÇ ½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù.
´ÙÀ½Àº ¹ü·Ê¸¦ Á¶Á¤ÇØ º¸ÀÚ. ½Ã¸®Áî¿¡ ¹ü·Ê ÅØ½ºÆ®¸¦ ÁöÁ¤Çϰí Legends Ä÷º¼ÇÀÇ 0¹ø ¹ü·ÊÀÇ ¼Ó¼ºÀ» Á¶Á¤ÇÏ¸é µÈ´Ù.
chart1.Series["Series1"].LegendText =
"¼ºÀûÇ¥";
chart1.Series["Series2"].LegendText =
"¸ÅÃâ";
chart1.Legends[0].Docking = Docking.Left;
chart1.Legends[0].BackColor = Color.Yellow;
chart1.Legends[0].Title = "½Ã¸®Áî ¼³¸í";
µðÀÚÀÎâ¿¡¼ ¼Ó¼ºÀ» ã¾Æ º¯°æÇÏ´Â µ¿ÀÛÀ» ÄÚµå·Î ±×´ë·Î ¿Å±ä °Í »ÓÀÌ´Ù. ¿ÞÂÊ¿¡
³ë¶õ»ö ¹ü·Ê°¡ ³ªÅ¸³´Ù.
´ÙÀ½Àº ŸÀÌÆ²À» ºÙ¿© º¸ÀÚ. ŸÀÌÆ²Àº Titles Ä÷º¼Ç¿¡ »ý¼ºÇÑ´Ù. »õ ŸÀÌÆ² °´Ã¼ Ãß°¡Çϰí ÅØ½ºÆ®¿Í ÆùÆ®¸¸
ÁöÁ¤ÇÏ¸é µÈ´Ù.
chart1.Titles.Add("Title1");
chart1.Titles["Title1"].Text = "Â÷Æ®
ŸÀÌÆ²";
chart1.Titles["Title1"].Font = new Font("±Ã¼", 20);
À§ÂÊ¿¡ Â÷Æ® Á¦¸ñÀÌ Ãâ·ÂµÈ´Ù.
º¸´Ù½ÃÇÇ Â÷Æ®ÀÇ ¸ðµç ¼¼ºÎ ¿ä¼Ò´Â Ä÷º¼ÇÀ¸·Î µÇ¾î ÀÖ°í ¿øÇÏ´Â °ÍÀ» Ãß°¡ÇÑ ÈÄ ¼Ó¼º¸¸ ÆíÁýÇÏ¸é µÈ´Ù. C#ÀÇ ±âº» ¹®¹ý¸¸ ¾È´Ù¸é ¾ÆÁÖ ½¬¿î ÄÚµåÀÌ´Ù. ±×·¯³ª ±¸Á¶°¡ º¹ÀâÇØÁö°í
ÁßøÀÌ ½ÉÇØÁö¸é ¾à°£¾¿ Çò°¥¸®´Â ¸éµµ ÀÖ´Ù.
¸¶Áö¸·À¸·Î ¾Ö³ëÅ×À̼ÇÀ» Ãß°¡ÇØ º¸ÀÚ. ¾Ö³ëÅ×À̼ÇÀº Annotations Ä÷º¼Ç¿¡ ÀúÀåÇ쵂 ÆÄ»ý ŸÀÔÀÌ ÀÖ´Ù´Â ¸é¿¡¼ Á¶±Ý º¹ÀâÇÏ´Ù.
¿øÇϴ ŸÀÔÀÇ ¾Ö³ëÅ×ÀÌ¼Ç °´Ã¼¸¦ »ý¼ºÇÏ¿© ¼Ó¼ºÀ» ÆíÁýÇÑ ÈÄ Ä÷º¼Ç¿¡ Ãß°¡ÇÑ´Ù.
EllipseAnnotation ell = new EllipseAnnotation();
ell.Text = "¿©±âÁÖ¸ñ";
ell.BackColor = Color.Lime;
ell.AnchorOffsetY = 2;
ell.AnchorDataPoint =
chart1.Series["Series1"].Points[0];
chart1.Annotations.Add(ell);
Ÿ¿ø ¾Ö³ëÅ×À̼ÇÀÎ EllipseAnnotation °´Ã¼¸¦ »ý¼ºÇϰí
ÀÌ °´Ã¼ÀÇ Text, BackColor. AnchorOffsetY ¼Ó¼ºÀ» ÁöÁ¤ÇÑ´Ù. ¾Ö³ëÅ×À̼ÇÀ» ºÙÀÏ À§Ä¡ÀÎ AnchorDataPoint ¼Ó¼ºÀº ½Ã¸®Áî³»ÀÇ
Æ÷ÀÎÆ®°ªÀ» ÁöÁ¤ÇÑ´Ù´Â ¸é¿¡¼ Á¶±Ý ±î´Ù·Ó´Ù. Series1ÀÇ Points
Ä÷º¼Ç¿¡¼ 0¹ø Æ÷ÀÎÅ͸¦ ã¾Æ ´ëÀÔÇÏ¸é µÈ´Ù. ÀÌ·¸°Ô
¸¸µç Ÿ¿ø ¾Ö³ëÅ×ÀÌ¼Ç °´Ã¼¸¦ Annotations Ä÷º¼Ç¿¡ Ãß°¡ÇÑ´Ù.
ÀÌ»óÀ¸·Î µðÀÚÀΠŸÀÓ¿¡ ¸¸µé¾ú´ø ¿¹Á¦¿Í ¶È°°Àº ¿¹Á¦¸¦ ÄÚµå·Î ¸¸µé¾î º¸¾Ò´Ù. °úÁ¤ÀÌ
±ä °Å °°Áö¸¸ ÄÚµåÁÙ ¼ö´Â ¾ó¸¶ µÇÁö ¾Ê´Â´Ù.
private void Form1_Load(object sender, EventArgs
e)
{
chart1.Series[0].Points.Add(55);
chart1.Series[0].Points.Add(66);
chart1.Series[0].Points.Add(77);
chart1.Series[0].Points.Add(70);
chart1.Series[0].Points.Add(80);
chart1.Series.Add("Series2");
chart1.Series[1].Points.DataBindY(new
int[] { 33, 44, 22, 40, 50 });
chart1.ChartAreas.Add("ChartArea2");
chart1.Series["Series2"].ChartArea
= "ChartArea2";
chart1.Series["Series2"].ChartType
= SeriesChartType.Bar;
chart1.Series["Series1"].LegendText
= "¼ºÀûÇ¥";
chart1.Series["Series2"].LegendText
= "¸ÅÃâ";
chart1.Legends[0].Docking
= Docking.Left;
chart1.Legends[0].BackColor
= Color.Yellow;
chart1.Legends[0].Title
= "½Ã¸®Áî ¼³¸í";
chart1.Titles.Add("Title1");
chart1.Titles["Title1"].Text
= "Â÷Æ® ŸÀÌÆ²";
chart1.Titles["Title1"].Font
= new Font("±Ã¼", 20);
EllipseAnnotation
ell = new EllipseAnnotation();
ell.Text
= "¿©±âÁÖ¸ñ";
ell.BackColor
= Color.Lime;
ell.AnchorOffsetY
= 2;
ell.AnchorDataPoint
= chart1.Series["Series1"].Points[0];
chart1.Annotations.Add(ell);
}
ÀÌ·± Â÷Æ®°¡ ÇÊ¿äÇÏ´Ù¸é ÀÌ Äڵ带 ±×´ë·Î °¡Á®°¡ ÆíÁýÇÏ¸é µÈ´Ù. ÄÚµå´Â
º¹»ç ¹× ¹Ýº¹ÀÌ ½±´Ù´Â ¸é¿¡¼ ¿ª½Ã ¿ì¿ùÇÏ°í ½Ç¿ëÀûÀÌ´Ù.