1๏ธโฃย [Chart Libaray ๋?]
2๏ธโฃย [JavaScript Best Chart Libraries in 2022]
3๏ธโฃย [Chart.js ๋ก ์์๋ณด๋ ์์]
๋ฐ์ดํฐ ์์ง์ด ์ฆ๊ฐํจ์ ๋ฐ๋ผ ๋ชจ๋ ์กฐ์ง์์ ๋ฐ์ดํฐ๋ฅผ ์ฐจํธ๋ ํ๋ก ํ์ํด์ผ ํ๋ ํ์์ฑ์ด ๋์ฑ ์ค์ํด์ง๊ณ ์๋ค. ๋ชจ๋ ์ฌ๋์ด ์ดํดํ ์ ์๋ ๋์๋ณด๋์ ์ฐจํธ๋ฅผ ๋ง๋ค๊ธฐ ์ํด ๊ฐ๋ฐ์๋ ๋ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ ์ฝ๋๋ฅผ ํผํฉํด์ผ ํ๋ค. ๊ทธ๋ฌ๋ ์ฐจํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋์ ๋ ์ดํ ๋ฐ์ดํฐ ์๊ฐํ๊ฐ ๊ฐ์ ๋์๋ค. ์ด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ฌ๊ทธ์ธ์ ํตํด ๋ํํ ์ฐจํธ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฌ์ฉ์์ ์๊ตฌ ์ฌํญ์ ๊ฐ์ฅ ์ ํฉํ JavaScript Charting Library๋ฅผ ์๋ณํ๊ธฐ ์ํด ๋ค์ํ ์ต์ ์ ์ดํด๋ณด์.
Chart.js๋ 8๊ฐ์ง ์ ํ์ ์ฐจํธ๋ฅผ ์ง์ํ๋ ์คํ ์์ค JavaScriptย ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ํฌ๊ธฐ๊ฐ 60kb์ ๋ถ๊ณผํ๊ธฐ ๋๋ฌธ์ JS ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ค. ๋ ์ด๋, ์ธ๋ผ์ธ ์ฐจํธ, ์ํ ์ฐจํธ, ๋ง๋ ์ฐจํธ, ์ฐ์ ๋, ๋ฉด์ ์ฐจํธ, ๋ฒ๋ธ ์ฐจํธ ๋ฐ ํผํฉ ์ฐจํธ๊ฐ ๋ชจ๋ ์ ๊ณต๋๋ค. ์ํ์ ์ธ๊ด์ด ์๋นํ ํ๋์ ์ด๊ณ , ์ฒ์ ๊ทธ๋ฆด ๋ ์ฒซ ์ ๋๋ฉ์ด์ ์ด ํน์ง. ์๊ณ์ด๋ ์ง์๋๋ค. ๋ ๋๋ง์๋ ์บ๋ฒ์ค ์์๋ฅผ ์ฌ์ฉํ๋ฉฐ, ํฌ๊ธฐ ์กฐ์ ์ ์ํด ์ฐฝ ํฌ๊ธฐ ์กฐ์ ์ ๋ฏผ๊ฐํ๋ค. Internet Explorer 9์์ ํ์ ํธํ์ฑ์ด ์์ต๋๋ค.IE7์์๋ ํด๋ฆฌํ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๐ํน์ง
๐์ฌ์ฉ ๊ฐ๋ฅํ ์ฐจํธ
๋ง๋
์
ํ์ด
๋๋
๋ฒ๋ธ(bubble)
์ง์ญ
์ค์ผํ๋ฌ(Scatter)
๋ ์ด๋
๐๊ฐ๊ฒฉ
๋ฌด๋ฃ
Fusionย Charts๋ ํ์ฌ ์์ฅ์์ ๊ฐ์ฅ ์์ ํ JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ฉฐ 90๊ฐ ์ด์์ ์ฐจํธ ์ต์ ๊ณผ 900๊ฐ์ ๋งต์ ์ฌ์ฉํ ์ ์๋ค. ์ ๊ณ ์ต๊ณ ์ ์ธ๊ด์ ์๋ํ๋ ์ฐจํธ๋ฅผ ๋ณด์ ํ๊ณ ์์ผ๋ฉฐ ๋์๋ณด๋๋ฅผ ํตํ ๊ฐ๋ ฅํ ๋ณด๊ณ ์ ์์ฑ ๊ฒฝํ์ ํตํด ์ฐจํธ๋ฅผ ๋ฐฑ์ ํ๊ณ ์๋ค. ๋ชจ๋ ๋น์ฆ๋์ค ํ๋์ ํ๋์ ํ์ ํ ์ ์๋ค.
Fusion Charts๋ PC, Mac, iPhone, Android ํ๋ธ๋ฆฟ์ ํฌํจํ ๋ค์ํ ์ฅ์น์ ํธํ๋๋ฉฐ IE6๋ฅผ ํฌํจํ ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ ํธํ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ๊ทธ ์ด์์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
๐ํน์ง
2D ๋ฐ 3D๋ก ๊ตฌ์ฑ๋ ์์ญ ๊ฐ์ง ์ฐจํธ ์ต์ ๊ณผ ๋ชจ๋ ๋๋ฅ์ ์์ฐ๋ฅด๋ 950๊ฐ ์ด์์ ๋งต์ด ์์ต๋๋ค.
์ ๋๋ฉ์ด์ ์ผ๋ก ์๋ฒฝํ๊ฒ ๋ํ ๊ฐ๋ฅํ ์ฐจํธ ๋ฐ ์ง๋
ASP.NET, PHP ๋ฐ Ruby on Rails ์๋ฒ์ธก API
jQuery, Angular, PHP, ASP. NET, React Native, Django, React, Ruby on Rails, Java ๋ฑ์ด ๋ชจ๋ ์ง์๋ฉ๋๋ค.
์ฌ์ฉ์ ํธ๋๋ถ๊ณผย APIย ๋ ํผ๋ฐ์ค๋ ๋ชจ๋ ๋งค์ฐ ํฌ๊ด์ ์ ๋๋ค.
์ดํด๋ณผ ์ํ๊ณผ ๋์๋ณด๋๊ฐ ๋ช ๊ฐ ์์ต๋๋ค.
์ด์ ๋ธ๋ผ์ฐ์ ์ง์ ๊ฐ๋ฅ
PNG, JPG ๋๋ PDF ํ์ผ์ ๋ด๋ณด๋ผ ์ ์์ต๋๋ค.
์ง์ ์๋น์ค๋ ๊ธฐ์ ์๋ฃ ๋ฐ ์ปค๋ฎค๋ํฐ ํฌ๋ผ ํ์์ผ๋ก ์ ๊ณต๋ฉ๋๋ค.
๋ผ์ด์ผ์ค ์์ ์๋ ์ฐ์ ์์ ์ง์์ ์ ํ ์์ด ์ก์ธ์คํ ์ ์์ต๋๋ค.
๐์ฌ์ฉ ๊ฐ๋ฅํ ์ฐจํธ
๋ง๋
๊ธฐ๋ฅ.
์
์ง์ญ
ํ์ด
ํธ๋ฆฌ๋งต์ค
ํํธ๋งต
๊ฐํธ ์ฐจํธ(Gantt Charts)
๋ง๋ฆฌ๋ฉ์ฝ ์ฐจํธ(Marimekko Charts)
๊ฒ์ด์ง(Gauges0
์คํ์ด๋ ์ฐจํธ
์ํฐํด ์ฐจํธ
๐๊ฐ๊ฒฉ
์ฐ๊ฐ 499๋ฌ๋ฌ๋ถํฐ ์์
Dygraphs๋ ์ ๊ณ์์ ๊ฐ์ฅ ๋น ๋ฅธ ์ฐจํธ ๋ ๋๋ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค ํ๋๋ก ๊ฐ์ฃผ๋๋ ์คํ ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ ๋ถ์๊ฐ๋ ์ด JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋์ฉ๋ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ฒ๋ฆฌํ๊ณ ๋ฐ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ ์ ์์ต๋๋ค.์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ฐ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ฉด์๋ ์๋ง ๊ฐ์ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
๐ย ํน์ง
์ฌ๋ฌ ์ฐจํธ ๋๊ธฐํ
์ด Range/ViewFinder์๋ ์ฃผ์๊ณผ ๋งค์ฐ ๋ง์ถค ๊ฐ๋ฅํ ์ฃผ์์ด ์์ต๋๋ค.
์์์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค.
๋ฐ์ดํฐ๋ฅผ ์ค์๊ฐ์ผ๋ก ํ์ํ๋ ๋ฐ ์ด์์ ์ ๋๋ค.
๋ฐ์ดํฐ ํฌ์ธํธ์ ํผ๋๋ฐฑ์ ๋งค์ฐ ๊ณ ์์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์ฐจํธ ๋ฐ์ผ๋ก ํ์๋ฉ๋๋ค.
ํ๋/์ถ์ ๊ธฐ๋ฅ
JSFiddles์ ๋ํ ๋งํฌ๊ฐ ์๋ ์ํ์ด ๋ง์ด ์์ต๋๋ค.
๊ธฐ๋ณธ ์ด๋ ์ด๋ก ๋ฐ์ดํฐ ์กฐ์์ด ๊ฐ๋จํ๊ฑฐ๋ ํ ์คํธ ๋๋ CSV ํ์ผ์์ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ ์ ์์ต๋๋ค.
๐ย ์ฌ์ฉ ๊ฐ๋ฅํ ์ฐจํธ
์
๋ฉํฐ๋ผ์ธ
๐ย ๊ฐ๊ฒฉ
๋ฌด๋ฃ
Victory๋ ์ฐจํธ๋ฅผ ๋ง๋ค๊ธฐ ์ํ ๊ธฐ๋ฐ์ ๋ง๋ จํ๋ ํ๋ฅญํ ํ๋์ ํ๋ค.๋จ์ผ ๊ทธ๋ํ์ ๋ํด ์ถ, ๋ ์ด๋ธ ๋ฐ ์ฌ๋ฌ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ฌ์ฉ์ ์ ์ํ๋ ์์ ์ ๋ชจ๋ ๋น๊ต์ ๊ฐ๋จํ๋ฉฐ ์คํ์ผ ์ต์ ๋ฐ ๋์์ ์กฐ์ ํ๋ ์์ ์ ๊ฐ๋จํ๊ณ ์ง๊ด์ ์ ๋๋ค.๋งค์ฐ ํจ๊ณผ์ ์ด๊ณ ์คํ ์์ค์ด๋ฉฐ ์ฝ๋๋ฅผ ๊ฑฐ์ ์ฌ์ฉํ์ง ์๊ณ ๋ ๋ฉ์ง ์ฐจํธ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.ํฌ๋ก์ค ํ๋ซํผ ์ํํธ์จ์ด๋ฅผ ์ฐพ๊ณ ๊ณ์ ๋ค๋ฉด ํ์ธํด ๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
๐ย ํน์ง:
๋ณต์กํ ์ฐจํธ ์์ฑ์ ์ฌ์ฉํ๊ธฐ ์ฌ์ด ์ปดํฌ๋ํธ
์์ฒด ์๋น๋์ด ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ์๊ฐํ ๋ชจ๋์ด ์คํ์ผ ์ต์ ๋ฐ ๋์์ ๋ด๋นํฉ๋๋ค.
Android์ iOS ์์คํ ์ ๋์ผํ API๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
๐์ฌ์ฉ ๊ฐ๋ฅํ ์ฐจํธ
Line
Graph
Pie
Area Hover Styles
Radar Chart
Polar Cardioid
Stream Graph
Staked Histogram
๐๊ฐ๊ฒฉ:
๋ฌด๋ฃ
Chartist.js๋ ์ต์ฒจ๋จ SVG ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์์ฑ๋ ์ฐจํธ์ SVG ์ ๋๋ฉ์ด์ ์ด ๊ฐ์ฅ ์ฃผ๋ชฉํ ๋งํ ๊ธฐ๋ฅ์ ๋๋ค.๊ฐ๋ ฅํ ๊ธฐ์ ๊ธฐ๋ฐ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์คํ ์์ค์ด๋ฉฐ ์คํ์ด ๊ฐ๋จํฉ๋๋ค.๋ชจ๋ ๋ฐฑ์๋ ๋ฐ์ดํฐ ์์ค์ ๋ํํ๋ ๋งค์ฐ ์ธ์์ ์ธ ๊ทธ๋ํฝ์ ๋ช ๋ถ ๋ง์ ์์ฑํ ์ ์์ต๋๋ค.Chartist๋ Sass๋ฅผย ์ฌ์ฉํ์ฌ ๋ง์ถคํํ ๋ฟ๋ง ์๋๋ผ ์ค์ ๋ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค.
๐ย ํน์ง
ํ์์ ์ธ ์ ๋๋ฉ์ด์
API ์ค๋ช ์์์ ์ค์ํ ์ ๋ณด๋ฅผ ๋ชจ๋ ์ ๊ณตํ์ง๋ง ํ์์ ๋ถํธํ์ฌ ์คํฌ๋กค์ด ๋ง์ด ํ์ํฉ๋๋ค.
ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ์ฌ ๊ธฐ๋ฅ ํฅ์ ๊ฐ๋ฅ
์ฐจํธ๋ SVG๋ฅผ ์ฌ์ฉํ์ฌ ๊ทธ๋ ค์ง๋๋ค.
์ด์ ๋ธ๋ผ์ฐ์ ์ง์ ๊ฐ๋ฅ
๐ย ์ฌ์ฉ ๊ฐ๋ฅํ ์ฐจํธ
์
๋ง๋
ํ์ด
๐๊ฐ๊ฒฉ:
๋ฌด๋ฃ
D3.js๋ ๊ฐ๋ ฅํ ์คํ ์์ค JavaScript ๋ฐ์ดํฐ ์๊ฐํ ํ๋ ์์ํฌ์ ๋๋ค.D3๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ๊ธฐ๋ณด๋ค๋ ํ๋ ์์ํฌ์ ๊ฐ๊น์ต๋๋ค.์ฒ์์๋ ํฐ ๋ฌธ์ ๋ก ๋ณด์ผ ์ ์๋ ์์ ํ๊ธฐ ์ฝ์ง ์์ ์ ์์ต๋๋ค.๊ทธ๋ฌ๋ ์ด์ฉ ๊ฐ๋ฅํ ์ ์ฉํ ์ ๋ณด ์ฌ์ดํธ๊ฐ ๋๋ฌด ๋ง์ต๋๋ค.๋ง์ง๋ง์ผ๋ก, ๋ชจ๋ ์ข ๋ฅ์ ๋๋ผ์ด ์๊ฐํ ๋ฐ ๋น์ฃผ์ผ์ ์ฒ์๋ถํฐ ์์ฑํ ์ ์์ผ๋ฏ๋ก D3๋ ์ถฉ๋ถํ ์๊ฐ์ ๋ค์ผ ๊ฐ์น๊ฐ ์์ต๋๋ค.
๐ย ํน์ง
๋๋ถ๋ถ์ ๊ธฐ์กด JavaScript ์ฐจํธ ์์ฑ ํ๋ ์์ํฌ๋ณด๋ค ํจ์ฌ ๋ง์ ์ฐจํธ ์ต์ ์ ์ง์ํฉ๋๋ค.
ํ์ต ๊ณก์ ์ด ๊ฐํ๋ฅด๋ค
DOM ์กฐ์์ ๋ํ ๋ฐ์ดํฐ ์ค์ฌ ์ ๊ทผ ๋ฐฉ์์ ์ ๊ตํ ์๊ฐํ ๊ตฌ์ฑ ์์์ ๊ฒฐํฉ
๋ธ๋ผ์ฐ์ ๋ด ์์ ๊ฒ์ฌ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋๋ฒ๊น ํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋จํฉ๋๋ค.
์๋ฐฑ ๊ฐ์ ์ํ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ณก์ ์ ์์ฑํ๋ ํจ์
๋๋๊ทธ ์ค ๋๋กญ ๊ธฐ๋ฅ
๐ย ์ฌ์ฉ ๊ฐ๋ฅํ ์ฐจํธ
๋ง๋
์ํ
ํ์ด
๋๋
์
๊ฑฐํ
๐ย ๊ฐ๊ฒฉ
๋ฌด๋ฃ
Recharts๋ย ์ ์ธ์ ๊ตฌ์ฑ ์์๋ฅผ ๋ ธ์ถํ๊ณ ํ๋ ์๋์ D3๋ฅผ ์ฌ์ฉํฉ๋๋ค.์คํ ์์ค, ๊ฒฝ๋, SVG ์ปดํฌ๋ํธ๋ฅผ ๋ ๋๋งํ์ฌ ๋๋ผ์ด ์ธํฐ๋ํฐ๋ธ ์ฐจํธ๋ฅผ ๋ง๋ญ๋๋ค.์ฌ์ฉํ๊ธฐ ์ฝ๊ณ ์ค๋ช ์๋ ์ฌ๋ฏธ์์ต๋๋ค.
๋ฒ๋ก ํดํ ๋ฐ ๋ ์ด๋ธ๊ณผ ๊ฐ์ ์ผ๋ฐ ์ฐจํธ ์ต์ ์ด ๋ด์ฅ๋์ด ์ ์ ์ฐจํธ์์๋ ์ ์๋ํฉ๋๋ค.๊ฐ์ ํ์ด์ง์ ์๋ ๋ค์์ ์ ๋๋ฉ์ด์ ์ฐจํธ ๋ฐ ๋๊ท๋ชจ ๋ฐ์ดํฐ์ ์ ์ฒ๋ฆฌํ ๊ฒฝ์ฐ ์๋๊ฐ ๋๋ ค์ง ์ ์์ง๋ง ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ถฉ๋ถํฉ๋๋ค.
๐ํน์ง
์ฌ์ฌ์ฉ ๊ฐ๋ฅํ React ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฐจํธ๋ฅผ ์ฝ๊ฒ ์์ฑ
SVG ์์ ์์ ๊ตฌ์ฑ๋๋ฉฐ D3 ํ์ ๋ชจ๋์ ๋ฐ๋ผ ๋น์ ์์กดํฉ๋๋ค.
์ปดํฌ๋ํธ ์์ฑ์ ์กฐ์ ํ๊ณ ์ปค์คํ ์ปดํฌ๋ํธ๋ฅผ ์ถ๊ฐํ์ฌ ์ฐจํธ๋ฅผ ์ปค์คํฐ๋ง์ด์ฆํฉ๋๋ค.
๋ช ๊ฐ์ง ์ ์ฉํ ์์ ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
๐ย ์ฌ์ฉ ๊ฐ๋ฅํ ์ฐจํธ
์
๋ง๋
ํ์ด
Area Chart
๐ย ๊ฐ๊ฒฉ
๋ฌด๋ฃ
AmCharts๋ ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ ํ์๋ฅผ ์ฌ์ฉ์ ์ ์ํ ์ ์๋ ๋ค์ํ ์ฐจํธ ์ต์ ์ด ์๋ ๋ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.ํ๋ฆฌ๋ฏธ์ ๋ชจ๋ธ์ ํ๋ฆฌ๋ฏธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.์ง๋์ ์ฐจํธ๋ ๋๊ตฌ๋ ๋ฐ์ดํฐ๋ฅผ ์๊ฐํํ๊ณ ๋ถ์ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.๋จ, ์ถฉ์ ํ ์ ์๋ ๋ช ๊ฐ์ง ์ค์ํ ํน์ฑ์ด ์์ต๋๋ค.
๐ํน์ง
ํ์์ ์ธ ์ ๋๋ฉ์ด์
๊ทธ๋ฆผ ์ฐจํธ ์์ฑ ๊ธฐ๋ฅ
์ต๋ ๋ง์ถค ๊ฐ๋ฅ
TypeScript/ES6์ Vanilla JS์ ์๋ฅผ ๋ํ๋ ๋๋ค.
ํ๋ฅญํ ๋ฌธ์
์ํ ์ฐจํธ ๋๋ ๋ง๋ ์ฐจํธ ๋ด์ ์ฐจํธ๋ฅผ ์ค์ฒฉํ ์ ์์ต๋๋ค.
๐์ฌ์ฉ ๊ฐ๋ฅํ ์ฐจํธ
Bar
Pie
Annotation
Donut
Line
Bubble
Area
Funnel
Pyramid
Marimekko
Candlestick
Scatter
Gauge
Gant
TreeMap
Spark
Bullet
Heat
Radar
๐๊ฐ๊ฒฉ
90๋ฌ๋ฌ ๋ถํฐ ์์
๊ตฌ๊ธย ์ฐจํธ๋ ์ค๋ซ๋์ ์กด์ฌํด ์จ ์ฐจํธ ์์ฑ ํจํค์ง์ด๋ฉฐ ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์์ต๋๋ค.์ด ๋ฉ๋ด์ผ์ ํ๋ถํ ๋ฉ๋ด์ผ๊ณผ ํจ๊ป ์ ๊ณต๋๊ณ ์์ด, ๋์ ์ ๋์์ด ๋ฉ๋๋ค.๊ฒ๋ค๊ฐ ๊ตฌ๊ธ ์ฐจํธ๋ ์๊ฐ์ ์ธ ์ฆ๊ฐ์ ์ธ ์คํ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๋ฐํ๋์ ์ธ ๋์์ธ๊ณผ ๋ฏธ๋ฆฌ ์ค์ ๋ ์์ฑ ์ฒด๊ณ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
๐ย ํน์ง
๋๋ถ๋ถ์ ๊ธฐ๋ฅ์ ๋ฌด๋ฃ๋ก ์ฌ์ฉ ๊ฐ๋ฅ
ํดํ
์ํ์ด ํฌํจ๋ ๊ด๋ฒ์ํ ์ฌ์ฉ์ ๋ฌธ์
์ฃผ์
๊ฐ์ฅ ์ ์๋ํ๋ ์๊ฐ์ ์ฐจํธ ๊ฒ์ด์ง
์ฐจํธ๋ฅผ ํ๋ํ ์ ์์ต๋๋ค.
๐์ฌ์ฉ ๊ฐ๋ฅํ ์ฐจํธ
Bar
Line
Pie
Donut
Annotation
Area
Bubble
Scatter
Gant
Candlestick
Map
Gauge
Bullet
TreeMap
๐๊ฐ๊ฒฉ
๋ฌด๋ฃ
AnyChart๋ SVG/VML๋ก ๋ ๋๋งํ๋ ๊ธฐ๋ฅ์ด ํ๋ถํ๊ณ ๊ฐ๋ณ๊ณ ๊ฒฌ๊ณ ํ JS ์ฐจํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ์น ๊ฐ๋ฐ์๋ ๋ค์ํ ์ฐจํธ๋ฅผ ์ค๊ณํ์ฌ ๋ฐ์ดํฐ ๋ถ์ ๋ฐ ๋ฐ์ดํฐ ์ค์ฌ ์์ฌ ๊ฒฐ์ ์ ์ง์ํ ์ ์์ต๋๋ค.Android, Angular, Elasticsearch, iOS, Qlik, Oracle APEX, React, Vue.js ๋ฑ์ ํตํฉํ ์ ์์ต๋๋ค.์ฝ๋ ์๋ ์์ฑ์ด ๊ฐ๋ฅํ ์ ์ฉ ๋์ดํฐ๋ฟ๋ง ์๋๋ผ ๋ค์ํ ์ํ๊ณผ ๋์๋ณด๋๋ฅผ ์ด์ฉํ ์ ์์ต๋๋ค.
๐ํน์ง
์ฐจํธ์ ๋ฐ์ดํฐ๋ฅผ ๋๋ฆด๋ค์ดํฉ๋๋ค.
์ฆ์ ์ฌ์ฉํ ์ ์๋ ๊ธฐ์ ๋ถ์ ์งํ ๋ฐ ์ฃผ์
ํ๋ถํ ๋ฌธ์, API ๋ฐ ์ ์ฉํ ๊ณ ๊ฐ ์๋น์ค
์ด์ ๋ธ๋ผ์ฐ์ ์ง์ ๊ฐ๋ฅ
์ฐจํธ๋ฅผ PDF, JPG, PNG ๋๋ SVG ๊ทธ๋ํฝ์ค ๋ฐ XSLX ๋๋ CSV ํ์ผ์ ์ฐจํธ ๋ฐ์ดํฐ๋ก ๋ด๋ณด๋ผ ์ ์์ต๋๋ค.
๐์ฌ์ฉ ๊ฐ๋ฅํ ์ฐจํธ
Bar
Pie
Graph
Line
Stock Charts
Maps
Gantt
PERT charts
๐๊ฐ๊ฒฉ
ํ๋์ ์ ํ๋น 49๋ฌ๋ฌ๋ถํฐ ์์
HighCharts๋ ๋ง์ ๋๊ธฐ์ ์์ ์ฌ์ฉ๋๋ ์ธ๊ธฐ ์๋ JavaScript ์ฐจํธ ์์ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.์ฐจํธ๋ SVG๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑํ ํ IE6์์ IE8๋ก์ ํ์ ํธํ์ฑ์ ์ํด VML๋ก ๋ณํ๋ฉ๋๋ค.๋ฐ๋ชจ ์ฐจํธ์๋ ๋ช ๊ฐ์ง ๋ฐ์ด๋ ๊ธฐ๋ฅ์ด ์์ง๋ง ์๊ฐ์ ์ผ๋ก ๋งค๋ ฅ์ ์ด์ง ์์ต๋๋ค.API ๋งค๋ด์ผ ํํ ๋ฆฌ์ผ์ ์ฌ๊ธฐ์ ๊ธฐ์ฌ๋์ด ์์ต๋๋ค.๋, ์ผ๋ฐ์ ์ธ ๋ฉ๋ด์ผ์ ๊ธฐ์ฌ๋์ด ์๋ ์ค์ํ ํ ํฝ๋ ๋ค์ ๊ธฐ์ฌ๋์ด ์์ต๋๋ค.
๐ํน์ง
์์ ํ JavaScript๋ก ์์ฑ๋์ด ์์ด ์ด๋์๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ฌ ์ ์์ต๋๋ค.
์์ธํ ๋ฌธ์, API ๋ ํผ๋ฐ์ค ๋ฐ ์ปค๋ฎค๋ํฐ ์ผ์ผ์ด์ค
์ฐจํธ ๋ฐ์ดํฐ ๋ฐ ๊ธฐํ ์ํธ ์์ฉ ์ต์ ์ ๋๋ฆด๋ค์ดํฉ๋๋ค.
React, Angular, Meteor ๋ฑ๊ณผ ํจ๊ป ์๋ํฉ๋๋ค.
NET, iOS ๋ฐ ๊ธฐํ ํ๋ ์์ํฌ
PNG, JPG, PDF ๋ฐ SVG ํ์ผ์ ๋ชจ๋ ๋ด๋ณด๋ผ ์ ์์ต๋๋ค.
ํ๋ฆฌ๋ฏธ์ ์ด๋ฉ์ผ ๋ฐ Skype ์ง์์ ํ์ํ ๋ผ์ด์ ์ค๋ฅผ ๊ฐ์ง ์์ฉ ์ฌ์ฉ์์๊ฒ๋ง ์ ๊ณต๋ฉ๋๋ค.
๐ย ์ฌ์ฉ ๊ฐ๋ฅํ ์ฐจํธ
Line
Area
Bar
Pie
Donut
Scatter and bubble
Combinations
3D charts
Gauges
Heat and treemaps
๐๊ฐ๊ฒฉ
์ฐ๊ฐ 535๋ฌ๋ฌ๋ถํฐ ์์
Billboard.js๋ ์คํ ์์ค์ด๋ฉฐ, ๊ธฐ์ ์ด ๋ฐ์ดํฐ๋ฅผ ๋ณผ ์ ์๋๋ก ์ง์ํ๋ ๋ค์ํ ์ฐจํธ์ ํจ๊ป ์ ๊ณต๋๋ ๋งค์ฐ ๊ธฐ๋ณธ์ ์ธ ํจํค์ง์ ๋๋ค.์ด ํจํค์ง๋ c3.js ์ฐจํธ์ ๋๋ฑํ๋ฉฐ D3 ๋ฒ์ 4๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.์ด์ธ์๋ ๋น๋ณด๋๋ ๋ชจ๋ ์กฐ์ง์ด ์ฌ์ฉํ ์ ์๋ ์ฐจํธ ๋ชฉ๋ก๊ณผ ์ถ, ๋ฒ๋ก, ํดํ ๋ฑ ๊ตฌ์ฑ ๊ฐ๋ฅํ ๋ค์ํ ์ปดํฌ๋ํธ๋ฅผ ๊ฐ์ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
๐ํน์ง
๋ค์ํ ์ปค์คํฐ๋ง์ด์ฆ ์ต์
๋ผ๋ฒจ์ด ์๋ Y๋ผ์ธ์ ์ฝ๊ฒ ์ฝ์ ํ ์ ์์ต๋๋ค.
์์ ํ ์ ์์ฑ
๋ทฐํ์ธ๋ ์ค์๋ ์ค, ์๋ธ์ฐจํธ, ๋๋๊ทธ ์ค์ด ํฌํจ๋ฉ๋๋ค.
ํดํ ๋ฐ ํดํ์ ๋งํฌ๋ ๋์ผ ์ฐจํธ
๐์ฌ์ฉ ๊ฐ๋ฅํ ์ฐจํธ
๋ง๋
์
๋๋
ํ์ด
๊ฑฐํ
์ง์ญ
๊ฒ์ด์ง
์ค์ผํ๋ฌ(Scatter)
๋ ์ด๋
ํธ๋ฆฌ ๋งต
๐๊ฐ๊ฒฉ
๋ฌด๋ฃ
ApexChart.js๋ ์น ์ฌ์ดํธ์์ ๋ฐ์ด๋ ๋ฐ์ดํฐ ๋ถ์์ ์ ๊ณตํ๋ ๋ฐ ๋์์ด ๋๋ ๋ง์ ๊ธฐ๋ฅ์ ๊ฐ์ถ ์คํ ์์ค ์ฐจํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ฌ์ฉ์ ๋งค๋ด์ผ ์ค๋ช ์ ๋ฐ๋ผ ๋ชจ๋ ์ฐจํธ ์์ฑ ๊ธฐ๋ฅ์ ์ ๊ณตํ ์ ์์ต๋๋ค.ApexCharts.js๋ ์ฃผ์ ๊ธฐ๋ฅ ๋๋ฌธ์ ๋งค์ฐ ์ผ๋ฐ์ ์ด์ง ์์ต๋๋ค.๊ทธ๊ฒ๊ณผ๋ ๋ณ๋๋ก, ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฃผ๋ ์ธก๋ฉด์ ์ ๋๋ฉ์ด์ ๊ณผ ๋ฐ์์ฑ์ด๋ค.
๐ํน์ง
์๋ฆ๋ค์ด ๋น์ฃผ์ผ์ ๊ฐ์ง ์ฃผ์
VueJ, vanilla JS, React ๋ฐ Angular๊ฐ ๋ชจ๋ ์ง์๋ฉ๋๋ค.
๋ฐ๋ชจ์ ์์ค ์ฝ๋๊ฐ ๋ง๋ค
์๋ต์ฑ์ด ๋ฐ์ด๋ ํดํ
๊ด๋ฒ์ํ ์ฌ์ฉ์ ๋ฌธ์
ํ๋ฆฌ ์ธ์คํจ ๋ ์์ฑ ๊ตฌ์ฑํ
๐์ฌ์ฉ ๊ฐ๋ฅํ ์ฐจํธ
Bar
Donut
Pie
Line
Area
Annotation
Bubble
Gant
Candlestick
Scatter
Spark
TreeMap
Heat and Radar
๐๊ฐ๊ฒฉ
๋ฌด๋ฃ
NVD3๋ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์คํ ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค ํ๋์ ๋๋ค.์์ ๋ค๋ฅธ ์ ํ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก D3.js๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์ด ๊ฒฌ๊ณ ํ ๊ธฐ์ ๊ธฐ๋ฐ์ ๊ฐ์ถ๊ณ ์์ต๋๋ค.์ฑ๋ฅ์ ๊ด์ฐฎ์ ํธ์ด๋ฉฐ, ์ฌ๋ฏธ์๋ UI์ ์๊ฐ์ ์ธ ํฅ๋ฏธ๋ฅผ ๋ํ๊ธฐ ์ํ ๋ช ๊ฐ์ง ๊ธฐ๋ณธ์ ์ธ ์ ๋๋ฉ์ด์ ์ต์ ์ด ์์ต๋๋ค.NVD3๋ .json ํ์ผ์์ ์ง์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๊ธฐ ๋๋ฌธ์ ๊ธฐ์กด ๋ฐ์ดํฐ API ์๋ฃจ์ ๊ณผ ์ฐ๊ฒฐํ๊ธฐ๊ฐ ๋งค์ฐ ์ฝ์ต๋๋ค.
๐ํน์ง
์๋ต์ฑ
JSON์ ์ฌ์ฉํ๊ธฐ ์ฝ๋ค
์ฌ์ฉํ๊ธฐ ์ฝ๊ณ ์ปค์คํฐ๋ง์ด์ฆ ๊ฐ๋ฅํ ํดํ
์์ ์๋ฆฌ์ฆ ์ผ๊ธฐ ๋ฐ ๋๊ธฐ
์ํํธ์จ์ด ๋ค์ด๋ก๋ ๋ฐ ์ฌ์ฉ์ด ๊ฐ๋จํ๊ณ ์ ์ํจ
๋ ์ถ์์์ ๋ฅ๋ ฅ
๐์ฌ์ฉ ๊ฐ๋ฅํ ์ฐจํธ
๋ง๋
ํ์ด
์
๋๋
๋ฉํฐ๋ผ์ธ
์ง์ญ
ํฉ์ด์ง๋ค
๊ธ๋จธ๋ฆฌ ๊ธฐํธ
์ด๋
์คํํฌ
๐๊ฐ๊ฒฉ
๋ฌด๋ฃ
Vis.js๋ ๋คํธ์ํน, 2D, ํ์๋ผ์ธ ๋ฐ 3D ์๊ฐํ์ ๊ธฐํ ๊ธฐ๋ฅ๊ณผ ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํฌํจํ๋ ์คํ ์์ค JavaScript ์ฐจํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ 3D ์ฐจํธ๋ ์ฐจํธ ์์ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์์ ์๋นํ ๋๋ฌธ ๊ฒ์ ๋๋ค.์ด์๋ ๋ณ๋๋ก Vis.js๋ ๋ค์ํ ์ฉ๋๋ก ์ฌ์ฉํ ์ ์๋ ๋ฐ์ด๋ 2D ๋ฐ 3D ํ์์ ์๊ฐํ๊ฐ ํฌํจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
๐ํน์ง
์๋ฒฝํ ์ ๋๋ฉ์ด์
ํดํ์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ต์ ์ค ํ๋์ ๋๋ค.
์ฌ๋ฌ ์ฐจํธ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
์ฐจํธ ๋์ดํฐ์๋ ๋ค์ํ ํน์ง์ด ์์ต๋๋ค.
๊ด๋ จ ์ฐจํธ์๋ 3D ์ํธ์์ฉ์ด ์์ต๋๋ค.
๐์ฌ์ฉ ๊ฐ๋ฅํ ์ฐจํธ
๋ง๋
์
๋ฉํฐ๋ผ์ธ
๊ฑฐํ
์ง์ญ
๊ฐ ํธ
์ค์ผํ๋ฌ(Scatter)
๐๊ฐ๊ฒฉ
๋ฌด๋ฃ
๋ฐ์ดํฐ ์๊ฐํ๋ ์ฐจํธ, ๊ทธ๋ํ ๋ฑ๊ณผ ๊ฐ์ ๊ทธ๋ํฝ ์์๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ณด์ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ํฝ์ผ๋ก ํํํ ์ ์๋๋ก ๋์์ฃผ๋๊ฒ, ์๋์ ์ผ๋ก ์ ์ ์์ ์ผ๋ก ์๋ฆ๋ค์ด ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค ์ ์๋๋ก ๋์์ค ์ ์๋ js ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ Chart.js์ด๋ค.
Chart.js๋ ์ธ๊ธฐ ์๋ ์ปค๋ฎค๋ํฐ ์ ์ง ์คํ ์์ค ๋ฐ์ดํฐ ์๊ฐํ ํ๋ ์์ํฌ์ด๋ค. ๋ฐ์ํ ๋ง๋ ์ฐจํธ, ์ํ ์ฐจํธ, ์ ๊ทธ๋ฆผ, ๋๋ ์ฐจํธ, ์ฐ์ ๋ ๋ฑ์ ์์ฑํ ์ ์๋ค. ์ฐ๋ฆฌ๊ฐ ํด์ผ ํ ์ผ์ ๋จ์ํ ๋น์ ์ ํ์ด์ง์์ ๊ทธ๋ํ๋ฅผ ํ์ํ ์์น, ํ์ํ ๊ทธ๋ํ์ ์ข ๋ฅ๋ฅผ ํ์ํ ๋ค์ Chart.js์ ๋ฐ์ดํฐ, ๋ ์ด๋ธ ๋ฐ ๊ธฐํ ์ค์ ์ ์ ๊ณตํ๋ค.
์ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ค๋นํด๋ณด์.
ํ๋จ์ ๋ฐ์ดํฐ๋ ํ์ฌ ์ฌ์ฉ๋๋ ๋ค์ํ Frameworks ์ค์์ ๊ฐ ํ๋ ์์ํฌ๊ฐ ๋ฐ์ GitHub Stars ๊ฐฏ์ ์ด๋ค.
Chart.js๋ฅผ ์์ํ๋ ค๋ฉด, ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ฏ๋ก ๋จผ์ ์ค์นํด์ผํ๋ค.
Chart.js๋ npm, GitHub ๋ฆด๋ฆฌ์ค ๋๋ ๊ฐ์ฅ ๋น ๋ฅด๊ณ ์ฌ์ด ๋ฐฉ๋ฒ์ธ Chart.js CDN์ ํตํด ์ค์นํ ์ ์๋ค.
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.7.1/chart.min.js"></script>
๋ ๋ฒ์งธ ๋จ๊ณ๋ ์ฐจํธ๋ฅผ ๋ ๋๋งํ ์์น๋ฅผ HTML๋ก ์์ฑ.
Chart.js๋ HTML5 Canvas ํ๊ทธ(์ , ์ ๋ฑ์ ๊ทธ๋ฆฌ๋ ๋ฐ ์ฌ์ฉ)์ ๊ฐ์ฉ์ฑ์ ์์กดํ์ฌ ์ฐจํธ๋ฅผ ์์ฑํ๊ณ ๋ ๋๋งํ๋ค.
<canvas id="myChart" width="1000" height="600"></canvas>
const ctx = document.getElementById('myChart');
const myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: ['React', 'Vue', 'Angular', 'Svelte', 'Ember.js', 'Backbone.js'],
datasets: [{
label: 'Number of GitHub Stars',
data: [185134, 195514, 80460, 57022, 22165, 27862],
backgroundColor: [
'rgba(255, 99, 132, 0.2)',
'rgba(54, 162, 235, 0.2)',
'rgba(255, 206, 86, 0.2)',
'rgba(75, 192, 192, 0.2)',
'rgba(153, 102, 255, 0.2)',
'rgba(255, 159, 64, 0.2)'
],
borderColor: [
'rgba(255, 99, 132, 1)',
'rgba(54, 162, 235, 1)',
'rgba(255, 206, 86, 1)',
'rgba(75, 192, 192, 1)',
'rgba(153, 102, 255, 1)',
'rgba(255, 159, 64, 1)'
],
borderWidth: 1
}]
},
options: {
scales: {
y: {
beginAtZero: true
}
}
}
});
<์ฐธ๊ณ ์๋ฃ>
https://www.atatus.com/blog/javascript-chart-libraries/#Chart.js
https://stackabuse.com/guide-to-creating-charts-in-javascript-with-chartjs/