- ์ฌ์ฉ ๊ฐ๋ฅ ์ฐจํธ ํ์
:
All
public on(eventName: 'clickLegendLabel'
| 'clickLegendCheckbox'
| 'selectSeries'
| 'unselectSeries'
| 'hoverSeries'
| 'unhoverSeries'
| 'zoom'
| 'resetZoom', handler: (evt: any) => void): void;
on()
๋ ํน์ ์กฐ๊ฑด์ด ๋ฐ์ํ ๋ ์ฌ์ฉ์ ์ ์ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํค๋๋ก ํ๋ API๋ค. ์ธ์๋ก ์ด๋ฒคํธ ๋ช
(eventName
)๊ณผ ํน์ ์กฐ๊ฑด์ด ๋ฐ์ํ ์ ์๋ ์กฐ๊ฑด์ด ์ถฉ์กฑํ์ ๋ ๋ฐ์ํ๋ ์ฌ์ฉ์ ์ ์ ์ด๋ฒคํธ๋ฅผ ๋ฐ๋๋ค. ํ์ฌ ์ ๊ณต๋๊ณ ์๋ ์ด๋ฒคํธ ์กฐ๊ฑด์ ๋ค์๊ณผ ๊ฐ๋ค.
eventName | ์ค๋ช |
---|---|
clickLegendLabel |
legend ๋ผ๋ฒจ ์์ญ ํด๋ฆญ ์ ์ด๋ฒคํธ ๋ฐ์ |
clickLegendCheckbox |
legend ์ฒดํฌ ๋ฐ์ค ์์ญ ํด๋ฆญ ์ ์ด๋ฒคํธ ๋ฐ์ |
selectSeries |
์๋ฆฌ์ฆ ์ ํ ์ ๋ฐ์. options.series.selectable: true ์กฐ๊ฑด ํ์ |
unselectSeries |
์๋ฆฌ์ฆ ์ ํ ํด์ ์ ๋ฐ์. options.series.selectable: true ์กฐ๊ฑด ํ์ |
hoverSeries |
์๋ฆฌ์ฆ ๋ฐ์ดํฐ์ ๋ง์ฐ์ค๋ฅผ ์ฌ๋ฆด ๋ ์ด๋ฒคํธ ๋ฐ์ |
unhoverSeries |
hoverSeries ์ด๋ฒคํธ ๋ฐ์ ํ ๋ง์ฐ์ค๊ฐ ๋ ๋ ๋ ์ด๋ฒคํธ ๋ฐ์ |
zoom |
zoom ๋ฐ์ ์ ์ด๋ฒคํธ ๋ฐ์. options.series.zoomable: true ์กฐ๊ฑด ํ์ |
resetZoom |
zoom ์ด๊ธฐํ ์ ์ด๋ฒคํธ ๋ฐ์. options.series.zoomable: true ์กฐ๊ฑด ํ์ |
area ์ฐจํธ์ ์๋ฆฌ์ฆ๋ฅผ ์ ํํ์ ๋ ์ฌ์ฉ์ ์ ์ ์ด๋ฒคํธ๋ฅผ ์ถ๊ฐํ๊ณ ์ถ์ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ์ ์ํ ์ ์๋ค. ์ฌ์ฉ์ ์ ์ ํจ์์์๋ ๊ฐ ์ด๋ฒคํธ์์ ์ ๊ณต๋๋ ์ ๋ณด๋ฅผ ์ธ์๋ก ์ฌ์ฉํ ์ ์๋ค.
const chart = new LineChart({ el, data, options });
chart.on('selectSeries', (ev) => {
console.log(ev);
/*
{area: [
{data: [...], color: '...', name: '...', seriesIndex: '...', index: '...'}
]}
*/
});
- ์ฌ์ฉ ๊ฐ๋ฅ ์ฐจํธ ํ์
:
All
public destroy(): void;
์์ฑ๋ ์ฐจํธ ์ธ์คํด์ค๋ฅผ ์ ๊ฑฐํด์ค๋ค.
const chart = new LineChart({ el, data, options });
chart.destroy();
- ์ฌ์ฉ ๊ฐ๋ฅ ์ฐจํธ ํ์
:
All
public resize(size: {
width?: number;
height?: number;
}): void;
์ฐจํธ๊ฐ ๊ทธ๋ ค์ง๋ ์บ๋ฒ์ค์ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํด์ค๋ค.
const chart = new LineChart({ el, data, options });
chart.resize({width: 400, height: 400});
- ์ฌ์ฉ ๊ฐ๋ฅ ์ฐจํธ ํ์
:
All
public addSeries(data: SeriesDataInput, seriesDataInfo?: {
category?: string
chartType?: string;
}): void;
series๋ฅผ ์ถ๊ฐํ ๋ ์ฌ์ฉ๋๋ API๋ค. ์ฒซ ๋ฒ์งธ ์ธ์๋ก๋ ์ถ๊ฐ ๋ ์๋ฆฌ์ฆ ๋ฐ์ดํฐ ๋ ๋ฒ์งธ ์ธ์๋ก๋ ์๋ฆฌ์ฆ์ ๋ํ ์ถ๊ฐ ์ ๋ณด๋ฅผ ๋ฐ๋๋ค. data์ ํ์ ์ ์ฌ์ฉ๋๊ณ ์๋ ์ฐจํธ์ ๋ฐ์ดํฐ ํ์ ๊ณผ ๋์ผํ๊ฒ ์ถ๊ฐํ๋ฉด ๋๋ค.
๊ฐ๋จํ ์์๋ก LineChart์ ์๋ฆฌ์ฆ๋ฅผ ์ถ๊ฐํด๋ณด์.
const chart = new LineChart({ el, data, options });
chart.addSeries({
name: 'newSeries',
data: [10, 100, 50, 40, 70, 55, 33, 70, 90, 110],
});
๋ ๋ฒ์งธ ์ธ์์ธ ์ถ๊ฐ ์ ๋ณด๋ category
์ chartType
์ ๋ด์์ค ์ ์๋ค.
์ฒซ ๋ฒ์งธ๋ก, category
์ ๊ฒฝ์ฐ Heatmap ์ฐจํธ์์ ์ฌ์ฉ๋๋ฉฐ Y Category์ ํด๋น๋๋ ๊ฐ์ ์ถ๊ฐํ๋ค. Heatmap ์ฐจํธ์ addSeries()
์์๋ฅผ ์์ฑํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
chart.addSeries([-3.5, -1.1, 4.0, 11.3, 17.5, 21.5, 24.9, 25.2, 20.4, 13.9, 6.6, -0.6], {
category: 'newSeries',
});
๋ ๋ฒ์งธ๋ก, chartType
์ ๊ฒฝ์ฐ ColumnLine
, LineArea
, LineScatter
, NestedPie
์์ ์ฌ์ฉ๋๋ฉฐ ๊ฐ ์ฐจํธ์ ํ์
๋๋ NestedPie
์ ๊ฒฝ์ฐ ์๋ฆฌ์ฆ์ name
์ ์ถ๊ฐํด์ค์ผ ํด๋นํ๋ ์ฐจํธ์ ์ ์ ํ๊ฒ ์๋ฆฌ์ฆ๊ฐ ์ถ๊ฐ๋ ์ ์๋ค. LineArea
์ฐจํธ์ addSeries()
๋ฅผ ํ๋ ์์๋ฅผ ์์ฑํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
const chart = new LineAreaChart({ el, data, options });
chart.addSeries(
{
name: 'new series',
data: [72, 80, 110, 107, 126, 134, 148],
},
{ chartType: 'line' }
);
- ์ฌ์ฉ ๊ฐ๋ฅ ์ฐจํธ ํ์
:
All
public setData(data): void;
์ฐจํธ ๋ฐ์ดํฐ ์ ์ฒด๋ฅผ ๋ณ๊ฒฝํ๋ API๋ค. ๋ฐ์ดํฐ์ ํ์
์ ๊ฐ๊ฐ์ ์ฐจํธ๋ฅผ ๊ทธ๋ฆฌ๋๋ฐ ์ฌ์ฉ๋์๋ ํ์
๊ณผ ๋์ผํ๋ค. Line ์ฐจํธ์ setData
์์๋ฅผ ์ดํด๋ณด๋๋ก ํ์.
const lineChart = new LineChart({ el, data, options });
lineChart.setData({
categories: ['1', '2', '3'],
series: [
{
name: 'new series',
data: [1, 2, 3],
},
{
name: 'new series2',
data: [4, 5, 6],
}
]
});
- ์ฌ์ฉ ๊ฐ๋ฅ ์ฐจํธ ํ์
:
Line
,Area
,Bar
,BoxPlot
,Column
,Heatmap
,Bubble
,Scatter
,Bullet
,Radar
,Treemap
,LineArea
,LineScatter
,ColumnLine
public addData(data, category?: string): void;
public addData(data, category: string, chartType: 'line' | 'area' | 'column'): void;
ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋ API๋ค. ์ค์๊ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ ๋ ์ฌ์ฉํ ์ ์๋ค. data์ ๊ฒฝ์ฐ ๊ฐ๊ฐ์ ์๋ฆฌ์ฆ data์ ๋ง์ง๋ง
์ ์ถ๊ฐ๋๋ฉฐ ๋ฐฐ์ด
๋ก ์
๋ ฅ๋๋ค. ๋จผ์ , Line ์ฐจํธ์ addData
์์๋ฅผ ์ดํด๋ณด๋๋ก ํ์.
const data = {
categories: ['1', '2', '3', '4', '5'],
series: [
{
name: 'A',
data: [10, 100, 50, 40, 70],
},
{
name: 'B',
data: [60, 40, 10, 33, 70],
},
],
};
const lineChart = new LineChart({ el, data, options });
lineChart.addData([10, 20], '6');
์ ์์ ๋ ๋ค์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ Line ์ฐจํธ๋ก ๋ณ๊ฒฝ๋ ๊ฒ์ด๋ค.
const data = {
categories: ['1', '2', '3', '4', '5', '6'], // '6' ์ถ๊ฐ
series: [
{
name: 'A',
data: [10, 100, 50, 40, 70, 10], // 10 ์ถ๊ฐ
},
{
name: 'B',
data: [60, 40, 10, 33, 70, 20], // 20 ์ถ๊ฐ
},
],
};
๋ค์์ผ๋ก LineArea ์ฐจํธ์์ addData()
๋ฅผ ์ฌ์ฉํ๋ ๊ฐ๋จํ ์์๋ฅผ ์ดํด๋ณด์.
const data = {
categories: ['1', '2', '3', '4', '5'],
series: {
line: [
{
name: 'A',
data: [10, 100, 50, 40, 70],
},
],
area: [
{
name: 'B',
data: [60, 40, 10, 33, 70],
},
],
},
};
const chart = new LineAreaChart({ el, data, options });
lineAreaChart.addData([10], '6', { chartType: 'line' });
LineArea ์ฐจํธ ๊ฐ์ด ์ฌ๋ฌ ์ฐจํธ ํ์
์ด ํจ๊ป ๊ทธ๋ ค์ง๋ LineArea, LineColumn ์ฐจํธ์ ๊ฒฝ์ฐ ์ธ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ก ์ถ๊ฐ๋ ์ฐจํธ ํ์
์ chartType
์ผ๋ก ๋ช
์ํด ์ค์ผ ํ๋ค. ์ ์์ ๋ ๋ค์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ LineArea ์ฐจํธ๋ก ๋ณ๊ฒฝ๋ ๊ฒ์ด๋ค.
const data = {
categories: ['1', '2', '3', '4', '5', '6'],
series: {
line: [
{
name: 'A',
data: [10, 100, 50, 40, 70, 10],
},
],
area: [
{
name: 'B',
data: [60, 40, 10, 33, 70],
},
],
},
};
- ์ฌ์ฉ ๊ฐ๋ฅ ์ฐจํธ ํ์
:
All
public setOptions(options: Options): void;
์ฐจํธ ์ต์
์ ์ฒด๋ฅผ ๋ณ๊ฒฝํ๋ API๋ค. ์ต์
ํ์
์ ๊ฐ๊ฐ์ ์ฐจํธ๋ฅผ ๊ทธ๋ฆฌ๋๋ฐ ์ฌ์ฉ๋์๋ ํ์
๊ณผ ๋์ผํ๋ค. Line ์ฐจํธ์ setOptions()
์์๋ฅผ ์ดํด๋ณด๋๋ก ํ์.
const chart = new LineChart({ el, data, options });
chart.setOptions({
chart: {
width: 500,
height: 'auto',
title: 'Energy Usage',
},
xAxis: {
title: 'Month',
date: { format: 'yy/MM' },
},
yAxis: {
title: 'Energy (kWh)',
},
series: {
selectable: true
},
tooltip: {
formatter: (value) => `${value}kWh`,
},
});
- ์ฌ์ฉ ๊ฐ๋ฅ ์ฐจํธ ํ์
:
All
public updateOptions(options: Options): void;
๊ธฐ์กด ์ฐจํธ์ ์ต์
์ ์
๋ฐ์ดํธํ๋ API๋ค. setOptions()
API์ ๊ฒฝ์ฐ ์ฒ์ ์ฐจํธ๋ฅผ ์์ฑํ ๋ ์ ์ฉ๋์๋ ์ต์
์ด ๋ชจ๋ ์ฌ๋ผ์ง์ง๋ง updateOptions()
๋ ๊ธฐ์กด ์ฐจํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ถ๊ฐ๋๋ ์ต์
๋ง ๋ณ๊ฒฝ๋๋ค. Line ์ฐจํธ์ updateOptions()
์์๋ฅผ ์ดํด๋ณด๋๋ก ํ์.
const chart = new LineChart({ el, data, options });
chart.updateOptions({
xAxis: {
title: 'Month',
date: { format: 'yy/MM' },
},
tooltip: {
formatter: (value) => `${value}kWh`,
},
})
- ์ฌ์ฉ ๊ฐ๋ฅ ์ฐจํธ ํ์
:
All
public getOptions(): Options;
์ฐจํธ์ ์ ์ฉ๋ ์ฐจํธ ์ต์
์ด ๋ฐํ๋๋ค. setOptions()
ํน์ updateOptions()
๋ก ์ต์
์ ๋ณ๊ฒฝํ์ ๊ฒฝ์ฐ ๋ณ๊ฒฝ๋ ์ต์
์ด ๋ฐํ๋๋ค.
- ์ฌ์ฉ ๊ฐ๋ฅ ์ฐจํธ ํ์
:
All
public getCheckedLegend(): { chartType: ChartType; label: string; checked: boolean; }[]
legend์ ์ฒดํฌ๋ฐ์ค ์์ญ์ด ํ์ฑํ๋์ด์๋ ์๋ฆฌ์ฆ์ ์ ๋ณด๊ฐ ๋ฐํ๋๋ค.
- ์ฌ์ฉ ๊ฐ๋ฅ ์ฐจํธ ํ์
:
All
public setTooltipOffset({ x?: number; y?: number });
ํ์ฌ ํดํ ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก x, y ์์น๋ฅผ ์ด๋์ํจ๋ค.
const chart = new LineChart({ el, data, options });
chart.setTooltipOffset({
x: 30,
y: -100
});
- ์ฌ์ฉ ๊ฐ๋ฅ ์ฐจํธ ํ์
:
Line
,Area
,Bar
,Column
,Pie
,Heatmap
,Bullet
,Treemap
,NestedPie
,LineArea
,ColumnLine
public showSeriesDataLabel();
์ฐจํธ์ dataLabel์ ๋ณด์ฌ์ค๋ค.
- ์ฌ์ฉ ๊ฐ๋ฅ ์ฐจํธ ํ์
:
Line
,Area
,Bar
,Column
,Pie
,Heatmap
,Bullet
,Treemap
,NestedPie
,LineArea
,ColumnLine
public hideSeriesDataLabel();
์ฐจํธ์ dataLabel์ ์จ๊ธด๋ค.
- ์ฌ์ฉ ๊ฐ๋ฅ ์ฐจํธ ํ์
:
Line
,Area
,LineArea
,ColumnLine
public addPlotLine(data: {value: number | string, color: string, id?: string});
addPlotLine()
์ ํตํด plot line์ ์ถ๊ฐํ ์ ์๋ค. ์ดํ removePlotLine()
์ ํตํด ์ถ๊ฐํ ๋ผ์ธ์ ์ ์ดํ๊ณ ์ถ์ ๊ฒฝ์ฐ id
๋ฅผ ์ธ์๋ก ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.
plot line์ ๋ํด ๊ถ๊ธํ๋ค๋ฉด ํด๋น ๊ฐ์ด๋๋ฅผ ์ฐธ๊ณ ํ๋ผ
- ์ฌ์ฉ ๊ฐ๋ฅ ์ฐจํธ ํ์
:
Line
,Area
,LineArea
,ColumnLine
public removePlotLine(id: string);
plot line์ ์ ๊ฑฐํ ์ ์๋ค. ์ธ์๋ก id๋ฅผ ์ ๋ ฅ๋ฐ์ผ๋ฉฐ ๋์ผํ id๋ฅผ ๊ฐ์ง plot line์ ์ ๊ฑฐํ๋ค.
plot line์ ๋ํด ๊ถ๊ธํ๋ค๋ฉด ํด๋น ๊ฐ์ด๋๋ฅผ ์ฐธ๊ณ ํ๋ผ
- ์ฌ์ฉ ๊ฐ๋ฅ ์ฐจํธ ํ์
:
Line
,Area
,LineArea
,ColumnLine
public addPlotBand(data: {
range: [number, number] | [string, string],
color: string,
id?:string
});
plot band ์ถ๊ฐํ ์ ์๋ค. ์ดํ removePlotBand()
๋ฅผ ํตํด ์ถ๊ฐํ band๋ฅผ ์ ์ดํ๊ณ ์ถ์ ๊ฒฝ์ฐ id
๋ฅผ ์ธ์๋ก ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.
plot band์ ๋ํด ๊ถ๊ธํ๋ค๋ฉด ํด๋น ๊ฐ์ด๋๋ฅผ ์ฐธ๊ณ ํ๋ผ
- ์ฌ์ฉ ๊ฐ๋ฅ ์ฐจํธ ํ์
:
Line
,Area
,LineArea
,ColumnLine
public removePlotBand(id: string);
plot band๋ฅผ ์ ๊ฑฐํ ์ ์๋ค. ์ธ์๋ก id๋ฅผ ์ ๋ ฅ๋ฐ์ผ๋ฉฐ ๋์ผํ id๋ฅผ ๊ฐ์ง plot band๋ฅผ ์ ๊ฑฐํ๋ค.
plot band์ ๋ํด ๊ถ๊ธํ๋ค๋ฉด ํด๋น ๊ฐ์ด๋๋ฅผ ์ฐธ๊ณ ํ๋ผ
ํด๋น๋๋ ์๋ฆฌ์ฆ์ ํดํ์ ๋ณด์ฌ์ค๋ค.
public showTooltip(seriesInfo: {
seriesIndex?: number;
index?: number;
alias?: string;
chartType?: 'line' | 'column' | 'area' | 'scatter';
});
์ธ์๋ก ๋ฐ๊ฒ ๋๋ seriesIndex
๋ ์๋ฆฌ์ฆ์ ์ธ๋ฑ์ค, index
๋ ์๋ฆฌ์ฆ ๋ด์์์ ์ธ๋ฑ์ค๋ฅผ ์๋ฏธํ๋ค. ๊ฐ๊ฐ ์ซ์๊ฐ ์ธ๋ฑ์ค๋ฅผ ๋ฃ์ด์ค tooltip์ ๋ณด์ฌ์ค ์๋ฆฌ์ฆ์ ๋ฐ์ดํฐ๋ฅผ ๋ช
์ํ๋ค. alias
๋ NestedPie ์ฐจํธ์์, chartType
์ ColumnLine, LineArea, LineScatter ์ฐจํธ์์ ์ ์ฉํ ์ฐจํธ๋ฅผ ๋ช
์ํด์ค๋ค.
ํดํ์ ์ฌ๋ผ์ง๊ฒ ํ๋ค.
public hideTooltip();
์ต์
options.series.selectable: true
๋ก ์ค์ ๋์ด ์์ ๋ selectSeries()
๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ฆฌ์ฆ๋ฅผ ์ ํํ ์ ์๋ค.
public selectSeries(seriesInfo: {
seriesIndex?: number;
index?: number;
alias?: string;
chartType?: 'line' | 'column' | 'area';
});
์ธ์๋ก ๋ฐ๊ฒ ๋๋ seriesIndex
๋ ์๋ฆฌ์ฆ์ ์ธ๋ฑ์ค, index
๋ ์๋ฆฌ์ฆ ๋ด์์์ ์ธ๋ฑ์ค๋ฅผ ์๋ฏธํ๋ค. ๊ฐ๊ฐ ์ซ์๊ฐ ์ธ๋ฑ์ค๋ฅผ ๋ฃ์ด์ค ์ ํ๋ ์๋ฆฌ์ฆ์ ๋ฐ์ดํฐ๋ฅผ ๋ช
์ํ๋ค. alias
๋ NestedPie ์ฐจํธ์์, chartType
์ ColumnLine, LineArea, LineScatter ์ฐจํธ์์ ์ ์ฉํ ์ฐจํธ๋ฅผ ๋ช
์ํด์ค๋ค.
์ ํ ์ API์ on ์ด๋ฒคํธ์ selectSeries
eventName์ ์ฌ์ฉํ ๊ฒฝ์ฐ ์ ํ๋ ์๋ฆฌ์ฆ์ ๋ํ ์ ์ด๋ฅผ ์ถ๊ฐ๋ก ํ ์ ์๋ค.
์ ํ์ ํด์ ํ๋ค.
public unselectSeries();
์ ํ ์ API์ on ์ด๋ฒคํธ์ unselectSeries
eventName์ ์ฌ์ฉํ ๊ฒฝ์ฐ ํด์ ๋ ์๋ฆฌ์ฆ์ ๋ํ ์ ์ด๋ฅผ ์ถ๊ฐ๋ก ํ ์ ์๋ค.
- ์ฌ์ฉ ๊ฐ๋ฅ ์ฐจํธ ํ์
:
BoxPlot
public addOutlier(seriesIndex: number, outliers: number[][])
addOutlier
๋ฅผ ์ฌ์ฉํ๋ฉด BoxPlot ์ฐจํธ์ ์ outlier ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ ์ ์๋ค.
const data = {
categories: ['1', '2', '3', '4', '5'],
series: [
{
name: 'A',
data: [10, 100, 50, 40, 70],
outliers: [
[0, 10],
[2, 60],
[3, 80],
],
},
{
name: 'B',
data: [60, 40, 10, 33, 70],
outliers: [
[0, 20]
]
},
],
};
const boxPlotChart = new BoxPlotChart({ el, data, options });
boxPlotChart.addOutlier(1, [[1, 50], [3, 30]]);
์ ์์ ๋ ๋ค์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ BoxPlot ์ฐจํธ๋ก ๋ณ๊ฒฝ๋ ๊ฒ์ด๋ค.
const data = {
categories: ['1', '2', '3', '4', '5'],
series: [
{
name: 'A',
data: [10, 100, 50, 40, 70],
outliers: [
[0, 10],
[2, 60],
[3, 80],
],
},
{
name: 'B',
data: [60, 40, 10, 33, 70],
outliers: [
[0, 20]
[1, 50],
[3, 30],
],
},
],
};