µû¶ó Çϱâ

¼Ò°³

Chart´Â ´å³ÝÀ¸·Î ±¸ÇöµÈ Â÷Æ® ÄÁÆ®·ÑÀ̸ç ÈçÈ÷ MSChart¶ó°í ºÎ¸¥´Ù. Á¤º¸¸¦ Ãà¾àÇØ º¸¿© ÁÖ¾î¾ß ÇÏ´Â »ç¹«¿ë ÇÁ·Î±×·¥¿¡¼­ ÁÖ·Î ¸¹ÀÌ »ç¿ëÇÑ´Ù. °æÀï Á¦Ç°À¸·Î´Â InfragisticsÀÇ UltraChart¿Í DevExpressÀÇ DevExtream Â÷Æ® ÄÁÆ®·ÑÀÌ ÀÖÀ¸¸ç µðÀÚÀÎÀÌ ÈξÀ ¿¹»ÚÁö¸¸ À¯·á Á¦Ç°ÀÌ´Ù.

Chart´Â µðÀÚÀÎÀÌ ¼Ò¹ÚÇÑ ÆíÀÌÁö¸¸ ´å³Ý¿¡ ±âº» Æ÷ÇԵǾî ÀÖ´Â ÄÁÆ®·ÑÀ̾ º°µµÀÇ ºñ¿ëÀÌ µéÁö ¾Ê°í Ãß°¡ ¼³Ä¡µµ ÇÊ¿ä ¾ø¾î °£ÆíÇÏ´Ù. ºñÁÖ¾ó ½ºÆ©µð¿À¸¸ ¼³Ä¡ÇÏ¸é ¹Ù·Î ¾µ ¼ö ÀÖ´Ù. ÀÌ °­Á´ ºñÁÖ¾ó ½ºÆ©µð¿À 2019 Ä¿¹Â´ÏƼ ¹öÀüÀ» »ç¿ëÇÑ´Ù.

´ÙÇàÀÎÁö ºÒÇàÀÎÁö ÄÁÆ®·Ñ ÀÚü´Â 10¿©Àü° ¾÷±×·¹À̵尡 ¾ø¾î ºñÁÖ¾ó ½ºÆ©µð¿ÀÀÇ °ÅÀÇ ¸ðµç ¹öÀü¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×·¡ÇÈ È¯°æÀÇ WinForm ÇÁ·ÎÁ§Æ®¿¡ ¹Ù·Î È°¿ëÇÒ ¼ö ÀÖ°í ASP.NET¿¡¼­µµ ¾µ ¼ö ÀÖ¾î À¥µµ Áö¿øÇÑ´Ù. ¿©±â¼­´Â ÆíÀÇ»ó WinForm¿¡¼­ ÁÖ·Î ½Ç½ÀÇ쵂 ASP.NET¿¡¼­ »ç¿ëÇÏ´Â ¹æ¹ýµµ º°¹Ý ´Ù¸£Áö ¾Ê´Ù.

³Ê¹« ¿À·¡µÈ ÄÁÆ®·ÑÀÌ´Ù º¸´Ï ¹®¼­°¡ Á» ºÎÁ·Çѵ¥ ´ÙÀ½ ÁÖ¼Ò¿¡ °£´ÜÇÑ ÀÚ½À¼­°¡ ÀÖ´Ù. ºñÁÖ¾ó ½ºÆ©µð¿À 2010ÀÇ ¹®¼­ÀÌ¸ç ±¸±Û¸µÀ» ÅëÇؼ­´Â ã±â Èûµç ¸µÅ©¿©¼­ ÁÖ¼Ò¸¦ ÀÏÀÏÀÌ Ä¡°í µé¾î°¡´Â ¼ö¹Û¿¡ ¾ø´Ù.

 

https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/dd489238(v=vs.100)

 

»ó´Ü ¸Þ½ÃÁö¿¡ ´õ ÀÌ»ó °ü¸®ÇÏÁö´Â ¾Ê´Â ¹®¼­¶ó°í µÇ¾î ÀÖ´Ù. ÃֽŠ¹öÀü¿¡ ÀÚ½À¼­´Â ¾øÁö¸¸ ·¹ÆÛ·±½º´Â Á¸ÀçÇÑ´Ù. Chart ÄÁÆ®·Ñ À̸§À¸·Î °Ë»öÇÏ¸é ¾î·ÆÁö ¾Ê°Ô ãÀ» ¼ö ÀÖ´Ù.

 

https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.datavisualization.charting.chart?view=netframework-4.8

 

°´Ã¼ ÁöÇâ ¶óÀ̺귯¸®´Â ·¹ÆÛ·±½º°¡ ÇʼöÀ̹ǷΠÁñ°Ü ã±âÇØ µÎ°í ÇÊ¿äÇÒ ¶§¸¶´Ù Âü°íÇØ¾ß ÇÑ´Ù. Ä£ÀýÇÏ°Ô Àß ¸¸µé¾îÁø Â÷Æ® »ùÇõµ ÀÖ´Ù.

¿©·¯ °¡Áö Â÷Æ® »ùÇðú °£·«ÇÑ ¼Ò½º, ¼³¸íÀÌ Àß Á¤¸®µÇ¾î ÀÖ´Ù. ÀÌ·¸°Ô Àß ¸¸µç »ùÇÃÀÌ ÀÖÁö¸¸ MSÀÇ °ø½Ä »çÀÌÆ®¿¡¼­´Â ´õ ÀÌ»ó ãÀ» ¼ö ¾øÀ¸¸ç °³ÀÎ ºí·Î±×¸¦ µÚÁ®¾ß °Ü¿ì ÀúÀåµÈ »çº»À» ãÀ» ¼ö ÀÖ´Ù. MS°¡ ¹®¼­ Çϳª´Â ³¡³»ÁÖ°Ô Àß ¸¸µé°í Á¤¸®ÇÏ´Â ÆíÀε¥ Chart¿¡ ´ëÇÑ Áö¿øÀº Á» ¹ÚÇÑ ÆíÀÌ´Ù.

±×·¡¼­ ´«ÄÚ¶ã»õ¾øÀÌ ¹Ù»Û ½Ã°£À» ÂÉ°³ ¹ãÀáÀ» ÁÙ¿© °¡¸ç ÀÌ °­Á¸¦ ÁýÇÊÇß´Ù. ·¹ÆÛ·±½º´Â Àß Á¤¸®µÇ¾î ÀÖÀ¸¹Ç·Î ¸ðµç ÁÖÁ¦¸¦ ÀÏÀÏÀÌ ³ª¿­Çϱ⺸´Ù´Â ±¸Á¶¿Í ¹æ¹ý À§ÁÖ·Î ÄÁÆ®·Ñ È°¿ë¹ýÀ» ¼Ò°³Çϱâ·Î ÇÑ´Ù. Ç×»ó ÇÁ·ÎÁ§Æ®¸¦ ¿ì¼± ¼öÇàÇØ¾ß ÇÏ´Â °³¹ßÀÚ ½ÅºÐÀÌ´Ù º¸´Ï ¹®ÀåÀ» Àß °¡µåµë°Å³ª ±×¸²À» ¿¹»Ú°Ô ±×¸± ½Ã°£ÀÌ ÃæºÐÄ¡ ¾ÊÀ½À» ¾çÇØ ¹Ù¶õ´Ù.

µðÀÚÀ̳ʷΠ½Ç½ÀÇϱâ

ºñÁÖ¾ó ½ºÆ©µð¿À¸¦ ½ÇÇàÇØ ³õ°í ¼ø¼­´ë·Î µû¶óÇϸç Chart ÄÁÆ®·ÑÀ» »ç¿ëÇØ º¸ÀÚ. µû¶óÇÏ´Ù º¸¸é ÀüüÀûÀÎ ±¸Á¶¿Í ±â´ÉÀ» ´ëºÎºÐ ÆľÇÇÒ ¼ö ÀÖ´Ù. ºñÁÖ¾ó ½ºÆ©µð¿À 2019¸¦ ½ÇÇàÇÑ´Ù. ÆÄÀÏ/»õ·Î ¸¸µé±â/ÇÁ·ÎÁ§Æ® Ç׸ñÀ» ¼±ÅÃÇÏ°í Windows Forms¾Û(.Net Framework) ÅÛÇø´À» ¼±ÅÃÇÑ´Ù.

ÇÁ·ÎÁ§Æ® À̸§Àº chartTest·Î ÁöÁ¤ÇÑ´Ù. ÀÌ ÇÁ·ÎÁ§Æ® Çϳª·Î ¸ðµç ½Ç½ÀÀ» ´Ù ÁøÇàÇÒ °ÍÀÌ´Ù. ¿©·¯ºÐµµ °­Á¸¸ º¸Áö ¸»°í ¹Ýµå½Ã Äڵ带 °°ÀÌ ÀÛ¼ºÇØ º¸ÀÚ. ÇÁ·ÎÁ§Æ®°¡ »ý¼ºµÇ°í ºóÆûÀÌ ¿­¸°´Ù. µµ±¸ »óÀÚÀÇ µ¥ÀÌÅÍ Ä«Å×°í¸®¿¡¼­ Chart¸¦ ¼±ÅÃÇÏ¿© Æû¿¡ ¹èÄ¡ÇÏ°í Æû¿¡ Â÷µµ·Ï Àû´çÈ÷ Å©±â¸¦ ´Ã¸°´Ù.

 

Â÷Æ®ÀÓÀ» Ç¥½ÃÇϱâ À§ÇØ Æû¿¡ »ùÇà Â÷Æ®°¡ Ç¥½ÃµÇÁö¸¸ ¾ÆÁ÷ µ¥ÀÌÅÍ°¡ ¾ø¾î ÀÌ´ë·Î ½ÇÇàÇÏ¸é ¾Æ¹« °Íµµ ³ªÅ¸³ªÁö ¾Ê´Â´Ù. ¼Ó¼ºÃ¢À» ÅëÇØ µ¥ÀÌÅ͸¦ Á¦°øÇÏ°í ¿©·¯ ¼Ó¼ºÀ» ÁöÁ¤ÇØ¾ß ÇÑ´Ù. ¼Ó¼ºÀ» ã±â ½±µµ·Ï ¾ËÆĺª¼øÀ¸·Î Á¤·ÄÇØ ³õÀÚ.

Â÷Æ® Ç¥¸éÀÎ ChartArea1ÀÌ »ý¼ºµÇ¾î ÀÖ°í µ¥ÀÌÅÍÀÇ ÁýÇÕÀÎ Series1µµ »ý¼ºµÇ¾î ÀÖ´Ù. ±×·¯³ª ¾ÆÁ÷ µ¥ÀÌÅÍ´Â ¾ø´Ù. ¼Ó¼ºÃ¢ÀÇ Series ¿·ÀÇ ... ¹öÆ°À» Ŭ¸¯ÇÏ¿© ½Ã¸®Áî Ä÷º¼Ç ÆíÁý±â¸¦ ¿¬´Ù. ½Ã¸®Áî ÆíÁý±â¿¡´Â Series1ÀÌ ÀÌ¹Ì »ý¼ºµÇ¾î ÀÖ´Ù. Points¼Ó¼ºÀÌ µ¥ÀÌÅÍ Ä÷º¼ÇÀÌ¸ç ¼Ó¼º¸í ¿·ÀÇ ... ¹öÆ°À» ´©¸£¸é µ¥ÀÌÅÍ ÆíÁý±â°¡ ¿­¸°´Ù.

Series Ä÷º¼Ç ¾È¿¡ Points Ä÷º¼ÇÀÌ Æ÷ÇԵǾî ÀÖ´Â ±¸Á¶¿©¼­ ¼Ó¼º ÆíÁýâÀÌ ÁßøÇؼ­ ¿­¸°´Ù. ÃÖÃÊ DataPoint Ä÷º¼ÇÀº ºñ¾î ÀÖ´Ù. Ãß°¡ ¹öÆ°À» ´©¸£¸é DataPoint °´Ã¼ Çϳª°¡ »ý¼ºµÈ´Ù. ÀÌ °´Ã¼ÀÇ YValues¿¡ 55¸¦ ÀÔ·ÂÇÑ´Ù.

 

ÇϳªÀÇ °ªÀÌ »ý¼ºµÇ¾ú´Ù. °è¼Ó Ãß°¡ ¹öÆ°À» ´©¸£°í 66, 77, 70, 88À» ÀÔ·ÂÇÑ´Ù. ÃÑ ´Ù¼¸ °³ÀÇ µ¥ÀÌÅÍ°¡ ½Ã¸®Áî¿¡ Ãß°¡µÇ¾ú´Ù. È®ÀÎ ¹öÆ°À» ´­·¯ Ä÷º¼Ç ÆíÁý±â¸¦ ´Ý´Â´Ù. ÀÌ »óÅ¿¡¼­ Æû µðÀÚÀÎâÀ» º¸¸é ÀÌ¹Ì ´Ù¼¸ °³ÀÇ µ¥ÀÌÅÍ°¡ ¸·´ë ±×·¡ÇÁ·Î Ç¥½ÃµÈ´Ù. ½ÇÇàÇϸé ÀÌ ±×·¡ÇÁ°¡ ±×´ë·Î ³ªÅ¸³­´Ù.

Points ¹è¿­¿¡ °ªÀ» ´õ ¸¹ÀÌ ³ÖÀ¸¸é ´õ ¸¹Àº ¸·´ë°¡ ³ªÅ¸³­´Ù. Â÷Æ®ÀÇ ¸ð¾çÀº ½Ã¸®ÁîÀÇ ChartType ¼Ó¼ºÀ¸·Î ÁöÁ¤Çϴµ¥ µðÆúÆ® ŸÀÔÀº ¸·´ë ±×·¡ÇÁÀÎ ColumnÀÌ´Ù. ¼Ó¼º ÆíÁý±â¿¡¼­ ´Ù¸¥ ŸÀÔÀ¸·Î ¹Ù²ã º¸ÀÚ.

´ÙÀ½Àº Bar¿Í Line Â÷Æ® ŸÀÔÀ¸·Î ¹Ù²Û ¸ð½ÀÀÌ´Ù. Chart ÄÁÆ®·ÑÀº 35°¡Áö³ª µÇ´Â Â÷Æ® ŸÀÔÀ» Áö¿øÇÑ´Ù. µ¥ÀÌÅÍÀÇ ±¸Á¶¿¡ µû¶ó °¡´ÉÇÑ Â÷Æ® ŸÀÔÀÌ Á¦ÇѵȴÙ. ¿¬¼ÓÀûÀÎ µ¥ÀÌÅÍ´Â Bar, Column, Line, StepLine, Spline, Point Á¤µµÀÇ Å¸ÀÔÀ» ÁÖ·Î »ç¿ëÇÑ´Ù.

 

½Ã¸®Á Çϳª ´õ Ãß°¡ÇØ º¸ÀÚ. µ¿½Ã¿¡ µÎ °³ÀÇ Â÷Æ®¸¦ °°ÀÌ º¸¿©ÁÙ ¼ö ÀÖ´Ù. ½Ã¸®Áî Ä÷º¼Ç ÆíÁý±â¸¦ ¿­¾î Series2¸¦ Ãß°¡ÇÏ°í Points Ä÷º¼Ç¿¡ 33, 44, 22, 40, 50 ´Ù¼¸ °³ÀÇ °ªÀ» ÀÔ·ÂÇØ ³Ö´Â´Ù.

 

Series1Àº Line Â÷Æ® ŸÀÔÀ¸·Î µÎ°í Series2´Â Column ŸÀÔÀ¸·Î µÎ¸é µÎ °¡Áö ŸÀÔÀÇ Â÷Æ®°¡ °°ÀÌ Ç¥½ÃµÈ´Ù. µÑ ´Ù ColumnÀ¸·Î ÇÏ¸é ¸·´ë°¡ ³ª¶õÈ÷ Ç¥½ÃµÈ´Ù. °°ÀÌ Ç¥½ÃÇÒ ¼ö Àִ ŸÀÔÀÌ ÀÖ°í ±×·¸Áö ¾ÊÀº ŸÀÔÀÌ ÀÖ´Ù. ¿¹¸¦ µé¾î Column°ú Bar´Â ¹æÇâÀÌ ´Þ¶ó °°Àº Ç¥¸é¿¡ Ç¥½ÃÇÒ ¼ö ¾ø´Ù.

 

´ÙÀ½Àº Area¸¦ Çϳª ´õ Ãß°¡ÇØ º¸ÀÚ. Area´Â ½Ã¸®Á ±×¸®´Â ¿µ¿ªÀÌ¸ç ±âº»ÀûÀ¸·Î Çϳª ÁÖ¾îÁöÁö¸¸ ÇÊ¿äÇѸ¸Å­ ¸¸µé ¼ö ÀÖ´Ù. ChartAreas ¼Ó¼ºÀÇ ... À» Ŭ¸¯ÇÏ¸é ¿¡¸®¾î ÆíÁý±â°¡ ¿­¸®¸ç ChartArea1ÀÌ ¹Ì¸® »ý¼ºµÇ¾î ÀÖ´Ù. Ãß°¡ ¹öÆ°À» ´­·¯ ChartArea2¸¦ Çϳª ´õ ¸¸µç´Ù.

¿¡¸®¾î¸¦ Ãß°¡Çϸé Â÷Æ® ³ôÀÌ°¡ Àý¹ÝÀ¸·Î ÁÙ¾îµç´Ù. ¾ÆÁ÷ º¸ÀÌÁö´Â ¾ÊÁö¸¸ ¾Æ·¡ÂÊ¿¡ ¿¡¸®¾î°¡ Çϳª ´õ »ý±ä °ÍÀÌ´Ù.

»õ·Î »ý±ä ¿¡¸®¾î¿¡´Â ½Ã¸®Áî°¡ ¹èÄ¡µÇ¾î ÀÖÁö ¾Ê¾Æ ÇöÀç´Â ºñ¾î ÀÖ´Ù. ½Ã¸®Áî ÆíÁý±â¸¦ ¿­°í Series2ÀÇ ¼Ó¼ºÃ¢¿¡¼­ ChartArea¸¦ ChartArea2·Î ÁöÁ¤ÇÏ°í ChartTypeÀ» Bar·Î º¯°æÇØ º¸ÀÚ.

Ãâ·Â Ç¥¸éÀ» ºÐ¸®ÇÏ¸é °¢ ¿¡¸®¾î¿¡ ´Ù¸¥ ŸÀÔÀÇ Â÷Æ®¸¦ °¢°¢ ¹èÄ¡ÇÒ ¼ö ÀÖ´Ù. À§ÂÊ ¿¡¸®¾î¿¡´Â Column ½Ã¸®Á Ç¥½ÃÇÏ°í ¾Æ·¡ÂÊ ¿¡¸®¾î¿¡´Â Bar ½Ã¸®Á Ç¥½ÃÇß´Ù.

ÀÌ·± ½ÄÀ¸·Î ¿¡¸®¾î¿Í ½Ã¸®Á Á¶ÇÕÇÏ¿© ´Ù¾çÇÑ ÇüÅÂÀÇ Â÷Æ®¸¦ ±×¸°´Ù. ¿©·¯ Á¤º¸¸¦ ÇѲ¨¹ø¿¡ Ç¥½ÃÇÒ ¼öµµ ÀÖ°í ŸÀÔÀÌ ´Ù¸¥ Á¤º¸´Â ¿¡¸®¾î¸¦ ºÐ¸®ÇÏ¿© º¸¿©ÁÙ ¼öµµ ÀÖ´Ù.

¹ü·Ê´Â µµÇ¥ÀÇ °¢ ½Ã¸®Á ¼³¸íÇϴ ǥ½ÄÀÌ´Ù. ¿À¸¥ÂÊ À§¿¡ ÆĶõ»öÀÌ Series1ÀÌ°í ³ë¶õ»öÀÌ Series2¶ó°í µÇ¾î ÀÖ¾î ÀüÇô ¼³¸íÀûÀÌÁö ¾Ê´Ù. ½Ã¸®Á ±×³É Ãß°¡¸¸ ÇßÀ» »ÓÀ̶ó µðÆúÆ® À̸§ÀÌ ºÙ¾î ÀÖ´Ù. ½Ã¸®Áî ÆíÁý±â¸¦ ¿­¾î Series1ÀÇ LegendText¸¦ "¼ºÀûÇ¥"·Î, Sereis2ÀÇ LegendText¸¦ "¸ÅÃâ"·Î º¯°æÇØ º¸ÀÚ.

¹ü·Êµµ ÇÊ¿äÇѸ¸Å­ »ý¼ºÇÒ ¼ö ÀÖÀ¸¸ç ¾î¶² ¹ü·Ê¿¡ ¾î¶² Ç¥½ÄÀ¸·Î ½Ã¸®Á ¼³¸íÇÑ °ÍÀÎÁö ÁöÁ¤ÇÑ´Ù. µðÆúÆ®·Î ÇϳªÀÇ ¹ü·Ê°¡ ¹Ì¸® »ý¼ºµÇ¾î ÀÖ´Ù. Â÷Æ®¸¦ ¼±ÅÃÇÏ°í ¼Ó¼ºÃ¢¿¡¼­ LegendsÀÇ ...À» ´­·¯ Ä÷º¼Ç ÆíÁý±â¸¦ ¿­°í Legend1ÀÇ ¼Ó¼ºÀ» ´ÙÀ½°ú °°ÀÌ ÆíÁýÇÑ´Ù.

 

Docking : Left Â÷Æ®ÀÇ ¿ÞÂÊ¿¡ ¹èÄ¡ÇÑ´Ù.

BackColor : Yellow

Title : "½Ã¸®Áî ¼³¸í"

 

¹ü·Ê°¡ ¿ÞÂÊÀ¸·Î À̵¿ÇÏ¸ç ¹è°æ»öÀÌ ¹Ù²î°í À§ÂÊ¿¡ Á¦¸ñÀÌ Ç¥½ÃµÈ´Ù.

ÀÌ ¿Ü¿¡ Enabled·Î ¹ü·Ê Ç¥½Ã ¿©ºÎ, LegendStyle·Î ¹ü·ÊÀÇ ³ª¿­ ¹æÇâ, °¢Á¾ »ö»ó°ú ¸ð¾çÀ» Á¶Á¤ÇÒ ¼ö ÀÖ´Ù. µÎ °³ ÀÌ»óÀÇ ¹ü·Ê¸¦ ¸¸µé¾î °¢ ½Ã¸®Á ±×·ìÀ¸·Î ³ª´©¾î ¼³¸íÇÒ ¼öµµ ÀÖ´Ù.

´ÙÀ½Àº Â÷Æ®¿¡ ŸÀÌƲÀ» ºÙ¿© º¸ÀÚ. Â÷Æ®¸¦ ¼±ÅÃÇØ ³õ°í Titles ¼Ó¼ºÀÇ ... ¹öÆ°À» ´­·¯ Ä÷º¼Ç ÆíÁý±â¸¦ ¿¬´Ù. µðÆúÆ®·Î ºñ¾î Àִµ¥ ŸÀÌƲµµ ¿©·¯ °³ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. Çϳª Ãß°¡ÇÑ ÈÄ Text´Â "Â÷Æ® ŸÀÌƲ"·Î ÁöÁ¤ÇÏ°í ÆùÆ®´Â ±Ã¼­ 20 pt·Î ÁöÁ¤ÇÑ´Ù.

Â÷Æ® À§ÂÊ¿¡ ŸÀÌƲÀÌ Ç¥½ÃµÈ´Ù. ŸÀÌƲÀ» °è¼Ó Ãß°¡ÇÏ¿© ¿©·¯ ÁٷΠǥ½ÃÇÒ ¼öµµ ÀÖ°í °¢ º¯¿¡ ŸÀÌƲÀ» ºÙÀÏ ¼öµµ ÀÖ´Ù.

¾Ö³ëÅ×À̼Ç(Annotation)Àº µµÇ¥ÀÇ °¢ ºÎºÐ¿¡ ºÙÀÌ´Â º¸ÃæÀûÀÎ ¼³¸íÀÌ´Ù. ¿©·¯ °³¸¦ ºÙÀÏ ¼ö ÀÖ¾î ÀÌ ¿ª½Ã Ä÷º¼ÇÀÌ´Ù. Â÷Æ®ÀÇ Annotations ¼Ó¼º¿¡¼­ ... ¹öÆ°À» ´­·¯ Ä÷º¼Ç ÆíÁý±â¸¦ ¿¬´Ù. ÃÖÃÊ ºñ¾î Àִµ¥ ¾Æ·¡ÂÊÀÇ Ãß°¡ ¹öÆ° ÄÞº¸ ¹Ú½º¸¦ ¿­¸é ¾Ö³ëÅ×ÀÌ¼Ç ¸ñ·ÏÀÌ ³ªÅ¸³­´Ù.

EllipseAnnotationÀ» ¼±ÅÃÇÏ¸é ¿ÞÂÊ À§¿¡ Ÿ¿øÇüÀÌ Çϳª ³ªÅ¸³­´Ù. Text ¼Ó¼ºÀº "¿©±â ÁÖ¸ñ"À¸·Î º¯°æÇÏ°í BackColor¸¦ ´«¿¡ ¶ç´Â Lime»öÀ¸·Î ÁöÁ¤ÇÑ´Ù. ÀÌ ¾Ö³ëÅ×À̼ÇÀ» ¾îµð´Ù ³õÀ» °ÍÀΰ¡´Â AnchorDataPoint ¼Ó¼ºÀ¸·Î ÁöÁ¤Çϴµ¥ Series1ÀÇ DataPoint1·Î ÁöÁ¤ÇÑ´Ù.

ÀÌ·¸°Ô ÇÏ¸é ½Ã¸®Áî1ÀÇ 1¹ø ¸·´ë À§¿¡ ¾Ö³ëÅ×À̼ÇÀÌ ³ªÅ¸³­´Ù. ³Ê¹« ¹Ù¦ ºÙ¾î Àִµ¥ AnchorOffsetY ¼Ó¼ºÀ» 2·Î ÁöÁ¤ÇÏ¿© Àû´çÈ÷ ¶ç¿î´Ù.

¿©±â±îÁö µðÀÚÀÎâ¿¡¼­ Â÷Æ®ÀÇ ¼Ó¼ºÀ» ¹Ù²ã °¡¸ç ¿©·¯ °¡Áö ½Ç½ÀÀ» ÇØ º¸¾Ò´Ù. ÀÌ ½Ç½ÀÀ» ÅëÇØ Â÷Æ®·Î ¾î¶² ÀÛ¾÷ÀÌ °¡´ÉÇÑÁö ¾Ë ¼ö ÀÖÀ¸¸ç ´ëÃæÀÇ ±¸Á¶µµ ´«Ä¡Ã§ ¼ö ÀÖ´Ù. ÇѵΠ¹ø ´õ ½Ç½ÀÀ» ¹Ýº¹ÇØ º¸ÀÚ.

ÄÚµå·Î ¸¸µé±â

µðÀÚÀΠŸÀÓ¿¡ ¼Ó¼º¸¸ Á¶Á¤Çصµ Â÷Æ®¸¦ ¿øÇÏ´Â Çü½ÄÀ¸·Î ¸¸µé ¼ö ÀÖ´Ù. ºñÁÖ¾ó ½ºÆ©µð¿ÀÀÇ Áö¿øÀÌ ÈǸ¢ÇØ ¼Ó¼ºÀ» ÀÌ°Í Àú°Í ¹Ù²ã º¸¸ç Àç¹ÌÀÖ°Ô °øºÎÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª ¸¶¿ì½º¸¦ ÅëÇÑ ÆíÁýÀº ÀçÇöÀÌ ¾î·Æ°í ´Ü°è°¡ º¹ÀâÇØ ÇÑ°è°¡ ÀÖ´Ù.

Â÷Æ®¿¡ Ãâ·ÂÇÒ µ¥ÀÌÅ͸¦ ·±Å¸ÀÓ¿¡ Á¦´ë·Î ±¸ÇÒ ¼ö Àֱ⠶§¹®¿¡ °á±¹Àº ÄÚµå·Î ÇÁ·Î±×·¡¹ÖÇØ¾ß ÇÑ´Ù. ¾Õ¿¡¼­ µðÀÚÀΠŸÀÓ¿¡ ¸¸µç Â÷Æ® ÄÁÆ®·ÑÀ» »èÁ¦ÇÏ¿© ¿ø·¡´ë·Î ¸®¼ÂÇÑ´Ù.

ºó Æû¿¡ Â÷Æ® ÄÁÆ®·ÑÀ» »õ·Î Çϳª ¹èÄ¡ÇÑ´Ù. Æû Å©±â´Â 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);

}

 

ÀÌ·± Â÷Æ®°¡ ÇÊ¿äÇÏ´Ù¸é ÀÌ Äڵ带 ±×´ë·Î °¡Á®°¡ ÆíÁýÇÏ¸é µÈ´Ù. ÄÚµå´Â º¹»ç ¹× ¹Ýº¹ÀÌ ½±´Ù´Â ¸é¿¡¼­ ¿ª½Ã ¿ì¿ùÇÏ°í ½Ç¿ëÀûÀÌ´Ù.