TOAST UI Chart(์ดํ '์ฐจํธ'๋ก ํ๊ธฐ)๋ 4.0 ๋ฒ์ ์์ canvas
๊ธฐ๋ฐ์ผ๋ก ์ฐจํธ๊ฐ ๊ฐ๋ฐ๋์์ผ๋ฉฐ, ๋ชจ๋ ์์กด์ฑ์ ์ ๊ฑฐํ๊ณ ํธ๋ฆฌ ์์ดํน์ ์ง์ํ์ฌ ์ฌ์ฉ์์๊ฒ ๊ฐ๋ฒผ์ด ๊ฐ๋ฐ ํ๊ฒฝ์ ์ ๊ณตํ๋ค. ์
๋ฐ์ดํธ ์ ์ฃผ์ํด์ผ ํ ์ฌํญ๋ค์ด ๋ง์ผ๋ฏ๋ก ๋ง์ด๊ทธ๋ ์ด์
๊ฐ์ด๋์ ์ ์ฒด ๋ด์ฉ์ ์์งํ๊ธธ ๋ฐ๋๋ค.
- ๋ณ๊ฒฝ ์ฌํญ
- ์ค์น
- ์์ฑ
- ํ ๋ง
- ํดํ ์ต์
- ์ถ ์ต์
- ๋ฐ์ดํฐ ๋ผ๋ฒจ ์ต์
- NestedPie ์ฐจํธ(๊ตฌ Pie&Donut ์ฝค๋ณด ์ฐจํธ)
- ์ด๋ฆ ๋ณ๊ฒฝ
- ์ค์๊ฐ ์ ๋ฐ์ดํธ ๊ฐ์
chart.width
์chart.height
์ต์ ์'auto'
ํ์ ์ถ๊ฐ- ๋ฐ์ํ ์ต์
- ๋ ์ด์์ ์ค์
- Pie ์ฐจํธ ์๋ฆฌ์ฆ ์ต์ ๋ณ๊ฒฝ
- ์๋ก์ด ์ธ์คํด์ค ๋ฉ์๋
- ์๋ก์ด ์ปค์คํ ์ด๋ฒคํธ
- Map ์ฐจํธ
์ด๋ฒ ๋ฉ์ด์ ๋ฒ์ ์ ๋ฐ์ดํธ์์ ์ฐจํธ๋ฅผ ์ฌ์ฉํ ๋ ํ์ํ ์ด๋ฆ ๋ฐ ์์กด์ฑ ์ ๋ณด๊ฐ ๋ณ๊ฒฝ๋์๋ค. ํจํค์ง ์ด๋ฆ, ๋ค์์คํ์ด์ค, ๋ฐ๋ค ํ์ผ๋ช ๋ฑ์ด ๋ณ๊ฒฝ๋์๊ธฐ ๋๋ฌธ์ ์ฑ์์ ์ฌ์ฉํ๊ณ ์๋ ์ฐจํธ์ ๋ฒ์ ๋ง ์ ๋ฐ์ดํธํด์๋ ์ ๋๋ฉฐ, ์๋ ๋ณ๊ฒฝ ์ฌํญ๋ค์ ์์งํ์ฌ ๋ง์ด๊ทธ๋ ์ด์ ์ ์งํํด์ผ ํ๋ค.
4.0 ๋ฒ์ ์์๋ ์ค์ฝํ๋ ํจํค์ง(Scoped package)๊ฐ ์ ์ฉ๋์ด tui-chart
์์ @toast-ui/chart
๋ก ํจํค์ง ์ด๋ฆ์ด ๋ณ๊ฒฝ๋์๋ค. ์๋๋ npm ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ ์ฐจํธ ์ค์น ์์ ์ด๋ค.
v3.x
$ npm install tui-chart
$ npm install tui-chart@<version>
v4.0
$ npm install @toast-ui/chart
$ npm install @toast-ui/chart@<version>
์ฐจํธ 3.x ๋ฒ์ ์ tui-chart
, 4.0 ์ด์ ๋ฒ์ ์ @toast-ui/chart
๋ก๋ง ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก, ํน์ ๋ฒ์ ์ ์ฌ์ฉํด ์ค์นํ ๋ ์ฃผ์ํด์ผ ํ๋ค. ๋ํ ์ฐจํธ ์ค๋ณต ์ฌ์ฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด, ๋ฐ๋์ ๊ธฐ์กด์ ์ค์น๋ tui-chart
๋ ์ ๊ฑฐํ ๋ค์ 4.0 ๋ฒ์ ์ ์ค์นํด์ผ ํ๋ค. ์ค์น๊ฐ ์ ์์ ์ผ๋ก ์๋ฃ๋๋ฉด ๋ค์๊ณผ ๊ฐ์ด package.json
ํ์ผ์ ์์กด ์ ๋ณด๊ฐ ์
๋ฐ์ดํธ๋๋ค.
{
"dependencies": {
- "tui-chart": "^3.11.2",
+ "@toast-ui/chart": "^4.0.0"
}
}
๋ฐ๋ผ์, ๋ชจ๋์ ํ์ผ์ ํฌํจํ ๋ ๋ํ ๋ณ๊ฒฝ๋ ์ด๋ฆ์ผ๋ก ๊ฐ์ ธ์์ผ ํ๋ค.
v3.x
const Chart = require('tui-chart'); /* CommonJS ๋ฐฉ์ */
import Chart from 'tui-chart'; /* ES6 ๋ชจ๋ ๋ฐฉ์ */
v4.0
const Chart = require('@toast-ui/chart'); /* CommonJS ๋ฐฉ์ */
import Chart from '@toast-ui/chart'; /* ES6 ๋ชจ๋ ๋ฐฉ์ */
๋ํ, ์ฐจํธ 4.0์ ํ์ํ ์ฐจํธ ๋ชจ๋๋ง์ ๋ก๋ํ์ฌ ์ฑ์ ์ข ๋ ๊ฐ๋ณ๊ฒ ๋ง๋ค ์ ์๋ค. ํ์ํ ๋ชจ๋๋ง ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ๋ค.
import { BarChart } from '@toast-ui/chart'; /* ES6 ๋ชจ๋ ๋ฐฉ์ */
TOAST UI ์ ํ๊ตฐ์ ๋ค์์คํ์ด์ค ์ ์ฑ
์ด ๋ณ๊ฒฝ๋จ์ ๋ฐ๋ผ, ์ฐจํธ๋ 4.0 ๋ฒ์ ๋ถํฐ๋ ๊ธฐ์กด์ ์ฌ์ฉํ๋ tui
๋์ toastui
๋ฅผ ๋ค์์คํ์ด์ค๋ก ์ฌ์ฉํ๋ค.
๋ธ๋ผ์ฐ์ ํ๊ฒฝ์์ ๋ค์์คํ์ด์ค๋ก ์ฐจํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝ๋ ๋ค์์คํ์ด์ค๋ก ์ฐจํธ ์์ฑ์ ํจ์(toastui.Chart
)๋ฅผ ๊ฐ์ ธ์์ผ ํ๋ค.
v3.x
const chart = tui.Chart.barChart(el, data, options);
v4.0
const chart = toastui.Chart.barChart({el, data, options});
์ฐจํธ 4.0์์๋ ๊ธฐ๋ฅ์ ๋ถ๋ฆฌํ๊ณ ์์กด์ฑ์ ์ ๋ฆฌํ๋ฉด์ ๋ฒ๋ค ํ์ผ ์ข
๋ฅ๊ฐ ๋ณ๊ฒฝ๋์๋ค. ์์กด์ฑ์ด ์ฌ๋ผ์ง๋ฉด์ ์์กด์ฑ์ด ํฌํจ๋ ๋ฒ๋ค์ด ์ ๊ฑฐ๋์์ผ๋ฉฐ, ๋ฒ๋ค ํ์ผ๋ช
์ ํ๋ฆฌํฝ์ค๋ tui-
์์ toastui-
๋ก ๋ณ๊ฒฝ๋์๋ค.
v3.x
์ฐธ๊ณ : https://github.com/nhn/tui.chart/tree/v3.11.2/dist
๋ฒ๋ค ์ข ๋ฅ | ํ์ผ๋ช | ์์ถ ๋ฒ์ (*.min ) ์ ๊ณต ์ฌ๋ถ |
---|---|---|
๊ธฐ๋ณธ | tui-chart.js |
Y |
์ ์ฒด ์์กด์ฑ ๋ชจ๋ ํฌํจ | tui-chart-all.js |
Y |
babel-polyfill ํฌํจ | tui-chart-polyfill.js |
Y |
v4.0
๋ฒ๋ค ์ข ๋ฅ | ํ์ผ๋ช | ์์ถ ๋ฒ์ (*.min ) ์ ๊ณต ์ฌ๋ถ |
---|---|---|
๊ธฐ๋ณธ | toastui-chart.js |
Y |
์ฐจํธ ์คํ์ผ์ ์ ์ฉํ ๋ ํ์ํ CSS ํ์ผ ์ ๋ณด๋ ๋ณ๊ฒฝ๋์๋ค.
v3.x
import 'tui-chart/dist/tui-chart.css';
v4.0
import '@toast-ui/chart/dist/toastui-chart.css';
์ ๊ณตํ๋ CSS ํ์ผ์ ์์ ๊ฐ์ด toastui-chart.css
์ด๋ฉฐ ์์ถ ๋ฒ์ ์ ํจ๊ป ์ ๊ณตํ๋ค. npm๊ณผ CDN์ผ๋ก ์ ๊ณต๋๋ ํ์ผ ์ข
๋ฅ๋ ๋์ผํ๋ค.
์ฐจํธ 4.0์์๋ ์์กด์ฑ ๋ชจ๋๋ค์ ๋ชจ๋ ์ ๊ฑฐํ์๋ค. CDN์ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐํ๋ ๊ฒฝ์ฐ์๋ ๋ ์ด์ ์ฌ์ฉํ์ง ์๋ ์์กด์ฑ์ ์ ๊ฑฐํด์ผ ํ๋ค.
v3.x
v4.0
<head>
...
<link
rel="stylesheet"
href="https://uicdn.toast.com/chart/latest/toastui-chart.min.css"
/>
...
</head>
<body>
...
<script src="https://uicdn.toast.com/chart/latest/toastui-chart.min.js"></script>
...
</body>
3.x ๋ฒ์ ์์ ์ฐจํธ๋ฅผ ์์ฑํ๊ธฐ ์ํด์๋ ์ ์ ํจ์์ ์ฐจํธ๊ฐ ๊ทธ๋ ค์ง ์์(el
), ์ฐจํธ ๋ฐ์ดํฐ(data
), ์ต์
์ ๋งค๊ฐ๋ณ์์ ์ฐจ๋ก๋ก ๋๊ฒจ์ฃผ์ด ์์ฑํ์๋ค.
v3.x
import Chart from 'tui-chart';
const chart = Chart.barChart(el, data, options);
4.0 ๋ฒ์ ์์๋ ์ ์ ํจ์๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ ์ธ์๋ ์์ฑ์ ํจ์๋ฅผ ํตํด ์์ฑํ ์ ์์ผ๋ฉฐ, ๋งค๊ฐ๋ณ์๋ ์์, ๋ฐ์ดํฐ, ์ต์ ์ ๊ฐ์ฒด๋ก ๋๊ฒจ์ฃผ๋๋ก ๋ณ๊ฒฝ๋์๋ค.
v4.0
// 1. ์ ์ ํจ์๋ฅผ ํตํด ์์ฑ
import Chart from '@toast-ui/chart';
const chart = Chart.barChart({el, data, options});
// 2. ์์ฑ์ ํจ์๋ฅผ ํตํด ์์ฑ
import { BarChart } from '@toast-ui/chart';
const chart = new BarChart({el, data, options});
์ฐจํธ 4.0 ๋ถํฐ๋ package.json ํ์ผ์ main
ํ๋ ์ธ module
, exports
ํ๋๋ฅผ ์ ์ํด ๋์๋ค.
main
ํ๋์ ์ ์๋ ํ์ผ์ UMD ์ฉ ๋ฒ๋ค์ด๋ค.module
ํ๋๋ Webpack ๊ฐ์ ๋ฒ๋ค๋ฌ์์ ์ฌ์ฉ๋๋ฉฐ ESM ์ฉ ํ์ผ ๋๋ ํ ๋ฆฌ์ด๋ค.exports
ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ESM ์ฉ ํ์ผ ์ ๊ทผ ์ ์๋ธ ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํ๋ค.
"main": "dist/toastui-chart.js",
"module": "dist/esm/",
"exports": {
".": {
"import": "./dist/esm/index.js",
"require": "./dist/toastui-chart.js"
},
"./line": {
"import": "./dist/esm/charts/lineChart.js"
},
"./area": {
"import": "./dist/esm/charts/areaChart.js"
},
"./lineArea": {
"import": "./dist/esm/charts/lineAreaChart.js"
},
"./bar": {
"import": "./dist/esm/charts/barChart.js"
},
"./column": {
"import": "./dist/esm/charts/columnChart.js"
},
"./columnLine": {
"import": "./dist/esm/charts/columnLineChart.js"
},
"./bullet": {
"import": "./dist/esm/charts/bulletChart.js"
},
"./boxPlot": {
"import": "./dist/esm/charts/boxPlotChart.js"
},
"./treemap": {
"import": "./dist/esm/charts/treemapChart.js"
},
"./heatmap": {
"import": "./dist/esm/charts/heatmapChart.js"
},
"./scatter": {
"import": "./dist/esm/charts/scatterChart.js"
},
"./lineScatter": {
"import": "./dist/esm/charts/lineScatterChart.js"
},
"./bubble": {
"import": "./dist/esm/charts/bubbleChart.js"
},
"./pie": {
"import": "./dist/esm/charts/pieChart.js"
},
"./nestedPie": {
"import": "./dist/esm/charts/nestedPieChart.js"
},
"./radar": {
"import": "./dist/esm/charts/radarChart.js"
},
"./": "./"
},
Webpack 4 ์์๋ ํจํค์ง ๋ชจ๋์ ๊ฐ์ ธ์ฌ ๋ main ํ๋๋ณด๋ค module ํ๋์ ์ ์๋ ์ง์
์ ์ ์ฐ์ ์ ์ผ๋ก ๊ฐ์ ธ์จ๋ค. ๋ง์ฝ ํ๋ก์ ํธ์์ Webpack 4๋ฅผ ์ฌ์ฉํ๊ณ require
๊ตฌ๋ฌธ์ ์ฌ์ฉํด @toast-ui/chart
๋ฅผ ๋ถ๋ฌ์จ๋ค๋ฉด, module ํ๋์ ์ ์๋ ESM ํ์ผ์ด ๋ก๋๋ ๊ฒ์ด๋ฉฐ, require ๊ตฌ๋ฌธ์ผ๋ก ๊ฐ์ ธ์ฌ ์ ์๋๋ก ํธ๋์ค ํ์ผ ๋ ๊ฒ์ด๋ค. ํ๋ก์ ํธ์์ UMD ์ฉ ๋ฒ๋ค ํ์ผ์ด ํ์ํ๋ค๋ฉด @toast-ui/chart/dist/toastui-chart.js
ํน์ @toast-ui/chart/dist/toastui-chart.min.js
ํ์ผ์ ์ง์ ๋ก๋ํ์ฌ ์ฌ์ฉํด์ผ ํ๋ค.
const Chart = require('@toast-ui/chart/dist/toastui-chart.min.js'); // UMD ์ฉ ๋ฒ๋ค ํ์ผ ๋ก๋
Webpack 5๋ exports
ํ๋๋ฅผ ์ง์ํ๋ค. ํจํค์ง์์ ์ ์๋ exports
ํ๋๋ฅผ ๋ณด๊ณ ๋ชจ๋ ์ง์
์ ์ ํ๋จํ ์ ์๋ค. ๋ํ ์๋์ ๊ฐ์ด ์๋ธ ๊ฒฝ๋ก๋ก ์ ๊ทผํ์ฌ ํ์ํ ์ฐจํธ ํ์ผ์ ๋ก๋ํ ์ ์๋ค.
const Chart = require('@toast-ui/chart'); // ./dist/toastui-chart.js
import { BarChart } from '@toast-ui/chart'; // ./dist/esm/index.js ํ์ผ
import BarChart from '@toast-ui/chart/bar';
import ColumnChart from '@toast-ui/chart/column';
import LineChart from '@toast-ui/chart/line';
import AreaChart from '@toast-ui/chart/area';
import LineAreaChart from '@toast-ui/chart/lineArea';
import ColumnLineChart from '@toast-ui/chart/columnLine';
import BulletChart from '@toast-ui/chart/bullet';
import BoxPlotChart from '@toast-ui/chart/boxPlot';
import TreemapChart from '@toast-ui/chart/treemap';
import HeatmapChart from '@toast-ui/chart/heatmap';
import ScatterChart from '@toast-ui/chart/scatter';
import LineScatterChart from '@toast-ui/chart/lineScatter';
import BubbleChart from '@toast-ui/chart/bubble';
import PieChart from '@toast-ui/chart/pie';
import NestedPieChart from '@toast-ui/chart/nestedPie';
import RadarChart from '@toast-ui/chart/radar';
์ฐจํธ 4.0 ๋ฒ์ ์์๋ ์ ์ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฐจํธ๋ฅผ ์์ฑํ ๋ ์ฝค๋ณด ์ฐจํธ๋ฅผ ํฌํจํ์ฌ ๋ช ๊ฐ์ ์ฐจํธ๋ค์ด ์ด๋ฆ์ด ๋ณ๊ฒฝ๋์๋ค. ๋ค์์ 3.x ๋ฒ์ ๊ณผ 4.0 ๋ฒ์ ์ ์ฐจํธ ์์ฑ ํจ์๋ช ์ ์ ๋ฆฌํ ํ์ด๋ค.
-
์ผ๋ฐ ์ฐจํธ
v3.x v4.0 - ์ ์ ํจ์ v4.0 - ์์ฑ์ ํจ์ ์ด๋ฆ ๋ณ๊ฒฝ ์ฌ๋ถ barChart barChart BarChart columnChart columnChart ColumnChart bulletChart bulletChart BulletChart boxplotChart boxPlotChart BoxPlotChart Y lineChart lineChart LineChart areaChart areaChart AreaChart heatmapChart heatmapChart HeatmapChart treemapChart treemapChart TreemapChart bubbleChart bubbleChart BubbleChart scatterChart scatterChart ScatterChart radialChart radarChart RadarChart Y pieChart pieChart PieChart -
์ฝค๋ณด ์ฐจํธ
3.x ๋ฒ์ ์์ ์ฝค๋ณด ์ฐจํธ๋ฅผ ๋ง๋ค์ด ์ฃผ๊ธฐ ์ํด์๋ ์ ์ ํจ์
comboChart
๋ฅผ ์ฌ์ฉํ๋ค. 4.0 ๋ฒ์ ์์๋ ์ง์ํ๋ ์ฝค๋ณด ์ฐจํธ์ ์ด๋ฆ์ ๋ช ํํ ํ์๋ค.v3.x v4.0 - ์ ์ ํจ์ v4.0 - ์์ฑ์ ํจ์ ์ด๋ฆ ๋ณ๊ฒฝ ์ฌ๋ถ comboChart nestedPieChart NestedPieChart Y comboChart columnLineChart ColumnLineChart Y comboChart lineAreaChart LineAreaChart Y comboChart lineScatterChart lineScatterChart Y
NestedPie ์ฐจํธ๋ฅผ ์ ์ธํ ๋๋จธ์ง ์ฝค๋ณด ์ฐจํธ๋ 3.x ๋ฒ์ ์์์ ๋ฐ์ดํฐ์ ์ฌ์ฉ ์ต์ ์ด ๊ฐ๋ค. NestedPie ์ฐจํธ๋ NestedPie ์ฐจํธ(๊ตฌ Pie-Donut ์ฝค๋ณด ์ฐจํธ) ์น์ ์์ ์์ธํ ์ค๋ช ํ๋ค.
์ฐจํธ 3.x์์๋ ์ ์ ๋ฉ์๋๋ฅผ ํตํด ํ
๋ง๋ฅผ ๋ฑ๋กํ๊ณ ์์ ํ ์ ์์๋ค. ์ฐจํธ 4.0์์๋ ์ต์
์ ํตํด ํ
๋ง๋ฅผ ์ ์ํ๋ฉฐ setOptions
๋ฅผ ํตํด ํ
๋ง๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค. ํดํ๊ณผ ๋ด๋ณด๋ด๊ธฐ ๋ฉ๋ด์ ํ
๋ง๋ฅผ ์ ์ฉํ ์ ์์ผ๋ฉฐ, ์๋ฆฌ์ฆ์์ ๋ฐ์ดํฐ ๋ผ๋ฒจ ํ
๋ง๋ ์ ์ฉํ ์ ์๋ค.
v3.x
const theme = {
chart: {/* */},
title: {/* */},
xAxis: {/* */},
yAxis: {/* */},
plot: {/* */},
series: {/* */},
legend: {/* */}
};
Chart.registerTheme('newTheme', theme);
const options = {
...
theme: 'newTheme'
};
v4.0
const options = {
...
theme: {
chart: {/* ์ฐจํธ ์ ์ญ ์คํ์ผ */},
title: {/* ์ฐจํธ ์ ๋ชฉ ์คํ์ผ */},
xAxis: {/* X์ถ ์คํ์ผ */},
yAxis: {/* Y์ถ ์คํ์ผ */},
plot: {/* ํ๋กฏ ์คํ์ผ */},
series: {/* ์๋ฆฌ์ฆ ์คํ์ผ */},
legend: {/* ๋ฒ๋ก ์คํ์ผ */},
tooltip: {/* ํดํ ์คํ์ผ */},
exportMenu: {/* ๋ด๋ณด๋ด๊ธฐ ๋ฉ๋ด ์คํ์ผ */}
}
};
const chart = Chart.barChart({el, data, options});
chart.setOptions({
...
theme: {
series: {
theme: {
chart: {/* ์ฐจํธ ์ ์ญ ์คํ์ผ */},
title: {/* ์ฐจํธ ์ ๋ชฉ ์คํ์ผ */},
xAxis: {/* X์ถ ์คํ์ผ */},
yAxis: {/* Y์ถ ์คํ์ผ */},
plot: {/* ํ๋กฏ ์คํ์ผ */},
series: {/* ์๋ฆฌ์ฆ ์คํ์ผ */},
legend: {/* ๋ฒ๋ก ์คํ์ผ */},
tooltip: {/* ํดํ ์คํ์ผ */},
exportMenu: {/* ๋ด๋ณด๋ด๊ธฐ ๋ฉ๋ด ์คํ์ผ */}
}
}
}
})
์ ์ญ ์คํ์ผ, ์ฐจํธ ์ ๋ชฉ, ์ถ, ํ๋กฏ, ๋ฒ๋ก, ํดํ, ๋ด๋ณด๋ด๊ธฐ ๋ฉ๋ด์ ๋ํ ํ ๋ง๋ ๊ณตํต ์ปดํฌ๋ํธ ํ ๋ง์์ ํ์ธํ ์ ์์ผ๋ฉฐ, ์๋ฆฌ์ฆ์ ๋ํ ํ ๋ง๋ ๊ฐ ์ฐจํธ๋ณ ๊ฐ์ด๋์์ ํ์ธํ ์ ์๋ค.
- Bar , Column , Bullet , BoxPlot , Line , Area , Heatmap , Treemap , Bubble , Scatter , Radar , Pie , NestedPie , ColumnLine , LineArea , LineScatter
3.x ๋ฒ์ ์์ series
์ต์
์ผ๋ก ์ง์ํ๋ ์คํ์ผ ๊ด๋ จ ์์ฑ์ 4.0 ๋ฒ์ ์์ theme
์์ฑ์ ํฌํจ๋์๋ค.
์ฐจํธ ํ์ | v3.x | v4.0 |
---|---|---|
Area ์ฐจํธ | series.areaOpacity |
theme.series.areaOpacity |
Area, Line ์ฐจํธ | series.pointWidth |
theme.series.lineWidth |
Bar, Column ์ฐจํธ | series.barWidth |
theme.series.barWidth |
์ฐจํธ 3.x ๋ฒ์ ์์๋ chart.format
์ต์
๊ณผ tooltip.suffix
์ต์
์ ํตํด ๋ฐ์ดํฐ ํ์์ ๋ณ๊ฒฝํด ์ค ์ ์์๋ค. ์ฐจํธ 4.0์์๋ ์ฌ์ฉ์๊ฐ ์ ์ฐํ๊ฒ ์ถ๋ ฅ ํ์์ ๋ค๋ฃฐ ์ ์๋๋ก ํจ์ ํํ์ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ๋๋ก ๋ณ๊ฒฝ๋์๋ค.
v3.x
const options = {
chart: { format: '1,000' }
tooltip: { suffix: 'โ' },
};
v4.0
const options = {
tooltip: {
formatter: (value) => {
const temp = Number(value.toFixed(2));
let icon = 'โ๏ธ';
if (temp < 0) {
icon = 'โ๏ธ';
} else if (temp > 25) {
icon = '๐ฅ';
}
return `${icon} ${value} โ`;
},
},
};
3.x ๋ฒ์ ์์๋ ํดํ์ ํ
ํ๋ฆฟ์ ์ค์ ํ ๋ ๋๊ฒจ๋ฐ๋ ๋งค๊ฐ๋ณ์ ๋ฐ์ดํฐ๊ฐ ๋งค์ฐ ์ ํ์ ์ด์๋ค. 4.0์์๋ ํดํ์ผ๋ก ๋ณด์ฌ์ฃผ์ด์ผ ํ ๋ฐ์ดํฐ ๋ชจ๋ธ๊ณผ ์ฐจํธ ๋ด๋ถ์์ ์ ์๋ ๊ธฐ๋ณธ ํดํ ํ
ํ๋ฆฟ(header
, body
) ๊ทธ๋ฆฌ๊ณ ํ
๋ง ์ ๋ณด๊น์ง ํจ๊ป ๋๊ฒจ์ฃผ์ด ์ฌ์ฉ์๊ฐ ํ
ํ๋ฆฟ์ ์์ฑํ๋ ๋ฐ ํธ์๋ฅผ ์ ๊ณตํ๋ค.
v3.x
const options = {
tooltip: {
template: (category, item, categoryTimestamp) => {
const head = `<div>${category}</div>`;
const body = `<div>${item.value}:${item.legend}</div>`;
return `${head}${body}`;
}
}
};
v4.0
const options = {
tooltip: {
template: (model, defaultTooltipTemplate, theme) => {
const { body, header } = defaultTooltipTemplate;
const { background } = theme;
return `
<div style="
background: ${background};
width: 140px;
padding: 0 5px;
text-align: center;
color: white;
">
<p>๐ ${model.category} ๐</p>
${body}
</div>
`;
}
}
};
์ฐจํธ 3.x์์๋ tooltip.grouped
์ต์
์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํ์์ผ ๋ง์ฐ์ค๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ํ์งํ ์ ์์๋ค. ์ฐจํธ 4.0์์๋ series.eventDetectType
์ ์ ๊ณตํด ์ข ๋ ๋ค์ํ ๋ง์ฐ์ค ์ด๋ฒคํธ ํ์ง ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ค. ์ฐจํธ๋ณ ์ฌ์ฉ ๊ฐ๋ฅํ ์ต์
์ ์๋ ํ๋ฅผ ์ฐธ๊ณ ํ์.
์ฐจํธ ํ์ | ํ์ง ํ์ | ๊ธฐ๋ณธ๊ฐ |
---|---|---|
Line, Area ์ฐจํธ | 'near' , 'nearest' , 'grouped' , 'point' |
'nearest' |
Bar, Column, Bullet, BoxPlot | 'grouped' , 'point' |
'point' |
ColumnLine ์ฐจํธ | 'grouped' , 'point' |
'grouped' |
3.x ๋ฒ์ ์์๋ tickInterval
, labelInterval
์ต์
์ ์ ๊ณตํ๋ค. tickInterval
์๋ 'auto'
๋ง ์
๋ ฅํ ์ ์์ผ๋ฉฐ labelInterval
์ต์
์ผ๋ก ๋ผ๋ฒจ ๊ฐ๊ฒฉ๋ง ์กฐ์ ํ ์ ์์๋ค. 4.0 ๋ฒ์ ์์๋ tick.interval
, label.interval
์ ํตํด ๋ผ๋ฒจ๊ณผ ํฑ์ ๊ฐ๊ฒฉ์ ์กฐ์ ํ ์ ์๋ค. ์ถ๊ฐ๋ก, ์๋ก์ด scale
์ต์
์ ์ง์ํ๊ณ , scale.min
, scale.max
, scale.stepSize
์ต์
์ ์ฌ์ฉํด ์ข ๋ ์ ๊ตํ๊ฒ ์ถ์ ๋๊ธ๊ณผ ๋ผ๋ฒจ ๊ฐ๊ฒฉ์ ์ ์ดํ ์ ์๋ค.
v3.x
const options = {
xAxis: {
min: 0,
max: 9000,
tickInterval: 'auto',
labelInterval: 3
}
}
v4.0
const options = {
xAxis: {
tick: {
interval: 3
},
label: {
interval: 6
},
scale: {
min: 0,
max: 9000,
stepSize: 1000 // or 'auto'
}
}
}
3.x ๋ฒ์ ์์๋ X์ถ์ ๋ ์ง ํ์์ ๋ผ๋ฒจ์ ํ์ํ๋ ค๋ฉด type: 'datetime'
๊ณผ dateFormat
์ต์
์ ์ง์ ํด์ฃผ์ด์ผ ํ๋ค. 4.0 ๋ฒ์ ์์ ๋ ์ง ํ์์ ์ํ ์ต์
์ date
๋ก ๋ณ๊ฒฝ๋์๋ค.
v3.x
const options = {
xAxis: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD'
}
};
v4.0
const options = {
xAxis: {
date: { format: 'YYYY-MM-DD' } // or true
}
};
์ฐจํธ 3.x์์๋ ์๋ฆฌ์ฆ์ ๊ฐ์ ํํํ ๋ ์ต์ ์ด ๋งค์ฐ ์ ํ์ ์ด๋ฉฐ ์คํ์ผ์ ๋ณ๊ฒฝํ ์ ์์๋ค. ์ฐจํธ 4.0 ๋ฒ์ ์์๋ ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ ๋ผ๋ฒจ์ ์์น๋ฅผ ์ง์ ํ๊ณ ์ถ๋ ฅ ํ์์ ์ง์ ํ๋ฉฐ, ๋ค์ํ๊ฒ ์คํ์ผ๋ง ํ ์ ์๋๋ก ์ต์ ์ ๊ตฌ์ฒดํํ์๋ค.
v3.x
const options = {
series: {
showLabel: true
}
};
v4.0
const options = {
series: {
dataLabels: {
visible: true,
offsetX: 0,
offsetY: 0,
formatter: (value) => `$${value}`
...
/* ์ฐจํธ ์๋ฆฌ์ฆ๋ณ ๋ฐ์ดํฐ ๋ผ๋ฒจ ์ต์
*/
}
},
theme: {
series: {
dataLabels: {/* */}
}
}
};
์ฐจํธ ์๋ฆฌ์ฆ๋ณ ์ง์ํ๋ dataLabels
์ต์
์ด ์กฐ๊ธ์ฉ ๋ค๋ฅด๋ค. ๊ฐ ์ฐจํธ๋ณ dataLabels ๊ฐ์ด๋๋ฅผ ์ฐธ๊ณ ํ๋ค.
๋ค์์ ๋ฐ์ดํฐ ๋ผ๋ฒจ ๊ธฐ๋ฅ์ ์ง์ํ๋ ์ฐจํธ ๋ชฉ๋ก์ด๋ค.
- Bar , Column , Bullet , Line , Area , Heatmap , Treemap , Pie , NestedPie , ColumnLine , LineArea , LineScatter
3.x ๋ฒ์ ์์ Pie & Donut ์ฝค๋ณด ์ฐจํธ๋ 4.0 ๋ฒ์ ์์ NestedPie ์ฐจํธ๋ก ๋ณ๊ฒฝ๋์๋ค. 3.x ๋ฒ์ ์์๋ ์ต๋ ํํํ ์ ์๋ ์ค์ฒฉ๋ ํ์ด ์๋ฆฌ์ฆ๊ฐ 2๊ฐ๋ก ์ ํ๋์์ผ๋ฉฐ, ์ฐจํธ ๋ฐ์ดํฐ์ ์ฌ์ฉ๋๋ ์๋ฆฌ์ฆ ๋ณ์นญ๋ 'pie1'
, 'pie2'
๋ก ๊ณ ์ ๋์ด ์ฌ์ฉ๋์๋ค. 4.0 ๋ฒ์ ์์๋ ์ด๋ฌํ ๋ถํธํจ์ ๊ฐ์ ํ๊ณ ์ฌ๋ฌ ๊ฐ์ ์ค์ฒฉ๋ ํ์ด ์ฐจํธ๋ฅผ ์์ฑํ ์ ์๊ฒ ๋์์ผ๋ฉฐ, ํ์์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํํ์ฌ ๋ณด์ฌ์ค ์ ์๋ค.
v3.x
const data = {
categories: ['Browser'],
seriesAlias: {
pie1: 'pie',
pie2: 'pie'
},
series: {
pie1: [/* */],
pie2: [/* */]
}
};
const options = {
series: {
pie1: {/* */},
pie2: {/* */}
}
};
Chart.combochart(el, data, options);
v4.0
const data = {
series: [
{
name: 'browsers',
data: [/* */],
},
{
name: 'versions',
data: [/* */],
},
{
name: 'details',
data: [/* */],
}
],
};
const options = {
series: {
browsers: {/* */},
versions: {/* */},
details: {/* */}
}
};
Chart.nestedPieChart({el, data, options});
parentName
์ ์ง์ ํ์ฌ ๋ฐ์ดํฐ์ ๋ถ๋ชจ ์๋ฆฌ์ฆ๋ฅผ ์ค์ ํด์ฃผ๋ฉด ๊ทธ๋ฃน ๋ฐ์ดํฐ๋ก ํํํ ์ ์๋ค. parentName
์ series ๋ฐฐ์ด์์ ์ด์ ์๋ฆฌ์ฆ์ name
(series.data.name
) ๊ฐ์ ์ฌ์ฉํ๋ค.
const data = {
categories: ['A', 'B'],
series: [
{
name: 'browsers',
data: [
{
name: 'Chrome',
data: 50,
},
...
],
},
{
name: 'versions',
data: [
{
name: 'Chrome 64',
parentName: 'Chrome',
data: 40,
},
{
name: 'Chrome 63',
parentName: 'Chrome',
data: 10,
},
...
],
},
{
name: 'details',
data: [
{
name: 'Chrome 64 - 1',
parentName: 'Chrome 64',
data: 25,
},
{
name: 'Chrome 64 - 2',
parentName: 'Chrome 64',
data: 15,
},
{
name: 'Chrome 63 - 1',
parentName: 'Chrome 63',
data: 7,
},
{
name: 'Chrome 63 - 2',
parentName: 'Chrome 63',
data: 3,
},
...
],
},
],
};
NestedPie ์ฐจํธ์ ์์ธํ ์ค๋ช ์ NestedPie ์ฐจํธ ๊ฐ์ด๋๋ฅผ ์ฐธ๊ณ ํ๋ค.
๋์์ v3.x์ ๊ฐ์ง๋ง 4.0 ๋ฒ์ ์์ ์ด๋ฆ์ด ๋ณ๊ฒฝ๋ ์ต์ , ๋ฉ์๋, ์ปค์คํ ์ด๋ฒคํธ๋ ๋ค์๊ณผ ๊ฐ๋ค.
-
์ต์
v3.x v4.0 ์ค๋ช xAxis.rotateLabel
xAxis.label.rotatable
x์ถ ๋ผ๋ฒจ ํ์ ์ฌ๋ถ xAxis.min
xAxis.scale.min
X์ถ ์ต์๊ฐ ์ค์ xAxis.max
xAxis.scale.max
X์ถ ์ต๋๊ฐ ์ค์ yAxis.min
yAxis.scale.min
Y์ถ ์ต์๊ฐ ์ค์ yAxis.max
yAxis.scale.max
Y์ถ ์ต๋๊ฐ ์ค์ series.allowSelect
series.selectable
์๋ฆฌ์ฆ ์ ํ ๊ธฐ๋ฅ ์ฌ์ฉ ์ฌ๋ถ series.shifting
series.shift
shift ์ฌ์ฉ ์ฌ๋ถ chartExportMenu
exportMenu
๋ด๋ณด๋ด๊ธฐ ์ต์ -
๋ฉ์๋
v3.x v4.0 ์ค๋ช showSeriesLabel
showSeriesDataLabel
๋ฐ์ดํฐ ๋ผ๋ฒจ ํ์ hideSeriesLabel
hideSeriesDataLabel
๋ฐ์ดํฐ ๋ผ๋ฒจ ์จ๊ธฐ๊ธฐ -
์ปค์คํ ์ด๋ฒคํธ
v3.x v4.0 ์ค๋ช 'changeCheckedLegends'
clickLegendCheckbox
๋ฒ๋ก์ ์ฒดํฌ ๋ฐ์ค ํด๋ฆญ ์ ๋ฐ์ 'selectLegend'
clickLegendLabel
๋ฒ๋ก์ ๋ผ๋ฒจ ํด๋ฆญ ์ ๋ฐ์
3.x ๋ฒ์ ์์ series.shifting: true
์ addData
๋ฉ์๋๋ฅผ ์ฌ์ฉํด ์ฐจํธ ๋ฐ์ดํฐ๋ฅผ ์
๋ฐ์ดํธํ ์ ์์๋ค. ์ด ๊ธฐ๋ฅ์ 3.x ๋ฒ์ ์์ Line๊ณผ Area ์ฐจํธ์์๋ง ๋์ํ์๋ค. 4.0 ๋ฒ์ ์์๋ Line๊ณผ Area ์ธ์๋ Column, Heatmap, LineArea, ColumnLine ์ฐจํธ์์๋ ์ฌ์ฉํ ์ ์๊ฒ ๋์๋ค. ์ฌ์ฉ๋ฒ์ Live Update ๊ฐ์ด๋๋ฅผ ์ฐธ๊ณ ํ๋ค.
3.x ๋ฒ์ ์์๋ chart.width
์ chart.height
์ต์
์ ํ์์ ์ผ๋ก ์ซ์ ๊ฐ์ ์
๋ ฅํด ์ฃผ์ด์ผ ํ๋ค. 4.0 ๋ฒ์ ์์๋ ์ด ์ต์
์ ์
๋ ฅํด์ฃผ์ง ์์ผ๋ฉด ์ปจํ
์ด๋ ํฌ๊ธฐ์ ๋ง์ถฐ ์ฐจํธ๊ฐ ๋ ๋๋ง ๋๋ค. ์ซ์ ์ธ auto
๋ก ์ค์ ํด์ฃผ๋ฉด ์ฐจํธ ๋ด๋ถ์ ์ผ๋ก window.resize
์ด๋ฒคํธ ๋ฆฌ์ค๋๊ฐ ๋ฑ๋ก๋๋ฉฐ, ์ฐจํธ ์ปจํ
์ด๋์ ํฌ๊ธฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์๋์ผ๋ก ์ปจํ
์ด๋ ํฌ๊ธฐ์ ๋ง์ถฐ ๋ค์ ๋ ๋๋งํ๋ค.
3.x ๋ฒ์ ์์๋ ์ฐจํธ์ ํฌ๊ธฐ๊ฐ ๋ณ๊ฒฝ๋์์ ๋ ์ต์
์ ๋ณ๊ฒฝํ๋ API๊ฐ ๋ฐ๋ก ์กด์ฌํ์ง ์์ ์ฐจํธ๋ฅผ ๋ฐ์ํ์ผ๋ก ๋ ๋๋งํ๊ธฐ ์ด๋ ค์ ๋ค. 4.0 ๋ฒ์ ์์๋ ์ด๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด ์๋ก์ด responsive
์ต์
์ ์ ๊ณตํ๋ค. ์ฌ์ฉ๋ฒ์ responsive ์ต์
๊ฐ์ด๋๋ฅผ ์ฐธ๊ณ ํ๋ค.
3.x ๋ฒ์ ์์๋ yAxis.maxWidth
, legend.maxWidth
์ต์
์ ์ ๊ณตํ์ฌ Y์ถ๊ณผ ๋ฒ๋ก์ ์ต๋ ๋๋น๋ง ์ง์ ํ ์ ์์์ผ๋ฉฐ ๊ณ ์ ๋ ๋๋น๋ฅผ ์ ํด์ค ์ ์์๋ค. 4.0 ๋ฒ์ ์์๋ ์ด๋ฅผ ๊ฐ์ ํ์ฌ X์ถ, Y์ถ, ํ๋กฏ ์์ญ์ ํฌ๊ธฐ ๋ฐ ๋ฒ๋ก์ ๋๋น๋ฅผ ์ง์ ํ ์ ์๋ค. ์ฌ๋ฌ ์ฐจํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๊ฐ ์ปดํฌ๋ํธ์ ๋๋น๋ฅผ ๊ณ ์ ํ๊ณ ์ถ์ ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์๋ค. ์ฌ์ฉ๋ฒ์ ๋ ์ด์์ ์ค์ ๊ฐ์ด๋๋ฅผ ์ฐธ๊ณ ํ๋ค.
4.0 ๋ฒ์ ์์๋ Pie ์ฐจํธ์ ๊ธฐ๋ฅ์ด ๊ฐ์ ๋๊ณ ์ต์
์ด ์ ๋ฆฌ๋์๋ค. 3.x ๋ฒ์ ์์๋ radiusRange
์ต์
์ %
๋ฅผ ํฌํจํ ๋ฌธ์์ด ํ์
์ผ๋ก๋ง ์ค์ ํ ์ ์์๋ค. 4.0 ๋ฒ์ ์์๋ ์ซ์ ํ์
์ผ๋ก๋ ์ค์ ํ ์ ์์ผ๋ฉฐ ๋ฐ์ง๋ฆ์ด ์ ๋๊ฐ์ผ๋ก ๊ณ์ฐ๋๋ค. ๋ํ ์๋ก์ด clockwise
์ต์
์ด ์ถ๊ฐ๋์์ผ๋ฉฐ ์๋ฆฌ์ฆ๊ฐ ๊ทธ๋ ค์ง๋ ์ ๋๋ฉ์ด์
๋ฐฉํฅ์ ์ ํ ์ ์๋ค. 3.x ๋ฒ์ ์ showLegend
, labelAlign
์ต์
์ 4.0 ๋ฒ์ ์ dataLabels
์ต์
์ผ๋ก ํตํฉ๋์๋ค.
v3.x
const options = {
series: {
radiusRange: ['60%', '100%'],
startAngle: -90,
endAngle: 90,
showLabel: true,
showLegend: true,
labelAlign: 'outer'
}
};
v4.0
const options = {
series: {
radiusRange: {
inner: 120, // or '60%',
outer: 200 // or '100%'
},
angleRange: {
start: -90,
end: -90
},
clockwise: true,
dataLabels: {
visible: true,
pieSeriesName: {
visible: true,
anchor: 'outer',
}
}
}
};
์ฐจํธ 4.0 ๋ฒ์ ์์๋ ์ฌ์ฉ์ ํธ์๋ฅผ ์ํ ์๋ก์ด ์ธ์คํด์ค ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ค. ์ถ๊ฐ๋ ๋ฉ์๋ ๋ชฉ๋ก์ ๋ค์๊ณผ ๊ฐ๋ค.
const chart = new LineChart({ el, data, options });
chart.addSeries(/* */);
chart.setOptions(/* */);
chart.updateOptions(/* */);
chart.getOptions();
chart.showTooltip(/* */);
chart.hideTooltip();
๋ฉ์๋๋ช | ์ค๋ช | ๋งํฌ |
---|---|---|
addSeries |
์๋ก์ด ์๋ฆฌ์ฆ๋ฅผ ์ถ๊ฐ | ๊ฐ์ด๋ |
setOptions |
์ฐจํธ ์ต์ ์ ์ฒด ๋ณ๊ฒฝ | ๊ฐ์ด๋ |
updateOptions |
๊ธฐ์กด ์ฐจํธ ์ต์ ๋ณ๊ฒฝ | ๊ฐ์ด๋ |
getOptions |
์ฐจํธ์ ์ ์ฉ๋ ์ต์ ๋ฐํ | ๊ฐ์ด๋ |
showTooltip |
์๋ฆฌ์ฆ ํดํ ํ์ | ๊ฐ์ด๋ |
hideTooltip |
ํดํ ์จ๊ธฐ๊ธฐ | ๊ฐ์ด๋ |
์ฐจํธ 4.0 ๋ฒ์ ์์๋ ์ฌ์ฉ์ ํธ์๋ฅผ ์ํ ์๋ก์ด ์ปค์คํ ์ด๋ฒคํธ๋ฅผ ์ ๊ณตํ๋ค. ์ถ๊ฐ๋ ์ปค์คํ ์ด๋ฒคํธ ๋ชฉ๋ก์ ๋ค์๊ณผ ๊ฐ๋ค.
const chart = Chart.lineChart({el, data, options});
chart.on('hoverSeries', (info) => {/* */});
chart.on('unhoverSeries', (info) => {/* */});
chart.on('zoom', (dataRange) => {/* */});
chart.on('resetZoom', () => {/* */});
์ปค์คํ ์ด๋ฒคํธ๋ช | ์ค๋ช | ์ฐจํธ ํ์ |
---|---|---|
'hoverSeries' |
์๋ฆฌ์ฆ ๋ฐ์ดํฐ์ ๋ง์ฐ์ค๋ฅผ ์ฌ๋ฆด ๋ ์ด๋ฒคํธ ๋ฐ์ | ๋ชจ๋ ์ฐจํธ |
'unhoverSeries' |
hoverSeries ์ด๋ฒคํธ ๋ฐ์ ํ ๋ง์ฐ์ค๊ฐ ๋ ๋ ๋ ์ด๋ฒคํธ ๋ฐ์ |
๋ชจ๋ ์ฐจํธ |
'zoom' |
zoom ๋ฐ์ ์ ์ด๋ฒคํธ ๋ฐ์ | Line, Area, LineArea, Treemap ์ฐจํธ |
'resetZoom' |
zoom ์ด๊ธฐํ ์ ์ด๋ฒคํธ ๋ฐ์ | Line, Area, LineArea, Treemap ์ฐจํธ |
3.x ๋ฒ์ ์์๋ Map ์ฐจํธ๊ฐ ํฌํจ๋์์ง๋ง 4.0 ๋ฒ์ ์์๋ ๋ณ๋์ SVG ๊ธฐ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ ๊ณต๋๋ค.
v3.x | v4.0 |
---|---|
TOAST UI Chart์ ํฌํจ | ๋ณ๋์ SVG ๊ธฐ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ ๊ณต(์์ ) |
์ฐจํธ 4.0 ๋ฒ์ ๋ถํฐ๋ Bower๋ฅผ ์ง์ํ์ง ์๋๋ค. Bower ์ง์ ์ค๋จ๊ณผ ํจ๊ป ๊นํ ์ ์ฅ์์์ production
๋ธ๋์น๋ ์ ๊ฑฐ๋์๋ค. ๊ธฐ์กด์ production
๋ธ๋์น์ dist
ํด๋์์ ๋ฒ๋ค ํ์ผ์ ์ง์ ๊ฐ์ ธ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ฃผ์ํด์ผ ํ๋ค. ๋
ธ๋ ํ๊ฒฝ์์ ๊ฐ๋ฐ์ ๊ถ์ฅํ๋, ์ด์ ๊ณผ ๊ฐ์ด Bower๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก ๊ฐ๋ฐํ๊ณ ์ถ์ ๊ฒฝ์ฐ CDN์ ์ฌ์ฉํ๋ฉด ๋๋ค.
๋ง์ง๋ง์ผ๋ก, ์ฐจํธ 4.0 ๋ฒ์ ์์ ์ ๊ฑฐ๋ API๋ฅผ ์ ๋ฆฌํ ๋ชฉ๋ก์ด๋ค.
ํ์ | ๋ฉ์๋๋ช |
---|---|
์ ์ ๋ฉ์๋ | registerPlugin , registerTheme , registerMap |
์ธ์คํด์ค ๋ฉ์๋ | setTooltipAlign , resetTooltipAlign , resetTooltipOffset , resetTooltipPosition |
afterShowTooltip
,beforeHideTooltip
,beforeShowTooltip