±×·¡ÇÁ Çϳª¸¦ ±×¸®·Á¸é ¿©·¯ °³ÀÇ °ªÀÌ ¸ð¿© ½Ã¸®Á ±¸¼ºÇØ¾ß ÇÑ´Ù. ¿©·¯
°³ÀÇ ½Ã¸®Á ÇϳªÀÇ ¿¡¸®¾î¿¡ °°ÀÌ ±×¸± ¼ö ÀÖ°í Â÷Æ® ÄÁÆ®·ÑÀº ¿¡¸®¾î ¿©·¯ °³¸¦ µ¿½Ã¿¡ Ç¥ÇöÇÒ ¼ö ÀÖ´Ù. ÀÌ·±
½ÄÀÌ´Ù º¸´Ï Â÷Æ®¸¦ ±¸¼ºÇÏ´Â ¸ðµç °ÍÀº Ä÷º¼ÇÀÌ´Ù. Â÷Æ® ÄÁÆ®·ÑÀ» ¼±ÅÃÇØ ³õ°í ¼Ó¼ºÃ¢À» ¹üÁÖº°·Î ³ª¿ÇØ
º¸¸é ´Ù¼¸ °³ÀÇ Ä÷º¼ÇÀÌ ÀÖ´Ù.
ÀÌ Ä÷º¼ÇÀ» ¾î¶»°Ô ±¸¼ºÇϴ°¡¿¡ µû¶ó Â÷Æ®ÀÇ ¸ð¾ç°ú ±â´ÉÀÌ °áÁ¤µÈ´Ù. °¢
Ä÷º¼ÇÀÌ Â÷Æ®¿¡ ¾î¶² ½ÄÀ¸·Î ³ªÅ¸³ª´ÂÁö º¸ÀÚ.
Chart ÄÁÆ®·Ñ Àüü ¿µ¿ª chart
picture¶ó°í Çϸç ÀÌ ¾È¿¡ ¿©·¯ °³ÀÇ Area, legend, titleÀÌ ¹èÄ¡µÈ´Ù. Area¾È¿¡´Â µ¥ÀÌÅÍ Ä÷º¼ÇÀÎ ½Ã¸®Áî¿Í ±×¸®µå, Ãà, ƽ ¸¶Å©, ·¹ÀÌºí µîÀÌ ¹èÄ¡µÈ´Ù.
Area´Â °¡Àå ÀÚ¸®ÀÇ Ãà°ú Áß¾ÓÀÇ Plot ¿µ¿ªÀ¸·Î ³ª´©¾îÁø´Ù.
Plot ¿µ¿ª ¾È¿¡ ½Ã¸®Á ±×·¡ÇÈ ÇüÅ·Πǥ½ÃÇÑ ±×·¡ÇÁ¿Í ±×¸®µå°¡
Ãâ·ÂµÇ°í ±× ¹Ù±ù¿¡ X, Y Ãà°ú ƽ ¸¶Å©, Ãà ŸÀÌÆ², ·¹ÀÌºí µîÀÌ Ç¥½ÃµÈ´Ù. ÃàÀº Area¿¡
¼Ò¼ÓµÈ Axes Ä÷º¼ÇÀÌ¸ç »óÇÏ XÃà 2°³, Á¿ì YÃà 2°³·Î ±¸¼ºµÈ´Ù. µðÆúÆ®·Î XÃàÀº
¾Æ·¡Âʸ¸ Ç¥½ÃµÇ¾î ÀÖ°í YÃàÀº ¿ÞÂʸ¸ Ç¥½ÃµÇ¾î ÀÖ´Ù.
Â÷Æ®¸¦ ±¸¼ºÇÏ´Â ¸ðµç °ÍÀº Ä÷º¼ÇÀ̸ç Ä÷º¼Ç³¢¸® ¼·Î ¼Ò¼ÓµÇ°í ¿¬°áµÇ´Â ½ÄÀÌ´Ù.
Â÷Æ® ¾È¿¡ ¿©·¯ °³ÀÇ ¿¡¸®¾î°¡ ÀÖ°í ¿¡¸®¾î¾È¿¡ ¿©·¯ °³ÀÇ ½Ã¸®Áî°¡ ÀÖÀ¸¸ç ½Ã¸®Áî ¾È¿¡ ¶Ç ¿©·¯ °³ÀÇ °ªÀÌ ÀúÀåµÈ´Ù. ÀÌ ±¸Á¶¿¡ Àͼ÷ÇØÁ®¾ß ¿øÇÏ´Â ¿ä¼Ò¸¦ ½Å¼Ó, Á¤È®ÇÏ°Ô Ã£À» ¼ö ÀÖ´Ù.
½Ã¸®Áî´Â Â÷Æ®¿¡ Ãâ·ÂÇÒ µ¥ÀÌÅͰªÀÇ ÁýÇÕÀÌ´Ù. ¿¹¸¦ µé¾î ¼ºÀûÇ¥¸¦ ±×¸°´Ù¸é
°¢ ÇлýÀÇ Á¡¼ö µ¥ÀÌÅÍ ÁýÇÕÀÌ ÇϳªÀÇ ½Ã¸®Áî°¡ µÈ´Ù. µ¥ÀÌÅÍ ÁýÇÕÀº SeriesÀÇ
Points Ä÷º¼ÇÀ¸·Î °ü¸®ÇÑ´Ù.
DataPointCollection Points
DataPointCollectionÀº DataPointÀÇ Ä÷º¼ÇÀ̸ç DataPoint´Â ½Ã¸®Á ±¸¼ºÇÏ´Â
µ¥ÀÌÅÍ ÇϳªÀÌ´Ù. Áï Â÷Æ®¸¦ ±¸¼ºÇÏ´Â °¡Àå ¿øÀÚÀûÀÎ ´ÜÀ§°¡ ¹Ù·Î DataPointÀÌ´Ù. ÇϳªÀÇ µ¥ÀÌÅÍ´Â ´ÙÀ½ µÎ °ªÀ¸·Î ±¸¼ºµÈ´Ù.
XValue : °¡·Î XÃà¿¡ Ç¥½ÃÇÒ °ªÀ̸ç ŸÀÔÀº doubleÀÌ´Ù. ¼ºÀûÇ¥¶ó¸é ÇлýÀÇ Ãâ¼® ¹øÈ£°¡ X°ªÀ¸·Î »ç¿ëµÈ´Ù. X°ªÀÌ ¹Ýµå½Ã ÀÖ¾î¾ß ÇÏ´Â °ÍÀº ¾Æ´Ï¸ç »ý·«½Ã Ä÷º¼Ç¿¡ Ãß°¡ÇÑ ¼ø¼´ë·Î ±×·Á ¿¬¼ÓÀûÀÎ(non scatter) Â÷Æ®°¡ µÈ´Ù. X°ªÀ» ÁöÁ¤Çϸé ÀÌ °ª¿¡ µû¶ó
ºñ ¿¬¼ÓÀûÀÎ Èð¾îÁø(scatter) Â÷Æ®°¡ µÈ´Ù.
YValues : ¼¼·Î YÃà¿¡ Ç¥½ÃÇÒ °ªÀÌ´Ù. ¼ºÀûÇ¥¶ó¸é °¢ ÇлýÀÇ Á¡¼ö°ªÀÌ´Ù. º¸ÅëÀº ÇϳªÀÇ °ª¸¸ ÀÖÁö¸¸ ¿©·¯ °³ÀÇ °ªÀ» Á¶ÇÕÇÏ¿© º¸¿© ÁÖ´Â Â÷Æ®´Â Y°ªÀÌ
¿©·¯ °³ÀÏ ¼öµµ ÀÖ´Ù. ¿¹¸¦ µé¾î ÁÖ½Ä ½ÃȲÀ» ±×¸®´Â Â÷Æ®´Â ½Ã°¡, Á¾°¡, °í°¡, Àú°¡ µî 4°³ÀÇ
°ªÀ» ÇѲ¨¹ø¿¡ ±×¸°´Ù. ±×·¡¼ ÀÌ ¼Ó¼ºÀÇ Å¸ÀÔÀº double []ÀÌ´Ù.
Â÷Æ®ÀÇ ÇüŰ¡ ¿ö³« ´Ù¾çÇÏ´Ù º¸´Ï X°ªÀº ¾øÀ» ¼öµµ ÀÖ°í Y°ªÀÌ ¿©·¯ °³ÀÏ ¼öµµ ÀÖ´Ù. DataPointCollectionÀº
DataPoint¸¦ Ãß°¡ÇÏ´Â ¸Þ¼µå¸¦ Á¦°øÇÑ´Ù. µðÀÚÀ̳ʿ¡¼µµ
µ¥ÀÌÅ͸¦ Á÷Á¢ Ãß°¡ÇÒ ¼ö ÀÖÁö¸¸ ´ë·® Ãß°¡´Â ¾Æ¹«·¡µµ Äڵ带 »ç¿ëÇØ¾ß ÇÑ´Ù. Â÷Æ®ÀÇ ±¸Á¶¸¦ »ìÆì º¼
¼ö ÀÖ´Â °¡Àå ¿ø·ÐÀûÀÎ ¸Þ¼µåÀ̹ǷΠÀÚ¼¼È÷ »ìÆì º¸ÀÚ. Y°ª¸¸ Ãß°¡ÇÒ ¶§´Â ´ÙÀ½ µÎ ¸Þ¼µå¸¦ »ç¿ëÇÑ´Ù.
int AddY (double yValue);
int AddY (params object[] yValue);
ù ¹øÂ° ¸Þ¼µå´Â ÇϳªÀÇ y°ªÀ» Ä÷º¼ÇÀÇ ¸¶Áö¸·¿¡ Ãß°¡ÇÏ°í ±× Ã·ÀÚ¸¦
¸®ÅÏÇÑ´Ù. ¼ºÀûÀ» ¼ø¼´ë·Î ³ª¿ÇÑ´Ù¸é ù ÇлýÀÇ ¼ºÀûºÎÅÍ ¼ø¼´ë·Î Á× Ãß°¡ÇÏ¸é µÈ´Ù.
private void Form1_Load(object sender, EventArgs
e)
{
chart1.Legends[0].Enabled
= false;
chart1.Series[0].Points.AddY(55);
chart1.Series[0].Points.AddY(77);
chart1.Series[0].Points.AddY(66);
}
´çºÐ°£ ¹ü·Ê´Â ÇÊ¿ä¾øÀ¸¹Ç·Î Á¦°ÅÇÑ »óÅ·Π½ÇÇàÇØ º¸ÀÚ. ¾È±×·¡µµ Áö¸éÀÌ
Á¼Àºµ¥ ¹ü·Ê±îÁö ÀÖÀ¸¸é Â÷Æ®¸¦ Å©°Ô º¼ ¼ö ¾ø¾î ¹ü·Ê¸¦ ¼û±â±â·Î ÇÑ´Ù.
Y°ª¸¸ ÁÖ¸é ÀÚµ¿À¸·Î 1, 2, 3¹ø
ÇлýÀÇ ¼ºÀûÀÌ µÈ´Ù. object[]À» ¹Þ´Â AddY ¸Þ¼µå´Â
¿©·¯ °³ÀÇ Y°ªÀ» ¹ÞÀ» ¼öµµ ÀÖ°í ¿©·¯ ŸÀÔÀÇ °ªÀ» ¹ÞÀ» ¼öµµ ÀÖ´Ù.
±×·¸´Ù°í ÇØ¼ ¾Æ¹« ŸÀÔÀ̳ª ´Ù ¹Þ´Â °ÍÀº ¾Æ´Ï¸ç Á¤¼ö, ½Ç¼ö ŸÀÔ°ú String, DateTime Á¤µµ¸¸ °¡´ÉÇÏ´Ù. Á¡¼ö°ªÀÌ ¹®ÀÚ¿ ÇüÅ·Î
Á¶»çµÇ¾ú´Ù¸é ±×³É ¹®ÀÚ¿À» Add ÇØµµ µÈ´Ù.
chart1.Series[0].Points.AddY("55");
chart1.Series[0].Points.AddY("77");
chart1.Series[0].Points.AddY("66");
ÀÌ·¸°Ô ÇØµµ °á°ú´Â °°´Ù. ¹®ÀÚ¿ ¾È¿¡ ÀúÀåµÈ Á¤¼ö, ½Ç¼ö¸¦ double ŸÀÔÀ¸·Î ¹Ù²ã¼ »ç¿ëÇÑ´Ù. ÀϹÝÀûÀÌÁö ¾ÊÁö¸¸ DateTime ŸÀÔµµ ´ë¼Ò ±¸ºÐÀÌ °¡´ÉÇϹǷÎ
Y°ªÀ¸·Î ¾µ ¼ö ÀÖ´Ù.
chart1.Series[0].Points.AddY(DateTime.Now);
chart1.Series[0].Points.AddY(DateTime.Now.AddDays(1));
chart1.Series[0].Points.AddY(DateTime.Now.AddDays(2));
YÃà¿¡ ³¯Â¥°¡ ³ªÅ¸³´Ù. ´ÙÀ½Àº
¿©·¯ °³ÀÇ Y°ªÀ» °¡Áö´Â Â÷Æ®¸¦ ±×·Á º¸ÀÚ. ÁÖ½Ä Â÷Æ®¿¡
ÁÖ·Î »ç¿ëÇϴ ĵµé½ºÆ½ÀÌ ´ëÇ¥ÀûÀÌ´Ù. Â÷Æ® ŸÀÔÀ» ¸ÕÀú ¹Ù²ã¾ß Çϸç Ä¿½ºÅÒ ÇÁ·ÎÇÇÅ͸¦ »ç¿ëÇÏ¿© »ó½ÂÀº
»¡°£»ö, Ç϶ôÀº ÆÄ¶õ»öÀ¸·Î ÁöÁ¤Çß´Ù. XÃà ±×¸®µå´Â ¾ø¾Ö´Â
°ÍÀÌ º¸±â ÁÁ´Ù.
chart1.Series[0].ChartType =
SeriesChartType.Candlestick;
chart1.Series[0].CustomProperties =
"PriceDownColor=Blue, PriceUpColor=Red";
chart1.ChartAreas[0].AxisX.MajorGrid.Enabled =
false;
chart1.Series[0].Points.AddY(900, 1600, 1000,
1500);
chart1.Series[0].Points.AddY(1000, 1700, 1200,
1600);
chart1.Series[0].Points.AddY(1200, 500, 1000,
600);
ÀÌ·± Â÷Æ®¸¦ ±×¸®·Á¸é XÃà Çϳª¿¡ ´ëÇØ ¿©·¯ °³ÀÇ Y°ªÀÌ ÇÊ¿äÇÏ´Ù. AddY ¸Þ¼µå´Â XÃà°ªÀ»
¸ðµÎ »ý·«ÇÑ´Ù. ´ÙÀ½ µÎ ¸Þ¼µå´Â XÃàÀ» ÁöÁ¤ÇÏ¿© Á» ´õ
´Ù¾çÇÑ ÇüÅÂÀÇ Â÷Æ®¸¦ ±×¸°´Ù.
public int AddXY (double xValue, double yValue);
public int AddXY (object xValue, params object[]
yValue);
ÇϳªÀÇ y°ªÀ» ¹Þ´Â ¹öÀü°ú ¿©·¯ °³ÀÇ y°ªÀ» ¹Þ´Â ¹öÀüÀÌ ÀÖ´Ù. 1, 2,3 ¹ø ÇлýÀÇ ¼ºÀûÇ¥¸¦ ±×¸®°í ½Í´Ù¸é
X°ª¿¡ Ãâ¼® ¹øÈ£¸¦ Àû¾î ÁØ´Ù.
chart1.Series[0].Points.AddXY(1, 55);
chart1.Series[0].Points.AddXY(2, 77);
chart1.Series[0].Points.AddXY(3, 66);
ÀÌ·¸°Ô Çϸé X¸¦ »ý·«ÇÏ°í ¼¼ °³ÀÇ Y°ªÀ» ¼ø¼´ë·Î Á¦°øÇÏ´Â °Í°ú ¸¶Âù°¡ÁöÀÌ¸ç ±»ÀÌ X°ªÀ» ÁÙ Çʿ䰡 ¾ø´Ù. ±×·¯³ª X°¡ ºñ¿¬¼ÓÀûÀ̰ųª ´Ù¸¥ ŸÀÔÀÏ ¶§´Â X°ªÀ» ÁöÁ¤ÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î 3¹ø
ÇлýÀÌ ÀüÇÐÀ» °¡¼ ¾ø´Ù°í Çϸé 1, 2, 4¹øÀ» X°ªÀ¸·Î
ÁöÁ¤ÇÑ´Ù.
chart1.Series[0].Points.AddXY(1, 55);
chart1.Series[0].Points.AddXY(2, 77);
chart1.Series[0].Points.AddXY(4, 66);
3¹ø ÀÚ¸®´Â ºó °ÍÀ¸·Î ³ªÅ¸³´Ù. ¶Ç
Ãâ¼® ¹øÈ£°¡ ¾Æ´Ñ °¢ ÇлýÀÇ À̸§À¸·Î ¼ºÀûÀ» Ãâ·ÂÇÒ ¶§µµ X°ªÀ» ÁöÁ¤ÇÑ´Ù.
chart1.Series[0].Points.AddXY("ö¼ö", 55);
chart1.Series[0].Points.AddXY("¿µÈñ", 77);
chart1.Series[0].Points.AddXY("µ¿¼ö", 66);
Çлý À̸§Àº XValue¿¡ ÀúÀåµÇ´Â °ÍÀÌ ¾Æ´Ï¶ó DataPoint °´Ã¼ÀÇ AxisLabel ¼Ó¼º¿¡ ÀúÀåµÈ´Ù. XValue´Â Ç×»ó ¼ýÀÚÀÌ´Ù. XÃà¿¡ ½Ã°£À» Ç¥½ÃÇÒ ¶§´Â DateTime ŸÀÔÀ» »ç¿ëÇÑ´Ù. ´ÙÀ½ Â÷Æ®´Â 15ºÐ°£ÀÇ °ª º¯È¸¦ Ç¥ÇöÇÑ´Ù.
Random R = new Random(100);
DateTime end = DateTime.Now.AddMinutes(15);
for (DateTime dt = DateTime.Now;dt < end;dt =
dt.AddMinutes(1))
{
chart1.Series[0].Points.AddXY(dt,
R.Next(10, 100));
}
ÆíÀÇ»ó °ªÀº ³¼ö·Î »ý¼ºÇß´Ù. XÃà¿¡´Â ½Ã°£ÀÌ Ç¥½ÃµÇ´Âµ¥ ³¯Â¥, ½Ã°£µµ double ŸÀÔÀ¸·Î º¯È¯µÇ¾î ÀúÀåµÈ´Ù. ¸¶Áö¸· Add ¸Þ¼µå´Â ÇÑ °³ ÀÌ»óÀÇ y°ªÀ» Ãß°¡Çϰí DataPoint °´Ã¼¸¦ ¸®ÅÏÇÑ´Ù.
DataPoint Add (params double[] y);
´Ù¸¥ Add ¸Þ¼µå°¡ »ðÀÔÇÑ À§Ä¡¸¦ ¸®ÅÏÇϴµ¥ ºñÇØ ÀÌ ¸Þ¼µå´Â DataPoint °´Ã¼¸¦ ¸®ÅÏÇÑ´Ù´Â Á¡ÀÌ Æ¯ÀÌÇÏ´Ù. Ãß°¡ ÈÄ ¸®ÅϵÈ
DataPoint °´Ã¼·Î ¿©·¯ °¡Áö ¼Ó¼ºÀ» ÆíÁýÇÒ ¼ö ÀÖ´Ù.
´ÙÀ½ ¸Þ¼µå´Â Ä÷º¼ÇÀÇ µ¥ÀÌÅ͸¦ °ü¸®ÇÑ´Ù. Ãß°¡ÇÏ´Â ±â´ÉÀÌ ÀÖÀ¸¸é
´ç¿¬È÷ »ðÀÔ, »èÁ¦, °Ë»ö,
ÃʱâÈ µîÀÇ ¸Þ¼µåµµ ÇÊ¿äÇÏ´Ù. Ä÷º¼ÇÀÌ °®Ãß¾î¾ß ÇÒ ¸ðµç ±â´ÉÀÌ ´Ù ±¸ºñµÇ¾î ÀÖ´Ù.
public void InsertY (int index, params object[]
yValue);
public void RemoveAt (int index);
public void Clear ();
¸Þ¼µå À̸§¸¸ ºÁµµ ±â´ÉÀ» ½±°Ô À¯ÃßÇÒ ¼ö ÀÖ´Ù. ÆíÀÇ»ó ¿©±â¼´Â
´ëÇ¥ ¿øÇü¸¸ º¸À̴µ¥ InsertY°¡ ÀÖÀ¸¸é ÀÀ´ç InsertXY¿Í
Insertµµ Àֱ⠸¶·ÃÀÌ´Ù. °´Ã¼ ÁöÇâ ¶óÀ̺귯¸®´Â ÇÊ¿äÇÒ
°Å °°Àº ¸Þ¼µå´Â °ÅÀÇ ´Ù Á¦°øÇϹǷΠÇ×»ó ·¹ÆÛ·±½º¸¦ ÂüÁ¶ÇÏÀÚ. ´ÙÀ½ ÄÚµå´Â 3°³ÀÇ µ¥ÀÌÅ͸¦ Ãß°¡ÇÑ ÈÄ 1¹ø À§Ä¡¿¡ 88À» »ðÀÔÇϰí 2¹ø À§Ä¡ÀÇ 77 µ¥ÀÌÅ͸¦
Á¦°ÅÇÑ´Ù.
chart1.Series[0].Points.AddY(55);
chart1.Series[0].Points.AddY(77);
chart1.Series[0].Points.AddY(66);
chart1.Series[0].Points.InsertY(1, 88);
chart1.Series[0].Points.RemoveAt(2);
Çϳª¸¦ ³Ö°í Çϳª¸¦ »°À¸´Ï °á±¹ ¼¼ °³ ³²´Â´Ù. µ¥ÀÌÅ͸¦ ¿ÏÀüÈ÷ »õ·Î
ÀÔ·ÂÇÏ°í ½ÍÀ¸¸é Clear·Î ÀüºÎ Á¦°ÅÇÑ ÈÄ ´Ù½Ã Ãß°¡ÇÑ´Ù. ´ÙÀ½
¸Þ¼µå´Â Ä÷º¼Ç¿¡¼ µ¥ÀÌÅ͸¦ ã´Â´Ù.
DataPoint FindByValue (double valueToFind);
DataPoint FindByValue (double valueToFind, string
useValue);
DataPoint FindByValue (double valueToFind, string
useValue, int startIndex);
IEnumerable<DataPoint> FindAllByValue
(double valueToFind);
DataPoint FindMinByValue ();
DataPoint FindMaxByValue ();
FindByValue´Â ÃÖ´ë 3°³ÀÇ
Àμö¸¦ °¡Áø´Ù. valueToFind´Â ãÀ» °ªÀÌ´Ù. useValue´Â
ÀÌ °ªÀÌ XÀÎÁö Y1ÀÎÁö¸¦ ÁöÁ¤ÇÏ¸ç »ý·«½Ã Y°ªÀ» ã´Â´Ù. startindex´Â °Ë»öÀ» ½ÃÀÛÇÒ À§Ä¡ÀÌµÇ »ý·«½Ã
óÀ½ºÎÅÍ Ã£´Â´Ù. °Ë»öµÈ À§Ä¡ ´ÙÀ½ºÎÅÍ °Ë»öÇÏ¸é ¼ø¼´ë·Î °ªÀ» ãÀ» ¼ö ÀÖ´Ù.
¸ðµç °ªÀ» ÇѲ¨¹ø¿¡ ´Ù ãÀ» ¼öµµ ÀÖ°í ÃÖ¼Ò, ÃÖ´ë°ªÀ» ãÀ» ¼öµµ
ÀÖ´Ù. ã´Â °ªÀÌ ÀÖÀ¸¸é ÇØ´ç DataPoint °´Ã¼¸¦ ¸®ÅÏÇϸç
¾øÀ¸¸é nullÀ» ¸®ÅÏÇÑ´Ù. ²À °ªÀÌ ÀÖ´Ù°í º¸ÀåÇÒ ¼ö ¾øÀ¸¹Ç·Î
null Á¡°ËÀº ¹Ýµå½Ã ÇØ¾ß ÇÑ´Ù. ´ÙÀ½ ÄÚµå´Â 77Á¡Â¥¸® Á¡¼ö¸¦ ã¾Æ 22Á¡À¸·Î ¼öÁ¤ÇÑ´Ù.
chart1.Series[0].Points.AddY(55);
chart1.Series[0].Points.AddY(77);
chart1.Series[0].Points.AddY(66);
DataPoint dp =
chart1.Series[0].Points.FindByValue(77);
if (dp != null)
{
dp.YValues = new double[] { 22 };
}
SeriesÀÇ ¼Ó¼ºÀÌ Points Ä÷º¼ÇÀº
µ¥ÀÌÅ͸¦ Ãß°¡, »èÁ¦, »ðÀÔ, °Ë»ö µî ¸ðµç °ü¸® ±â´ÉÀ» ´Ù Áö¿øÇÑ´Ù. ¿øÇÏ´Â ¸ðµç °ÍÀ» ´Ù ÇÒ
¼ö ÀÖ¾î ÀÚÀ¯µµ°¡ ³ô°í À¯¿¬ÇÏ´Ù.
Points Ä÷º¼ÇÀÇ ÇÑ ¿ä¼ÒÀÎ DataPointµµ
°´Ã¼ÀÌ´Ù. Á÷Á¢ °´Ã¼¸¦ »ý¼ºÇÏ¿© Ä÷º¼Ç¿¡ Ãß°¡ÇÒ ¼öµµ ÀÖ°í ¿©·¯ °¡Áö ¼Ó¼ºÀ» Á¶Á¤ÇÏ¿© ´Ù¾çÇÑ ¸ð¾çÀ»
¸¸µé ¼öµµ ÀÖ´Ù. ¾ÆÁÖ ¸¹Àº ¼Ó¼ºÀÌ Àִµ¥ ´ÙÀ½Àº ÀÚÁÖ »ç¿ëÇÏ´Â ¼Ó¼ºÀÌ´Ù.
¼Ó¼º |
¼³¸í |
AxisLabel |
XÃà¿¡ Ç¥½ÃÇÒ ¹®ÀÚ¿ÀÌ´Ù. µðÆúÆ®·Î
¼ø¼°ªÀÌ µé¾î°¡´Âµ¥ ÀÓÀÇÀÇ ¹®ÀÚ¿À» Ç¥½ÃÇÒ ¼ö ÀÖ´Ù. |
Color |
¹è°æ»öÀÌ´Ù. µðÆúÆ®´Â ½Ã¸®ÁîÀÇ ¹è°æ»öÀ» »ó¼Ó¹Þ´Â´Ù. |
BorderColor |
°æ°è»öÀÌ´Ù. |
BorderWidth |
°æ°è¼±ÀÇ ±½±âÀÌ´Ù. |
BorderDashStyle |
°æ°è¼±ÀÇ ¸ð¾çÀÌ´Ù. |
Font |
±Û²ÃÀ» ÁöÁ¤ÇÑ´Ù. |
Label |
¸·´ë À§¿¡ Ç¥½ÃÇÒ ¹®ÀÚ¿ÀÌ´Ù. |
MakerStyle |
¸·´ë À§¿¡ Ç¥½ÃÇÒ µµÇüÀÌ´Ù. ¿ø, ½ÊÀÚ, »ï°¢Çü, »ç°¢Çü, º°
|
MakerSize |
¸¶Ä¿ÀÇ Å©±â¸¦ ÁöÁ¤ÇÑ´Ù. |
ToolTip |
¸¶¿ì½º Ä¿¼°¡ ¸Ó¹«¸£¸é ³ªÅ¸³ª´Â ÅøÆÁÀÌ´Ù. |
XValue |
XÃà °ªÀÌ´Ù. |
YValues |
YÃà °ªÀÇ ¹è¿ÀÌ´Ù. |
µÎ ¹øÂ° µ¥ÀÌÅÍÀÇ ¼Ó¼ºÀ» ¹Ù²ã º¸ÀÚ.
chart1.Series[0].Points.AddY(55);
chart1.Series[0].Points.AddY(77);
chart1.Series[0].Points.AddY(66);
DataPoint dp = chart1.Series[0].Points[0];
dp.AxisLabel = "ö¼öÀÇ Á¡¼ö";
dp.Color = Color.Yellow;
dp.BorderColor = Color.Red;
dp.BorderWidth = 3;
dp.Label = "²ÃÂî";
dp.MarkerStyle = MarkerStyle.Star5;
dp.MarkerSize = 25;
dp.ToolTip = "ö¼öÀÇ ½ÃÇè Á¡¼öÀÔ´Ï´Ù.";
ÀÌ ¿Ü¿¡µµ ¼ö ¸¹Àº ¼Ó¼ºÀÌ ÀÖ´Ù. ¸·´ë ±×·¡ÇÁ ¾È¿¡ À̹ÌÁö¸¦ Ãâ·ÂÇÒ
¼öµµ ÀÖ°í ±×·¡µð¾ðÆ® ¹è°æÀ¸·Î ä¿ï ¼ö ÀÖÀ¸¸ç ·¹À̺íÀÇ Æ÷¸ËÀ̳ª ¼Ó¼º±îÁöµµ ¸¶À½´ë·Î Á¶Á¤ÇÒ ¼ö ÀÖ´Ù. ½ÉÁö¾î
Â÷Æ® ŸÀÔº°·Î Ä¿½ºÅÒ ¼Ó¼º±îÁö ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
°³º° µ¥ÀÌÅÍ Çϳª¿¡ ´ëÇÑ ¼Ó¼ºÀÇ »ó¼¼µµ°¡ ÀÌ Á¤µµÀÌ´Ï ½Ã¸®Á ¿¡¸®¾îÀÇ ¼Ó¼ºÀº ¾î´À Á¤µµÀÏÁö °¡È÷ ÁüÀÛÀÌ °¥
°ÍÀÌ´Ù. »ó»óÇÒ ¼ö ÀÖ´Â °ÅÀÇ ¸ðµç ÇüŸ¦ ´Ù Áö¿øÇÑ´Ù.
Add* ¸Þ¼µå´Â Y°ªÀÌ
¿©·¯ °³ÀÏÁö¶óµµ ¾î·°Å³ª ÇϳªÀÇ µ¥ÀÌÅ͸¸ Ãß°¡Çϸç XÃàÀÇ °ª °³¼ö¸¸Å ¸Þ¼µå¸¦ ÀÏÀÏÀÌ È£ÃâÇØ¾ß ÇÑ´Ù. ¹Ý¸é µ¥ÀÌÅÍ ¹ÙÀεùÀº Ä÷º¼ÇÀ¸·ÎºÎÅÍ ¿©·¯ °³ÀÇ µ¥ÀÌÅ͸¦ Àϰý Ãß°¡ÇÑ´Ù.
void DataBindY (params IEnumerable[] yValue);
void DataBindY (IEnumerable yValue, string
yFields);
yValue Àμö´Â ¿°Å °¡´ÉÇÑ Å¸ÀÔÀ̸ç DataView, Data reader, Array, List µîÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ´ë·®ÀÇ µ¥ÀÌÅÍ´Â ÁÖ·Î DB¿¡¼ ÀоîµéÀδÙ. DBÀÇ µ¥ÀÌÅÍ´Â ½ÇÇàÁß¿¡ ¿¬°áÇÏ¿© Àоî¾ß ÇϹǷΠµðÀÚÀΠŸÀÓ¿¡´Â ¹ÙÀεùÀ» ÇÒ ¼ö ¾øÀ¸¸ç ·±Å¸ÀÓ¿¡ ÄÚµå·Î¸¸ ÇÒ
¼ö ÀÖ´Ù.
°¢ Ä÷º¼Ç¿¡¼ °ªÀ» Àоî Àϰý Ãß°¡ÇÏµÇ Ã¹ ¹øÂ° ¸Þ¼µå´Â ù Ä÷³À» ÀÐ°í µÎ ¹øÂ° ¸Þ¼µå´Â yFields·Î ÁöÁ¤ÇÑ Ä÷³À» Àд´Ù. °¡Àå ½¬¿î ¹æ¹ýÀº ¹è¿¿¡¼ ÀдÂ
°ÍÀÌ´Ù.
chart1.Series[0].Points.DataBindY(new int[] { 55,
77, 66 });
¼¼ °³ÀÇ ¼ºÀû°ªÀÌ ÇѲ¨¹ø¿¡ µî·ÏµÈ´Ù. ´ÙÀ½ ¸Þ¼µå´Â X°ªµµ °°ÀÌ ÁöÁ¤ÇÑ´Ù.
public void DataBindXY (IEnumerable xValue,
params IEnumerable[] yValues);
public void DataBindXY (IEnumerable xValue,
string xField, IEnumerable yValue, string yFields);
X ¹è¿À» ÁöÁ¤Çϸé ÇлýÀÇ À̸§µµ ÇÑÁÙ¿¡ ´Ù ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
chart1.Series[0].Points.DataBindXY(new string[] {
"ö¼ö", "¿µÈñ",
"µ¿¼ö" }, new int[] { 55, 77, 66 });
¹è¿º¸´Ù´Â µ¥ÀÌÅͺ£À̽º°¡ ´õ ÀϹÝÀûÀÌ´Ù. ¾ó¸¶µçÁö ¸¹Àº µ¥ÀÌÅ͸¦ Ãâ·ÂÇÒ
¼ö ÀÖ´Ù. ¸Þ¸ð¸®»ó¿¡¼ Å×À̺íÀ» ¸¸µç ÈÄ ¿¬°áÇØ º¸ÀÚ.
private void Form1_Load(object sender, EventArgs
e)
{
chart1.Legends[0].Enabled = false;
DataTable tAge = MakePeopleTable();
chart1.Series[0].Points.DataBindY(tAge.Rows, "Age");
}
private DataTable MakePeopleTable()
{
DataTable tblPeople = new DataTable("tblPeople");
DataColumn col;
DataRow row;
// ¿ µî·Ï
col = new DataColumn("Name", typeof(String));
col.MaxLength = 10;
col.AllowDBNull = false;
col.Unique = true;
tblPeople.Columns.Add(col);
tblPeople.PrimaryKey = new DataColumn[] { col };
col = new DataColumn("Age", typeof(Int32));
col.AllowDBNull = false;
tblPeople.Columns.Add(col);
col = new DataColumn("Male", typeof(bool));
col.AllowDBNull = false;
tblPeople.Columns.Add(col);
// Çà »ðÀÔ
row = tblPeople.NewRow();
row["Name"] = "Á¤¿ì¼º";
row["Age"] = 36;
row["Male"] = true;
tblPeople.Rows.Add(row);
row = tblPeople.NewRow();
row["Name"] = "°í¼Ò¿µ";
row["Age"] = 32;
row["Male"] = false;
tblPeople.Rows.Add(row);
row = tblPeople.NewRow();
row["Name"] = "¹è¿ëÁØ";
row["Age"] = 37;
row["Male"] = true;
tblPeople.Rows.Add(row);
row = tblPeople.NewRow();
row["Name"] = "±èÅÂÈñ";
row["Age"] = 29;
row["Male"] = false;
tblPeople.Rows.Add(row);
tblPeople.AcceptChanges();
return tblPeople;
}
DataTable ÀÚü´Â ¿°Å °¡´ÉÇÑ °ªÀÌ ¾Æ´Ï¹Ç·Î tAge.Rows¸¦ ÁöÁ¤ÇØ¾ß ÇÑ´Ù. 4¸íÀÇ ³ªÀ̰¡ ³ªÅ¸³´Ù. Age Çʵ常 »ç¿ëÇߴµ¥ À̸§µµ Ç¥½ÃÇÒ ¼ö ÀÖ´Ù.
chart1.Series[0].Points.DataBindXY(tAge.Rows,
"Name", tAge.Rows, "Age");
X°ª°ú Y°ªÀÇ Å×À̺íÀÌ
²À ÀÏÄ¡ÇÏÁö ¾Ê¾Æµµ »ó°ü ¾ø´Ù. ¸¶Áö¸· ÇÔ¼ö´Â ´ÙÀ½°ú °°´Ù.
public void DataBind (IEnumerable dataSource,
string xField, string yFields, string otherFields);
ÇÑ Å×ÀÌºí¿¡¼ X, Y°ªÀ» ´Ù ±¸ÇÏ¸ç ¸¶Áö¸· Àμö·Î ¹ÙÀεù ·êÀ» ±ÔÁ¤ÇÏ´Â
Çʵ带 ÁöÁ¤ÇÑ´Ù. ´ÙÀ½Àº ¾Õ ÄÚµå¿Í °á°ú°¡ °°´Ù.
chart1.Series[0].Points.DataBind(tAge.Rows,
"Name", "Age", "");
¸Þ¸ð¸®»ó¿¡¼ ¸¸µç Å×À̺íÀÌ ¾Æ´Ñ DBMS¿¡¼ ÀÐÀº Å×À̺íÀ» ¹ÙÀεùÇÒ
¼öµµ ÀÖ´Ù. ÀÌ ½Ç½ÀÀ» ÇØ º¸·Á¸é SQL ¼¹ö(¶Ç´Â ´Ù¸¥ DBMS)°¡ ¼³Ä¡µÇ¾î ÀÖ¾î¾ß Çϰí SQLÀ» ¾î´À Á¤µµ ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. Â÷Æ®ÀÇ ¼Ó¼ºÃ¢¿¡¼ DataSource ¼Ó¼º ÆË¾÷À» ¿°í µ¥ÀÌÅÍ ¼Ò½º Ãß°¡¸¦ ¼±ÅÃÇÑ´Ù.
µ¥ÀÌÅͺ£À̽º¸¦ ¼±ÅÃÇÏ°í ·ÎÄà ȣ½ºÆ®¿¡ ´ëÇÑ ¿¬°áÀ» »ý¼ºÇÑ´Ù. °ÁÂ
Á¦ÀÛ PC¿¡´Â Study µ¥ÀÌÅͺ£À̽º¿¡ ¿©·¯ °³ÀÇ ½Ç½À Å×À̺íÀÌ
ÁغñµÇ¾î Àִµ¥ ¿©·¯ºÐÀº SQL ¼¹ö·Î ´ëÃæ ¾Æ¹« Å×À̺íÀ̳ª ¸¸µé¾î ³õ°í ½Ç½ÀÇØ º¸ÀÚ.
ÀÌ Áß µµ¼ÀÇ Á¤º¸¸¦ ÀúÀåÇϰí ÀÖ´Â tCity Å×À̺íÀ» ¼±ÅÃÇÑ´Ù. ¿ì¸®³ª¶ó µµ½ÃÀÇ Àα¸, ¸éÀû µî¿¡ ´ëÇÑ Á¤º¸°¡ ÀúÀåµÇ¾î ÀÖ´Ù.
¿©±â±îÁö ó¸®ÇÑ ÈÄ Form1_Load¿¡ ´ÙÀ½ Äڵ带 ÀÛ¼ºÇÑ´Ù.
private void Form1_Load(object sender, EventArgs
e)
{
//
TODO: ÀÌ ÄÚµå´Â µ¥ÀÌÅ͸¦ 'studyDataSet.tCity' Å×ÀÌºí¿¡ ·ÎµåÇÕ´Ï´Ù. ÇÊ¿ä ½Ã ÀÌ Äڵ带 À̵¿Çϰųª Á¦°ÅÇÒ ¼ö ÀÖ½À´Ï´Ù.
this.tCityTableAdapter.Fill(this.studyDataSet.tCity);
chart1.Series[0].Points.DataBind(studyDataSet.tCity,
"Name", "Area", "");
}
ù ÁÙÀº ¸¶¹ý»ç°¡ ÀÛ¼ºÇØ ÁØ °ÍÀ̸ç ÀÌ ¹®Àå¿¡ ÀÇÇØ studyDataSet.tCity
Å×ÀÌºí¿¡ µ¥ÀÌÅͰ¡ ÀÌ¹Ì ÀÐÇôÁ® ÀÖ´Ù. DataBind ¸Þ¼µå·Î ¿¬°á¸¸ ÇØ ÁÖ¸é µÈ´Ù. ¸¶¹ý»ç°¡ ¸¸µç Å×À̺íÀº ŸÀԵ忩¼ ¹Ù·Î ¿°Å °¡´ÉÇÏ´Ù. Name Çʵ带
XÃàÀ¸·Î Çϰí Area¸¦ YÃàÀ¸·Î
ÇÏ¸é µµ½Ãº° ¸éÀûÀÌ Â÷Æ®·Î Ãâ·ÂµÈ´Ù.
YÃà Çʵ带 Popu·Î
º¯°æÇÏ¸é µµ½Ãº° Àα¸¼ö¸¦ Â÷Æ®·Î º¸¿©ÁØ´Ù. DataBind ¸Þ¼µå ´ë½Å ½Ã¸®ÁîÀÇ °¢ ¼Ó¼º¿¡ Å×À̺í°ú
X Çʵå, Y Çʵ带 ÁöÁ¤Çصµ °á°ú´Â °°´Ù.
private void Form1_Load(object sender, EventArgs
e)
{
// TODO: ÀÌ ÄÚµå´Â µ¥ÀÌÅ͸¦ 'studyDataSet.tCity' Å×ÀÌºí¿¡
·ÎµåÇÕ´Ï´Ù. ÇÊ¿ä ½Ã ÀÌ Äڵ带 À̵¿Çϰųª Á¦°ÅÇÒ ¼ö ÀÖ½À´Ï´Ù.
this.tCityTableAdapter.Fill(this.studyDataSet.tCity);
chart1.DataSource = studyDataSet.tCity;
chart1.Series[0].XValueMember = "Name";
chart1.Series[0].YValueMembers = "Area";
}
µ¥ÀÌÅͺ£À̽º¿Í ¿¬°áÇÒ ¼ö ÀÖ¾î ¾ó¸¶µçÁö ´Ù¾çÇÑ ¼Ò½º·ÎºÎÅÍ µ¥ÀÌÅ͸¦ ¹Þ¾Æ Â÷Æ®·Î ±×¸± ¼ö ÀÖ´Ù. ´Ù¸¸ ÀÌ ½Ç½ÀÀº Â÷Æ®¿¡ ´ëÇÑ Áö½Äº¸´Ù µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇÑ Áö½ÄÀÌ ´õ ¸¹ÀÌ ÇÊ¿äÇØ ADO.NETÀ» ÃæºÐÈ÷ ¿¬±¸ÇØ ºÁ¾ß ÇÑ´Ù.
Â÷Æ®ÀÇ Å¸ÀÔÀº ½Ã¸®ÁîÀÇ µ¥ÀÌÅ͸¦ ¾î¶² ¹æ½ÄÀ¸·Î º¸¿©ÁÙ °ÍÀΰ¡¸¦ ÁöÁ¤ÇÑ´Ù. ÃÑ
35°¡ÁöÀÇ Â÷Æ® ŸÀÔÀÌ ÀÖ´Ù. ´Ù Âï¾î¼ ´«À¸·Î È®ÀÎÇØ º¸ÀÚ. ±âÁ¸ ½Ç½À ÇÁ·ÎÁ§Æ®¿Í´Â ¿ëµµ°¡ Á¶±Ý ´Ù¸£¹Ç·Î charttype »õ
ÇÁ·ÎÁ§Æ®¸¦ ¸¸µç´Ù. ·çÇÁ¸¦ µ¹¸ç Â÷Æ® ÄÁÆ®·ÑÀ» ¸¸µé°í 7¿
5ÇàÀ¸·Î ³ª¿ÇÏ¸é µÈ´Ù. 4°³ÀÇ Á¤¼ö°ªÀ» ÁÖ°í ¸ð¾çÀ» ºÐ¸íÈ÷
»ìÆì º¸±â À§ÇØ ±×¸®µå´Â Á¦°ÅÇÏ¿´´Ù.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using
System.Windows.Forms.DataVisualization.Charting;
namespace charttype {
public
partial class Form1 : Form {
public
Form1()
{
InitializeComponent();
}
Chart[]
arChart = new Chart[35];
SeriesChartType[]
arType = new SeriesChartType []
{
SeriesChartType.Column,
SeriesChartType.Bar, SeriesChartType.Line,
SeriesChartType.StepLine,
SeriesChartType.Spline, SeriesChartType.Area,
SeriesChartType.SplineArea,SeriesChartType.Range,SeriesChartType.SplineRange,
SeriesChartType.RangeBar,
SeriesChartType.RangeColumn, SeriesChartType.Pie,
SeriesChartType.Doughnut,
SeriesChartType.Pyramid ,SeriesChartType.Funnel,
SeriesChartType.ThreeLineBreak,
SeriesChartType.PointAndFigure ,SeriesChartType.Polar,
SeriesChartType.Radar,
SeriesChartType.BoxPlot, SeriesChartType.Point,
SeriesChartType.Bubble,
SeriesChartType.Stock, SeriesChartType.Candlestick,
SeriesChartType.ErrorBar,
SeriesChartType.Kagi, SeriesChartType.Renko,
SeriesChartType.StackedArea,
SeriesChartType.StackedArea100, SeriesChartType.StackedBar,
SeriesChartType.StackedBar100,SeriesChartType.StackedColumn,
SeriesChartType.StackedColumn100,
SeriesChartType.FastLine, SeriesChartType.FastPoint
};
private
void Form1_Load(object sender, EventArgs e)
{
int
i = 0;
for
(int y=0;y<5;y++)
{
for
(int x = 0; x < 7; x++)
{
arChart[i]
= new Chart();
arChart[i].Left
= x * 190;
arChart[i].Top
= y * 170;
arChart[i].Width
= 180;
arChart[i].Height
= 160;
arChart[i].ChartAreas.Add("main");
arChart[i].ChartAreas[0].AxisX.MajorGrid.Enabled
= false;
arChart[i].ChartAreas[0].AxisY.MajorGrid.Enabled
= false;
arChart[i].Series.Add("main");
arChart[i].Series[0].Points.DataBindY(new
int[] { 22, 44, 33, 55 });
arChart[i].Series[0].Points[0].Color
= Color.Blue;
arChart[i].Series[0].Points[1].Color
= Color.Red;
arChart[i].Series[0].Points[2].Color
= Color.Green;
arChart[i].Series[0].Points[3].Color
= Color.Purple;
arChart[i].Series[0].ChartType
= arType[i];
arChart[i].Titles.Add("");
arChart[i].Titles[0].Text
= arType[i].ToString();
Controls.Add(arChart[i]);
i++;
}
}
}
}
}
ÀÌ·² ¶§´Â µðÀÚÀ̳ʷΠÀÏÀÏÀÌ Å¬¸¯Çؼ ¼Ó¼º Á¶Á¤ÇÏ´Â °Íº¸´Ù ¿ª½Ã Äڵ尡 Æí¸®ÇÏ´Ù. À§ÂÊ Å¸ÀÌÆ²¿¡ Â÷Æ® ŸÀÔÀ» Ç¥½ÃÇß´Ù.
´ëÃæ¸¸ °üÂûÇØ ºÁµµ °¢ ŸÀÔÀÌ µ¥ÀÌÅ͸¦ ¾î¶»°Ô ±×¸®´ÂÁö ¾Ë ¼ö ÀÖ´Ù. ¶È°°¾Æ
º¸À̴ ŸÀÔµµ ÀÖÁö¸¸ ÀÌ´Â µ¥ÀÌÅͰ¡ °°¾Æ¼ ´çÀå °°¾Æ º¸ÀÏ »ÓÀÌ¸ç ¿©·¯ °³ÀÇ µ¥ÀÌÅ͸¦ ÁÖ¸é ´Þ¶óÁú ¼öµµ ÀÖ´Ù. °¢
ŸÀÔÀÇ Æ¯Â¡À» Àß ¾Ë¾Æ µÎ°í ¸ñÀû¿¡ µü ¸Â´Â ŸÀÔÀ» Àß °ñ¶ó¾ß ÇÑ´Ù.
°³º° Â÷Æ® ŸÀÔµµ ´Ù¾çÇÏÁö¸¸ ¿©·¯ ŸÀÔÀ» ÇϳªÀÇ ¿¡¸®¾î¿¡ °°ÀÌ Ç¥½ÃÇÏ¸é ´õ ´Ù¾çÇÑ ÇüÅÂÀÇ Â÷Æ®¸¦ ±×¸± ¼ö ÀÖ´Ù. ±×·¯³ª ¸ðµç ŸÀÔÀ» µ¿½Ã¿¡ Ç¥½ÃÇÒ ¼ö ÀÖ´Â °ÍÀº ¾Æ´Ï´Ù. ´ëÇ¥ÀûÀ¸·Î
Column°ú Bar´Â ÃàÀÇ ¹æÇâÀÌ ´Þ¶ó °°ÀÌ Ç¥½ÃÇÒ ¼ö
¾øÀ¸¸ç ¿¹¿Ü·Î 󸮵ȴÙ.
¶ÇÇÑ Pie³ª Pyramid ó·³
Àüü ¿µ¿ªÀ» ´Ù »ç¿ëÇϴ ŸÀÔÀº ´Üµ¶À¸·Î¸¸ Ç¥½ÃÇÒ ¼ö ÀÖ´Ù. µÎ °³ ÀÌ»óÀÇ Â÷Æ®¸¦ ÇÑ ¿¡¸®¾î¿¡ °°ÀÌ
Ç¥½ÃÇØ º¸ÀÚ. ½Ã¸®Á °ãÄ¥ ¶§ÀÇ È¿°ú´Â Â÷Æ® ŸÀÔ¿¡ µû¶ó ´Ù¸£´Ù. chartTest
¿¹Á¦¿¡ Äڵ带 ÀÛ¼ºÇ쵂 À̹ø¿¡´Â ¹ü·Ê¸¦ »ì·Á µÎÀÚ.
- ³ª¶õÈ÷ ±×¸®±â(Cluster)
: Çϳª¾¿ ¼ø¼´ë·Î ±×¸°´Ù. ColumnÀ̳ª Bar ŸÀÔÀÇ
½Ã¸®Á ¿©·¯ °³ Ç¥½ÃÇÒ ¶§ ÀÌ·± ÇüŰ¡ µÈ´Ù. °¢ Çлý¿¡ ´ëÇØ ¼¼ °ú¸ñÀÇ ¼ºÀûÀ» µ¿½Ã¿¡ ±×¸®·Á¸é ´ÙÀ½°ú
°°ÀÌ ÇÑ´Ù.
private void Form1_Load(object sender, EventArgs e)
{
chart1.Series[0].Name
= "±¹¾î";
chart1.Series[0].Points.DataBindY(new
int[] { 22, 44, 33, 55 });
chart1.Series[0].ChartType
= SeriesChartType.Column;
chart1.Series.Add("¿µ¾î");
chart1.Series[1].Points.DataBindY(new
int[] { 40, 30, 60, 20 });
chart1.Series[1].ChartType
= SeriesChartType.Column;
chart1.Series.Add("¼öÇÐ");
chart1.Series[2].Points.DataBindY(new
int[] { 50, 40, 20, 30 });
chart1.Series[2].ChartType
= SeriesChartType.Column;
}
µðÀÚÀΠŸÀÓ¿¡ ¹èÄ¡ÇÑ Â÷Æ®´Â Series[0] Çϳª¸¸ ÀÚµ¿ »ý¼ºÇØ
ÁֹǷΠ´õ ÇÊ¿äÇÑ ½Ã¸®Áî´Â Á÷Á¢ ¸¸µé¾î¾ß ÇÑ´Ù. °¢ ¸·´ëÀÇ »ö»óÀº °³º°ÀûÀ¸·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
- Æ÷°³±â(Overlap) : °°Àº
°ø°£¿¡ °ãÃļ ±×¸°´Ù. ¼ø¼°ªÀÌ ºü¸¥ ½Ã¸®Á ¸ÕÀú ±×¸®¹Ç·Î °ãÄ¡´Â ºÎºÐÀº ¼ø¼°ªÀÌ ³ôÀº ½Ã¸®Áî°¡ À§ÂÊ¿¡
¿Â´Ù.
private void Form1_Load(object sender, EventArgs
e)
{
chart1.Series[0].Name
= "±¹¾î";
chart1.Series[0].Points.DataBindY(new
int[] { 22, 44, 33, 55 });
chart1.Series[0].ChartType
= SeriesChartType.Column;
chart1.Series.Add("¿µ¾î");
chart1.Series[1].Points.DataBindY(new
int[] { 40, 30, 60, 20 });
chart1.Series[1].ChartType
= SeriesChartType.Line;
chart1.Series[1].BorderWidth
= 4;
chart1.Series.Add("¼öÇÐ");
chart1.Series[2].Points.DataBindY(new
int[] { 50, 40, 20, 30 });
chart1.Series[2].ChartType
= SeriesChartType.Spline;
chart1.Series[2].BorderWidth
= 4;
}
¿µ¾î ¼ºÀûÀº Line ŸÀÔÀ¸·Î, ¼öÇÐ
¼ºÀûÀº Spline ŸÀÔÀ¸·Î Ç¥½ÃÇß´Ù. ¼±ÀÌ ¾ãÀ¸¸é Àß º¸ÀÌÁö
¾Ê¾Æ ±½±â¸¦ 4·Î µÎÅÓ°Ô Ä¥Çß´Ù. ¿µ¾î¿Í ¼öÇÐÀÌ °ãÄ¡´Â ºÎºÐ¿¡´Â
¼ø¼°¡ µÚÂÊÀÎ ¼öÇÐ ±×·¡ÇÁ°¡ ´õ À§ÂÊ¿¡ ÀÖÀ½À» À¯ÀÇÇÏÀÚ. ±¹¾î´Â ¹°·Ð Á¦ÀÏ ¾Æ·¡ÂÊ¿¡ ÀÖ´Ù. ÀÌ ¼ø¼¸¦ Á¶Á¤ÇÏ·Á¸é ½Ã¸®ÁîÀÇ ¼ø¼¸¦ ¹Ù²ã¾ß ÇÑ´Ù.
- ½×±â(Statck) : ÇÑ
½Ã¸®Áî À§ÂÊ¿¡ ´ÙÀ½ ½Ã¸®ÁîÀÇ °ªÀ» ¾ñ¾î¼ º¸¿© ÁØ´Ù. ¿©·¯ °ªÀÇ ÃÑÇÕÀ» ÇÑ´«¿¡ ÆÄ¾ÇÇÒ ¼ö ÀÖ¾î Æí¸®ÇÏ´Ù.
private void Form1_Load(object sender, EventArgs
e)
{
chart1.Series[0].Name
= "±¹¾î";
chart1.Series[0].Points.DataBindY(new
int[] { 22, 44, 33, 55 });
chart1.Series[0].ChartType
= SeriesChartType.StackedColumn;
chart1.Series.Add("¿µ¾î");
chart1.Series[1].Points.DataBindY(new
int[] { 40, 30, 60, 20 });
chart1.Series[1].ChartType
= SeriesChartType.StackedColumn;
chart1.Series[1].BorderWidth
= 4;
chart1.Series.Add("¼öÇÐ");
chart1.Series[2].Points.DataBindY(new
int[] { 50, 40, 20, 30 });
chart1.Series[2].ChartType
= SeriesChartType.StackedColumn;
chart1.Series[2].BorderWidth
= 4;
}
°¢ ÇлýÀÇ ÃÑÁ¡À» ºñ±³ÇÒ ¼ö ÀÖ°í ÇÑ ÇлýÀÇ ±¹¾î, ¿µ¾î, ¼öÇÐ ¼ºÀû ºñÀ²µµ ½±°Ô °¡´ÆÇÒ ¼ö ÀÖ´Ù. StackedBar ŸÀÔÀ¸·Î
¹Ù²Ù¸é Çлý ¹øÈ£°¡ YÃàÀ¸·Î À̵¿ÇÏ°í ¼ºÀûÀÌ XÃàÀ¸·Î À̵¿ÇÏ¿©
°¡·Î ¸ð¾çÀÇ ¸·´ë ±×·¡ÇÁ°¡ µÈ´Ù.
StackedColumn100 ŸÀÔÀ¸·Î ¹Ù²Ù¸é Àüü¸¦ 100À¸·Î ÇÑ ºñÀ²À» º¸¿© ÁØ´Ù.
½ºÅõå ŸÀÔÀº ½Ã¸®Áî ¿©·¯ °³¸¦ ÇѲ¨¹ø¿¡ º¸¿©ÁÖ´Â ¹æ½ÄÀÌ´Ù. ½Ã¸®Á
¿©·¯°³ÀÏ »Ó °¢ ½Ã¸®ÁîÀÇ Y°ªÀº Çϳª»ÓÀÌ´Ù. ÀÌ¿¡ ºñÇØ ½Ã¸®Áî
Çϳª¿¡ ¿©·¯ °³ÀÇ Y°ªÀÌ µé¾î°¡´Â ŸÀÔµµ ÀÖ´Ù. ¾Õ¿¡¼ Àá½Ã
±¸°æÇØ º» CandleStick ŸÀÔÀÌ ¸ÖƼ Y °ªÀ» »ç¿ëÇÏ´Â
´ëÇ¥ÀûÀÎ ¿¹À̸ç Stock ŸÀÔµµ ±¸Á¶°¡ ºñ½ÁÇÏ´Ù.
private void Form1_Load(object sender, EventArgs
e)
{
chart1.Series[0].ChartType
= SeriesChartType.Stock;
chart1.Series[0].CustomProperties
= "OpenCloseStyle=Triangle";
chart1.ChartAreas[0].AxisX.MajorGrid.Enabled
= false;
chart1.Series[0].Points.AddY(900,
1600, 1000, 1500);
chart1.Series[0].Points.AddY(1000,
1700, 1200, 1600);
chart1.Series[0].Points.AddY(1200,
500, 1000, 600);
}
ÁÖ½Ä ½Ã¼¼´Â ½Ã°¡, Á¾°¡, °í°¡, Àú°¡ 4°³ÀÇ °ªÀ¸·Î ±¸¼ºµÇ¸ç X°ª
Çϳª¿¡ ´ëÇØ 4°³ÀÇ Y°ªÀÌ ÀÖ¾î¾ß Á¦´ë·Î Ç¥ÇöµÈ´Ù. ¿©·¯ °³ÀÇ Y°ªÀ» °¡Áö´Â ½Ã¸®Áî¿Í ´ÜÀÏ °ªÀ» °¡Áö´Â ½Ã¸®Á °°Àº
¿¡¸®¾î¿¡ Ç¥ÇöÇÒ ¼öµµ ÀÖ´Ù. ¿¹¸¦ µé¾î À§ÂÊ¿¡¼´Â ÁÖ½Ä ½Ã¼¼¸¦ ĵµé Â÷Æ®·Î ±×¸®°í ¾Æ·¡ÂÊ¿¡´Â °Å·¡·®À»
±×¸®¸é µÈ´Ù.
private void Form1_Load(object sender, EventArgs
e)
{
chart1.Series[0].ChartType
= SeriesChartType.Candlestick;
chart1.Series[0].CustomProperties
= "PriceDownColor=Blue, PriceUpColor=Red";
chart1.ChartAreas[0].AxisX.MajorGrid.Enabled
= false;
chart1.Series[0].Points.AddY(900,
1600, 1000, 1500);
chart1.Series[0].Points.AddY(1000,
1700, 1200, 1600);
chart1.Series[0].Points.AddY(1200,
500, 1000, 600);
chart1.Series.Add("°Å·¡·®");
chart1.Series[1].Points.DataBindY(new
int[] { 400, 350, 280 });
chart1.Series[1].ChartType
= SeriesChartType.Column;
}
¿©±â¿¡ Line Â÷Æ®·Î À̵¿ Æò±Õ¼±±îÁö ±×·Á ³ÖÀ¸¸é ±×·² µíÇÑ ÁÖ½Ä
Â÷Æ®¸¦ ¸¸µé ¼ö ÀÖ´Ù. ÇÏÁö¸¸ ÀÌ °æ¿ì´Â °¡°Ý°ú °Å·¡·®ÀÇ ´ÜÀ§°¡ ´Þ¶ó Á» ¾ïÁö½º·´´Ù. °¡°ÝÀº ¸îõ¿øÀε¥ °Å·¡·®Àº ¸î¸¸ÁÖÀÌ¸é °¡°ÝÀÌ °Å·¡·®¿¡ °¡·Á º¸ÀÌÁöµµ ¾ÊÀ» °ÍÀÌ´Ù. µÎ °ªÀ» µ¿½Ã¿¡ ²À °°ÀÌ Ç¥½ÃÇÏ·Á¸é ¿¡¸®¾î¸¦ Çϳª ´õ ¸¸µå´Â °ÍÀÌ ÇÕ´çÇÏ´Ù.
private void Form1_Load(object sender, EventArgs
e)
{
chart1.Series[0].ChartType
= SeriesChartType.Candlestick;
chart1.Series[0].CustomProperties
= "PriceDownColor=Blue, PriceUpColor=Red";
chart1.ChartAreas[0].AxisX.MajorGrid.Enabled
= false;
chart1.Series[0].Points.AddY(900,
1600, 1000, 1500);
chart1.Series[0].Points.AddY(1000,
1700, 1200, 1600);
chart1.Series[0].Points.AddY(1200,
500, 1000, 600);
chart1.ChartAreas.Add("°Å·¡·®");
chart1.Series.Add("°Å·¡·®");
chart1.Series[1].Points.DataBindY(new
int[] { 40000, 35000, 28000 });
chart1.Series[1].ChartType
= SeriesChartType.Column;
chart1.Series[1].ChartArea
= "°Å·¡·®";
}
µÎ ¿¡¸®¾îÀÇ ³ôÀÌ ºñÀ²Àº ¾ó¸¶µçÁö Á¶Á¤ÇÒ ¼ö ÀÖ°í À§ÂÊ ¿¡¸®¾îÀÇ XÃàÀº
¾Æ¿¹ ¾ø¾Ö ¹ö¸± ¼öµµ ÀÖ´Ù. ¾Æ´Ï¸é °¢ ½Ã¸®ÁîÀÇ YÃàÀ» ¼·Î
´Ù¸£°Ô ¸¸µé ¼öµµ ÀÖ´Ù. ½Ã¸®Á Á¶ÇÕÇÏ´Â ¹æ½Ä¸¸ ÇØµµ ´Ù¾çÇѵ¥ ¿¡¸®¾î±îÁö ºÐ¸®ÇÒ ¼ö ÀÖ¾î Â÷Æ®ÀÇ Ç¥Çö·ÂÀÌ
¹«±Ã¹«ÁøÇÏ´Ù.
ÆÄÀÌ Â÷Æ®´Â 1:1·Î ´ëÀÀµÇ´Â °ªÀÇ ºñÀ²À» Ç¥ÇöÇÑ´Ù. XÃà¿¡ °ªÀÇ À̸§À» Àû°í YÃà¿¡ ½ÇÁ¦°ªÀ» Àû¾î ´ëÀÀ½Ã۸é Y°ªÀÇ ºñÀ²¿¡ µû¶ó ÆÄÀÌÀÇ ¸éÀûÀ» ÇÒ´çÇÑ´Ù. ´ÙÀ½ ¿¹Á¦´Â °ÔÀ̸ÓÀÇ Á¾Á·
ºñÀ²À» ÆÄÀÌ Â÷Æ®·Î ±×¸°´Ù.
private void Form1_Load(object sender, EventArgs
e)
{
String[]
xValues = { "Å×¶õ", "Àú±×", "ÇÁ·ÎÅ佺", "·£´ý" };
int[]
yValues = { 123, 156, 111, 222 };
chart1.Series[0].Points.DataBindXY(xValues,
yValues);
chart1.Series[0].ChartType
= SeriesChartType.Pie;
}
4°³ÀÇ Á¾Á·ÀÌ ÀÖ°í °¢ Á¾Á·À» »ç¿ëÇÏ´Â °ÔÀ̸ÓÀÇ ¼ö°¡ ÀÖ´Ù. Â÷Æ® ŸÀÔÀÇ Pie·Î ÁöÁ¤ÇÑ´Ù. °ªÀÌ
Ŭ¼ö·Ï ÆÄÀÌÀÇ ´õ ¸¹Àº ¿µ¿ªÀ» Â÷ÁöÇÑ´Ù.
ÆÄÀÌ Â÷Æ®¿¡¼´Â ´ÙÀ½ µÎ °¡Áö »çÇ×À» À¯ÀÇÇØ¾ß ÇÑ´Ù.
- XÃà °ª°ú YÃà °ªÀÇ
°³¼ö°¡ ¹Ýµå½Ã ÀÏÄ¡ÇØ¾ß ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é ¿¹¿Ü°¡ ¹ß»ýÇÑ´Ù. ´Ù¸¥
Â÷Æ® ŸÀÔÀº ¾ø´Â °ªÀ» ¹«½ÃÇÏÁö¸¸ ÆÄÀÌ Â÷Æ®´Â ±×·¸Áö ¾Ê´Ù.
- YÃà °ªÀº ¹éºÐÀ²ÀÌ ¾Æ´Ï¸ç ±×³É ¼ýÀÚÀÌ´Ù. ÃÑÇÕ¿¡ ´ëÇÑ ºñÀ²À» ³»ºÎÀûÀ¸·Î °è»êÇÏ¿© ¸éÀû ºñÀ²À» °áÁ¤ÇϹǷΠ±×³É ¼ýÀÚ¸¦ ÀûÀ¸¸é µÈ´Ù.
Æò¸éÀûÀÎ ¿øÀ̶ó ¸ð¾çÀÌ ´ÜÁ¶·Î¿îµ¥ Ä¿½ºÅÒ ¼Ó¼ºÀ» »ç¿ëÇÏ¸é µðÀÚÀÎÀ» ¾î´À Á¤µµ ¹Ù²Ü ¼ö ÀÖ´Ù.
¼Ó¼º |
¼³¸í |
PieLabelStyle |
·¹À̺í Ç¥½Ã ¹æ½ÄÀ» ¼³Á¤ÇÑ´Ù. ¿µ¿ªÀÌ Á¼À¸¸é ·¹ÀÌºí³¢¸® °ãÄ¡´Âµ¥ ÀÌ·² °æ¿ì´Â
¹Ù±ù¿¡ Ç¥½ÃÇÏ´Â °ÍÀÌ ÁÁ´Ù. Disabled : Ç¥½ÃÇÏÁö ¾Ê´Â´Ù. Inside : ¿ø ¾ÈÂÊ¿¡ Ç¥½ÃÇÑ´Ù. ÀÌ
¿É¼ÇÀÌ µðÆúÆ®ÀÌ´Ù. Outside : ¿ø ¹Ù±ù¿¡ Ç¥½ÃÇÑ´Ù. |
PieLineColor |
·¹À̺íÀ» ¿ÜºÎ¿¡ Ç¥½ÃÇÒ ¶§ ºÎä²Ã°ú ·¹À̺íÀ» ¿¬°áÇÒ ¼±ºÐÀÇ »ö»óÀ» ÁöÁ¤ÇÑ´Ù. ÁöÁ¤ÇÏÁö
¾ÊÀ¸¸é ½Ã¸®ÁîÀÇ BorderColor ¼Ó¼ºÀ» »ç¿ëÇÑ´Ù. chart1.Series[0]["PieLabelStyle"] =
"OutSide"; chart1.Series[0]["PieLineColor"] =
"Blue"; ÀÌ µÎ Äڵ带 Ãß°¡ÇÏ¸é ·¹À̺íÀ» ¹Ù±ùÂÊ¿¡ ±×¸®¸ç ÆÄ¶õ»ö ¼±ºÐÀ¸·Î ·¹À̺íÀ» ¿¬°áÇÏ¿© Ç¥½ÃÇÑ´Ù. |
PieDrawingStyle |
ÆÄÀÌÀÇ ¸ð¾çÀÌ´Ù. Default¿Ü¿¡ ´ÙÀ½ µÎ °¡Áö ½ºÅ¸ÀÏÀÌ ´õ ÀÖ´Ù. SoftEdge : ¹Ù±ùÂÊ »ö»óÀ» ÁøÇÏ°Ô Ã¤»öÇÏ¿© ÀÔü°¨À» ÁØ´Ù. Concave : ¾ÈÀÌ ¿òÇ«ÇÑ Á¢½Ã ¸ð¾çÀ¸·Î ±×¸°´Ù. |
PieStartAngle |
ÆÄÀ̸¦ ±×¸± ¿øÁÖ»óÀÇ °¢µµÀÌ´Ù. µðÆúÆ®´Â 0µµ¿©¼
Å×¶õÀÇ ½ÃÀÛÁ¡ÀÌ 3½Ã ¹æÇâÀ¸·Î µÇ¾î ÀÖÁö¸¸ 0~360±îÁöÀÇ
°¢µµ¸¦ ÁöÁ¤Çϸé ÀÌ °¢µµ¿¡¼ ½ÃÀÛÇÑ´Ù. °¢µµ´Â ½Ã°è ¹æÇâÀ¸·Î Áõ°¡ÇÑ´Ù. Áï 90µµ´Â 12½Ã°¡
¾Æ´Ñ 6½ÃÀÌ´Ù. |
Exploded |
°³º° Æ÷ÀÎÅÍ¿¡ ÁöÁ¤ÇÏ´Â ¼Ó¼ºÀ̸ç ÀÌ ¼Ó¼ºÀ» ÁöÁ¤ÇÑ °ªÀº ºÎä²ÃÀÌ ¹ÛÀ¸·Î Åö Æ¢¾î³ª¿Àµµ·Ï ±×·Á °Á¶ÇÑ´Ù. |
DoughnutRadius |
µµ³Ó ŸÀÔÀÇ Â÷Æ®¿¡¼ µµ³ÓÀÇ ºñÀ²À̸ç ÀÌ °ªÀÌ Å¬¼ö·Ï Áß¾ÓÀÇ ±¸¸ÛÀÌ ÀÛ¾ÆÁø´Ù. µðÆúÆ®´Â
60ÀÌ¾î¼ ¿Ü°û¿øÁÖ¿¡¼ 60% ¾ÈÂʱîÁö°¡ µµ³ÓÀÌ°í °¡¿îµ¥
40%°¡ ±¸¸ÛÀ¸·Î ±×·ÁÁø´Ù. |
Doughnut ŸÀÔÀº Pie Â÷Æ®¿Í
Ç¥½ÃÇÏ´Â ¹æ½ÄÀº °ÅÀÇ °°µÇ °¡¿îµ¥ ºÎºÐÀÌ »½ ¶Õ·Á ÀÖ´Ù´Â Á¡ÀÌ ´Ù¸£´Ù. ´ÙÀ½ ¿¹Á¦´Â µµ³Ó ¹ÝÁö¸§À» 80À¸·Î ´Ã¸®°í ·£´ý µ¥ÀÌÅ͸¸ ¹Ù±ùÀ¸·Î »©¼ °Á¶ÇÑ´Ù.
private void Form1_Load(object sender, EventArgs
e)
{
String[]
xValues = { "Å×¶õ", "Àú±×", "ÇÁ·ÎÅ佺", "·£´ý" };
int[]
yValues = { 123, 156, 111, 222 };
chart1.Series[0].Points.DataBindXY(xValues,
yValues);
chart1.Series[0].ChartType
= SeriesChartType.Doughnut;
chart1.Series[0]["PieDrawingStyle"]
= "SoftEdge";
chart1.Series[0]["DoughnutRadius"]
= "80";
chart1.Series[0].Points[3]["Exploded"]
= "true";
}
Exploded Ä¿½ºÅÒ ¼Ó¼ºÀº ½Ã¸®Áî¿¡ ´ëÇØ ÁöÁ¤ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó
µ¥ÀÌÅÍ Æ÷ÀÎÅÍ¿¡ ´ëÇØ ÁöÁ¤ÇÏ´Â °ÍÀÓÀ» À¯ÀÇÇÏÀÚ. µµ³Ó ºñÀ²À» 80À¸·Î
ÁöÁ¤Çؼ °¡¿îµ¥ 20%¸¸ ±¸¸ÛÀÌ´Ù.
ÀÌ ¿Ü¿¡ 3D ½ºÅ¸ÀϱîÁö Ȱ¿ëÇÏ¸é ´õ ´Ù¾çÇÑ µðÀÚÀÎÀ» ¸¸µé ¼ö ÀÖ´Ù. ±âº» ¼Ó¼º°ú Ä¿½ºÅÒ ¼Ó¼ºÀ» ÃæºÐÈ÷ ¿¬±¸ÇØ º¸°í ³Ê¹« ¿ä¶õÇÏÁö ¾Ê°Ô¸¸ Àå½ÄÇÏ¸é µÈ´Ù.